2021-04-30 15:18:10 +02:00
[![Latest NPM release ](https://img.shields.io/npm/v/homebridge-kobold.svg )](https://www.npmjs.com/package/homebridge-kobold)
2020-12-12 15:42:06 +01:00
# homebridge-kobold
2017-04-17 16:07:21 +02:00
2020-12-12 15:52:26 +01:00
This is a plugin for [homebridge ](https://github.com/nfarina/homebridge ) to control your [Vorwerk Kobold ](https://kobold.vorwerk.de/saugroboter/ ) VR300 vacuum robot. You can download it via [npm ](https://www.npmjs.com/package/homebridge-kobold ).
2017-04-30 14:17:21 +02:00
2020-12-13 22:51:05 +01:00
It is based on a fork of naofireblade's [homebridge-neato ](https://github.com/naofireblade/homebridge-neato ), merged with the oAuth authentication mechanism from nicoh88's [homebridge-vorwerk ](https://github.com/nicoh88/homebridge-vorwerk ).
2020-12-13 22:49:48 +01:00
The interaction with the Server is handled by the underlying [node-kobold-control ](https://github.com/himbeles/node-kobold-control ) module.
2017-04-18 02:51:59 +02:00
2017-06-07 10:48:11 +02:00
## Features
2017-04-18 02:51:59 +02:00
2019-09-24 20:32:09 +02:00
- House Cleaning
2019-09-22 22:16:58 +02:00
- Eco mode
- Extra care navigation
- Nogo lines
2020-12-12 15:52:26 +01:00
- Zone cleaning < sup > [1](#change-room)</ sup >
2019-09-23 09:12:25 +02:00
- Spot cleaning
2020-12-12 15:52:26 +01:00
- Individual spot size < sup > [2](#eve)</ sup >
- Clean twice < sup > [2](#eve)</ sup >
2018-11-14 18:22:27 +01:00
- Return to dock
2019-09-22 22:16:58 +02:00
- Find the robot
2019-09-24 20:32:09 +02:00
- Schedule (de)activation
2019-09-22 22:16:58 +02:00
- Robot information
2019-09-24 20:32:09 +02:00
- Battery level
- Charging state
- Dock occupancy
- Model and firmware version
- Automatic or periodic refresh of robot state
2019-09-22 22:16:58 +02:00
- Multiple robots
2017-05-04 19:24:33 +02:00
2021-03-10 16:49:40 +01:00
- German, English or French Language Setting
2021-02-07 11:15:08 +01:00
2019-10-18 10:02:55 +02:00
> <b name="change-room">2</b> You can send the robot from one room to another as well. He will return to the base, wait there some seconds and then starts cleaning the next room.
2019-10-12 11:29:10 +02:00
2020-03-14 00:32:48 +01:00
> <b name="eve">3</b> You need a third party app like eve to access these features.
2017-06-07 10:48:11 +02:00
## Installation
2017-04-17 16:07:21 +02:00
2017-04-30 14:17:21 +02:00
1. Install homebridge using: `npm install -g homebridge`
2020-12-12 15:42:06 +01:00
2. Install this plugin using: `npm install -g homebridge-kobold`
2020-12-12 15:52:26 +01:00
3. Update your configuration file. See the sample below.
2017-04-17 16:07:21 +02:00
2017-06-07 10:48:46 +02:00
## Configuration
2017-04-17 16:07:21 +02:00
2021-05-03 13:16:30 +02:00
Add the following information to your config file. Adapt the value for `token` .
2017-04-17 16:07:21 +02:00
2021-03-10 16:49:40 +01:00
### Simple
2017-06-06 17:25:02 +02:00
```json
"platforms": [
2021-02-07 15:27:57 +01:00
{
"platform": "KoboldVacuumRobot",
"token": "YourToken",
2021-02-07 11:15:08 +01:00
"language": "de"
2021-02-07 15:27:57 +01:00
}
2017-06-06 17:25:02 +02:00
]
```
2021-05-03 13:16:30 +02:00
You can get a token using the GUI tool [Kobold Token Getter ](https://github.com/himbeles/kobold-token-get ) or using the following two curl commands:
2020-12-12 15:52:26 +01:00
```bash
# This will trigger the email sending
curl -X "POST" "https://mykobold.eu.auth0.com/passwordless/start" \
-H 'Content-Type: application/json' \
2020-12-13 10:23:59 +01:00
-d '{
2020-12-12 15:52:26 +01:00
"send": "code",
"email": "ENTER_YOUR_EMAIL_HERE",
"client_id": "KY4YbVAvtgB7lp8vIbWQ7zLk3hssZlhR",
"connection": "email"
}'
```
==== wait for the email to be received ====
```bash
# this will generate a token using the numbers you received via email
# replace the value of otp 123456 with the value you received from the email
curl -X "POST" "https://mykobold.eu.auth0.com/oauth/token" \
-H 'Content-Type: application/json' \
2020-12-13 10:23:59 +01:00
-d '{
2020-12-12 15:52:26 +01:00
"prompt": "login",
"grant_type": "http://auth0.com/oauth/grant-type/passwordless/otp",
"scope": "openid email profile read:current_user",
"locale": "en",
"otp": "123456",
"source": "vorwerk_auth0",
"platform": "ios",
"audience": "https://mykobold.eu.auth0.com/userinfo",
"username": "ENTER_YOUR_EMAIL_HERE",
"client_id": "KY4YbVAvtgB7lp8vIbWQ7zLk3hssZlhR",
"realm": "email",
"country_code": "DE"
}'
```
From the output, you want to copy the `id_token` value.
2021-03-10 16:49:40 +01:00
The `language` can be `de` for German, `en` for English, or `fr` for French.
2021-02-07 11:15:08 +01:00
2017-06-07 10:48:46 +02:00
### Advanced
2017-06-07 10:47:01 +02:00
2019-10-18 10:02:55 +02:00
Below are explanations for advanced parameters to adjust the plugin to your needs. All parameters are *optional* .
2017-06-06 17:25:02 +02:00
2019-10-18 10:02:55 +02:00
**refresh**
Timer for periodic refresh of robot state. The default is `auto` . The options are:
`auto` Updates the robot state when a cleaning was started via homekit so that you can activate automations based on a successful cleaning.
`120` Or any other time in seconds (minimum `60` ) is required if you want to receive robot state updates after starting the cleaning from outside of homekit (e.g. neato app or schedule).
`0` Disables background updates completely.
2017-07-24 19:52:32 +02:00
2019-10-18 10:02:55 +02:00
**hidden**
List of plugin features that you don't want to use in homekit (e.g. `dock` , `dockstate` , `eco` , `nogolines` , `extracare` , `schedule` , `find` , `spot` ).
2017-06-06 17:25:02 +02:00
2017-04-17 16:07:21 +02:00
```json
2017-06-05 16:46:45 +02:00
"platforms": [
2021-02-07 15:27:57 +01:00
{
"platform": "KoboldVacuumRobot",
"token": "YourToken",
"refresh": "120",
"hidden": ["dock", "dockstate", "eco", "nogolines", "extracare", "schedule", "find", "spot"],
2021-02-07 11:15:08 +01:00
"language": "de"
2021-02-07 15:27:57 +01:00
}
2017-04-18 02:51:59 +02:00
]
2017-04-17 16:07:21 +02:00
```
2017-06-07 10:48:11 +02:00
## Tested robots
2017-04-17 16:07:21 +02:00
2021-03-10 16:49:40 +01:00
- Vorwerk Kobold VR300