# 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 (opens new window) made this Binding possible.
# Discovery
When the bridge is authorized, the binding can automatically discover Indego mowers connected to the SingleKey ID account.
# Thing Configuration
# account
Bridge Configuration
There are no parameters for the bridge. However, the bridge is used for managing the SingleKey ID (opens new window) digital identity.
# Authorization
To authorize, please follow these steps:
- In your browser, go to the Bosch Indego login page (opens new window).
- Select "Bosch ID", enter your e-mail address and password and click "Log-in".
- In your browser, open Developer Tools.
- With developer tools showing on the right, go to Bosch Indego login page (opens new window) again.
- "Please wait..." should now be displayed.
- Find the
authresp
and copy the code:com.bosch.indegoconnect://login/?code=<copy this>
- Use the openHAB console to authorize with this code:
openhab:boschindego authorize <paste code>
# indego
Thing Configuration
Parameter | Description | Default | Required |
---|---|---|---|
serialNumber | The serial number of the connected Indego mower | yes | |
refresh | The number of seconds between refreshing device state when idle | 180 | no |
stateActiveRefresh | The number of seconds between refreshing device state when active | 30 | no |
cuttingTimeRefresh | The number of minutes between refreshing last/next cutting time | 60 | no |
# Channels
Channel | Item Type | Description | Writeable |
---|---|---|---|
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) | Yes |
errorcode | Number | Error code of the mower (0=no error) | |
statecode | Number | Detailed state of the mower | |
textualstate | String | State as a text. | |
ready | Number | Shows if the mower is ready to mow (1=ready, 0=not ready) | |
mowed | Dimmer | Cut grass in percent | |
lastCutting | DateTime | Last cutting time | |
nextCutting | DateTime | Next scheduled cutting time | |
batteryVoltage | Number:ElectricPotential | Battery voltage reported by the device1,2 | |
batteryLevel | Number | Battery level as a percentage (0-100%)1 | |
lowBattery | Switch | Low battery warning with possible values on (low battery) and off (battery ok)1 | |
batteryTemperature | Number:Temperature | Battery temperature reported by the device1 | |
gardenSize | Number:Area | Garden size mapped by the device | |
gardenMap | Image | Garden map created by the device3 |
1) This will be updated every six hours when the device is idle. It will wake up the device, which can include turning on its display. When the device is active or charging, this will be updated every two minutes.
2) Currently for some models the channel batteryVoltage
is populated with the same value as batteryLevel
.
For these models batteryLevel
should be used instead of batteryVoltage
.
3) This will be updated as often as specified by the stateActiveRefresh
thing parameter.
# State Codes
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 |
266 | Leaving dock |
513 | Mowing |
514 | Relocalising |
515 | Loading map |
516 | Learning lawn |
517 | Paused |
518 | Border cut |
519 | Idle in lawn |
523 | SpotMow |
524 | Mowing randomly |
768 | Returning to dock |
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 |
1537 | Energy save mode |
64513 | Docked |
# Full Example
# indego.things
File
Bridge boschindego:account:singlekey {
Things:
Thing indego lawnmower [serialNumber="1234567890", refresh=120]
}
# indego.items
File
Number Indego_State { channel="boschindego:indego:singlekey:lawnmower:state" }
Number Indego_ErrorCode { channel="boschindego:indego:singlekey:lawnmower:errorcode" }
Number Indego_StateCode { channel="boschindego:indego:singlekey:lawnmower:statecode" }
String Indego_TextualState { channel="boschindego:indego:singlekey:lawnmower:textualstate" }
Number Indego_Ready { channel="boschindego:indego:singlekey:lawnmower:ready" }
Dimmer Indego_Mowed { channel="boschindego:indego:singlekey:lawnmower:mowed" }
DateTime Indego_LastCutting { channel="boschindego:indego:singlekey:lawnmower:lastCutting" }
DateTime Indego_NextCutting { channel="boschindego:indego:singlekey:lawnmower:nextCutting" }
Number:ElectricPotential Indego_BatteryVoltage { channel="boschindego:indego:singlekey:lawnmower:batteryVoltage" }
Number Indego_BatteryLevel { channel="boschindego:indego:singlekey:lawnmower:batteryLevel" }
Switch Indego_LowBattery { channel="boschindego:indego:singlekey:lawnmower:lowBattery" }
Number:Temperature Indego_BatteryTemperature { channel="boschindego:indego:singlekey:lawnmower:batteryTemperature" }
Number:Area Indego_GardenSize { channel="boschindego:indego:singlekey:lawnmower:gardenSize" }
Image Indego_GardenMap { channel="boschindego:indego:singlekey:lawnmower:gardenMap" }
# indego.sitemap
File
Switch item=Indego_State mappings=[1="Mow", 2="Return",3="Pause"]