FIXED: Ecovacs Deebot 2019 & OZMO Series - Working Library

Ok perfect, I’ll do

This is fantastic, thanks a lot!

How can i send my Deebot to some room(s) instead of full cleaning? Can i set parameters for cleaning some spot?

Thanks!

Hi!
I made a custom component for my Deebot Ozmo 900 with play/pause/resume and spot_clean function (area or custom map coordinates):

You should use the vacuum.send_command service with parameters described here:

I’ll try to write some documentation asap.

2 Likes

Amazing! It only works with 900 or other deboots will be supported?

That was fast! It’s working on my Deebot Ozmo 900, thanks a lot!

The custom component is using a fork of the sucks library by wpietri, so it’s possible that it will work with other Ecovacs vacuums as well, but I’m not sure since I only have a Deebot Ozmo 900

Ok, I’ll try! Thanks!

Hi Ligio, I have tried the component, but I have an error in the boot. He says fan speed is not compatible. It is true that the deebot 930 controls the fan speed automatically, it cannot be selected. But the other component shared in this thread does not give that error despite having the speed selector. Could this feature will be optional instead mandatory? Thanks!

Thanks. With your script I can now control my Deebot 500 as well. Had trouble with the standard Ecovacs HA integration. Works nicely now.

Also seems to work for my Deebot 601 (so deebot 600, 601 and 605 do work now.)

only getting wierd numbers for filters/brushes etc

Update:
did some aditional tests, but only the the numbers for brushes and filters are wierd. all other things are working.

status: returning
battery_level: 95
battery_icon: mdi:battery
fan_speed: normal
fan_speed_list: normal,high
error: null
component_main_brush: 29671
component_side_brush: 14671
component_filter: 11671
clean_mode: auto
friendly_name: Woonkamer
supported_features: 2043
1 Like

Hi!
The figures for filters/brush are weird because they’re multiplied with a factor of 120/150.
This is my config in HA to get “percentage” of life:

vacuum_main_brush:
        friendly_name: spazzola principale
        icon_template: 'mdi:brush'
        unit_of_measurement: '%'
        value_template: "{{ ((state_attr('vacuum.MY-ID', 'component_main_brush') | float) / 300) | round(0, 'ceil') }}"
vacuum_side_brush:
        friendly_name: spazzola laterale
        icon_template: 'mdi:brush'
        unit_of_measurement: '%'
        value_template: "{{ ((state_attr('vacuum.MY-ID', 'component_side_brush') | float) / 150) | round(0, 'ceil') }}" 
vacuum_filter:
        friendly_name: filtro
        icon_template: 'mdi:filter-remove-outline'
        unit_of_measurement: '%'
        value_template: "{{ ((state_attr('vacuum.MY-ID', 'component_filter') | float) / 120) | round(0, 'ceil') }}"

maybe it’s an option to build it in the component? I will use this solution for now.

Hi Ligio, I’m having a bit of trouble figuring out how to use your spot_clean function and what exactly I need to feed the function to make it work. Does anyone have an example I can see?

Using your code I get 0 values returned for all brushes & filter. I’ve got the correct entity id.

So far I have got to run my ozmo 930 with your hacc-ozmo repo. I had to modify the code a bit since 930 does not support fan speed. 930 don’t give brushes percent but nevermind, now it’s working for me!! Thanks.

I have also tried using the hassio addon, but I always have an email or password error.

A question, now I can to clean areas with the code you mentioned above but,
How could I know the map coordinates?

You can’t.

Then, the only way is try and check? I don’t know how other models set areas but 930 do it automaticaly and user can’t define areas manually… If map is rebuilt areas change some times…

It’s not that wild a concept. :wink:

:crazy_face:

the only button witch is working for me is the Locate button (OZMO 930) the other buttons are not working. If I use the Ecovacs app, the status in home assistant change for the Ozmo 930. (on off etc). does anyone knows the problem? I have the following errors (I tested this with and without the custom component)