Skip to content

mrbungle64/ioBroker.ecovacs-deebot

Repository files navigation

Logo

Ecovacs Deebot adapter for ioBroker

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

This adapter uses the ecovacs-deebot.js library.

Features

Basic Features

  • Cleaning functions (e.g., auto, area and custom area cleaning) and various other basic functions (e.g., play sound, reset consumables, relocate position)
  • Retrieve information (e.g., battery level, cleaning log, consumables status, cleaning and charging status) and various other extended information (e.g., charging position, map-related information)
  • Set vacuum power, water level, and other basic adjustments along with various extended settings (e.g., continuous cleaning, do-not-disturb mode, volume, AIVI/TrueDetect 3D)
  • Retrieve information of the maps including areas, virtual boundaries, and no-mop-zones, also during the cleaning process (e.g., current position and area)
  • Loading the current map image

Extended Features (ioBroker adapter only)

  • Save and recreate full sets of virtual boundaries and no-mop-zones
  • Information about the date and time of the last presence for each single area
  • Some functionality when returning to the charging station or entering/leaving area
  • Save the last used custom area and rerun the saved areas
  • Silent approach cleaning and go-to-position functions
  • Set individual area names

Important Notes

  • Some features (e.g., "Silent approach") are only available for some models (mostly current models)
  • and some are still experimental (e.g., "Loading the current map image", handle sets of virtual boundaries)
  • The functionality of the adapter is not guaranteed for all models (see below)

Models

Supported models

The following models I own myself, so they are very widely supported:

  • Deebot OZMO 920/950
  • Deebot OZMO T8 AIVI
  • Deebot X1 Turbo
  • Airbot Z1

Other models

The following 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 N8 series
  • Deebot T8 series
  • Deebot T9 series
  • Deebot T10 series
  • Deebot T20 series
  • Deebot X1 series
  • Deebot X2 series

yeedi

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

Note: All these lists may not be fully complete

Legacy models (soon to be discontinued)

Legacy models that use XML for data transport (e.g. Deebot OZMO 930, Deebot 900/901) are mostly still working, but support for these models will be discontinued sooner or later.

Please check this readme for more information.

Installation

Prerequisites

To use this adapter, you will need to already have ioBroker installed.

The minimum required version of Node.js is 16.x.

Optional prerequisites

This adapter uses the node-canvas library for some map-related functionality which may require the installation of some additional packages.

The installation of canvas is optional and not necessary for models without map functionality, but for full functional range please install the following packages.

For Debian-based Linux systems the following commands should be executed:

sudo apt-get update
sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev

A reboot might be necessary before executing the next command

npm install canvas --unsafe-perm=true

For instructions for other systems visit https://www.npmjs.com/package/canvas#compiling

FAQ

Frequently asked questions can be found here

Usage

Information on how to use this adapter can be found here

States

Information about the states can be found here (English) and here (German)

Known issues

  • The "move" function varies from model to model, so it's not implemented universally
  • The generation of map images is not stable on 32-bit systems
  • and it still does not work properly with the Deebot X1 series and other current models

Changelog

1.4.16-alpha.1

  • Add more states for air drying timer
  • Use adapter-dev module
  • Some further improvements and optimizations

1.4.15 (beta)

  • Breaking change: Bump minimum required version of Node.js to 18.x
  • Bumped ecovacs-deebot.js to 0.9.6 (beta)
  • Add state (button) for manually requesting the cleaning log
  • Separate mopping and scrubbing mode
  • Add states for air drying timer
  • Some further improvements and optimizations

1.4.14

  • Breaking change: Bump minimum required version of Node.js to 16.x
  • Bumped ecovacs-deebot.js to 0.9.6 (alpha)
  • Many improvements for AIRBOT Z1 and Z1 Air Quality Monitor
  • and also several improvements for the T20 and X2 series
  • Bumped max number of devices to 20
  • Added Australia, the United Arab Emirates and "Other countries" as "country"
  • Bumped some dependencies
  • Some further improvements and optimizations

1.4.13 (latest stable)

  • Several improvements and optimizations for X1 series (e.g. for the cleaning station and mopping functions)
  • Added Air Freshener life span component
  • Some further improvements and optimizations

