Roborock S8 Vac & Mop mode

I don’t know about your model but I have q revo model. In my usage I noticed that it works the best if you send it to vacuum first and than do the mopping.
Was struggling a bit because I wanted different settings depending on if it is workday or weekend and different settings for vacuum and mop.
The goal was / is to send it to vacuum first and after it finished vacuuming and emptying the bin to start mopping with different settings.
I use scripts in automations for it like this

alias: Roborock Q Revo workday vacuum
sequence:
  - service: vacuum.start
    metadata: {}
    data: {}
    target:
      device_id: 18c39ab34f0df0106d47227a8b9afca7
  - device_id: 18c39ab34f0df0106d47227a8b9afca7
    domain: select
    entity_id: 96c594f7c97134ea85878f3e661bba77
    type: select_option
    option: "off"
  - service: vacuum.set_fan_speed
    metadata: {}
    data:
      fan_speed: max
    target:
      device_id: 18c39ab34f0df0106d47227a8b9afca7
mode: single
icon: mdi:robot-vacuum

and

alias: Roborock Q Revo  workday mop
sequence:
  - device_id: 18c39ab34f0df0106d47227a8b9afca7
    domain: vacuum
    entity_id: 4d6f99f3ea37aa4ed067f0e7964a9e48
    type: clean
  - device_id: 18c39ab34f0df0106d47227a8b9afca7
    domain: select
    entity_id: 96c594f7c97134ea85878f3e661bba77
    type: select_option
    option: high
  - device_id: 18c39ab34f0df0106d47227a8b9afca7
    domain: select
    entity_id: 99496c23a3343a7097e5d2f4c981745a
    type: select_option
    option: deep
mode: single
icon: mdi:robot-vacuum

and automation for vacuuming

alias: Roborock Q Revo workday vacuum
description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.night
    from: "off"
    to: "on"
    for:
      hours: 0
      minutes: 0
      seconds: 0
condition:
  - condition: state
    entity_id: binary_sensor.workday_sensor
    state: "on"
  - condition: numeric_state
    entity_id: sensor.kitchen_presence_time
    above: 1
action:
  - service: script.roborock_q_revo_workday_vacuum
    data: {}
mode: single

and moping

alias: Roborock Q Revo workday mop
description: ""
trigger:
  - platform: numeric_state
    entity_id:
      - sensor.roborock_q_revo_cleaning_5m
    for:
      hours: 0
      minutes: 5
      seconds: 0
    below: 0.5
condition:
  - condition: time
    after: "00:10:00"
    before: "01:00:00"
    weekday:
      - tue
      - wed
      - thu
      - fri
      - sat
action:
  - service: script.roborock_q_revo_workday_mop
    data: {}
mode: single

After trying different things on how to determine if the robot is finished vacuuming and emptied the bin I found a solution using measureit integration and making template like this in

{{ is_state('vacuum.roborock_q_revo', 'cleaning') }}
1 Like