[boschindego] Rewrite to avoid external dependencies (#12905)
* Rewrite to avoid external dependencies Fixes #12720 * Improve session handling * Avoid reauthorization for each command/poll * Further improve session handling * Refactor SSO cookie handling * Optimize getting DeviceStatus for unknown status code Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
This commit is contained in:
@@ -1,69 +1,83 @@
|
||||
# Bosch Indego Binding
|
||||
|
||||
This is the Binding for Bosch Indego Connect lawn mowers.
|
||||
Thank´s to zazaz-de who found out how the API works. His [Java Library](https://github.com/zazaz-de/iot-device-bosch-indego-controller) made this Binding possible.
|
||||
Thank´s to zazaz-de who found out how the API works.
|
||||
His [Java Library](https://github.com/zazaz-de/iot-device-bosch-indego-controller) made this Binding possible.
|
||||
|
||||
## Configuration of the Thing
|
||||
## Thing Configuration
|
||||
|
||||
Currently the binding supports ***indego*** mowers as a thing type with this parameters:
|
||||
Currently the binding supports ***indego*** mowers as a thing type with these configuration parameters:
|
||||
|
||||
| parameter | datatype | required |
|
||||
|-----------|----------|--------------------------------|
|
||||
| username | String | yes |
|
||||
| password | String | yes |
|
||||
| refresh | integer | no (default: 180, minimum: 60) |
|
||||
|
||||
The refresh interval is specified in seconds.
|
||||
|
||||
A possible entry in your thing file could be:
|
||||
|
||||
```java
|
||||
boschindego:indego:lawnmower [username="mail@example.com", password="idontneedtocutthelawnagain", refresh=120]
|
||||
```
|
||||
| Parameter | Description |
|
||||
|-----------|----------------------------------------------------------------------|
|
||||
| username | Username for the Bosch Indego account |
|
||||
| password | Password for the Bosch Indego account |
|
||||
| refresh | Specifies the refresh interval in seconds (default 180, minimum: 60) |
|
||||
|
||||
## Channels
|
||||
|
||||
| item-type | description | |
|
||||
| Channel | Item Type | Description |
|
||||
|--------------|-------------|-------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| state | Number | You can send commands to this channel to control the mower and read the simplified state from it (1=mow, 2=return to dock, 3=pause) |
|
||||
| errorcode | Number | Errorcode of the mower (0=no error, readonly) |
|
||||
| statecode | Number | Detailed state of the mower. I included English and German map-files to read the state easier (readonly) |
|
||||
| errorcode | Number | Error code of the mower (0=no error, readonly) |
|
||||
| statecode | Number | Detailed state of the mower (readonly) |
|
||||
| textualstate | String | State as a text. (readonly) |
|
||||
| ready | Number | Shows if the mower is ready to mow (1=ready, 0=not ready, readonly) |
|
||||
| mowed | Dimmer | Cut grass in percent (readonly) |
|
||||
|
||||
For example you can use this sitemap entry to control the mower manually:
|
||||
### State Codes
|
||||
|
||||
```perl
|
||||
Switch item=indegostate mappings=[ 1="Mow", 2="Return",3="Pause" ]
|
||||
| Code | Description |
|
||||
|-------|---------------------------------------------|
|
||||
| 0 | Reading status |
|
||||
| 257 | Charging |
|
||||
| 258 | Docked |
|
||||
| 259 | Docked - Software update |
|
||||
| 260 | Docked |
|
||||
| 261 | Docked |
|
||||
| 262 | Docked - Loading map |
|
||||
| 263 | Docked - Saving map |
|
||||
| 513 | Mowing |
|
||||
| 514 | Relocalising |
|
||||
| 515 | Loading map |
|
||||
| 516 | Learning lawn |
|
||||
| 517 | Paused |
|
||||
| 518 | Border cut |
|
||||
| 519 | Idle in lawn |
|
||||
| 769 | Returning to dock |
|
||||
| 770 | Returning to dock |
|
||||
| 771 | Returning to dock - Battery low |
|
||||
| 772 | Returning to dock - Calendar timeslot ended |
|
||||
| 773 | Returning to dock - Battery temp range |
|
||||
| 774 | Returning to dock |
|
||||
| 775 | Returning to dock - Lawn complete |
|
||||
| 776 | Returning to dock - Relocalising |
|
||||
| 1025 | Diagnostic mode |
|
||||
| 1026 | End of life |
|
||||
| 1281 | Software update |
|
||||
| 64513 | Docked |
|
||||
|
||||
## Full Example
|
||||
|
||||
### `indego.things` File
|
||||
|
||||
```
|
||||
boschindego:indego:lawnmower [username="mail@example.com", password="idontneedtocutthelawnagain", refresh=120]
|
||||
```
|
||||
|
||||
## Meaning of the numeric statecodes
|
||||
### `indego.items` File
|
||||
|
||||
You can use this as .map file
|
||||
|
||||
```text
|
||||
0=Reading status
|
||||
257=Charging
|
||||
258=Docked
|
||||
259=Docked - Software update
|
||||
260=Docked
|
||||
261=Docked
|
||||
262=Docked - Loading map
|
||||
263=Docked - Saving map
|
||||
513=Mowing
|
||||
514=Relocalising
|
||||
515=Loading map
|
||||
516=Learning lawn
|
||||
517=Paused
|
||||
518=Border cut
|
||||
519=Idle in lawn
|
||||
769=Returning to Dock
|
||||
770=Returning to Dock
|
||||
771=Returning to Dock - Battery low
|
||||
772=Returning to dock - Calendar timeslot ended
|
||||
773=Returning to dock - Battery temp range
|
||||
774=Returning to dock
|
||||
775=Returning to dock - Lawn complete
|
||||
776=Returning to dock - Relocalising
|
||||
```
|
||||
Number Indego_State { channel="boschindego:indego:lawnmower:state" }
|
||||
Number Indego_ErrorCode { channel="boschindego:indego:lawnmower:errorcode" }
|
||||
Number Indego_StateCode { channel="boschindego:indego:lawnmower:statecode" }
|
||||
String Indego_TextualState { channel="boschindego:indego:lawnmower:textualstate" }
|
||||
Number Indego_Ready { channel="boschindego:indego:lawnmower:ready" }
|
||||
Dimmer Indego_Mowed { channel="boschindego:indego:lawnmower:mowed" }
|
||||
```
|
||||
|
||||
### `indego.sitemap` File
|
||||
|
||||
```
|
||||
Switch item=Indego_State mappings=[1="Mow", 2="Return",3="Pause"]
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user