Publish your deebot ecovacs as an homekit accessory

Usage no npm install needed!

<script type="module">
  import homebridgeDeebotecovacs from 'https://cdn.skypack.dev/homebridge-deebotecovacs';



npm npm npm

CodeFactor Build Status Known Vulnerabilities

code style: prettier

Plugin for controlling your deebot Ecovacs from Ecovacs through HomeBridge .

Each Deebot is shown through

  • One fan. Fan speed will determine the deebot speed. Direction will handle auto / edge mode. Switching off will make the deebot stop, switching on will make it start cleaning,
  • One Switch that will allow you to start lceaning (auto / edge mode depending on Fan direction), and go back to charge when switched off,
  • One Switch that will play a sound on your Deebot,
  • One Motion sensor that will be triggered in case your deebot needs attention.

The battery percentage / charging status is shown in the detail pane of each service.

npm install -g homebridge-deebotecovacs

IMPORTANT This might not be needed anymore since 1.2.0

If you encounter any issue while installing, you might have to install additionnal packages on your environment since the main dependency of it depends on canvas library which is not available for all configurations. See there for more details : canvas compiling.

For use in the oznu/homebridge Docker image (Alpine Linux) please add the following line to your startup.sh script and restart the container. You can edit this file in directly in the Homebride UI by selecting the drop down menu in the upper-right-corner and selecting Startup Script.

apk add build-base cairo-dev jpeg-dev pango-dev giflib-dev librsvg-dev

You can also use the PACKAGES env variable directly with docker

-e PACKAGES=build-base,cairo-dev,jpeg-dev,pango-dev,giflib-dev,librsvg-dev

Homebridge configuration

Config as below:

"platforms": [
    "platform": "DeebotEcovacs",
    "email": "toto@titi.com",
    "password": "toto",
    "countryCode" : "FR"


  • platform must be "DeebotEcovacs" (required).
  • email email used for your ecovacs account (required).
  • password password of your ecovacs account (required).
  • country code : country code for your account , value in : CH, TW, MY, JP, SG, TH, HK, IN, KR,US,FR, ES, UK, NO, MX, DE, PT, CH, AU, IT, NL, SE, BE, DK, OTHER (required).
  • refreshTimer Optional - enable refresh of deebot state every X seconds, for automation purpose if you need to activate something else based on its state change (defaults : disable, accepted range : 30-600s).
  • cleanCache Set it to true in case you want to remove the cached accessory (only those from this plugin). You have to restart homebridge after applying the option. Remove it after restart, otherwise it will be recreated at each startup.
  • deebotNames Array of NickNames of the deebot to publish. Defaults to all found on your account.
  • publishBipSwitch Optional - defaults to true - Publish the switch that makes the deebot beeps
  • publishFan Optional - defaults to true - Publish the fan that makes speed cleaning available
  • publishSwitch Optional - defaults to true - Publish the switch that makes on/off available
  • publishMotionDetector Optional - defaults to true - Publish the motion detector to be triggered in case of hep needed by your deebot
  • publishAutoSwitch Optional - Publish a switch to start in auto Mode.
  • publishEdgeSwitch Optional - Publish a switch to start in edge Mode.
  • publishSpotSwitch Optional - Publish a switch to start in spot Mode.
  • publishSpotAreaSwitches Optional - Publish switches to start for each spot Area. Must be something like ["1","1,2"] or ["deebotName|1","deebotName2|1,2"] if you have multiple deebots
  • publishCustomAreaSwitches Optional - Publish switches to start for each Custom Area. Must be something like ["x1,y1,x2,y2,numberOfcleanings","x1,y1,x2,y2,numberOfcleanings"] or ["deebotName|x1,y1,x2,y2,numberOfcleanings","deebotName2|x1,y1,x2,y2,numberOfcleanings"] if you have multiple deebots ? number of cleanings is optionnal
  • publishAreaSwitchesAsSeparateDevices Optional - Defaults to false. Publish Custom / Spot switches as indiviual accessories so that you can move them in other rooms.
  • showInfoLogs Optional - Defaults to false. Log info for maps, custom areas and so on .

See : https://github.com/mrbungle64/ecovacs-deebot.js/wiki/Clean-modes




Many thanks to :

  • wpietri for sucks python api and protocol
  • mrbungle64 for nice js port and revamp of sucks.js package
  • every tester / contributor that test, and give feedback in any way !


Support this project and others by nicoduj via PayPal.

Support via PayPal


As of Sept 01 2019, Nicolas Dujardin has released this repository and its contents to the public domain.

It has been released under the UNLICENSE.