Praxisnahe Tutorials, auf die du zählen kannst.
Einsteiger Guide für Home Assistant

In Home Assistant Roborock Saugroboter einrichten

Erfahre, wie du deine Roborock Saugroboter in Home Assistant einrichten kannst, sowohl über die Core-Integration als auch über die HACS-Variante. Dabei schauen wir uns die Unterschiede an und legen sogar ein paar komplexe Automationen an, die so keine andere Plattform ermöglichen könnte!

Inhaltsverzeichnis

Voraussetzungen

Home Assistant

Mindestens die Version 2023.5 von Home Assistant muss schon installiert sein, auf welcher Hardware spielt keine Rolle.

HACS

Für die benutzerdefinierte Integration von Roborock (2ter Teil des Videos), benötigst du zum Installieren den Home Assistant Community Store.

https://www.simon42.com/hacs-installieren-home-assistant-anleitung-2022/

Empfohlenes Vorwissen

1ster Teil des Videos (Core-Integration)

2ter Teil des Videos (HACS)

Zum Hinzufügen von Repos, navigiere in deinem Home Assistant Frontend zu HACS (Sidebar) -> Integrationen, klicke auf die 3 Punkte oben rechts ... > Benutzerdefinierte Repositories.

Home Assistant Roborockhttps://github.com/humbertogontijo/homeassistant-roborock

Code-Snippets

Template-Teil der Karte

Dieser Code ersetzt im Video den teil - template: Vacuum_clean_segment der Karte, da sonst die Raumreinigung nicht klappt.

  - name: Wohnung EG
    icon: mdi:select-drag
    selection_type: ROOM
    service_call_schema:
      service: roborock.vacuum_clean_segment
      service_data:
        segments: '[[selection]]'
      target:
        entity_id: '[[entity_id]]'

Mein gesamter Karten-Code

Denk bitte daran, die Entität camera.roborock_s7_map (Karte) und vacuum.roborock_s7 (Saugroboter) gegen deine eigenen zu tauschen 🙂

type: custom:xiaomi-vacuum-map-card
map_source:
  camera: camera.roborock_s7_map
calibration_source:
  camera: true
entity: vacuum.roborock_s7
vacuum_platform: send_command
map_modes:
  - template: vacuum_clean_zone
  - template: vacuum_goto
  - name: Wohnung EG
    icon: mdi:select-drag
    selection_type: ROOM
    service_call_schema:
      service: roborock.vacuum_clean_segment
      service_data:
        segments: '[[selection]]'
      target:
        entity_id: '[[entity_id]]'
    predefined_selections:
      - id: '16'
        icon:
          name: mdi:broom
          x: 21775
          'y': 31875
        label:
          text: Hausflur
          x: 21775
          'y': 31875
          offset_y: 35
        outline:
          - - 16400
            - 30350
          - - 27150
            - 30350
          - - 27150
            - 33400
          - - 16400
            - 33400
      - id: '17'
        icon:
          name: mdi:broom
          x: 18225
          'y': 27525
        label:
          text: Schlafzimmer
          x: 18225
          'y': 27525
          offset_y: 35
        outline:
          - - 16300
            - 25000
          - - 20150
            - 25000
          - - 20150
            - 30050
          - - 16300
            - 30050
      - id: '18'
        icon:
          name: mdi:broom
          x: 22275
          'y': 27825
        label:
          text: Wohnzimmer
          x: 22275
          'y': 27825
          offset_y: 35
        outline:
          - - 20200
            - 25050
          - - 24350
            - 25050
          - - 24350
            - 30600
          - - 20200
            - 30600
      - id: '19'
        icon:
          name: mdi:broom
          x: 26400
          'y': 29500
        label:
          text: Flur
          x: 26400
          'y': 29500
          offset_y: 35
        outline:
          - - 24350
            - 28650
          - - 28450
            - 28650
          - - 28450
            - 30350
          - - 24350
            - 30350
      - id: '20'
        icon:
          name: mdi:broom
          x: 25850
          'y': 26925
        label:
          text: Küche
          x: 25850
          'y': 26925
          offset_y: 35
        outline:
          - - 24300
            - 25150
          - - 27400
            - 25150
          - - 27400
            - 28700
          - - 24300
            - 28700
      - id: '21'
        icon:
          name: mdi:broom
          x: 28500
          'y': 26875
        label:
          text: Bad
          x: 28500
          'y': 26875
          offset_y: 35
        outline:
          - - 27700
            - 25150
          - - 29300
            - 25150
          - - 29300
            - 28600
          - - 27700
            - 28600
      - id: '22'
        icon:
          name: mdi:broom
          x: 29650
          'y': 31725
        label:
          text: Eingangsbereich
          x: 29650
          'y': 31725
          offset_y: 35
        outline:
          - - 27100
            - 28300
          - - 32200
            - 28300
          - - 32200
            - 35150
          - - 27100
            - 35150
      - id: '24'
        icon:
          name: mdi:broom
          x: 22700
          'y': 33550
        label:
          text: Waschkeller
          x: 22700
          'y': 33550
          offset_y: 35
        outline:
          - - 21450
            - 31750
          - - 23950
            - 31750
          - - 23950
            - 35350
          - - 21450
            - 35350
      - id: '25'
        icon:
          name: mdi:broom
          x: 17425
          'y': 33525
        label:
          text: Keller 2
          x: 17425
          'y': 33525
          offset_y: 35
        outline:
          - - 16700
            - 31700
          - - 18150
            - 31700
          - - 18150
            - 35350
          - - 16700
            - 35350
      - id: '26'
        icon:
          name: mdi:broom
          x: 20300
          'y': 33450
        label:
          text: Keller 1
          x: 20300
          'y': 33450
          offset_y: 35
        outline:
          - - 19500
            - 31650
          - - 21100
            - 31650
          - - 21100
            - 35250
          - - 19500
            - 35250
