FIXED: Ecovacs Deebot 2019 & OZMO Series - Working Library

Just a quick update on the live map in case someone has the same issue.

I currently run HA via a reverse proxy (haproxy). It shouldn’t be caching that am aware of but I changed my camera configuration from:

camera:
  - platform: generic
    name: <VAC>_live_map
    still_image_url: "https://<EXTERNAL URL>/local/deathstar_liveMap.png" 
    verify_ssl: false

to

camera:
  - platform: generic
    name: <VAC>_live_map
    still_image_url: "http://<INTERNAL IP>:8123/local/deathstar_liveMap.png" 
    verify_ssl: false

and all is good.
Perhaps related to http instead of https, but because I got an image that didn’t update, I wonder if it is a chaching issue with haproxy. Direct internal IP works find though! I tried my external https option with verify_ssl: true but made no difference.

Hope this helps someone else in the future.

The new release works well. Each time you move and relocate the robot it updates the room list.

Not sure what specific help you need, but happy to try. I have posted my entire config above.

As for room number vs attribute. It is my understanding that ecovacs assigns the room numbers sequentially as rooms are created. So each time I had to reassign rooms the numbers changed. By using the attribute to dynamically pull based in name, if my map was redone and new assignment made, my code would not need to change as long as I used the same names.

Thansk for your reply!
I get what you mean now, and im sure you’e right, i also found your code above, it looks quite complex to me :smiley:
When i get home from work in 14 days i will try look into it and hopefully you would be willing to answer a question or two if needed!

It is unclear to me whether the OZMO 930 is supported.
In the starting post it states it is supported, but several people say it is not working.

For me it’s also not working. Both the Ligio as the And3rsL are not working on my HASS.

It is syncing the right name from the Ecovacs server, but the bot is unavailable.
Also when I empty the name in the ecovacs app it syncs the device id, which is the same as the id that I’ve added in the configuration.

I am on the latest version that got released this afternoon; 2.0.0

very same experience with my ozmo slim 10

Hello, has anyone got this working with a deebot 900 (not ozmo). I have it partially working with the @Ligio technique:

The only thing I really need is the ability to send it into specific rooms and possibly get it to clean twice. I’m new to Home Assistant so a lot of the stuff above doesn’t make a whole pile of sense to me.

Hi,

does anyone know what does the cleanings: parameters denotes in the following script? Does it meant 1 times or 2 times clean cycles?

  service: vacuum.send_command
  service_data:
    command: spot_area
    entity_id: vacuum.aspirapolvere
    params:
      cleanings: 1

Yes, number of cleanings, i.e. clean the room once or twice. I assume it is capped at 2 (as it is in the app).

@samandjt

I have been trying to do it simple and just add:

states['vacuum.robot'].attributes.room_laundry|string

to my script, as shown below, but i cant get it to work.
I have also tried to use your full script and that works that works like a charm :love_you_gesture:, but it annoys me i cant do it the simple way without a boolean, i probably just need to add the right parenthesis or bracket right ? i feel like i’ve tried everything but :woozy_face:

clean_laundry:
  alias: Clean laundry
  sequence:
  - service: vacuum.send_command
    data:
      command: spot_area
      params:
        cleanings: 1
        rooms: states['vacuum.robot'].attributes.room_laundry|string
    entity_id: vacuum.robot
  mode: single

You need to put the rooms in a template, otherwise it literally thinks the rooms are
states['vacuum.robot'].attributes.room_laundry|string

You want something like:
rooms: '{{states[''vacuum.robot''].attributes.room_laundry}}'
Note the escaped single quotes (double single quotes) in side the state[ ] )

I’ve tried that already but got this error so didnt think it was right, is there something else missing ? i dont really understand the error, missed comma?

Sorry, forgot the quotes:

vacuum_clean_zone:
  alias: Clean Zone
  sequence:
  - service: vacuum.send_command
    data_template:
      command: spot_area
      entity_id: vacuum.robot
      params:
        cleanings: 1
        rooms: '{{states[''vacuum.robot''].attributes.room_laundry}}'

