TypeScript icon, indicating that this package has built-in type declarations

0.9.5 • Public • Published



Latest version Latest version Latest version Number of monthly downloads Number of downloads github-workflow

Library for running Ecovacs Deebot (and also some yeedi) vacuum cleaner robots


Information on how to install this library can be found here.

The minimum required version of Node.js is 14.x. It is recommended to use version 14.x or 16.x


Information on how to use this library can be found here.


Fully supported models

The fully supported models are those that I own myself:

  • Deebot OZMO 920
  • Deebot T8 AIVI
  • Deebot X1 Turbo

Other supported models

These models should work properly or at least partially. They are either already known to work or are technically similar to these models. Nevertheless, the functionality may be partially limited.

I try to achieve a wide range of functionality, but decide this case by case depending on complexity and various other criteria. There is of course no claim to full functionality.

Ecovacs Deebot

  • Deebot OZMO 950/T5
  • Deebot N8 series
  • Deebot U2 series
  • Deebot T8 series
  • Deebot T9 series
  • Deebot T10 series
  • Deebot X1 series


  • yeedi k650
  • yeedi 2 hybrid
  • yeedi vac hybrid
  • yeedi vac max
  • yeedi vac 2 pro
  • yeedi mop station

Ecovacs Airbot (experimental)


Legacy models (soon to be discontinued)

These models use XML for data transport and also different characteristics for commands and events than the current models. I also don't use my Slim 2, Deebot 901 and OZMO 930 anymore.

Support for these models will therefore soon be discontinued.

  • Deebot Slim 2
  • Deebot N79 series
  • Deebot M88
  • Deebot 500
  • Deebot 600/601/605
  • Deebot 710/711
  • Deebot 900/901
  • Deebot OZMO 610
  • Deebot OZMO 900/905
  • Deebot OZMO 930
  • Deebot OZMO Slim 10/11

Known issues

  • The generation of map images may not be stable on 32-bit systems (e.g. most Raspberry Pi systems)
  • The "Edge" command does not work with Deebot U2 (starts auto clean instead)
  • The "Move" commands do not work with Deebot OZMO T8 AIVI (and maybe also for some other models)
  • The generation of map image data does not work properly with the Deebot X1 series



  • Added GoToPosition shortcut function (e.g. T8, T9 and X1 series)
  • Fix AirDryingStart and AirDryingStop commands


  • Fix API call for countries with continent "WW"


  • Switched to new endpoint for ecouser API
  • Added several commands and events for X1 series (and also maybe other models)
    • e.g. HostedCleanMode, StationState, Washing, Drying, WashIntervalState, AICleanItemState
  • Several other improvements and optimizations
    • e.g. added air freshener life span component and the Generic command


  • Some improvements for auto empty station, dnd mode, cleaning logs, mopping modes
  • Handle cleaning incoming sequence and preference for each spot area
  • Improved disconnecting from the MQTT server
  • Improved logging (dev environment)
  • Some other improvements and fixes


  • (bhuebschen) Added some commands for T9 series and yeedi mop station
  • (bhuebschen) Implemented cleaning log call for T9 based models
  • (bhuebschen) Added numerous commands for AIRBOT Z1 (Air Purifier)
  • Added MapPoint_V2 shortcut command for T9 based models
  • Added round mops to models dictionary


  • Breaking change: Bump minimum required version of Node.js to 14.x
  • (apfelnutzer) Added handling for the air drying message (yeedi Mop Station)
  • Bugfix issue #219
  • Added some error codes
  • Bump dependencies (incl. fix for CVE-2022-39353)


  • Added initial support for yeedi login
  • and also for a few models
    • yeedi k650
    • yeedi 2 hybrid
    • yeedi vac hybrid
    • yeedi mop station
  • Added CurrentStats event for XMPP devices
  • Added commands for air drying the wiper blades
  • Added 'donotClean' for CustomArea_V2 command
  • Bumped canvas to 2.9.3
  • Some minor improvements


  • Added Deebot T10 series
  • Some minor improvements


  • Handle FwBuryPoint messages (e.g. T8/T9 series, experimental)
  • Handle some additional events (e.g. T8/T9 series)
  • Added commands to enable/disable Clean Preference (e.g. T8/T9 series)
  • Some fixes and improvements
  • Updated dependencies


  • (m8schmit) Added types for TypeScript
  • Lots of code documentation
  • Lots of code improvements
  • Added some new models to config
  • Added unit care to LifeSpan components
  • Added current spot area name to the events
  • Implemented getCleanCount/setCleanCount command
  • Add CurrentSpotAreas and CurrentCustomAreaValues events
  • Some fixes
  • Updated dependencies


  • Bumped mqtt to 4.3.6
  • Stability improvements
  • A lot of code refactoring
  • Bumped several dependencies
  • Switched to axios


  • Bumped mqtt to 4.3.4
  • Bumped xmldom to 0.8.0
  • Bumped follow-redirects to 1.14.7 (fix for CVE-2022-0155)


  • Breaking change: Bumped required Node.js version to 12.x
  • Added some new models
  • Implement ContinuousCleaning and ContinuousCleaning commands (950 type models)
  • Start implementing V2 commands (e.g. T8 and T9 series)
  • Some minor changes and improvements
  • Fix for Deebot 710 series
  • Added Deebot X1 series

0.0.2 - 0.6.8

Thanks and credits

All credits for originally figuring out and documenting the protocol go to @wpietri. He documented his findings on the protocol in his repository.


I am in no way affiliated with Ecovacs Robotics Co., Ltd. or yeedi Technology Limited.



Copyright (c) 2023 Sascha Hölzel

Package Sidebar


npm i ecovacs-deebot

Weekly Downloads






Unpacked Size

669 kB

Total Files


Last publish


  • mrbungle64