FIXED: Ecovacs Deebot 2019 & OZMO Series - Working Library

Yea alright :+1: thanks for your help man

What model do you have?
Found robot version OTHER -> 115

Deebot Ozmo 930

Hi @samandjt,

I use your code but i have one problem, it’s dosen’t work for clean selected rooms.

I not understand what i need create for this party :

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

I need create attribute room_kitchen ? if yes, how and where ?

Sorry, not really sure. Have you posted your configuration? In your logs do you see a debug message “Vacuum Initialized” or “Vacuum initializing”?

Have you used the app to label the rooms?

Sadly no. It only shows the Entries I have posted.
I have set the following Log Levels:

log_settings.yaml:

default: critical
logs:
  # HA Core
  homeassistant.core: critical
  
  # Deebot Custom Integration
  homeassistant.componens.deebot: debug
  homeassistant.components.vacuum.deebotozmo: debug
  deebotozmo: debug

Not yet. But here you go:

configuration.yaml:

# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:

# Text to speech
tts:
  - platform: google_translate

group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

# OWN CONFIG START
homeassistant:
  customize: !include customize.yaml
  
# Integraions
dyson: !include vendor_integrations/dyson.yaml
homematic: !include vendor_integrations/homematic.yaml
withings: !include vendor_integrations/withings.yaml
deebot: !include vendor_integrations/deebot.yaml

# Groups
light: !include groups_light.yaml
cover: !include groups_cover.yaml

# Custom Components (only file based)

# Other
#device_tracker: !include device_trackers.yaml

# Logging Settings
logger: !include log_settings.yaml

# OWN CONFIG END

vendor_integrations/deebot.yaml:

username: !secret ecovacs_username
password: !secret ecovacs_password
country: DE
continent: EU
deviceid:
  - !secret ecovacs_deebot-930_id
# Optional
#live_map: True                    # Enable Live Map.. may cause issues on low power hardware | Default: True
#show_color_rooms: False           # Enable draw room colors as in the app.. BE Carefull, very experimental. first thing to disable if there is any issue | Default: False
#livemappath: 'www/'   # Path where to save live_map (Each bot will have XXX_liveMap.png where XXX is the vacbot name)

Contents of custom_components/deebot:

__init__.py
binary_sensor.py
manifest.json
sensor.py
vacuum.py

I actually changed my approach at installing the Custom Component.
I now installed Deebot for Hassio via HACS.

Sorry. I can’t help further. After your log content, mine has more…

2021-02-16 09:33:06 DEBUG (SyncWorker_6) [custom_components.deebot] New vacbot found: E0######################
2021-02-16 09:33:06 DEBUG (SyncWorker_6) [custom_components.deebot] Hub initialized

And a lot more after that later in the logs. Not sure why yours is not working. Maybe the author of the plugin will jump in. Or you can post to the github.

I’ll post an Issue on Github.
But I appreciate your time!
Thanks, mate!

Thanks bro !!

i not put label in the app, now work prefectly.

I just have one little problem, when i change fan speed. My icon don’t change, i need refresh the page (F5) for see correct icon selected (just icon, but the command for the power of fan speed change without refresh page).

I think the problem come from the sensor, i dont have this sensor.

- sensor.deebot_fan_speed 

And i changed variables states, beacause is not have same modele of vacuum :

states['vacuum.8a8be8dd_d0c6_4dbc_b9c6_16ef4a25d5d4'].attributes.fan_speed

Card

 - cards:
      - type: 'custom:config-template-card'
        entities:
          - sensor.deebot_fan_speed
        variables:
          - >-
            states['vacuum.8a8be8dd_d0c6_4dbc_b9c6_16ef4a25d5d4'].attributes.fan_speed
        card:
          color: '${vars[0] === ''quiet'' ? ''yellow'' : ''white''}'
          entity: null
          icon: 'mdi:fan'
          name: Quiet
          styles:
            card:
              - font-size: 12px
              - background-color: black
              - color: white
          tap_action:
            action: call-service
            service: vacuum.set_fan_speed
            service_data:
              entity_id: vacuum.8a8be8dd_d0c6_4dbc_b9c6_16ef4a25d5d4
              fan_speed: quiet
          type: 'custom:button-card'

Ugh, my bad. I missed something in my configuration.yaml file:

