{"id":23058759,"url":"https://github.com/floschl8/openhab-ecovacs","last_synced_at":"2025-07-15T12:45:02.905Z","repository":{"id":48902224,"uuid":"320194773","full_name":"FloSchl8/openhab-ecovacs","owner":"FloSchl8","description":null,"archived":false,"fork":false,"pushed_at":"2021-07-06T10:37:26.000Z","size":48,"stargazers_count":4,"open_issues_count":2,"forks_count":5,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-12T04:42:38.291Z","etag":null,"topics":["deebot","deebot950","ecovacs","ecovacs-deebot","openhab","openhab2"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FloSchl8.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-12-10T07:33:46.000Z","updated_at":"2024-07-21T16:07:08.000Z","dependencies_parsed_at":"2022-09-23T23:34:08.341Z","dependency_job_id":null,"html_url":"https://github.com/FloSchl8/openhab-ecovacs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/FloSchl8/openhab-ecovacs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FloSchl8%2Fopenhab-ecovacs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FloSchl8%2Fopenhab-ecovacs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FloSchl8%2Fopenhab-ecovacs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FloSchl8%2Fopenhab-ecovacs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FloSchl8","download_url":"https://codeload.github.com/FloSchl8/openhab-ecovacs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FloSchl8%2Fopenhab-ecovacs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265437300,"owners_count":23765120,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deebot","deebot950","ecovacs","ecovacs-deebot","openhab","openhab2"],"created_at":"2024-12-16T02:17:30.059Z","updated_at":"2025-07-15T12:45:02.889Z","avatar_url":"https://github.com/FloSchl8.png","language":"Python","funding_links":["https://www.buymeacoffee.com/FloSchl"],"categories":[],"sub_categories":[],"readme":"# Library for Ecovacs Deebot 960/950/920\n\nA simple library to connect Ecovac Deebots to a MQTT-Broker for usage with OpenHAB or other home automation tools. Currently\nknown to work with the Ecovacs Deebot 960/950/920 from both North America and Europe.\n\n## Installation\n\nClone this repository and run like described below. \n\nThere are two methods of running this library:\n\n* Docker\n* Python (tested with Python 3.8.5)\n\n### Docker\n\nThe easiest was is to use docker-compose. For the library to work, you have to specify some configuration values in an _.env_-File (see [docker docs](https://docs.docker.com/compose/environment-variables/)).  \nThe _.env_-File must contain the following variables.\n\n```\nemail=your_ecovacs_email\npassword=ecovacs_password\ndevice_id=randomd_device_id\ncountry=your_country\ncontinent=your_continent\nverify_ssl=True\nmqtt_client_id=client_name\nmqtt_client_host=host_or_ip_of_mqtt_broker\nmqtt_client_port=mqtt_port\nmqtt_client_username=mqtt_broker_username\nmqtt_client_password=mqtt_broker_password\nmqtt_client_keepalive=keep_alive_in_seconds\nmqtt_client_bind_address=\nmqtt_client_root_topic=root_topic_name\n```\n\nCountry and continent must be in two-letter code, e. g. for USA\n\n```\n    country code: us\n    continent code: na\n```\n\n(If it doesn't appear to work for your continent, try \"ww\", their world-wide catchall.)\nSee [Wikipedia](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2?oldformat=true#Officially_assigned_code_elements)\n\n\nYou can check the correct values afterwards with `docker-compose config`. If everything is correct you can start the container with `docker-compose up [-d]`\n\n### Python\n\n1. Clone the repository \n2. Create an enviroment\n3. Activate the repository and install the requiremts with pip from requieremts.txt\n4. Set the above mentioned environment variales and run `python main.py`\n\n## Usage\n\nFor usage with e.g. openHAB you need the deebot device ID which is retrieved through the API. This device ID is used as subtopic in publishing and recieving messages. To retrieve this ID the easiest way is to start the library and watch the output.\n\n```\nopenhabdeebot_1  | Device ID: 079a32a4-2650-4f07-9039-6f467024934e\nopenhabdeebot_1  | ecovacs/079a32a4-2650-4f07-9039-6f467024934e/status STATE_DOCKED\nopenhabdeebot_1  | ecovacs/079a32a4-2650-4f07-9039-6f467024934e/battery_level 100\n...\n```\n\nCurrently the livemap is updated every 15 seconds (unused at the moment), states every 30 seconds and components every 60 seconds.  \nIf you wnat to change this, edit `main.py` line 128 and pass in your one values.\n\n```python\nvacbot.setScheduleUpdates(livemap_cycle = 60, status_cycle = 120, components_cycle = 240)\n```\n\nCurrently the following topics for recieving messages exist.\n\n```bash\necovacs/[device id]/status\necovacs/[device id]/battery_level\necovacs/[device id]/fanspeed\necovacs/[device id]/water_level\necovacs/[device id]/mop_attached\necovacs/[device id]/stats_area\necovacs/[device id]/stats_cid\necovacs/[device id]/stats_time\necovacs/[device id]/stats_type\necovacs/[device id]/components/brush\necovacs/[device id]/components/sideBrush\necovacs/[device id]/components/heap\necovacs/[device id]/last_clean_image\n```\n\nTo send commands to your Deebot you have to publish to the following topic\n\n`ecovacs/[device id]/command`\n\nAccepted commands are\n\n* \"Clean\": Deebot starts cleaning\n* \"CleanPause\": Pause while cleaning\n* \"CleanResume\": resume cleaning\n* \"Charge\": return to dock and charge\n* \"PlaySound\": plays the \"I am here\" sound for locating your Deebot\n* \"Relocate\": sets the relocation status to manual \n* \"GetCleanLogs\": get the latest cleaning logs\n* \"SetFanSpeed\": sets the fanspeed (currently only to 'normal')\n\nFor easier use, you can use the provided examples in [openhab](/openhab)\n\n\n## Thanks\n\nIf you want to support me  \n\u003ca href=\"https://www.buymeacoffee.com/FloSchl\" target=\"_blank\"\u003e\u003cimg src=\"https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png\" alt=\"Buy Me A Coffee\" style=\"height: 35px !important;width: 150px !important;\" \u003e\u003c/a\u003e\n\nMy heartfelt thanks to:\n\n* [And3rsL and his Deebot library](https://github.com/And3rsL/Deebotozmo), without his fork of [sucks](https://github.com/wpietri/sucks) this wouln't be possible and this is also some kind of fork\n* [guillebot and his mqtt addon for sucks](https://github.com/guillebot/openhab-sucks) who provided a lot of ideas used in this project\n* [xmpppeek](https://www.beneaththewaves.net/Software/XMPPPeek.html),\na great library for examining XMPP traffic flows (yes, your vacuum\nspeaks Jabbber!),\n* [mitmproxy](https://mitmproxy.org/), a fantastic tool for analyzing HTTPS,\n* [click](http://click.pocoo.org/), a wonderfully complete and thoughtful\nlibrary for making Python command-line interfaces,\n* [requests](http://docs.python-requests.org/en/master/), a polished Python\nlibrary for HTTP requests,\n* [Decompilers online](http://www.javadecompilers.com/apk), which was\nvery helpful in figuring out what the Android app was up to,\n* Albert Louw, who was kind enough to post code from [his own\nexperiments](https://community.smartthings.com/t/ecovacs-deebot-n79/93410/33)\nwith his device, and\n* All the users who have given useful feedback and contributed code!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffloschl8%2Fopenhab-ecovacs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffloschl8%2Fopenhab-ecovacs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffloschl8%2Fopenhab-ecovacs/lists"}