# homebridge-kobold 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). 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). The interaction with the Server is handled by the underlying [node-kobold-control](https://github.com/himbeles/node-kobold-control) module. ## Features - House Cleaning - Eco mode - Extra care navigation - Nogo lines - Zone cleaning [1](#change-room) - Spot cleaning - Individual spot size [2](#eve) - Clean twice [2](#eve) - Return to dock - Find the robot - Schedule (de)activation - Robot information - Battery level - Charging state - Dock occupancy - Model and firmware version - Automatic or periodic refresh of robot state - Multiple robots - German or English Language Setting > 2 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. > 3 You need a third party app like eve to access these features. ## Installation 1. Install homebridge using: `npm install -g homebridge` 2. Install this plugin using: `npm install -g homebridge-kobold` 3. Update your configuration file. See the sample below. ## Configuration Add the following information to your config file. Change the values for email and password. ### Simple ```json "platforms": [ { "platform": "KoboldVacuumRobot", "token": "YourToken", "language": "de" } ] ``` You can get a token using the following two curl commands: ```bash # This will trigger the email sending curl -X "POST" "https://mykobold.eu.auth0.com/passwordless/start" \ -H 'Content-Type: application/json' \ -d '{ "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' \ -d '{ "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. The `language` can be `de` for German, or `en` for English. ### Advanced Below are explanations for advanced parameters to adjust the plugin to your needs. All parameters are *optional*. **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. **hidden** List of plugin features that you don't want to use in homekit (e.g. `dock`, `dockstate`, `eco`, `nogolines`, `extracare`, `schedule`, `find`, `spot`). ```json "platforms": [ { "platform": "KoboldVacuumRobot", "token": "YourToken", "refresh": "120", "hidden": ["dock", "dockstate", "eco", "nogolines", "extracare", "schedule", "find", "spot"], "language": "de" } ] ``` ## Tested robots - Vorwerk Kobold VR300