map_locked: true
two_finger_pan: false
tiles:
  - tile_id: status
    entity: vacuum.roborock_s7
    label: Status
    attribute: status
    icon: mdi:robot-vacuum
    translations:
      starting: Starting
      charger disconnected: Charger disconnected
      idle: Idle
      remote control active: Remote control active
      cleaning: Cleaning
      returning home: Returning home
      manual mode: Manual mode
      charging: Charging
      charging problem: Charging problem
      paused: Paused
      spot cleaning: Spot cleaning
      error: Error
      shutting down: Shutting down
      updating: Updating
      docking: Docking
      going to target: Going to target
      zoned cleaning: Zoned cleaning
      segment cleaning: Segment cleaning
      emptying the bin: Emptying the bin
      charging complete: Charging complete
      device offline: Device offline
  - tile_id: battery_level
    entity: vacuum.roborock_s7
    label: Battery
    attribute: battery_level
    icon: mdi:battery-charging-100
    unit: '%'
  - tile_id: fan_speed
    entity: vacuum.roborock_s7
    label: Fan speed
    attribute: fan_speed
    icon: mdi:fan
    translations:
      silent: Silent
      standard: Standard
      medium: Medium
      turbo: Turbo
      auto: Auto
      gentle: Gentle
icons:
  - icon: mdi:play
    conditions:
      - entity: vacuum.roborock_s7
        value_not: cleaning
      - entity: vacuum.roborock_s7
        value_not: error
      - entity: vacuum.roborock_s7
        value_not: returning
    tooltip: Start
    tap_action:
      action: call-service
      service: vacuum.start
      service_data:
        entity_id: vacuum.roborock_s7
  - icon: mdi:pause
    conditions:
      - entity: vacuum.roborock_s7
        value_not: docked
      - entity: vacuum.roborock_s7
        value_not: idle
      - entity: vacuum.roborock_s7
        value_not: error
      - entity: vacuum.roborock_s7
        value_not: paused
    tooltip: Pause
    tap_action:
      action: call-service
      service: vacuum.pause
      service_data:
        entity_id: vacuum.roborock_s7
  - icon: mdi:stop
    conditions:
      - entity: vacuum.roborock_s7
        value_not: docked
      - entity: vacuum.roborock_s7
        value_not: idle
      - entity: vacuum.roborock_s7
        value_not: error
      - entity: vacuum.roborock_s7
        value_not: paused
    tooltip: Stop
    tap_action:
      action: call-service
      service: vacuum.stop
      service_data:
        entity_id: vacuum.roborock_s7
  - icon: mdi:home-map-marker
    conditions:
      - entity: vacuum.roborock_s7
        value_not: docked
      - entity: vacuum.roborock_s7
        value_not: returning
    tooltip: Return to base
    tap_action:
      action: call-service
      service: vacuum.return_to_base
      service_data:
        entity_id: vacuum.roborock_s7
  - icon: mdi:target-variant
    conditions:
      - entity: vacuum.roborock_s7
        value_not: docked
      - entity: vacuum.roborock_s7
        value_not: error
      - entity: vacuum.roborock_s7
        value_not: cleaning
      - entity: vacuum.roborock_s7
        value_not: returning
    tooltip: Clean spot
    tap_action:
      action: call-service
      service: vacuum.clean_spot
      service_data:
        entity_id: vacuum.roborock_s7
  - icon: mdi:map-marker
    tooltip: Locate
    tap_action:
      action: call-service
      service: vacuum.locate
      service_data:
        entity_id: vacuum.roborock_s7
  - icon: mdi:fan-alert
    conditions:
      - entity: vacuum.roborock_s7
        attribute: fan_speed
        value: 'off'
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7
        fan_speed: silent
  - icon: mdi:fan-alert
    conditions:
      - entity: vacuum.roborock_s7
        attribute: fan_speed
        value: silent
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7
        fan_speed: balanced
  - icon: mdi:fan-alert
    conditions:
      - entity: vacuum.roborock_s7
        attribute: fan_speed
        value: balanced
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7
        fan_speed: turbo
  - icon: mdi:fan-alert
    conditions:
      - entity: vacuum.roborock_s7
        attribute: fan_speed
        value: turbo
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7
        fan_speed: max
  - icon: mdi:fan-alert
    conditions:
      - entity: vacuum.roborock_s7
        attribute: fan_speed
        value: max
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7
        fan_speed: max_plus
  - icon: mdi:fan-alert
    conditions:
      - entity: vacuum.roborock_s7
        attribute: fan_speed
        value: max_plus
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7
        fan_speed: custom
  - icon: mdi:fan-alert
    conditions:
      - entity: vacuum.roborock_s7
        attribute: fan_speed
        value: custom
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7
        fan_speed: 'off'
  - icon: mdi:fan-alert
    conditions:
      - entity: vacuum.roborock_s7
        attribute: fan_speed
        value_not: 'off'
      - entity: vacuum.roborock_s7
        attribute: fan_speed
        value_not: silent
      - entity: vacuum.roborock_s7
        attribute: fan_speed
        value_not: balanced
      - entity: vacuum.roborock_s7
        attribute: fan_speed
        value_not: turbo
      - entity: vacuum.roborock_s7
        attribute: fan_speed
        value_not: max
      - entity: vacuum.roborock_s7
        attribute: fan_speed
        value_not: max_plus
      - entity: vacuum.roborock_s7
        attribute: fan_speed
        value_not: custom
    tooltip: Change fan speed
    tap_action:
      action: call-service
      service: vacuum.set_fan_speed
      service_data:
        entity_id: vacuum.roborock_s7
        fan_speed: 'off'
  - icon: mdi:home-floor-1
    tooltip: Karte - EG
    tap_action:
      action: call-service
      service: roborock.vacuum_load_multi_map
      service_data:
        entity_id: vacuum.roborock_s7
        map_flag: 1
  - icon: mdi:home-floor-2
    tooltip: Karte - 2. OG
    tap_action:
      action: call-service
      service: roborock.vacuum_load_multi_map
      service_data:
        entity_id: vacuum.roborock_s7
        map_flag: 0
  - icon: mdi:water-off
    conditions:
      - entity: vacuum.roborock_s7
        attribute: waterBoxMode
        value: 200
    tooltip: Change mop intensity
    tap_action:
      action: call-service
      service: vacuum.send_command
      service_data:
        command: set_water_box_custom_mode
        params: 201
      target:
        entity_id: vacuum.roborock_s7
  - icon: mdi:wave
    conditions:
      - entity: vacuum.roborock_s7
        attribute: waterBoxMode
        value: 201
    tooltip: Change mop intensity
    tap_action:
      action: call-service
      service: vacuum.send_command
      service_data:
        command: set_water_box_custom_mode
        params: 202
      target:
        entity_id: vacuum.roborock_s7
  - icon: mdi:waves-arrow-up
    conditions:
      - entity: vacuum.roborock_s7
        attribute: waterBoxMode
        value: 202
    tooltip: Change mop intensity
    tap_action:
      action: call-service
      service: vacuum.send_command
      service_data:
        command: set_water_box_custom_mode
        params: 203
      target:
        entity_id: vacuum.roborock_s7
  - icon: mdi:waves
    conditions:
      - entity: vacuum.roborock_s7
        attribute: waterBoxMode
        value: 203
    tooltip: Change mop intensity
    tap_action:
      action: call-service
      service: vacuum.send_command
      service_data:
        command: set_water_box_custom_mode
        params: 200
      target:
        entity_id: vacuum.roborock_s7
  - icon: mdi:waves
    conditions:
      - entity: vacuum.roborock_s7
        attribute: waterBoxMode
        value_not: 200
      - entity: vacuum.roborock_s7
        attribute: waterBoxMode
        value_not: 201
      - entity: vacuum.roborock_s7
        attribute: waterBoxMode
        value_not: 202
      - entity: vacuum.roborock_s7
        attribute: waterBoxMode
        value_not: 203

