Ecovacs Intergrations doesn't update
The problem
HI. I have a DEEBOT OZMO T8 AIVI which is integrated into HA fine without issue. However I noticed that after a couple of days of not running a clean, if I start a vacuum, it won't update its sensors in the integration unless I reload it.
It does seem to response to services because I use an automation to start it, however it doesn't update its sensors unless I reload the integration. Once its reloaded, it works find and the sensors update regularly.
What version of Home Assistant Core has the issue?
2024.10.4
What was the last working version of Home Assistant Core?
2024.10.4
What type of installation are you running?
Home Assistant OS
Integration causing the issue
Ecovacs
Link to integration documentation on our website
https://www.home-assistant.io/integrations/ecovacs
Diagnostics information
{
"home_assistant": {
"installation_type": "Home Assistant OS",
"version": "2024.10.4",
"dev": false,
"hassio": true,
"virtualenv": false,
"python_version": "3.12.4",
"docker": true,
"arch": "x86_64",
"timezone": "Australia/Sydney",
"os_name": "Linux",
"os_version": "6.6.54-haos",
"supervisor": "2024.11.2",
"host_os": "Home Assistant OS 13.2",
"docker_version": "27.2.0",
"chassis": "embedded",
"run_as_root": true
},
"custom_components": {
"pyscript": {
"documentation": "https://github.com/custom-components/pyscript",
"version": "1.6.1",
"requirements": [
"croniter==2.0.2",
"watchdog==2.3.1"
]
},
"bureau_of_meteorology": {
"documentation": "https://github.com/bremor/bureau_of_meteorology",
"version": "1.3.3",
"requirements": [
"iso8601"
]
},
"openplantbook": {
"documentation": "https://github.com/Olen/home-assistant-openplantbook/",
"version": "1.3.0",
"requirements": [
"json-timeseries==0.1.7",
"openplantbook-sdk==0.4.7"
]
},
"localtuya": {
"documentation": "https://github.com/rospogrigio/localtuya/",
"version": "5.2.1",
"requirements": []
},
"sun2": {
"documentation": "https://github.com/pnbruckner/ha-sun2/blob/3.3.4/README.md",
"version": "3.3.4",
"requirements": []
},
"spook_inverse": {
"documentation": "https://spook.boo",
"version": "3.1.0",
"requirements": []
},
"life360": {
"documentation": "https://github.com/pnbruckner/ha-life360/blob/new-api/README.md",
"version": "0.4.0.dev11",
"requirements": [
"life360==7.0.0b6"
]
},
"multiscrape": {
"documentation": "https://github.com/danieldotnl/ha-multiscrape",
"version": "8.0.2",
"requirements": [
"lxml>=4.9.1",
"beautifulsoup4>=4.12.2"
]
},
"anniversaries": {
"documentation": "https://github.com/pinkywafer/Anniversaries",
"version": "6.0.0",
"requirements": [
"python-dateutil>=2.8.1",
"integrationhelper>=0.2.2",
"voluptuous>=0.12.1"
]
},
"hacs": {
"documentation": "https://hacs.xyz/docs/configuration/start",
"version": "2.0.1",
"requirements": [
"aiogithubapi>=22.10.1"
]
},
"simpleicons": {
"documentation": "https://github.com/vigonotion/hass-simpleicons",
"version": "v2.2.1",
"requirements": [
"simpleicons==7.14.0"
]
},
"plant": {
"documentation": "https://github.com/Olen/homeassistant-plant/",
"version": "2024.7.0",
"requirements": [
"async-timeout>=4.0.2"
]
},
"public_transport_victoria": {
"documentation": "https://github.com/bremor/public_transport_victoria",
"version": "0.3.2",
"requirements": []
},
"average": {
"documentation": "https://github.com/Limych/ha-average",
"version": "2.4.0",
"requirements": [
"pip>=21.3.1"
]
},
"whatsapp": {
"documentation": null,
"version": "1.0.2",
"requirements": [
"url-normalize==1.4.3"
]
},
"uptime_kuma": {
"documentation": "https://github.com/meichthys/uptime_kuma/blob/main/README.md",
"version": "2.1.0",
"requirements": [
"pyuptimekuma-hass"
]
},
"tapo": {
"documentation": "https://github.com/petretiandrea/home-assistant-tapo-p100",
"version": "3.1.2",
"requirements": [
"plugp100==5.1.3"
]
},
"spook": {
"documentation": "https://spook.boo",
"version": "3.1.0",
"requirements": []
},
"opennem": {
"documentation": "https://github.com/bacco007/sensor.opennem",
"version": "2022.09.1",
"requirements": []
},
"watchman": {
"documentation": "https://github.com/dummylabs/thewatchman",
"version": "0.6.3",
"requirements": [
"prettytable==3.10.0"
]
},
"thermal_comfort": {
"documentation": "https://github.com/dolezsa/thermal_comfort/blob/master/README.md",
"version": "2.2.2",
"requirements": []
},
"browser_mod": {
"documentation": "https://github.com/thomasloven/hass-browser_mod/blob/master/README.md",
"version": "2.3.1",
"requirements": []
},
"powercalc": {
"documentation": "https://docs.powercalc.nl",
"version": "v1.15.0",
"requirements": [
"numpy>=1.21.1"
]
},
"mass": {
"documentation": "https://music-assistant.io",
"version": "2024.10.1",
"requirements": [
"music-assistant==2.2.4"
]
},
"aus_fuel": {
"documentation": "https://github.com/tonymyatt/homeassistant-custom-components",
"version": "0.0.1",
"requirements": []
},
"blitzortung": {
"documentation": "https://github.com/mrk-its/homeassistant-blitzortung",
"version": "1.3.8",
"requirements": [
"paho-mqtt>=1.5.0"
]
},
"battery_notes": {
"documentation": "https://andrew-codechimp.github.io/HA-Battery-Notes/",
"version": "2.5.4",
"requirements": []
},
"flightradar24": {
"documentation": "https://github.com/AlexandrErohin/home-assistant-flightradar24",
"version": "v1.22.0",
"requirements": [
"FlightRadarAPI==1.3.34",
"pycountry==23.12.11"
]
},
"webrtc": {
"documentation": "https://github.com/AlexxIT/WebRTC",
"version": "v3.6.0",
"requirements": []
},
"worlds_air_quality_index": {
"documentation": "https://github.com/pawkakol1/worlds-air-quality-index",
"version": "1.1.0",
"requirements": []
},
"teamtracker": {
"documentation": "https://github.com/vasqued2/ha-teamtracker",
"version": "0.1",
"requirements": [
"arrow",
"aiofiles"
]
},
"frigate": {
"documentation": "https://github.com/blakeblackshear/frigate",
"version": "5.4.0",
"requirements": [
"pytz"
]
},
"alarmo": {
"documentation": "https://github.com/nielsfaber/alarmo",
"version": "v1.10.6",
"requirements": []
}
},
"integration_manifest": {
"domain": "ecovacs",
"name": "Ecovacs",
"codeowners": [
"mib1185",
"edenhaus",
"Augar"
],
"config_flow": true,
"documentation": "https://www.home-assistant.io/integrations/ecovacs",
"iot_class": "cloud_push",
"loggers": [
"sleekxmppfs",
"sucks",
"deebot_client"
],
"requirements": [
"py-sucks==0.9.10",
"deebot-client==8.4.0"
],
"is_built_in": true
},
"setup_times": {
"null": {
"setup": 1.870701089501381e-05
},
"01JC9TA5PP4HCVE3QDQMFYAQSK": {
"wait_import_platforms": -1.4116013019811362,
"wait_base_component": -0.0005606301128864288,
"config_entry_setup": 6.744018283905461
}
},
"data": {
"config": {
"created_at": "2024-11-10T01:16:46.678891+00:00",
"data": {
"username": "**REDACTED**",
"password": "**REDACTED**",
"country": "AU"
},
"discovery_keys": {},
"disabled_by": null,
"domain": "ecovacs",
"entry_id": "01JC9TA5PP4HCVE3QDQMFYAQSK",
"minor_version": 1,
"modified_at": "2024-11-10T01:16:46.678898+00:00",
"options": {},
"pref_disable_new_entities": false,
"pref_disable_polling": false,
"source": "user",
"title": "**REDACTED**",
"unique_id": null,
"version": 1
},
"devices": [
{
"did": "**REDACTED**",
"name": "**REDACTED**",
"class": "x5d34r",
"resource": "Kr4N",
"company": "eco-ng",
"bindTs": 1730590666207,
"service": {
"jmq": "jmq-ngiot-na.dc.ww.ecouser.net",
"mqs": "api-ngiot.dc-na.ww.ecouser.net"
},
"deviceName": "DEEBOT OZMO T8 AIVI",
"icon": "https://portal-ww.ecouser.net/api/pim/file/get/605053e7fc527c00087fda1e",
"ota": true,
"UILogicId": "DX_AIG",
"materialNo": "110-1913-0101",
"pid": "5de0d86ed88546000195239a",
"product_category": "DEEBOT",
"model": "DXAI_INTL",
"updateInfo": {
"needUpdate": false,
"changeLog": ""
},
"nick": "O'Brien vac",
"homeId": "**REDACTED**",
"homeSort": 1,
"status": 0,
"offmap": true,
"otaUpgrade": {}
}
],
"legacy_devices": []
}
}
Example YAML snippet
NA
Anything in the logs that might be useful for us?
NA
Additional information
No response
Hey there @mib1185, @edenhaus, @augar, mind taking a look at this issue as it has been labeled with an integration (ecovacs) you are listed as a code owner for? Thanks!
Code owner commands
Code owners of ecovacs can trigger bot actions by commenting:
@home-assistant closeCloses the issue.@home-assistant rename Awesome new titleRenames the issue.@home-assistant reopenReopen the issue.@home-assistant unassign ecovacsRemoves the current integration label and assignees on the issue, add the integration domain after the command.@home-assistant add-label needs-more-informationAdd a label (needs-more-information, problem in dependency, problem in custom component) to the issue.@home-assistant remove-label needs-more-informationRemove a label (needs-more-information, problem in dependency, problem in custom component) on the issue.
(message by CodeOwnersMention)
ecovacs documentation ecovacs source (message by IssueLinks)
For me (Deebot T30 Omni) the following sensors do not seem to update after cleaning ompleted:
- Area cleaned
- Cleaning duration
The following do update:
- Map
- Total area cleaned
- Total cleaning duration
- Total cleanings
Furthermore, I do not get the "Last job" events, which I'd guess is related.
I did notice that as well. the map works fine and updates every second or two, but you are correct, some of the sensors which should update at the conclusion of a clean don't unless you do an integration re-load
+1. I have a T30 Omni as well and sometimes every sensor just stops being updated until I reload the integration
Can you please enable debug logs and post them here when the error occurs the next time? My assumption is that either the connection gets stuck or the vacuum stops sending events after a certain time, and we need to resubscribe. Nevertheless, I need logs first to verify it.
HI. Thanks for the update, I just did a test with the debug logs enabled, but of course it worked now. I only did a vacuum yesterday, so I might wait a couple of days and try it again,
HI. Ok, so I have some logs, first my wife started the vacuum, and it seems to be ok, however it wasn't updating the map. So, I started debug, and did a reload of the integration. The map started updating, however some of the other sensors, (i.e areas cleaned cleaning duration) weren't updating (battery was) . That is the first logs i have, So I started debug again and reloaded, it and now some of the sensors are stuck on "unknown" (second logs)
ecovac.txt
ecovac2.txt
Finally, I lost connect to it via the app as well as HA, so here is the final logs
Ok, having fun at work instead of working. my wife power cycled it, and it connected again in the app and HA, however it seems it would load the image for about 10 seconds, then stop. so here are the logs from that, its back in the doc charging now, so should be all for today.
Uploading ecovac4.txt…
Can you confirm that your wifi is stable and the bot always has a stable connection at any position in your house/flat? The integration doesn't poll (except on the first load) and than relies on the events send by the bot
I have the same issue. Mine is a X1 Omni. I loaded the integration a few days ago. Suddenly the map started flickering and later all the sensors was unavailable however the map still worked. Now nothing works and even the APP doesnt work.
Havent tried to reboot it yet
Ok, SO I did a ping test for about 1 hour whilst the robot was running. The average ping time was 62ms and it lost 1.1% This was pinging from my laptop wirelessly to the BOT. The bot stayed in the app the whole time, didn't lose connection. But I did have to some reloading/readding of the integration.
I can confirm I also have this exact issues on OZMO 950 series. Everything working fine except 'Area cleaned' and 'Cleaning duration' sensors are not updated after a cleaning job completes.
Reloading the integration immediately updates the sensors to the correct value.
Can confirm this behaviour only seemed to have started once I moved to the core integration and stopped using the old HACS integration. So my assumption is that my vacuum did not develop an issue reporting statistics at the same time and that it is instead an integration issue.
For anyone needing a workaround for knowing the 'area cleaned' I made one by creating a counter helper which stores the 'previous' total area cleaned and then I subtracts that from the new total area cleaned to know what the delta was and add's that delta to other counter helpers to track the daily & running total. I use this to know when to top up water, empty dust and to avoid vacuum jobs running multiples times a day if they've already run.
Here is what my action in the automation looks like:
action:
- choose:
- conditions:
- condition: trigger
id:
- totalcleaned
sequence:
- data:
value: >-
{{ states( 'counter.vacuum1_cleaned_today_counter')|int +
(states('sensor.vacuum1_total_area_cleaned')|int -
states('counter.vacuum1_previous_total_cleaned')|int)}}
target:
entity_id: counter.vacuum1_cleaned_today_counter
action: counter.set_value
- data:
value: "{{ states('sensor.vacuum1_total_area_cleaned')|int}}"
target:
entity_id: counter.vacuum1_previous_total_cleaned
action: counter.set_value
I can confirm I also have this exact issues on OZMO 950 series. Everything working fine except 'Area cleaned' and 'Cleaning duration' sensors are not updated after a cleaning job completes.
Reloading the integration immediately updates the sensors to the correct value.
I have a DEEBOT N8 PRO CARE (s1f8g7) and a DEEBOT OZMO 920 Series (vi829v), both with the same issues. It used to work before, but I can't say when they stopped. I have temporarily added a reload of the integration when the status is reported to "docked" after "cleaning". It seems to me that StatsEvent is only updated when the integration is loaded. I could provide logs, but they are like what's reported here. Thanks for the hard work with this integration: much appreciated!
portainer---Container---homeassistant(console)---/bin/bash(connect)--- cd /usr/local/lib/python3.13/site-packages/deebot_client/hardware/deebot 3.13 maybe different ln -svfT ucn2xe.py dj8zpr.py dj8zpr is old ucn2xe is mapping dev deebot t9 https://github.com/DeebotUniverse/client.py/tree/dev/deebot_client/hardware/deebot
Ecovacs has changed the api again... It looks like they don't send out this information anymore. Will need to do some further tests
are there any updates to this issue? Have two devices. The t20 omni works perfect. The map e.g. is always up to date. The t10 have the update issue. Found out that when I open the Ecovacs native App the Update of the map in HA works again.
🧐
I have similar issues on my T30 Omni - It seems to be getting the wrong room ID's in attributed. The only errors I see in my logs are:
Logger: homeassistant
Source: /usr/src/homeassistant/homeassistant/runner.py:112
First occurred: 4:20:17 PM (4 occurrences)
Last logged: 4:45:31 PM
Error doing job: Task exception was never retrieved (None)
Traceback (most recent call last):
File "/usr/local/lib/python3.13/site-packages/deebot_client/map.py", line 141, in on_map_trace
self._map_data.add_trace_points(event.data)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
File "/usr/local/lib/python3.13/site-packages/deebot_client/map.py", line 223, in add_trace_points
self._data.add_trace_points(value)
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^
ValueError: Invalid 7z compressed data
Even after a restart of the vac or reloading the device I get the same issue.
@tsposato Please open a new issue for new bug and provide debug logs and co. There bot is sending invalid data and we need to verify why
Same om mower. Batterie etc works. I've been at 17 mowing runs since this morning, but in Home Assistant it still shows 16.
Hi everyone,
I can confirm I am also experiencing this issue on the latest Home Assistant version with my Goat G1-800.
The symptoms are exactly the same as described in this thread:
- The device status does not update automatically when it starts a task on its own schedule. It gets stuck on
dockedorpaused. - The status only updates correctly if I send a command (e.g.,
start) directly from the Home Assistant UI.
This seems to be a long-standing regression of the problem originally reported in the closed issue #115162. Let me know if I can provide any debug logs to help solve this.
Please provide debug logs when the issue occurs. I need to see if the bot is sending an update.
Im kinda new to HA, so im not sure if this is what are you need :)
You need to go to Ecovacs config page and enable there debug logs first. Than do all steps to reproduce the issue. Afterwards go back to the Ecovacs config page, by clicking stop debug logs it will automatically download the logs
Ok, done. If this is important im using older firmware version, not the latest because of few errors while mowing so I've downgraded firmware. Now I've got 1.36.160.
I did not even know that you can downgrade to an older firmware. Is that directly possible via the app?
Unfortunately not. I did this with seller, he found out some way how to do this via usb A connected do mower. Im don't know how he did this because he said - quote " I've spent too much money on this to share this with you" so I'm relaying on him if it comes to downgrade fw again :)
I'm having the same issue with my GOAT G1-1600. The diagnostic info (including battery %) update just fine, but the activity state does not update anymore after a while. I have not yet found a consistent cause but it seems to resolve with reloading the integration (at least for a while).