sensor:
  - platform: template
    sensors:
      deebot_fan_speed:
        friendly_name: "fan speed"
        value_template: "{{ state_attr('vacuum.roomba', 'fan_speed') }}"
      deebot_water_level:
        friendly_name: "water level"
        value_template: "{{ state_attr('vacuum.roomba', 'water_level') }}"
  - platform: template
    sensors:
      deebot_last_clean_image:
        friendly_name: "Last Clean Image"
        unit_of_measurement: ''
        value_template: "{{ state_attr('vacuum.roomba', 'last_clean_image') }}"

You need to create the sensor so that the buttons will automatically update.

Thanks for your help, now everything works perfectly.

Thank you so much for yor tip!!!

I am trying to get my Deebot 900 working for 2 days now and with your instruction i got everything working! Finally :smile:

Good morning,
does anyone use the Deboot on a multi-level house?
I have a problem viewing the live map.
When the Deboot clears the second floor, the map is displayed correctly.
When the Deboot clears the first floor, a 6400x6400 size image is generated with the real map image in the bottom left corner.
Does it happen to you too? Have you solved?

This is my configuration:

live_map: True
show_color_rooms: True
livemappath: ‘www/’

camera:

  • platform: generic
    name: Deebot_live_map
    still_image_url: “http://IP:8123/local/vacuum.png
    verify_ssl: false

  • platform: template
    sensors:
    deebot_last_clean_image:
    friendly_name: “Immagine Ultima Pulizia”
    unit_of_measurement: ‘’
    value_template: “{{ state_attr(‘vacuum.namexxx’, ‘last_clean_image’) }}”

Did you try switching the vacuum on for a couple of minutes? It needs to be active in some way before it first gets picked up in HA. Likewise if you reboot HA the vac will not show up until the next time it is switched on/active.

Good afternoon … It appears to me already available. but none of the options work. only the “find” option works.

good morning, i am new to home assistant and i have the same problem on my deebot 930 too.
I installed the ecovacs addon and the folder/config/custom_components/deebot is present (I don’t understand why I don’t see the extension installed but I can install it continuously)
My configuration.yaml:

Deebot Ozmo 930

deebot:
username: [email protected]
password: xxxxxxx
country: IT
continent: EU
deviceid:
- E000xxxxxxxxxxxxx

- etc…

live_map: True

but it results between the entities always not available

Has anyone had luck with Ozmo U2 with HA?

Hello, is there something wrong with my template or is there a bug in HA or Ligio’s integration? Because I can’t get it to clean the desired coordinate on the map with this automation, but if I do it from the service call from developer menu, it works. Here’s my automation:

- alias: Deebot Clean Coordinate Area on Map
  trigger:
  - platform: state
    entity_id: input_select.vacuum_clean_area
  condition: []
  action:
  - service: vacuum.send_command
    data_template:
      command: spot_area
      entity_id: vacuum.fatimah
      params:
        map: >-
          {%- if is_state('input_select.vacuum_clean_area', 'livingroom') -%}
            "-1878.4346,494.534,14125.0,-3886.3008"
          {%- elif is_state('input_select.vacuum_clean_area', 'bedroom') -%}
            "-2747.0,3950.0,96.0,657.0"
          {%- elif is_state('input_select.vacuum_clean_area', 'kitchen') -%}
            "7134.4463,5495.6504,14256.583,1319.5243"
          {%- elif is_state('input_select.vacuum_clean_area', 'hallway') -%}
            "4129.8174,5038.881,7030.878,445.70703"
          {%- endif -%}

So, if I do a service call like this to clean livingroom with the coordinate manually:

service: vacuum.send_command
target:
  entity_id: vacuum.fatimah
data:
  command: spot_area
  params:
    map: '-1878.4346,494.534,14125.0,-3886.3008'

It will work perfectly fine and clean the livingroom coordinate perfectly. But if I do it using the automation (by changing the state of input_select.vacuum_clean_area to livingroom), it’s getting all messed up. Here’s a side by side comparison of the screenshot from the mobile app using the manual service call and my automation configuration:

And it’s not only in the livingroom area, all the other coordinates are broken too if I call it from the automation. I have been fiddling with this for 2 days and I’m really out of idea now. Thanks before.

Would you give me some more information, please? I would love to do that, but I’m too new to the home assistant world. :confused:

my configuration.yaml contains:

ecovacs:
  username: !secret ecovacs_username
  password: !secret ecovacs_password
  country: DE
  continent: EU

In the meantime, in addition to integration via configuration.yaml, I have also integrated Ecovacs via HACS. However, I can’t find out how you have integrated the individual areas in Home Assistant and specifically send the Deebot there. Or the other functions such as “pause” or “back to the dock” etc.