1.4.12

  • Bumped ecovacs-deebot.js to 0.9.2 (beta)
  • Spot area related functions for models with native "goToPosition" function (from the Video Manager):
    • Implemented "goToCalculatedCenterPosition" function
    • Implemented "silentApproach" cleaning
  • Some further improvements and optimizations

1.4.11

  • Bumped ecovacs-deebot.js to 0.9.2 (alpha)
  • Added channel for the auto empty station (incl. dust bag full)
  • Added state for changing the scrubbing pattern (OZMO Pro)
  • Added option to save the used go to position values
  • Added function to also save the current deebot position as a "goToPosition"
  • Automatically set the last time dustbox removed when the dust bag has been emptied by the auto empty station
  • Some further improvements and some fixes

1.4.10

  • Bumped ecovacs-deebot.js to 0.9.1
  • Added channel with information about the last cleaned spot area
  • Implemented "markForNextSpotAreaCleaning" function

1.4.9

  • Bumped ecovacs-deebot.js to 0.9.1-beta.3
  • Several improvements for T9 based models (e.g. N8/T9/T10/X1)
  • Implemented option for automatic download of the last cleaning image
  • The generated base64 map image will also be stored to the filesystem now
  • Some further improvements and some fixes

1.4.8

  • Breaking change: Bumped minimum required version of Node.js to 14.x
  • Bumped ecovacs-deebot.js to 0.9.0-beta.2
  • Bumped several other dependencies

1.4.7

  • Bumped ecovacs-deebot.js to 0.8.3-beta.2 (Hotfix XMPP devices)

1.4.6

  • Added option for native "goToPosition" function (e.g. Deebot OZMO T8 AIVI)
  • Some improvements and fixes

1.4.5

  • Added states for time and cleaned area since last dustbox removal
  • Added button for manually trigger dustbox removal
  • Removed some options from settings
  • Some other changes to settings
  • Bumped ecovacs-deebot.js to the latest beta version
  • Initial Support for yeedi accounts
  • and also for a few models
    • yeedi k650
    • yeedi 2 hybrid
    • yeedi vac hybrid
    • yeedi mop station

1.4.4

  • Bumped ecovacs-deebot.js to 0.8.2
  • Bugfix for non 950 type models with mopping system (e.g. OZMO 930)
  • Some minor improvements

1.4.3

  • Bumped ecovacs-deebot.js to the latest beta version
  • Improved last time presence functionality
  • Added state for Clean Preference (e.g. T8/T9 series)
  • Added state for the last 20 errors
  • Added state for cleaning schedule (read-only)
  • Some further improvements and some fixes

1.4.2

  • Bumped ecovacs-deebot.js to 0.8.1 (beta)
  • Added states for cleaning cloth reminder and auto-boost suction (e.g. OZMO 920/950, T8/T9 series)
  • Added states for mopping type and scrubbing type (models with OZMO Pro mopping system)
  • Added option to choose between "pause" and "stop" for "PauseBeforeDockingChargingStation..." functionality
  • Some further improvements

1.4.1

  • Bumped ecovacs-deebot.js to 0.8.0
  • Improved "lastTimePresence" functionality
  • Added option to reset the vacuum power (cleanSpeed) to standard on return
  • Added option to keep modified spot area names (pre-selection on non 950 type models)
  • Added states for current used custom and spot areas (currentUsedSpotAreas and customUsedCustomAreaValues)
  • Handle error code 110 ("NoDustBox: Dust Bin Not installed")
  • Bumped some dependencies

1.4.0

  • Bumped ecovacs-deebot.js to 0.8.0 (beta)
  • Implemented last time presence function (still experimental)
  • Implemented "cleanCount" (permanent clean count) function (T8/T9/X1 series)
  • Implemented "trueDetect" (enable/disable) function (T8/T9/X1 series)
  • Added "unitCare" to consumables (T8/T9/X1 series)
  • Added Deebot X1 series
  • Some improvements and fixes

0.0.1 - 1.3.4

Disclaimer

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

License

MIT License

Copyright (c) 2024 Sascha Hölzel mrb1232@posteo.de

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.