Skip to main content

Client Library for Deebot devices (Vacuums)

PyPI - Downloads Buy Me A Coffee

IMPORTANT: Contribution only

This project is maintained in our spare time. Please be patient and respectful.

It's not related to Ecovacs or Deebot and we don't get any support from them.

As all is reverse engineered it might take some time to add new features and we can't guarantee that all features will be added.

Unfortunately some people think we are paid to do this and get angry if things don't work as they expect. As result of this, we decided that this project is in a contribution only mode.

This means, if you want something to be supported/added, you have to provide a fix yourself, wait for someone else to fix it or pay someone to do it. Members will still review and help on pull requests.

Installation

If you have a recent version of Python 3, you should be able to do pip install deebot-client to get the most recently released version of this.

Usage

To get started, you'll need to have already set up an EcoVacs account using your smartphone.

You are welcome to try using this as a python library for other efforts. A simple usage might go something like this:

import aiohttp
import asyncio
import logging
import time

from deebot_client.api_client import ApiClient
from deebot_client.authentication import Authenticator, create_rest_config
from deebot_client.commands.json.clean import Clean, CleanAction
from deebot_client.events import BatteryEvent
from deebot_client.mqtt_client import MqttClient, create_mqtt_config
from deebot_client.util import md5
from deebot_client.device import Device

device_id = md5(str(time.time()))
account_id = "your email or phonenumber (cn)"
password_hash = md5("yourPassword")
country = "DE"


async def main():
  async with aiohttp.ClientSession() as session:
    logging.basicConfig(level=logging.DEBUG)
    rest_config = create_rest_config(session, device_id=device_id, alpha_2_country=country)

    authenticator = Authenticator(rest_config, account_id, password_hash)
    api_client = ApiClient(authenticator)

    devices_ = await api_client.get_devices()

    bot = Device(devices_.mqtt[0], authenticator)

    mqtt_config = create_mqtt_config(device_id=device_id, country=country)
    mqtt = MqttClient(mqtt_config, authenticator)
    await bot.initialize(mqtt)

    async def on_battery(event: BatteryEvent):
      # Do stuff on battery event
      if event.value == 100:
        # Battery full
        pass

    # Subscribe for events (more events available)
    bot.events.subscribe(BatteryEvent, on_battery)

    # Execute commands
    await bot.execute_command(Clean(CleanAction.START))
    await asyncio.sleep(900)  # Wait for...
    await bot.execute_command(Charge())


if __name__ == '__main__':
  loop = asyncio.get_event_loop()
  loop.create_task(main())
  loop.run_forever()

A more advanced example can be found here.

Note for Windows users

This library cannot be used out of the box with Windows due a limitation in the requirement aiomqtt. More information and a workaround can be found here

Thanks

My heartfelt thanks to:

  • deebotozmo, After all, this is a debotozmo fork :)
  • sucks, deebotozmo was forked from it :)
  • xmpppeek, a great library for examining XMPP traffic flows ( yes, your vacuum speaks Jabber!),
  • mitmproxy, a fantastic tool for analyzing HTTPS,
  • click, a wonderfully complete and thoughtful library for making Python command-line interfaces,
  • requests, a polished Python library for HTTP requests,
  • Decompilers online, which was very helpful in figuring out what the Android app was up to,
  • Albert Louw, who was kind enough to post code from his own experiments with his device, and
  • All the users who have given useful feedback and contributed code!

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