Dashboard

Der Code für die Vertikaler-Stack Karte mit den Buttons, die diverse Automationen starten.

type: vertical-stack
cards:
  - type: horizontal-stack
    cards:
      - show_name: true
        show_icon: true
        type: button
        tap_action:
          action: call-service
          service: automation.trigger
          target:
            entity_id: automation.vac_wohnung_saugen
          data:
            skip_condition: true
        entity: vacuum.roborock_s7
        name: Wohnung saugen
        hold_action:
          action: none
      - show_name: true
        show_icon: true
        type: button
        tap_action:
          action: call-service
          service: automation.trigger
          target:
            entity_id: automation.vac_wohnung_saugen
          data:
            skip_condition: true
        entity: vacuum.roborock_s7
        name: Wohnung saugen
        hold_action:
          action: none
  - type: horizontal-stack
    cards:
      - show_name: true
        show_icon: true
        type: button
        tap_action:
          action: call-service
          service: automation.trigger
          target:
            entity_id: automation.vac_wohnbereich_saugen
          data:
            skip_condition: true
        entity: vacuum.roborock_s7
        name: Wohnbereich saugen
        hold_action:
          action: none
      - show_name: true
        show_icon: true
        type: button
        tap_action:
          action: call-service
          service: automation.trigger
          target:
            entity_id: automation.vac_wohnbereich_kombifahrt
          data:
            skip_condition: true
        entity: vacuum.roborock_s7
        name: Wohnbereich Kombi
        hold_action:
          action: none
        icon: mdi:robot-vacuum-alert
  - type: horizontal-stack
    cards:
      - show_name: true
        show_icon: true
        type: button
        tap_action:
          action: call-service
          service: automation.trigger
          target:
            entity_id: automation.vac_badezimmer_saugen
          data:
            skip_condition: true
        entity: vacuum.roborock_s7
        name: Bad Saugen
        hold_action:
          action: none
      - show_name: true
        show_icon: true
        type: button
        tap_action:
          action: call-service
          service: automation.trigger
          target:
            entity_id: automation.vac_clean_bath
          data:
            skip_condition: true
        entity: vacuum.roborock_s7
        name: Bad Tiefenreinigung
        hold_action:
          action: none
        icon: mdi:robot-vacuum-alert

Automationen

Einstellwerte

Quelle: https://community.home-assistant.io/t/s7-mop-control/317393/44

vacuum_mode Werte (Saugstärke)
silent101
balanced102
turbo103
max104
off (Kann man bei nur Wischen setzen)105
custom106
mopping mode Werte (Wischintensität)
off200
low201
medium202
high203
custom204
mopping route Werte (Wischroute)
standard300
deep301
custom302
deep+303

Wohnbereich saugen (einfach)

Hier werden die Räume anhand ihrer Nummern angegeben, praktisch zum kopieren 😉