Note the escaped single quotes (double single quotes) in side the state[ ])

Well damn! that worked :heart_eyes:
Don’t need to apologize! thanks alot for your help :smiley:

Trying to get the dashboard setup, shouldnt i have a sensor called fan_speed? for my T8 Aivi

I have that sensor, but I have a different robot. So not sure.

So i have my fan_speed in the vacuum entity -> attributes so got it to work with the line also used earlier :+1:

'{{states[''vacuum.robot''].attributes.fan_speed}}'

I have a delay of 1-3 sec from i press a fan speed on the dashboard till in changes the fan speed, is that the same for you?
And for water level the delay is 5 sec or more.

1 Like

Thank you for this comment. Worked like a charm for me as well.

Je bent een topper!

1 Like

It does take a second or so…Remember this is an api call to an external server, and then HA has to ping the server in a timely fashio to get the changed value.

I did exactly that (well, I did not download the repo, but I created each file of the “custom_components” folder directly in Home Assistant via File Editor and copied the raw Github Code into the corresponding file), but it still does not show up in my HA.
Log Message:

2021-02-15 12:29:07 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for deebot which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant.
2021-02-15 12:29:10 DEBUG (SyncWorker_4) [deebotozmo] Setting up EcoVacsAPI
2021-02-15 12:29:10 DEBUG (SyncWorker_4) [deebotozmo] calling main api user/login with (('account', '*****@*****.com'), ('password', '*****'))
2021-02-15 12:29:11 DEBUG (SyncWorker_4) [deebotozmo] got {'code': '0000', 'msg': '操作成功', 'time': 1613388551163, 'data': {'uid': '20191201111510_7*****0', 'accessToken': '4*****d', 'userName': 'E*****3', 'email': '*****@*****.com', 'mobile': None, 'loginName': '*****@*****.com', 'ucUid': '20181117073541_0*****e'}, 'success': True}
2021-02-15 12:29:11 DEBUG (SyncWorker_4) [deebotozmo] calling auth api with (('uid', '20191201111510_7*****0'), ('accessToken', '4*****d'))
2021-02-15 12:29:11 DEBUG (SyncWorker_4) [deebotozmo] got {'code': '0000', 'msg': '操作成功', 'time': 1613388551843, 'data': {'authCode': 'GLOBAL_APP_ECOVACS_IOT_1*****f', 'ecovacsUid': '20181117073541_0*****e'}, 'success': True}
2021-02-15 12:29:11 DEBUG (SyncWorker_4) [deebotozmo] calling user api loginByItToken with {'edition': 'ECOGLOBLE', 'userId': '20191201111510_7*****0', 'token': 'GLOBAL_APP_ECOVACS_IOT_1*****f', 'realm': 'ecouser.net', 'resource': 'X*****W', 'org': 'ECOWW', 'last': '', 'country': 'DE'}
2021-02-15 12:29:12 DEBUG (SyncWorker_4) [deebotozmo] got {'todo': 'result', 'result': 'ok', 'userId': 'c*****0', 'resource': 'X*****W', 'token': '6*****2', 'last': 604800000}
2021-02-15 12:29:12 DEBUG (SyncWorker_4) [deebotozmo] calling user api GetDeviceList with {'userid': 'c*****0', 'auth': {'with': 'users', 'userid': 'c*****0', 'realm': 'ecouser.net', 'token': '6*****2', 'resource': 'X*****W'}}
2021-02-15 12:29:12 DEBUG (SyncWorker_4) [deebotozmo] got {'todo': 'result', 'result': 'ok', 'devices': [{'did': 'E*****7', 'name': 'E*****7', 'class': '115', 'resource': 'atom', 'nick': 'Bender 2.0', 'company': 'eco-legacy'}]}
2021-02-15 12:29:12 DEBUG (SyncWorker_4) [deebotozmo] Found robot version OTHER -> 115

It seems to find my robot, but no integrations or entities are shown in HA.