Neato D7 - Sequential room cleaning

Hi everyone,

I just migrated to HASS.io so please bear with me if this question might sound a little silly to you. I successfully integrated my neato D7 and already got some scripts working to clean a certain room (zones) automatically. But now comes the challenge: I´d like to have the robot clean a pre-defined selection of rooms sequentially. I couldn´t find any possibility to handover a list of rooms to clean for the device nor did I find a way to receive the status of the vaccum cleaner in order to have conditioned actions for each room.

Would be awesome if one of you has an idea or dug into this already.

I’m looking for the same.
Did you figured something out yet?

Nope - Haven´t found a solution yet :frowning:

Use the vacuum.neato_custom_cleaning service call. You will need to add delays and wait statements to make sure the vacuum is done cleaning each room before continuing on to the next room.

Thanks for the advice @dshokouhi - But that´s exactly the issue: How do I receive the state from the robot once he has finished cleaning a room?

use a wait_template

wait_template: "{{ is_state('vacuum.vacuum', 'docked') }}"

you may need to add a delay of 5 minutes before to make sure the vacuum is in a cleaning state first

edit: https://www.home-assistant.io/docs/scripts/#wait

You will probably laughing but this is what I´m trying and it doesn´t work at all :frowning:

i dont use the automation editor so youll need to convert the yaml for it…i do automations by hand personally. Read the docs you should be able to make sense of it

Below the script I created in order for it to work. Two thinks happen:

  1. The robot starts cleaning in another room that doesn´t even appear in the script
  2. After finishing the first room he returns to the home base and thats it. No further cleaning.

Anyone an idea?

'1564947883739':
  alias: vacuum.home
  sequence:
  - data:
      entity_id: vacuum.robi
      zone: Dusche
    service: vacuum.neato_custom_cleaning
  - wait_template: '{{ is_state(''vacuum.robi'', ''docked'') }}'
  - data:
      entity_id: vacuum.robi
      zone: Flur
    service: vacuum.neato_custom_cleaning

If the wrong room gets cleaned that is usually because you have more than 1 zone with a similar name (i.e. the same name appears twice) try to keep unique names for the zones. Also add - delay: "00:05:00" above the wait_template as sometimes the state isn’t updated when calling this service call.

Adding the delay helped to initiate the sequence and reconnecting the device to the neato cloud made him clean the right room (there were no duplicates).

Thanks a whole lot to @dshokouhi for the great support :clap:

1 Like