alias: VAC - Wohnbereich saugen
description: ""
trigger: []
condition: []
action:
  - service: vacuum.send_command
    data:
      command: set_water_box_custom_mode
      params: 200
    target:
      entity_id: vacuum.roborock_s7
    alias: Kein Mop
  - service: vacuum.send_command
    data:
      command: set_custom_mode
      params: 104
    target:
      entity_id: vacuum.roborock_s7
    alias: Vac Mode Max
  - service: roborock.vacuum_clean_segment
    data:
      segments:
        - "18"
        - "20"
        - "19"
    target:
      entity_id: vacuum.roborock_s7
mode: single

Bad Saugen → Andocken → Bad Wischen

Hier wir der Bereich durch ein Segment festgelegt, ein Raum wäre natürlich genau wie oben auch möglich.

alias: VAC - Badezimmer Tiefenreinigung
description: ""
trigger: []
condition: []
action:
  - service: vacuum.send_command
    data:
      command: set_water_box_custom_mode
      params: 200
    target:
      entity_id: vacuum.roborock_s7
    alias: Kein Mop
  - service: vacuum.send_command
    data:
      command: set_custom_mode
      params: 104
    target:
      entity_id: vacuum.roborock_s7
    alias: Vac Mode Max
  - service: vacuum.send_command
    data:
      command: app_zoned_clean
      params:
        - - 27567
          - 24994
          - 29479
          - 28633
          - 2
    target:
      entity_id: vacuum.roborock_s7
    alias: Fahr 2x Badezimmer
  - wait_for_trigger:
      - platform: state
        entity_id:
          - vacuum.roborock_s7
        to: docked
        for:
          hours: 0
          minutes: 1
          seconds: 0
    timeout:
      hours: 0
      minutes: 15
      seconds: 0
      milliseconds: 0
    continue_on_timeout: false
  - service: vacuum.send_command
    data:
      command: set_water_box_custom_mode
      params: 202
    target:
      entity_id: vacuum.roborock_s7
    alias: Mop Mode "medium"
  - service: vacuum.send_command
    data:
      command: set_mop_mode
      params: 303
    target:
      entity_id: vacuum.roborock_s7
    alias: Mop Route "Deep+"
  - service: vacuum.send_command
    data:
      command: app_zoned_clean
      params:
        - - 27567
          - 24994
          - 29479
          - 28633
          - 2
    target:
      entity_id: vacuum.roborock_s7
    alias: Fahr 2x Badezimmer
mode: single

Hausflur reinigen – mit Benachrichtigung & TTS

alias: VAC - Hausflur Tiefenreinigung
description: ""
trigger: []
condition: []
action:
  - service: vacuum.send_command
    data:
      command: set_water_box_custom_mode
      params: 200
    target:
      entity_id: vacuum.roborock_s7
    alias: Kein Mop
    enabled: true
  - service: vacuum.send_command
    data:
      command: set_custom_mode
      params: 104
    target:
      entity_id: vacuum.roborock_s7
    alias: Vac Mode Max
    enabled: true
  - service: vacuum.send_command
    data:
      command: app_zoned_clean
      params:
        - - 15943
          - 30246
          - 29724
          - 35539
          - 2
    target:
      entity_id: vacuum.roborock_s7
    alias: Fahr 2x Hausflur
    enabled: true
  - wait_for_trigger:
      - platform: state
        entity_id:
          - vacuum.roborock_s7
        to: returning
        for:
          hours: 0
          minutes: 0
          seconds: 0
    timeout:
      hours: 2
      minutes: 0
      seconds: 0
      milliseconds: 0
    alias: Max 2 Stunden warten auf Rückfahrt
  - service: notify.notify
    data:
      title: Tür Öffnen!!!
      message: Der Saugroboter fährt zurück, bitte die Wohnungstür öffnen!
  - service: tts.google_translate_say
    data:
      cache: true
      entity_id: media_player.homepod_mini_schlafzimmer
      message: Bitte die Wohnungstüre öffnen, um Saugroboter reinfahren zu lassen
      language: de
  - wait_for_trigger:
      - platform: state
        entity_id:
          - vacuum.roborock_s7
        to: docked
        for:
          hours: 0
          minutes: 1
          seconds: 0
    timeout:
      hours: 0
      minutes: 10
      seconds: 0
      milliseconds: 0
    alias: Max 10 Min warten auf Ende
    continue_on_timeout: false
    enabled: true
  - service: vacuum.send_command
    data:
      command: set_water_box_custom_mode
      params: 203
    target:
      entity_id: vacuum.roborock_s7
    alias: Mop Mode "high"
  - service: vacuum.send_command
    data:
      command: set_mop_mode
      params: 303
    target:
      entity_id: vacuum.roborock_s7
    alias: Mop Route "Deep+"
  - service: vacuum.send_command
    data:
      command: app_zoned_clean
      params:
        - - 15943
          - 30246
          - 29724
          - 35539
          - 1
    target:
      entity_id: vacuum.roborock_s7
    alias: Fahr 1x Hausflur
  - wait_for_trigger:
      - platform: state
        entity_id:
          - vacuum.roborock_s7
        to: returning
        for:
          hours: 0
          minutes: 0
          seconds: 0
    timeout:
      hours: 2
      minutes: 0
      seconds: 0
      milliseconds: 0
    alias: Max 2 Stunden warten auf Rückfahrt
  - service: notify.notify
    data:
      title: Tür Öffnen!!!
      message: Der Saugroboter fährt zurück, bitte die Wohnungstür öffnen!
  - service: tts.google_translate_say
    data:
      cache: true
      entity_id: media_player.homepod_mini_schlafzimmer
      message: Bitte die Wohnungstüre öffnen, um Saugroboter reinfahren zu lassen
      language: de
mode: single

Fazit

