Problems with Ecovacs Deebot Ozmo Slim 10 Series

Hi all,

I’m trying to get my Ecovacs Deebot Ozmo Slim 10 Series running with Home Assistant. It runs without problems using the ecovacs on my mobile, but I cannot get it working with Home Assistant.

Using the original described way with adding the ecovacs integration to the configuration.yaml does not work, the vacuum cleaner gets detected, but none of the commands sent via Home Assistant to the vacuum cleaner resulted into any reaction. I found the following ping problems in the log:

Logger: sucks
Source: /usr/local/lib/python3.8/site-packages/sucks/__init__.py:371
First occurred: 9:29:32 (53 occurrences)
Last logged: 9:55:38

Ping did not reach VacBot. Will retry.

In the next step I tried to use the files from the GIST (described here FIXED: Ecovacs Deebot 2019 & OZMO Series - Working Library) and change the ecovacs integration to the custom_component deebot.

This results into the following errors:

Logger: homeassistant.components.vacuum
Source: components/vacuum/__init__.py:330
Integration: Vacuum (documentation, issues)
First occurred: 9:07:58 (1 occurrences)
Last logged: 9:07:58

VacuumDevice is deprecated, modify EcovacsVacuum to extend VacuumEntity
Logger: homeassistant.components.vacuum
Source: custom_components/deebot/vacuum.py:55
Integration: Vacuum (documentation, issues)
First occurred: 9:08:01 (1 occurrences)
Last logged: 9:08:01

Error while setting up deebot platform for vacuum
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 184, in _async_setup_platform
    await asyncio.shield(task)
  File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/deebot/vacuum.py", line 44, in setup_platform
    vacuums.append(EcovacsVacuum(device))
  File "/config/custom_components/deebot/vacuum.py", line 55, in __init__
    self.device.connect_and_wait_until_ready()
  File "/usr/local/lib/python3.8/site-packages/ozmo/__init__.py", line 439, in connect_and_wait_until_ready
    self.send_ping()
  File "/usr/local/lib/python3.8/site-packages/ozmo/__init__.py", line 584, in send_ping
    self.request_all_statuses()
  File "/usr/local/lib/python3.8/site-packages/ozmo/__init__.py", line 612, in request_all_statuses
    self.refresh_statuses()
  File "/usr/local/lib/python3.8/site-packages/ozmo/__init__.py", line 603, in refresh_statuses
    self.run(GetCleanState())
  File "/usr/local/lib/python3.8/site-packages/ozmo/__init__.py", line 623, in run
    self.send_command(action)
  File "/usr/local/lib/python3.8/site-packages/ozmo/__init__.py", line 620, in send_command
    self.iotmq.send_command(action, self._vacuum_address())  #IOTMQ devices need the full action for additional parsing
  File "/usr/local/lib/python3.8/site-packages/ozmo/__init__.py", line 734, in send_command
    self._handle_ctl_api(action,
  File "/usr/local/lib/python3.8/site-packages/ozmo/__init__.py", line 795, in _handle_ctl_api
    s(resp)
  File "/usr/local/lib/python3.8/site-packages/ozmo/__init__.py", line 448, in _handle_ctl
    getattr(self, method)(ctl)
  File "/usr/local/lib/python3.8/site-packages/ozmo/__init__.py", line 478, in _handle_clean_report
    type = event['type']
KeyError: 'type'

Old post - and you may have probably found it out yourself. but I’ll leave that comment here because I just ran into the same problem:

Sorry, but the Slim 10 is not a model this code supports.

After a lot of googling and searching through various git repositories, I got the Ecovacs Deebot Ozmo Slim 10 up and running. However, there still seems to be a bug in the ozmo package: Handle missing type property in clean report by AfonsoFGarcia · Pull Request #16 · Ligio/ozmo · GitHub

Where can I find the ozmo package on the Raspberry Pi image? the path: /usr/local/lib/python3.12/site-packages/ozmo/
does not seem to exist?

Thanks to chatGPT I was able to solve the problem:

open terminal and enter the following:
docker exec -it homeassistant bash

change to directory
cd /usr/local/lib/python3.13/site-packages/ozmo

and edit file
__init__.py

replace this:

def _handle_clean_report(self, event):
    type = event['type']

with this:

def _handle_clean_report(self, event):
    type = event.get('type')
    if not type:
        _LOGGER.warning("Event received without 'type': %s", event)
    return
1 Like

Hello,

You managed to control the Ozmo Slim 10 via Home Assistant?

Maybe you can create a little guide. Unfortunately, I haven’t made it yet.

I run the current HA OS.
I look forward to any support
Best,

Hello michellitto,

There is a bug in the ecovacs integration. As described above, one line of code must be replaced, unfortunately after every update of Home Assistant.

The Ozmo Slim 10 should be recognised when it is running while you are integrating it. After that, you need to fix the error in the code so that it is also recognised if it loses its network connection.