deebot_client-18.4.0.tar.gz (244.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

deebot_client-18.4.0-cp314-cp314-win_amd64.whl (1.1 MB view details)

Uploaded CPython 3.14Windows x86-64

deebot_client-18.4.0-cp314-cp314-musllinux_1_2_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

deebot_client-18.4.0-cp314-cp314-musllinux_1_2_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

deebot_client-18.4.0-cp314-cp314-manylinux_2_34_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

deebot_client-18.4.0-cp314-cp314-manylinux_2_34_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ ARM64

deebot_client-18.4.0-cp314-cp314-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

deebot_client-18.4.0-cp314-cp314-macosx_10_12_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.14macOS 10.12+ x86-64

File details

Details for the file deebot_client-18.4.0.tar.gz.

File metadata

  • Download URL: deebot_client-18.4.0.tar.gz
  • Upload date:
  • Size: 244.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for deebot_client-18.4.0.tar.gz
Algorithm Hash digest
SHA256 d61fcc619fcc9bcc0b6b20eb5ffe4a40bb7efc048ee99cd31731eeda68465a18
MD5 dafc6e64c0ad659fbd9ae87bc9c2cc48
BLAKE2b-256 02e8f86865223095ad7d8174f9b0bae8328ace6b3be335ddf678a6e24ed8f485

See more details on using hashes here.

Provenance

The following attestation bundles were made for deebot_client-18.4.0.tar.gz:

Publisher: ci.yml on DeebotUniverse/client.py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file deebot_client-18.4.0-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for deebot_client-18.4.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 cfca95774c034168bb7e16c53b041f1d4593055a2162173e0e5415a34582ff98
MD5 a06d83fba655808b5ca032b5541f8f48
BLAKE2b-256 bd6edbde3c96f63684e502d4d6a85fa772a9abedef5aca5d31e5a4d6aa71b9c2

See more details on using hashes here.

Provenance

The following attestation bundles were made for deebot_client-18.4.0-cp314-cp314-win_amd64.whl:

Publisher: ci.yml on DeebotUniverse/client.py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file deebot_client-18.4.0-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for deebot_client-18.4.0-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4eef8f8da522711e1844cb91b53740c40b18ebe5d0e8e19ecfee321ee72160d1
MD5 b9f1dd987a1ce28f9651ba64f1df62b6
BLAKE2b-256 400c7a9da88831b155f4d74e77cac494863b358014e94b6a880a8336c9e8c562

See more details on using hashes here.

Provenance

The following attestation bundles were made for deebot_client-18.4.0-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: ci.yml on DeebotUniverse/client.py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file deebot_client-18.4.0-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for deebot_client-18.4.0-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d1bd294309880ec7e4f3dc029b5d79e2ec80e60cbc91a7269736cc7518205192
MD5 0017b6d424a509da90285dc15c9d3388
BLAKE2b-256 6281065d37c0a9a6cace898c26cc5e12f8a49a2015e5cd4f2951bca811036d0a

See more details on using hashes here.

Provenance

The following attestation bundles were made for deebot_client-18.4.0-cp314-cp314-musllinux_1_2_aarch64.whl:

Publisher: ci.yml on DeebotUniverse/client.py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file deebot_client-18.4.0-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for deebot_client-18.4.0-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 e14b1a0a7509a8e1c80c8999863a34bbae44ebc417e0167c1aa0ae245fc0400e
MD5 2ffcd5a32c5a7cf59fe2208a50f5aaaf
BLAKE2b-256 7767d5d04f9794c59189479f0d75d8620a05b7315d3d5bd1ef995e3654eb443e

See more details on using hashes here.

Provenance

The following attestation bundles were made for deebot_client-18.4.0-cp314-cp314-manylinux_2_34_x86_64.whl:

Publisher: ci.yml on DeebotUniverse/client.py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file deebot_client-18.4.0-cp314-cp314-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for deebot_client-18.4.0-cp314-cp314-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 2105676e8caaec7bb8b510d650bd33ee1eef4f032c67dc3c6f1f03e402766a10
MD5 b068859b9330f18a0c5fd112a3e99f31
BLAKE2b-256 351b71144c286419bc683df9cf1fde6f5713f9b9fe63a53f1ef7c05804e66098

See more details on using hashes here.

Provenance

The following attestation bundles were made for deebot_client-18.4.0-cp314-cp314-manylinux_2_34_aarch64.whl:

Publisher: ci.yml on DeebotUniverse/client.py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file deebot_client-18.4.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for deebot_client-18.4.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fe9669eeb742f61d448e813a24d242c270c9547228367c441da8b48070af5f1f
MD5 680a3784769c3b342f767f38d30ff975
BLAKE2b-256 31b6b46569636c22bfb4d91a0d690a5dda54617f5f4e1bf8f735d023870bd8c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for deebot_client-18.4.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: ci.yml on DeebotUniverse/client.py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file deebot_client-18.4.0-cp314-cp314-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for deebot_client-18.4.0-cp314-cp314-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a9992c4218b04c615310521582442c20d520992a374accb58cce0c96522ae66f
MD5 2acdada34398024c1e69e6d5b5a0cd7c
BLAKE2b-256 6b79ad9b532954312d1cd54dead29a58e29312b04db375c5f56ec13f2a0a7074

See more details on using hashes here.

Provenance

The following attestation bundles were made for deebot_client-18.4.0-cp314-cp314-macosx_10_12_x86_64.whl:

Publisher: ci.yml on DeebotUniverse/client.py

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page