Indem man den Saugroboter in Home Assistant integriert, erhält man die Möglichkeit, den Reinigungsprozess zu automatisieren, Zeitpläne festzulegen und sogar benutzerdefinierte Reinigungsbereiche festzulegen.

Durch die Integration kann man den Saugroboter nahtlos in andere Smart Home-Abläufe und -Automatisierungen einbinden. Beispielsweise kann man ihn so programmieren, dass er automatisch mit dem Ausschalten der Lichter startet oder dass er seine Reinigungsaufgaben beginnt, sobald niemand zu Hause ist. Dadurch wird nicht nur der Komfort erhöht, sondern auch die Energieeffizienz gesteigert.

Wenn du Fragen oder Anmerkungen hast, zögere nicht, sie mir unten in den Kommentaren mitzuteilen und ich werde mein Bestes tun, um dir zu helfen. Vielen Dank fürs Zuschauen!

HomeKit Geräte Übersicht

smarte News

Erfahre als Erster, wenn wir neue Artikel zu Smart Home oder anderen interessanten Themen veröffentlichen!

Wir senden keinen Spam und verkaufen keine Daten! Erfahre mehr in unserer Datenschutzerklärung.

Transparenz: In diesem Artikel sind Partnerlinks enthalten. Durch einen Klick darauf ge­lan­gt ihr direkt zum Anbieter. Solltet ihr euch dort für einen Kauf entscheiden, erhalte ich ei­ne kleine Provision. Für euch ändert sich am Preis nichts & Partnerlinks haben keinerlei Einfluss auf meine Berichterstattung. Vielen Dank für deine Unterstützung!

Gründer von simon42. Schreibt hier ehrlich und leidenschaftlich über Smart Home und Technik Themen, denn das Zuhause wurde bereits von Sprachassistenten übernommen und die Kontrolle abgegeben 😁

