Howto: Xiaomi vacuum zoned cleaning

good stuff!

Verry good to hear, now the next try is with opening app instead ā€¦ do then we know if opening the app while cleaning on another floor is the culprit

Feel free to try if you are brave enough. :wink: Setting up the no-go areas was a pain so Iā€™m not really keen to try.

:wink: hehe, indeed

Looks like 0.89 introduced VACUUM.XIAOMI_CLEAN_ZONE as a new service. It was not listed as a breaking change, so hopefully using the COMMAND service with app_zoned_clean still works as well. Has anyone upgraded and can confirm?

tested and working

i see this warning though, when sending back to dock

2019-03-07 14:38:21 WARNING (MainThread) [homeassistant.helpers.service] Not passing an entity ID to a service to target all entities is deprecated. Update your call to vacuum.return_to_base to be instead: entity_id: all

Thank you. I guess Iā€™ll change over to the new format though when I canā€¦ just in case the old one ever becomes deprecated.

seems it gives warnings with all my calls, i just dont know what i need to change in my code

2019-03-07 14:38:21 WARNING (MainThread) [homeassistant.helpers.service] Not passing an entity ID to a service to target all entities is deprecated. Update your call to vacuum.return_to_base to be instead: entity_id: all
2019-03-07 14:40:58 WARNING (MainThread) [homeassistant.helpers.service] Not passing an entity ID to a service to target all entities is deprecated. Update your call to vacuum.return_to_base to be instead: entity_id: all
2019-03-07 14:41:11 WARNING (MainThread) [homeassistant.helpers.service] Not passing an entity ID to a service to target all entities is deprecated. Update your call to vacuum.pause to be instead: entity_id: all

i just have this in my lovelace config, not sure whats wrong, or why it is giving this warning :

    - type: icon
      icon: mdi:home
      tap_action: 
        action: call-service
        entity: vacuum.roborock
        service: vacuum.return_to_base

I believe this is different than the new update to the vacuum component. This is due to a change a few updates ago that affects all entities, not just the vacuum component. You must have somewhere in your code a call that only references return_to_base, instead of vacuum.return_to_base. Previously if entity_id was missing, HA would apply the call to all entities; in this case return ALL entities to base, which would of course only apply to your vacuum so specifying the actual vacuum entity was not needed.

no, see my previous post , i call vacuum.return_to_base

How about in any automations or scripts?

no i dont do an automation/script, i just have a button in my lovelace :

- type: icon
  icon: mdi:home
  tap_action: 
    action: call-service
    entity: vacuum.roborock
    service: vacuum.return_to_base

I donā€™t have my stuff running like that from lovelace. But it looks like you have it coded correctly.

ok, fixed it, seems needs to be changed to :

    - type: icon
      icon: mdi:home
      tap_action: 
        action: call-service
        service: vacuum.return_to_base
        service_data:
          entity_id: vacuum.roborock
1 Like

Did you ever get the answer to your first question?

Thanks a lot Venom!!!

Iā€™ve tried something similar - I used ā€œapp_goto_targetā€ from Home Assistant (call service), while watching the Xiaomi app on my phone. It places the GPS-pin on the map when you call the service so you can see where the coords youā€™ve entered are.

I discovered the two corners of my room using this method (results below):

{
  "entity_id": "vacuum.xiaomi_vacuum_cleaner",
  "command": "app_goto_target",
  "params": [29700,23500]
}

{
  "entity_id": "vacuum.xiaomi_vacuum_cleaner",
  "command": "app_goto_target",
  "params": [27250,25600]
}

I then combined the sets of coords into the following command for Zoned Cleanup (again, calling the service from Home Assistant with the Xiaomi app open on phone):

{
"entity_id" : "vacuum.xiaomi_vacuum_cleaner",
"repeats" : "1",
"zone": [[27250,25600,29700,23500]]
}

It correctly draws the zone rectangle in the Xiaomi app BUT the robot doesnā€™t complete the zone. For some reason it starts cleaning outside the zone, goes into the zone briefly (around my kitchen island), then returns to base.

Any clues?

1 Like

Facing the same issue, it only works if I the coordinates are reachable, if they fall outside the map then thatā€™s when it seems to do this. Try making the area smaller and to fit within the map, or make it composed of several areas that fit within the map and are reachable by the vacuum.

1 Like