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.
Empfohlenes Vorwissen
Links / Repos
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 Roborock | https://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)
silent | 101 |
balanced | 102 |
turbo | 103 |
max | 104 |
off (Kann man bei nur Wischen setzen) | 105 |
custom | 106 |
mopping mode Werte (Wischintensität)
off | 200 |
low | 201 |
medium | 202 |
high | 203 |
custom | 204 |
mopping route Werte (Wischroute)
standard | 300 |
deep | 301 |
custom | 302 |
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!
Hallo an Alle,
wie bekommt man die Auswahl der Saugvorgänge (1-3) immer mit in die Direktauswahl?
Bei “Zone Clean Up” ist das immer mit dabei, aber bei den Räumen nicht.
Hat jmd. eine Idee?
Danke im Voraus.
Genial!
Danke für deinen Input.
Ich konnte so meine Reinigungsprogramme schon mal erstellen.
Nun möchte ich mir gerne noch eine Kachel erstellen, wo ich sagen kann, dass abgesaugt wird.
Irgendwie hab ich die Funktion nicht gefunden.
Gibt es hierfür auch gewisse Codes, wo ich eine Automation erstellen kann?
Hallo, ich versuche gerade für meinen neuen Xiaomi X20 Plus den Cleaning Mode über HA zu steuern. Dazu wollte ich einfach den Code von Simon anpassen, scheitere aber an den values für die verschieden Modi. kann mir jemand sagen ob die für Xiaomi Geräte generell immer die gleichen werte sind, oder wie ich sie für mein Roboter ermitteln kann?
Vielen Dank schon mal im Voraus.
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?
Hallo,
gibt es jetzt schon eine lösung für das ändern wenn man mehrere etagen hat?
Hi, wo kann ich die vacuum.locate Funktion anpassen? Finde die irgendwie nirgends. Möchte eine persönalisierte Sprachausgabe verwenden…..
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.
ich hab es doch selbst gefunden. Automation->Aktion hinzufügen -> Gerät -> Roborock [Name] -> als Aktion kann man es dann auswählen
Moin,
bleiben die Parameter für den vacuum_mode, mopping_mode und mopping_route bei dem S8 gleich?
Grüße
Hartmut
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
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
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.
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.
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?
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.
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
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?
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?
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.
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
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
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.
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
Gehen die Modes auch mit einem Robo der in der Xiaomi App ist ?
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 ?
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
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!
Hallo Roland,
haben Sie Mop trockner über HA zum laufen bekommen?
Gruß Waldone
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?
Hi Roland,
bist du so nett und postest den ganzen Code?
Danke
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!
Mich würde das mit der Türe interessieren, ich experimentiere damit auch. Könntest du evt. deine Automatisierung teilen?