33 Gedanken zu „In Home Assistant Roborock Saugroboter einrichten“

  1. Geiles Video! Leider bleibt bei mir “generate rooms” config ohne jeden Effekt.
    Es erscheint kein Popup wie im Video und kein Code wird generiert….
    Kann mir jemand sagen, wo mein Denkfehler ist?

    Antworten
  2. Hi, wo kann ich die vacuum.locate Funktion anpassen? Finde die irgendwie nirgends. Möchte eine persönalisierte Sprachausgabe verwenden…..

    Antworten
  3. Hallo, vielleicht kann mir jemand mein Brett vor dem Kopf wegziehen, ich finde zu der folgende Thematik nichts im Internet, daher muss es anscheinend relativ simpel sein :/
    Wie lasse ich den Roborock per send_command zu sein Dock fahren?
    UseCase: Frau kommt nach Hause und Robi soll sich schnell in Sicherheit bringen.

    Antworten
    • ich hab es doch selbst gefunden. Automation->Aktion hinzufügen -> Gerät -> Roborock [Name] -> als Aktion kann man es dann auswählen

  4. Hallo Thomas,
    hast du es inzwischen hinbekommen? Ich hab irgendwie in jeder Ebene dieselben Raum IDs.
    Ich bekomme es hin alle anzulegen, aber jetzt müsste natürlich die Karten “mitwandern”.
    Viele Grüße
    Markus

    Antworten
    • Die Lösung würde mich auch interessieren.
      Bzw wäre es echt klasse wenn du deinen Code teilen würdest.

      Vielen Dank
      Gruß
      Heiko

  5. Hi Simon, hi Leute,
    danke für die Einblicke und Codebeispiele.

    Eine Frage beschäftigt mich nun seit ein paar Tagen und ich kam noch zu keiner Lösung. Wie behandle ich die Räume (predefined_selections), wenn ich mehrere Etagen habe?

    Du hast in Deinem Beispiel Buttons, um die Karte für EG und OG2 zu laden (vacuum_load_multi_map). Gleichzeitig sind in den predefined_selections Räume definiert, die sich meiner Einschätzung nach auf unterschiedlichen Etagen befinden (Waschkeller, Küche, Bad, Schlafzimmer..).

    Wenn ich das so mache wie in Deiner Beispielconfig, ist egal welche Etage ich lade, es werden immer alle Räume aller Etagen überlappend angezeigt. Wie kann ich dafür sorgen, dass mir nur die Räume der jeweiligen Etage angezeigt werden?

    Außerdem habe ich bei zwei (von drei) Etagen eine Kollision bei der Raum-ID: im EG, sowie im OG2 gibt es einen Raum mit Id 1. Diese ID kommt ja vom Roboter und die kann ich nicht einfach so ändern (zumindest nach meinem Kenntnisstand). Wie kann ich hier eineindeutigkeit sicherstellen?

    Mich würde es wundern, wenn ich der einzige mit diesem Szenario bin – habe aber keine Lösung im Netz dazu gefunden.

    Antworten
    • Ok, konnte mir meine Frage nun doch selbst beantworten, es musste erst “Klick” machen 😉

      Aber demnach dürfte Deine Beispielconfig (konkret der Abschnitt Zeile 11-210, beginnend mit “name: Wohnung EG”) zu dem gleichen Ergebnis kommen, das ich zunächst hatte: die Räume verschiedener Etagen sind in einem Plan überlappend dargestellt.

      Ich habe jetzt verstanden, dass man jeder Etage einen eigenen Config-Abschnitt spendiert. Unterhalb eines Abschnitts (sprich je Etage) müssen die IDs eindeutig sein; aber nicht zwingend eineindeutig über alle Karten hinweg. Damit ist auch meine zweite Frage beantwortet.

      Jetzt funktioniert die Raumauswahl auch wie gewünscht.
      Nächster Meilenstein: ich muss jetzt noch rausknobeln, wie ich gleichzeitig die passende Karte laden kann, sobald ich die Auswahl der Etage getroffen habe (derzeit muss ich das noch über einen separaten Button, d.h. zusätzlichen Mausklick, machen)

    • Hallo Thomas,
      hast du es inzwischen hinbekommen? Ich hab irgendwie in jeder Ebene dieselben Raum IDs.
      Ich bekomme es hin alle anzulegen, aber jetzt müsste natürlich die Karten “mitwandern”.
      Viele Grüße
      Markus

    • Hallo Thomas

      Wäre sehr daran interessiert, deinen gesamten Code zu sehen, damit ich auch nachvollziehen kann, wo bei mir der Fehler liegt. Anscheinend hast Du ja “die Lösung” gefunden.

      Vielen Dank.

  6. Hallo,

    super Sache mit der Integration von Roborock in HA, mit der Hilfe von Simon funktioniert recht gut! Danke!
    Für mich wäre sehr hilfreich wenn ich (in HA) alle Räume mit der letzten Reinigung auflisten könnte.
    z.B.
    Küche 01.02.2024
    Wohnzimmer 03.02.2024
    usw.
    Hat jemand eine Idee für die Umsetzung?

    Antworten
  7. Hallo Simon, Hallo Leute

    Zuerst einmal recht herzlcihen Dank Simon für Deine tolle Arbeit! Ich folge Dir auf YouTube und lerne sehr viel über Home Asssistant. Habe auch einr Roborock S8_plus-ultra und bin begeistert. Wie wahrscheinlich so mach anderer Ehemann will man seiner lieben Gattin das natürlich alles so schmackhaft wie möglich machen, sprich es muss einfach bedient werden können. Dann nehmen Sie es auch “eher an”, oder? Dafür ist HA natürlich super geeignet. Meine Frage nun:
    Das mit dem Kartenwechsel bekomme ich soweit hin – nur- wie legt man nun das OG in der YAML richtig an? Werden die Räume einfach untereinander aufgelistet – einfach nach dem letzten Raum im EG weiterfahren mit den Räumen vom OG oder wie?

    Was mir auch immer wieder Probleme bereitet, ist das Kopieren der Codes. Das funktioniert nicht immer so 1:1….. Es kommen dann “Einrückungsfehler” am Schluss aufgelistet und man muss händisch nachhelfen… Mache ich da was falsch?

    Danke für Deine/Eure Hilfe und Grüsse aus der CH.

    Antworten
  8. Hi Simon,

    Super Anleitung! Danke!

    Ich hab hier noch den mopMode als icon, fand ich nützlich wenn du eine Raumreinigung startest und das wählen möchtest

    – icon: mdi:water-outline
    conditions:
    – entity: vacuum.roborock_s7
    attribute: mopMode
    value: 300
    tooltip: Change mop route
    tap_action:
    action: call-service
    service: vacuum.send_command
    service_data:
    command: set_mop_mode
    params: 301
    target:
    entity_id: vacuum.roborock_s7
    – icon: mdi:water-opacity
    conditions:
    – entity: vacuum.roborock_s7
    attribute: mopMode
    value: 301
    tooltip: Change mop route
    tap_action:
    action: call-service
    service: vacuum.send_command
    service_data:
    command: set_mop_mode
    params: 303
    target:
    entity_id: vacuum.roborock_s7
    – icon: mdi:water
    conditions:
    – entity: vacuum.roborock_s7
    attribute: mopMode
    value: 303
    tooltip: Change mop route
    tap_action:
    action: call-service
    service: vacuum.send_command
    service_data:
    command: set_mop_mode
    params: 300
    target:
    entity_id: vacuum.roborock_s7
    – icon: mdi:water-circle
    conditions:
    – entity: vacuum.roborock_s7
    attribute: mopMode
    value_not: 300
    – entity: vacuum.roborock_s7
    attribute: mopMode
    value_not: 301
    – entity: vacuum.roborock_s7
    attribute: mopMode
    value_not: 303

    Antworten
  9. Hallo Simon, mein Roborock ist im HomeAssistent oft offline, die originale App funktioniert jedoch.
    Nach einer gewissen Zeit funktioniert Roborock wieder im HA.
    Hast du auch schon ähnliches beobachtet? Gibt es dafür eventuell eine Lösung?

    Antworten
  10. Hi!
    Ich habe Dein Tutorial geschaut und auch übernommen. Danke dafür!
    Nun wollte ich per Alexa die Automatisierungen starten (z.B. Küche saugen).
    Ich habe Nabu Casa eingebunden und die Automation “Küche saugen” an Alexa weitergereicht.
    Nun kann ich sie dem Sprachbefehl zuordnen, allerdings ist die Automatisierung in der AlexaApp als SmartHome Szene und ‘An/Aus’ deklariert, und sie steht schon auf “An”.
    Aufrufen kann ich das, aber der Sauger startet nicht.
    Irgendjemand eine Idee dazu?

    Antworten
    • Ok, gestern noch rumprobiert…
      Anstatt einer Automation, habe ich je ein script erstellt, die die verschiedenen Räume /zusammenstellungen anspricht.
      Das Script wird an Alexa übergeben, das zeigt zwar auch ‘AN/AUS’ an, startet aber den Sauger.

  11. Hallo Simon,

    besten Dank für dieses Turorial, wie immer super und hilfreich!

    Vielleicht kannst Du mir einen Tipp geben, für ein Problem, dass ich mit einer Automatisierung habe. Ich habe eine Automatisierung anlegt, um einen Bereich um unseren Esstisch zu saugen. Die Koordinaten habe ich aus der lovelace-Integration übernommen. Wenn ich den Saugvorgang mit den Koordinaten direkt starte über die Map, funktioniert es problemlos.
    Wenn ich die gleichen Koordinaten allerdings in die Automatisierung in Kombination mit “app_zoned_clean” eintragen, fährt der Sauger ins Wohnzimmer und fängt dort an.

    Hast Du vielleicht einen Tipp oder eine Idee?

    Beste Grüße
    Michael

    Antworten
  12. Hallo Simon,

    wie immer eine tolle Anleitung und Übersicht, vielen Dank!

    Vielleicht kannst Du mir einen Tipp geben: Ich habe eine Automatisierung angelegt um einen Bereich um unseren Esstisch nach dem Essen zu saugen.

    Die Koordinaten habe ich aus der Lovelace-Karte übernommen. Wenn ich die Reinigung manuell starte (über die manuelle Selektion), fährt der Sauger auch dorthin. Wenn ich aber die Reinigung über die Automatisierung starte (gleiche Koordinaten), fährt er leider immer ins Wohnzimmer.

    Hast Du vielleicht eine Idee oder einen Tipp?

    Danke und beste Grüße
    Michael

    Antworten
  13. Hallo,
    kann man so etwas auch in Automationen einbauen?
    Ich würde gerne eine Automation haben, die Mo,Mi,Fr und So nur saugt und die restlichen Tage saugt und wischt. Bin leider noch ziemlich neu in der Materie und habe wenig Ahnung.
    Wäre für jeden Tipp dankbar.

    Antworten
  14. Hallo,
    ich habe zwei Etagen. Wie finde ich die MAP-ID heraus um dann mit dem Service die Karte zu wechseln ? Wie kann ich dass dann in die Dashboard-Card integrieren.

    Vielen Dank
    Ralph Diesinger

    Antworten
  15. Habe dein Video entdeckt und dann alles umgebaut Roborock S7 raus aus XiaomiApp rein in die Roborock etc pp.

    Alles läuft nun auch super mit Homeassistant leider geht nun meine Homekit Steuerung mit Homebridge und dem homebridge-xiaomi-roborock-vacuum Plugin nicht mehr – nun wäre meine Frage wie verpack ich das ganze nun sauber in Homekit ?

    Antworten
  16. Servus Simon,

    vielen Dank für das tolle Video und den Code. Du hast gesagt der Map-Wechsel funktioniert bei dir nicht, das habe ich mittlerweile so gelöst:
    – menu_id: mapStatus
    icon: mdi:home-floor-0
    label: Erdgeschoss
    conditions:
    – entity: vacuum.roborock_s8_pro_ultra
    attribute: mapStatus
    value: 3
    tooltip: Kartenwechsel
    tap_action:
    action: call-service
    service: roborock.vacuum_load_multi_map
    service_data:
    map_flag: 0
    target:
    entity_id: vacuum.roborock_s8_pro_ultra
    – menu_id: mapStatus
    icon: mdi:home-floor-1
    label: Obergeschoss
    conditions:
    – entity: vacuum.roborock_s8_pro_ultra
    attribute: mapStatus
    value: 7
    tooltip: Kartenwechsel
    tap_action:
    action: call-service
    service: roborock.vacuum_load_multi_map
    service_data:
    map_flag: 1
    target:
    entity_id: vacuum.roborock_s8_pro_ultra
    – icon: mdi:home-floor-0
    conditions:
    – entity: vacuum.roborock_s8_pro_ultra
    attribute: mapStatus
    value_not: 3
    – entity: vacuum.roborock_s8_pro_ultra
    attribute: mapStatus
    value_not: 7
    tap_action:
    action: call-service
    service: vroborock.vacuum_load_multi_map
    service_data:
    map_flag: 1
    target:
    entity_id: vacuum.roborock_s8_pro_ultra

    Auch die Raumconfig konnte ich auf beide Stockwerke setzen.

    Ich hab auch die Steuerbefehle ein bisschen anders gestaltet, damit man eine Auswahl hat und nicht durchsteppen muss.
    Hier am Beispiel der Wischintensität:
    – menu_id: mop_intensity
    icon: mdi:water-off
    label: ‘off’
    conditions:
    – entity: vacuum.roborock_s8_pro_ultra
    attribute: mop_intensity
    value: ‘off’
    tooltip: Wischintensität
    tap_action:
    action: call-service
    service: vacuum.send_command
    service_data:
    command: set_water_box_custom_mode
    params: 200
    target:
    entity_id: vacuum.roborock_s8_pro_ultra
    – menu_id: mop_intensity
    icon: mdi:water-outline
    label: mild
    conditions:
    – entity: vacuum.roborock_s8_pro_ultra
    attribute: mop_intensity
    value: mild
    tooltip: Wischintensität
    tap_action:
    action: call-service
    service: vacuum.send_command
    service_data:
    command: set_water_box_custom_mode
    params: 201
    target:
    entity_id: vacuum.roborock_s8_pro_ultra
    – menu_id: mop_intensity
    icon: mdi:water
    label: moderate
    conditions:
    – entity: vacuum.roborock_s8_pro_ultra
    attribute: mop_intensity
    value: moderate
    tooltip: Wischintensität
    tap_action:
    action: call-service
    service: vacuum.send_command
    service_data:
    command: set_water_box_custom_mode
    params: 202
    target:
    entity_id: vacuum.roborock_s8_pro_ultra
    – menu_id: mop_intensity
    icon: mdi:water-plus
    label: intense
    conditions:
    – entity: vacuum.roborock_s8_pro_ultra
    attribute: mop_intensity
    value: intense
    tooltip: Wischintensität
    tap_action:
    action: call-service
    service: vacuum.send_command
    service_data:
    command: set_water_box_custom_mode
    params: 203
    target:
    entity_id: vacuum.roborock_s8_pro_ultra
    – menu_id: mop_intensity
    icon: mdi:water-percent
    label: custom
    conditions:
    – entity: vacuum.roborock_s8_pro_ultra
    attribute: mop_intensity
    value: custom
    tooltip: Wischintensität
    tap_action:
    action: call-service
    service: vacuum.send_command
    service_data:
    command: set_water_box_custom_mode
    params: 204
    target:
    entity_id: vacuum.roborock_s8_pro_ultra
    – icon: mdi:water-off
    conditions:
    – entity: vacuum.roborock_s8_pro_ultra
    attribute: mop_intensity
    value_not: ‘off’
    – entity: vacuum.roborock_s8_pro_ultra
    attribute: mop_intensity
    value_not: mild
    – entity: vacuum.roborock_s8_pro_ultra
    attribute: mop_intensity
    value_not: moderate
    – entity: vacuum.roborock_s8_pro_ultra
    attribute: mop_intensity
    value_not: intense
    – entity: vacuum.roborock_s8_pro_ultra
    attribute: mop_intensity
    value_not: custom
    tooltip: Wischintensität
    tap_action:
    action: call-service
    service: vacuum.send_command
    service_data:
    command: set_water_box_custom_mode
    params: 200
    target:
    entity_id: vacuum.roborock_s8_pro_ultra

    Danke nochmals und schöne Grüße
    Roland

    Antworten
    • Moin Roland,

      könntest du deinen kompletten Code hochladen, damit ich es mir kopieren kann 😛 Bin leider noch relativ “neu”

    • Hallo Roland,

      ich stehe auch vor dem Problem, dass ich die Raumconfig nicht auf beide Stockwerke setzen kann. Leider kann ich mit Deiner Beispiel-Config nicht so viel anfangen – woher kommt menu_id? Könntest Du mal die komplette config posten, bzw. erläutern, wie Du die komplette Raumconfig laden konntest?

      Danke!

    • Einfach den Code miteinfügen. Natürlich den Sauger entsprechend anpassen. Ich habe einen S8.

      menu_id:
      – menu_id: mapStatus
      icon: mdi:home-floor-0
      label: Erdgeschoss
      conditions:
      – entity: vacuum.roborock_s8
      attribute: mapStatus
      value: 3
      tooltip: Kartenwechsel
      tap_action:
      action: call-service
      service: roborock.vacuum_load_multi_map
      service_data:
      map_flag: 0
      target:
      entity_id: vacuum.roborock_s8
      – menu_id: mapStatus
      icon: mdi:home-floor-1
      label: Obergeschoss
      conditions:
      – entity: vacuum.roborock_s8
      attribute: mapStatus
      value: 7
      tooltip: Kartenwechsel
      tap_action:
      action: call-service
      service: roborock.vacuum_load_multi_map
      service_data:
      map_flag: 1
      target:
      entity_id: vacuum.roborock_s8
      – icon: mdi:home-floor-0
      conditions:
      – entity: vacuum.roborock_s8
      attribute: mapStatus
      value_not: 3
      – entity: vacuum.roborock_s8
      attribute: mapStatus
      value_not: 7
      tap_action:
      action: call-service
      service: vroborock.vacuum_load_multi_map
      service_data:
      map_flag: 1
      target:
      entity_id: vacuum.roborock_s8

    • Hallo Roland,

      das mit dem Einfügen klappt bei mir leider nicht so problemlos, ich bekomme immer Fehler.

      Wo genau muss der Code denn rein?

  17. Moin,
    dein Youtube Video hat mich zu dieser Seite geführt. Ein Optimierungstipp und eine Frage:

    Statt den Sauger tatsächlich zum Dock zurückfahren zu lassen, könntest du auch einfach darauf warten, dass der Roboter seinen Status auf “returning” ändert. So muss er nicht zurückfahren, sondern kann alles reinigen und fährt dann erst zurück:
    – wait_for_trigger:
    – platform: state
    entity_id:
    – vacuum.roborock_s7
    to: returning

    Und die Frage wäre, wieso du immer wartest, besser gesagt, worauf wartest du? Der Sauger saugt doch, bis der Job erledigt ist. Auch hier kannst du auf die Statusänderung warten. Was nützt es, wenn der Sauger 2h vor der Tür wartet. Nach deiner Automation bekommt er ja eh nicht mit, wenn die Tür offen ist?

    Ich habe es nun so gelöst, damit der Sauger auch hinter der Schlafzimmertür saugt: Er fährt ins Schlafzimmer, ich schließe die Tür. Der Sauger saugt, ist fertig und ändert seinen Status auf “returning”. Ist die Tür laut Sensor offen, fährt er zum Dock. Ist die Tür geschlossen, fährt er 1,5 m von der Tür weg und wartet auf den Trigger “Tür offen”. Ist die Tür dann geöffnet, fährt er zum Dock.

    Auf diese Art werde ich mir nun eine Automation bauen, mit der ich einen Raum nach dem anderen erst saugen und dann wischen lasse, ohne, dass ich mehrmals wie bisher Knöpfe drücken muss. Nun muss ich im Zweifel nur die Türen öffnen.

    Danke für die Inspiration!

    Antworten
    • Mich würde das mit der Türe interessieren, ich experimentiere damit auch. Könntest du evt. deine Automatisierung teilen?

Schreibe einen Kommentar