Unterstützung des Kanals
Hinweis: Der folgende Link ist ein Affiliate-Link.
Die Erstellung meiner Skripte und Videos ist mit einem erheblichen zeitlichen Aufwand verbunden – von der technischen Vorbereitung über intensive Recherche bis hin zu Tests, Aufnahmen und Nachbearbeitung. Alle Inhalte stelle ich dir dennoch vollständig kostenlos zur Verfügung.
Wenn du meine Arbeit unterstützen möchtest, kannst du das ganz einfach tun: Für deine Amazon-Bestellungen nutze gern meinen Partner-Link. Für dich ändert sich am Preis nichts – ich erhalte lediglich eine kleine Provision. Vielen Dank für deinen Support!
Jetzt über Amazon unterstützen👉 Direkt auf YouTube schauen und abonnieren:
Smart Home & more auf YouTube
📢 Update 27.10.2026: Was sich seit dem Beitrag geändert hat
Die Roborock Custom Map Integration liegt inzwischen unter github.com/Python-roborock/RoborockCustomMap (der alte Link leitet dorthin weiter) und setzt Home Assistant 2025.12.1 oder neuer voraus. Seit Home Assistant 2026.3 kann die Core Integration Räume auch ohne Zusatzkomponenten reinigen (Aktion
vacuum.clean_area, die Räume werden in der Vacuum-Entität den Bereichen von Home Assistant zugeordnet). Die Vacuum Map Card bleibt trotzdem die Lösung, wenn ihr die Räume auf der Karte anklicken wollt. Korrigiert: Im Skript und in der Karten-YAML stand für die Wischintensität beim Wischenmoderate, diesen Wert kennt der S8 Pro Ultra nicht, richtig iststandard. Neu in diesem Beitrag: die Voraussetzungen, die genauen Klickfolgen, das Auslesen der erlaubten Werte für euren Roboter und ein Abschnitt für den Fall, dass etwas nicht funktioniert.
Einführung
Seit 2019 setze ich Roborock-Saugroboter zuverlässig in meinem Zuhause ein. Von älteren Modellen bis hin zu aktuellen Geräten arbeiten sie täglich für uns – und sind für unsere Familie nicht mehr wegzudenken. Gerade weil wir in jedem Stockwerk einen Roborock nutzen, ist mir eine effiziente Integration in Home Assistant besonders wichtig.
Bereits vor längerer Zeit hatte ich dazu ein Video sowie ein Skript bereitgestellt. Dieses funktionierte zuverlässig, war jedoch an ein grundlegendes Problem gebunden: Es arbeitete auf Geräte-IDs statt Entitäten. Wenn ein neuer Roboter hinzukam, musste das gesamte Skript manuell angepasst werden. Da bei uns immer wieder ein neues Modell seinen Platz findet, wurde diese Anpassung zunehmend unübersichtlich. Aus diesem Grund habe ich eine modernisierte, flexiblere Lösung entwickelt.
In diesem Beitrag zeige ich Schritt für Schritt, wie du:
- Roborock korrekt in Home Assistant einbindest
- die Roborock Custom Map Integration installierst
- die Vacuum Map Card einrichtest
- Räume sauber konfigurierst
- die Karte vollständig nutzen kannst
Das Ziel ist, Roborock komfortabel und visuell ansprechend zu steuern – ganz ohne komplexe Skriptanpassungen.

Unterstützung des Kanals
Die Erstellung meiner Skripte und Videos ist mit einem erheblichen zeitlichen Aufwand verbunden – von der technischen Vorbereitung und intensiven Recherche bis hin zu Tests, Aufnahmen und Nachbearbeitung. Alle Inhalte stelle ich dir dennoch vollständig kostenlos zur Verfügung.
Aktuell gibt es in den Black Weeks besonders attraktive Angebote. Ich selbst habe mir zu diesen hervorragenden Konditionen einen neuen Roborock-Saugroboter gegönnt – die Preise sind wirklich stark.
Wenn du ebenfalls über den Kauf eines Roborock nachdenkst, kannst du meinen Kanal und meine Arbeit wirkungsvoll unterstützen, indem du den Roboter über meinen Affiliate-Link bestellst. Für dich bleibt der Preis unverändert, aber ein kleiner Anteil des Kaufpreises hilft mir, weiterhin hochwertige Inhalte bereitzustellen. Wenn du vielleicht etwas anderes in den Black Wecks kaufen möchtest, kannst du mich dennoch unterstützen, wenn du meinen allgemeinen amazon Link für deinen Einkauf verwendest.
- [Dual Anti-Tangle-System] Entdecke das revolutionäre doppelte Verhedderungsschutz-System des roborock Qrevo Curv mit Hauptbürste und Seitenbürste, einfach perfekt für den Umgang mit langen Haaren und für haustierfreundliche Wohnungen. Genieße eine Reinigung ohne verhedderte Haare und ähnliches, die Bürste reinigt sich fast von selbst.
- [Extreme Saugkraft von 18.500 Pa] Branchenführende 18.500 Pa HyperForce Saugkraft in Kombination mit den Borsten der DuoDivide Bürste garantieren, dass der roborock Qrevo Curv auch anspruchsvolle Stellen wie Teppiche und Lücken in harten Böden gründlich reinigt und dabei selbst die kleinsten Partikel entfernt.
- [FlexiArm Technologie] Die FlexiArm Arc Seitenbürste und das Kantenwischsystem, die exklusiv von Roborock angeboten werden, ermöglichen eine unvergleichliche Reinigungsabdeckung, da blinde Flecken beseitigt werden und somit kein Schmutz zurückbleibt.
- [AdaptiLift Chassis] Erreiche ein höheres Niveau bei der Reinigung mit dem AdaptiLift Chassis, einer Premiere in der Branche, bei der viele verschiedene Anhebezustände dank drei unabhängig einstellbarer Räder erreicht werden können. So kann das gesamte Chassis um 10 mm angehoben werden oder nur die vordere, hintere, linke oder rechte Hälfte, damit die Anpassung an deine heimische Umgebung problemlos möglich ist.
- [75 °C Heißwasser-Moppwäsche] Beseitige problemlos hartnäckige Flecken und fettige Verschmutzungen mit 75 °C heißem Wasser von deinen Mopps, gleichermaßen perfekt für Küchen und Essbereiche. Das heiße Wasser beseitigt über 99,99 % der Bakterien und gewährleistet optimale Hygiene. Mit drei einstellbaren Temperatureinstellungen bist du auf jedes Reinigungsszenario vorbereitet.
- 7,98cm Ultraflaches Design – Dank des autonomen StarSight Systems 2.0 der nächsten Generation ist der Saros 10R unglaublich smart und beeindruckend flach. Mit seiner hochentwickelten Positionierungs- und Kartierungsfunktiornen navigiert er mühelos unter Sofas und Betten.
- Autonomes StarSight System 2.0 – Mithilfe fortschrittlicher Technologie zur Vermeidung seitlicher Hindernisse gleitet er mühelos um unregelmäßig geformte Möbel und Wände herum und reinigt sogar die Umgebung herumliegender Kabel garantiert gründlich.
- Zero-Tangle-System – Ständige Wartung der Bürste ist für dich kein Thema mehr- dank des revolutionären Anti-Tangle-Systems an Hauptbürste und Seitenbürste. Das System reinigt sich selbst und kommt selbst mit langen Haaren zurecht. Dank HyperForce Saugleistung verschwinden Staub und Schmutz auf verschiedenen Arten von Böden und Teppichen, da auch die kleinsten Partikel spurlos beseitigt werden.
- FlexiArm Riser Seitenbürste und Mopp – Die FlexiArm Technologie ist die Grundlage der doppelten Roboterarme für die Seitenbürste und den Mopp, damit Schmutz aus Ecken, an Kanten und unter Möbeln gekonnt aufgekehrt wird.
- AdaptiLift Chassis als Branchenpremiere – Das gesamte Gehäuse kann abgenommen werden. Dabei sind die drei Räder unabhängig voneinander einstellbar. So erreicht dein Roborock auch schwer erreichbarre Stellen wie ein allrad-betriebener Geländewagen – für optimale Reinigungsabdeckung.
Voraussetzungen
- Home Assistant 2025.12.1 oder neuer mit HACS. HACS gibt es inzwischen auch direkt im Add-on-Store.
- Roborock-Konto: die E-Mail-Adresse, mit der der Roboter in der Roborock-App angemeldet ist. Den Bestätigungscode schickt Roborock bei der Einrichtung per Mail.
- Räume in der Roborock-App: Die Karte muss in der App fertig eingeteilt sein, jeder Raum mit eigener Farbe. Ohne diese Einteilung gibt es keine Raum-IDs, und die Raumwahl in der Karte funktioniert nicht.
- Getestet mit: S8 (mit Wischfunktion), Qrevo Curv und älteren Modellen. Bei Modellen ohne Wischfunktion fällt im Skript nur der Wisch-Teil weg.
- Cloud: Die Core Integration spricht die Roboter lokal an, die Karte kommt aber immer aus der Roborock-Cloud. Ohne Internet gibt es keine Kartenaktualisierung.
Roborock Core Integration installieren
Ich beginne in Home Assistant mit einer sauberen Testumgebung, sodass jeder Schritt nachvollziehbar ist. Die Core Integration lässt sich über Einstellungen → Geräte & Dienste → Integration hinzufügen installieren. Nach Eingabe der E-Mail-Adresse und des Bestätigungscodes erscheinen alle Roborock-Geräte automatisch in der Übersicht.

Damit steht das Fundament, auf dem die gesamte spätere Kartenfunktionalität aufbaut.
Die Region kann bei der Einrichtung auf Auto bleiben. Die Integration fragt die Roboter alle 30 Sekunden ab. Wer die Integration in kurzer Folge immer wieder neu lädt, riskiert eine vorübergehende Sperre der eigenen IP-Adresse bei Roborock. Die Entitäten werden dann für eine Weile als nicht verfügbar angezeigt. Also nach dem Einrichten in Ruhe weiterarbeiten, statt mehrfach neu zu laden.
Custom Map Integration über HACS installieren
Die Vacuum Map Card benötigt spezielle Map-Datenstrukturen. Die normale Roborock-Integration stellt diese jedoch nicht vollständig bereit. Genau dafür dient die Roborock Custom Map Integration.
ACHTUNG: Die aktuelle Version der Custom Map Integration braucht Home Assistant 2025.12.1 oder neuer. Auf älteren Installationen lädt die Integration nicht. Erst Home Assistant aktualisieren, dann die Integration installieren.

Die Klickfolge in HACS
- In HACS oben rechts auf die drei Punkte, Benutzerdefinierte Repositories. Als Repository
https://github.com/Python-roborock/RoborockCustomMapeintragen, Typ Integration, hinzufügen. - Nach Roborock Custom Map suchen, öffnen, Herunterladen.
- Home Assistant neu starten. Das ist bei jeder neuen HACS-Integration nötig, sonst kennt Home Assistant sie nicht.
- Beim Roboter unter Geräte & Dienste → Roborock die bestehende Image-Entität deaktivieren. Es funktioniert auch ohne, die Anleitung empfiehlt es aber.
- Einstellungen → Geräte & Dienste → Integration hinzufügen → Roborock Custom Map. Die Abfrage kann man überspringen und mit Abschließen beenden.
- Beim Roboter gibt es jetzt eine zweite Image-Entität mit der Endung
_custom. Genau die braucht die Karte später.
Die Custom Map Integration hängt von der Core Integration ab. Startet die Core Integration nach einem Neustart erst später, bleibt die Custom-Entität leer. In dem Fall die Custom Map Integration einmal neu laden (drei Punkte neben der Integration, Neu laden).
Nach dem Öffnen des Repositorys in HACS sucht man nach Roborock Custom Map Integration und drückt auf herunterladen. Anschließend ist ein Neustart von Home Assistant erforderlich. Roborock
Wichtig: Die bisherige Image-Entität des Roboters sollte deaktiviert werden. Die neue Custom-Image-Entität wird später in der Vacuum Map Card genutzt.

Vacuum Map Card installieren
Die Karte selbst wird ebenfalls über HACS installiert.

Ein Neustart ist hier nicht notwendig. Danach kann ich direkt im Dashboard eine neue Karte hinzufügen und folgende Einstellungen setzen:
Nach dem Herunterladen reicht es, die Seite im Browser neu zu laden. Wird die Karte beim Hinzufügen nicht angeboten, den Browser-Cache leeren oder die Seite mit Strg+F5 laden.
- Plattform: Roborock
- Staubsauger: Eure Sauger Entität
- Image: die neue, durch die Custom Map Integration erzeugte Map-Entität

Die Karte zeigt nun die vollständige Umgebung an und bildet die Grundlage für die spätere Raumsteuerung.
Räume korrekt einrichten
Damit die Karte weiß, welche Bereiche ausgewählt werden können, müssen die Räume in der Roborock App korrekt definiert bzw. bereinigt werden.

Über Karte bearbeiten → Erstelle Raumkonfiguration wird die Raumkonfiguration ausgelesen und im YAML Code der Karte angelegt. Im Code-Editor kann man dann die Erstellung überprüfen.

Hier zeigt Home Assistant zwar sämtliche Räume an, allerdings meist in mehrfacher Ausführung. Ich lösche alle überflüssigen Einträge und behalte nur diejenigen, die tatsächlich existieren – in meinem Fall Flur, Studio und Büro. Mir ist dabei aufgefallen, wenn man von unten nach oben geht, dann hat man an den letzten Stellen immer die korrekten Räume mit ihren IDs. D.h. ich geht wie im Beispiel Studio, Büro, Flur nach oben und löscht wie im Video gezeigt die überflüssigen Räume
So räume ich die Raumliste auf
- Im Code-Editor der Karte ganz nach unten scrollen. Die letzten Einträge unter
predefined_selectionssind die richtigen Räume mit ihren IDs, bei mir Raum 18 (Studio), 17 (Büro) und der Flur. - Von oben her alle Einträge löschen, die doppelt oder dreifach vorkommen, bis nur noch ein Eintrag je Raum übrig ist.
- Taucht
vacuum_clean_segmentzweimal als Modus auf, den doppelten Block komplett entfernen. - Auf Fertig. Unter Rooms stehen jetzt nur noch die echten Räume und lassen sich anklicken.
Ein Hinweis aus der Doku der Karte: Die Raumkonfiguration kann zusätzlich einen Schlüssel predefined_sections anlegen (mit c statt t). Der gehört nicht in die Konfiguration und kann weg. Außerdem liefert der Roboter die Kalibrierungspunkte nur für die aktuell gewählte Karte. Bei mehreren Etagen also in der Roborock-App erst die passende Karte auswählen, sonst fehlen die Räume.
Nach dem Speichern erscheinen die Räume korrekt und lassen sich über die Karte selektieren.

Erweiterte Reinigungsoptionen – ohne Skriptanpassungen
Viele Anwender starten die Reinigung direkt über die Karte und stellen die gewünschten Parameter dort ein. Das funktioniert zuverlässig. Auch Saugleistung, Modi und Wischintensitäten lassen sich dort einstellen.
Da ich selbst häufig erst sauge und anschließend wische, habe ich ein eigenes erweitertes Vorgehen entwickelt. Dieses ermöglicht es mir über ein Skript erst zu saugen und dann zu wischen und gleichzeitig alle relevanten Parameter vorzubelegen.
Die benötigten Entitäten – etwa für Mop-Modus, Wischintensität oder Ventilatorgeschwindigkeit – lassen sich zuvor über die Entwicklerwerkzeuge bestimmen. Wichtig, achtet darauf, dass wir die korrekten Attribute bei der Übergabe an das Skript übernehmt.
Erlaubte Werte für euren Roboter auslesen
- Entwicklerwerkzeuge → Zustände öffnen und nach der Vacuum-Entität suchen, zum Beispiel
vacuum.roborock_s8_pro_ultra. Im Attributfan_speed_liststehen die erlaubten Saugstufen. - Nach Wisch filtern. Die Select-Entität Wisch-Intensität zeigt unter options die erlaubten Werte, die Select-Entität Wisch-Modus die Mop-Modi. Das sind dieselben Stufen wie in der Roborock-App, nur mit den internen Namen.
- Nur diese Namen dürfen später ins Skript und in die Karte. Ein Wert, den der Roboter nicht kennt, führt dazu, dass das Skript mit einer Fehlermeldung abbricht.
- Die Namen können sich mit einem Update der Roborock-Integration ändern. Nach einem großen Home-Assistant-Update lohnt ein Blick in die Entwicklerwerkzeuge, ob die Werte im Skript noch stimmen.
Zum Vergleich die Werte meiner beiden Modelle, ausgelesen mit Home Assistant 2026.7:
- S8 Pro Ultra: Saugstufen
quiet, balanced, turbo, max, max_plus, off, custom, Wisch-Intensitätoff, mild, standard, intense, custom, Wisch-Modusstandard, deep, deep_plus, fast, custom. - Qrevo Curv: Saugstufen zusätzlich
smart_mode, Wisch-Intensitätoff, low, medium, high, custom_water_flow, smart_mode, custom, Wisch-Modus zusätzlichsmart_mode. Einmildgibt es beim Curv nicht, einlownicht beim S8.
Meine Werte: Beim Saugen max_plus und Wisch-Intensität off. Beim Wischen Saugstufe off und Wisch-Intensität standard (S8) bzw. medium (Qrevo Curv).



Dynamisches Skript für erst Saugen und dann Wischen ( nur für Roborock Saugroboter) – Vorgabewert für die Wischintensität beim Wischen ist jetzt standard, da es moderate beim S8 Pro Ultra nicht gibt.
Was das Skript macht: Es fährt die gewählten Räume mit den Saug-Einstellungen ab, wartet, bis der Roboter wieder in der Station ist, und startet dann den zweiten Durchgang mit den Wisch-Einstellungen. Das Warten ist auf zwei Stunden begrenzt (timeout: "02:00:00" im Skript). Wer große Flächen reinigt, setzt den Wert hoch, sonst startet der Wischdurchgang zu früh oder gar nicht. Über die Felder Saugen und Wischen lässt sich auch nur einer der beiden Durchgänge auslösen, zum Beispiel aus einer Automatisierung heraus.
alias: Sauge und Wische Dynamisch
description: ""
mode: parallel
max: 10
fields:
vacuum_entity:
name: vacuum_entity
description: Vacuum-Entität, z.B. vacuum.roborock_s8_pro_ultra
required: true
selector:
entity:
filter:
domain: vacuum
mop_mode_entity:
name: mop_mode_entity
description: Select-Entität für Mop-Modus (z.B. select.*_mop_modus)
required: true
selector:
entity:
filter:
domain: select
mop_intensity_entity:
name: mop_intensity_entity
description: Select-Entität für Wischintensität (z.B. select.*_wisch_intensitat)
required: true
selector:
entity:
filter:
domain: select
segments:
name: segments
description: Segment-IDs aus der Map Card (z.B. [16,17])
required: true
selector:
object: {}
fan_speed_saugen:
name: fan_speed_saugen
description: Lüfterstufe fürs Saugen (z.B. max, turbo, quiet)
required: false
default: max
selector:
text: {}
fan_speed_wischen:
name: fan_speed_wischen
description: Lüfterstufe fürs Wischen
required: false
default: quiet
selector:
text: {}
mop_mode:
name: mop_mode
description: Mop-Modus (z.B. standard)
required: false
default: standard
selector:
text: {}
mop_intensity_saugen:
name: mop_intensity_saugen
description: Wischintensität während Saugen
required: false
default: mild
selector:
text: {}
mop_intensity_wischen:
name: mop_intensity_wischen
description: Wischintensität während Wischen
required: false
default: standard
selector:
text: {}
saugen:
name: saugen
description: Soll gesaugt werden?
required: false
default: true
selector:
boolean: {}
wischen:
name: wischen
description: Soll gewischt werden?
required: false
default: true
selector:
boolean: {}
sequence:
- variables:
segs: |-
{% set s = segments %} {% if s is string %}
{% set s = s | from_json %}
{% endif %} {{ s | map('int') | unique | list }}
- if:
- condition: template
value_template: "{{ saugen }}"
alias: Wenn Saugen eingeschaltet ist
then:
- alias: Wisch Intensität (Saug-Durchgang)
action: select.select_option
target:
entity_id: "{{ mop_intensity_entity }}"
data:
option: "{{ mop_intensity_saugen }}"
- delay:
milliseconds: 500
- alias: Mopp-Modus (Saug-Durchgang)
action: select.select_option
target:
entity_id: "{{ mop_mode_entity }}"
data:
option: "{{ mop_mode }}"
- delay:
milliseconds: 500
- alias: Lüfterstufe (Saug-Durchgang)
action: vacuum.set_fan_speed
target:
entity_id: "{{ vacuum_entity }}"
data:
fan_speed: "{{ fan_speed_saugen }}"
- delay:
milliseconds: 500
- alias: Starte Saug-Durchgang (Segmente)
action: vacuum.send_command
target:
entity_id: "{{ vacuum_entity }}"
data:
command: app_segment_clean
params: "{{ segs }}"
- action: persistent_notification.create
data:
message: "Sauge: {{ segs }}"
- alias: Wischen
if:
- condition: template
value_template: "{{ wischen }}"
then:
- alias: Wenn Saugen und Wischen aktiv sind
if:
- condition: template
value_template: "{{ saugen }}"
then:
- alias: Warte bis Roboter nicht mehr 'docked' ist
wait_template: "{{ not is_state(vacuum_entity, 'docked') }}"
timeout: "00:05:00"
continue_on_timeout: true
- alias: Warte bis Roboter 1 Minute am Stück 'docked' ist
wait_template: |-
{{ is_state(vacuum_entity, 'docked')
and (as_timestamp(now())
- as_timestamp(states[vacuum_entity].last_changed)) > 60 }}
timeout: "02:00:00"
continue_on_timeout: true
- alias: Prüfe Dock-Status nach Timeout
if:
- condition: template
value_template: "{{ not is_state(vacuum_entity, 'docked') }}"
then:
- action: persistent_notification.create
data:
title: Saugskript Hinweis
message: >-
{{ vacuum_entity }} war nach 2 Stunden noch nicht stabil
'docked'. Wisch-Durchgang wird trotzdem gestartet.
- alias: Lüfterstufe (Wisch-Durchgang)
action: vacuum.set_fan_speed
target:
entity_id: "{{ vacuum_entity }}"
data:
fan_speed: "{{ fan_speed_wischen }}"
- delay:
milliseconds: 500
- alias: Mopp-Modus (Wisch-Durchgang)
action: select.select_option
target:
entity_id: "{{ mop_mode_entity }}"
data:
option: "{{ mop_mode }}"
- delay:
milliseconds: 500
- alias: Wisch Intensität (Wisch-Durchgang)
action: select.select_option
target:
entity_id: "{{ mop_intensity_entity }}"
data:
option: "{{ mop_intensity_wischen }}"
- delay:
milliseconds: 500
- alias: Starte Wisch-Durchgang (Segmente)
action: vacuum.send_command
target:
entity_id: "{{ vacuum_entity }}"
data:
command: app_segment_clean
params: "{{ segs }}"
- action: persistent_notification.create
data:
message: "Wische: {{ segs }}"
Integration in die Vacuum Map Card
Damit die Reinigung komfortabel über einen einzigen Button in der Karte ausgelöst werden kann, erweitere ich die Kartenkonfiguration. Dadurch entsteht ein zusätzlicher Menüpunkt wie „Saugen und Wischen“. Dieser greift auf die zuvor definierten Parameter zu und löst die Reinigungssequenz aus. Roborock
Default Code Ansicht ohne Räume:

YAML Code Ansicht der Vacuum Card, mit den Räumen
type: custom:xiaomi-vacuum-map-card
map_source:
camera: image.s8_ug_untergeschoss_custom
calibration_source:
camera: true
entity: vacuum.roborock_s8_pro_ultra
vacuum_platform: Roborock
map_modes:
- template: vacuum_clean_zone
- template: vacuum_goto
- template: vacuum_clean_segment
predefined_selections:
- id: "16"
icon:
name: mdi:broom
x: 22850
"y": 22675
label:
text: Flur
x: 22850
"y": 22675
offset_y: 35
outline:
- - 19700
- 20200
- - 26000
- 20200
- - 26000
- 25150
- - 19700
- 25150
- id: "17"
icon:
name: mdi:broom
x: 22925
"y": 26825
label:
text: Büro
x: 22925
"y": 26825
offset_y: 35
outline:
- - 19450
- 25150
- - 26400
- 25150
- - 26400
- 28500
- - 19450
- 28500
- id: "18"
icon:
name: mdi:broom
x: 28075
"y": 26850
label:
text: Studio
x: 28075
"y": 26850
offset_y: 35
outline:
- - 26250
- 25200
- - 29900
- 25200
- - 29900
- 28500
- - 26250
- 28500
Um jetzt ein zusätzliches Skript aufzurufen, müssen wir ein paar Parameter im YAML Code ergänzen. Diese fügen wird direkt unterhalb der vorherigen Eintragungen ( bei euch demnach nach euren Räumen mit den Koordinaten ) ein.
Die Parameter fan_speed_saugen, fan_speed_wischen, mop_intensity_saugen. mop_intensity_wischen, sind nach den zuvor ausgelesenen Attributen aus den Entwicklerwerkzeugen einzusetzen. Bitte nicht einfach kopieren, denn jeder Roborock Roboter hat hier unter Umständen andere Namen in den Attributen!
- name: UG Saugen & Wischen
icon: mdi:layers-triple
selection_type: ROOM
max_selections: 10
run_immediately: false
variables:
fan_speed_saugen: max
fan_speed_wischen: "off"
mop_mode: standard
mop_intensity_saugen: "off"
mop_intensity_wischen: standard
service_call_schema:
service: script.sauge_und_wische_dynamisch
service_data:
vacuum_entity: "[[entity_id]]"
segments: "[[selection]]"
saugen: true
wischen: true
mop_mode_entity: select.roborock_s8_pro_ultra_mop_modus
mop_intensity_entity: select.roborock_s8_pro_ultra_wisch_intensitat
fan_speed_saugen: "[[fan_speed_saugen]]"
fan_speed_wischen: "[[fan_speed_wischen]]"
mop_mode: "[[mop_mode]]"
mop_intensity_saugen: "[[mop_intensity_saugen]]"
mop_intensity_wischen: "[[mop_intensity_wischen]]"
predefined_selections:
Der Eintrag run_immediately: false sorgt dafür, dass der Roboter nicht sofort beim Umschalten auf den Reiter losfährt. Ihr wählt erst die Räume und drückt dann den Start-Button.
Jetzt fehlen und bei de predefined_selections: nur noch die Räume. Hier gibt es jetzt zwei Möglichkeiten. Entweder man kopiert sich die „predefined_selections“ aus dem vorherigen Code Abschnitt, oder aber man nutzt einen YAML-Anker. Ich nutze einen YAML-Anker, um Raumdefinitionen nicht doppelt pflegen zu müssen. Das reduziert die Fehleranfälligkeit und erleichtert spätere Anpassungen.
Dazu geht an die erste Stelle mit“ predefined_selections“ im Code.

und fügt dort folgendes nach dem Doppelpunkt ein:
&seg

Dann geht zum letzten Eintrag mit „predefined_selections“, also der Blog, den ihr zuvor eingefügt hattet.

Dort fügt nun nach dem Doppelpunkt ein :
*seg
ein.

Jetzt nur noch auf „Speichern“ drücken. Und der Abschnitt nach eurem letzten „predefined_selections“ wird automatisch mit den Eintragungen aus dem oberen Abschnitt gefüllt. Das Verfahren verringert aus meiner Sicht die Fehleranfälligkeit beim Kopieren und Einfügen.

Home Assistant legt beim Speichern eine Kopie der Räume an, keine Verknüpfung. Ändert ihr später die Raumliste oben, müsst ihr den Anker erneut setzen oder die Einträge unten von Hand anpassen.
Um euch die Möglichkeit zu geben eure YAML Konfiguration der Vacuum Map Card abzugleichen, habt ihr hier nochmal den kompletten YAML Code meiner eigenen Konfiguration. Bitte beachtet, dass ihr eure eigene Raumkonfiguration erstellen müsst, da diese in meinem Setup auf unsere Raumkonfiguration in der Roborock App abgestimmt ist!
type: custom:xiaomi-vacuum-map-card
map_source:
camera: image.s8_ug_untergeschoss_custom
calibration_source:
camera: true
entity: vacuum.roborock_s8_pro_ultra
vacuum_platform: Roborock
map_modes:
- template: vacuum_clean_zone
- template: vacuum_goto
- template: vacuum_clean_segment
predefined_selections:
- id: "16"
icon:
name: mdi:broom
x: 22850
"y": 22675
label:
text: Flur
x: 22850
"y": 22675
offset_y: 35
outline:
- - 19700
- 20200
- - 26000
- 20200
- - 26000
- 25150
- - 19700
- 25150
- id: "17"
icon:
name: mdi:broom
x: 22925
"y": 26825
label:
text: Büro
x: 22925
"y": 26825
offset_y: 35
outline:
- - 19450
- 25150
- - 26400
- 25150
- - 26400
- 28500
- - 19450
- 28500
- id: "18"
icon:
name: mdi:broom
x: 28075
"y": 26850
label:
text: Studio
x: 28075
"y": 26850
offset_y: 35
outline:
- - 26250
- 25200
- - 29900
- 25200
- - 29900
- 28500
- - 26250
- 28500
- name: UG Saugen & Wischen
icon: mdi:layers-triple
selection_type: ROOM
max_selections: 10
run_immediately: false
variables:
fan_speed_saugen: max
fan_speed_wischen: "off"
mop_mode: standard
mop_intensity_saugen: "off"
mop_intensity_wischen: standard
service_call_schema:
service: script.sauge_und_wische_dynamisch
service_data:
vacuum_entity: "[[entity_id]]"
segments: "[[selection]]"
saugen: true
wischen: true
mop_mode_entity: select.roborock_s8_pro_ultra_mop_modus
mop_intensity_entity: select.roborock_s8_pro_ultra_wisch_intensitat
fan_speed_saugen: "[[fan_speed_saugen]]"
fan_speed_wischen: "[[fan_speed_wischen]]"
mop_mode: "[[mop_mode]]"
mop_intensity_saugen: "[[mop_intensity_saugen]]"
mop_intensity_wischen: "[[mop_intensity_wischen]]"
predefined_selections:
- id: "16"
icon:
name: mdi:broom
x: 22850
"y": 22675
label:
text: Flur
x: 22850
"y": 22675
offset_y: 35
outline:
- - 19700
- 20200
- - 26000
- 20200
- - 26000
- 25150
- - 19700
- 25150
- id: "17"
icon:
name: mdi:broom
x: 22925
"y": 26825
label:
text: Büro
x: 22925
"y": 26825
offset_y: 35
outline:
- - 19450
- 25150
- - 26400
- 25150
- - 26400
- 28500
- - 19450
- 28500
- id: "18"
icon:
name: mdi:broom
x: 28075
"y": 26850
label:
text: Studio
x: 28075
"y": 26850
offset_y: 35
outline:
- - 26250
- 25200
- - 29900
- 25200
- - 29900
- 28500
- - 26250
- 28500
Praxisbeispiel
Nach der vollständigen Einrichtung lassen sich Räume über die Vacuum Map Card einfach auswählen. Wenn ich einzelne Bereiche oder mehrere Räume zu einer kombinierten Reinigung zusammenfasse, genügt ein Klick auf den jeweiligen Button. Der Roboter fährt die Bereiche nacheinander ab und führt, je nach Einstellung, Saugen und Wischen exakt in dieser Reihenfolge aus. Roborock
Diese Lösung funktioniert zuverlässig mit allen Roborock-Modellen, die von der Core-Integration unterstützt werden.
Wenn etwas nicht funktioniert
- Die Custom Map Integration lädt nicht: Home-Assistant-Version prüfen, die aktuelle Version braucht 2025.12.1 oder neuer. Außerdem muss die Core Integration vorher geladen sein, sonst die Custom Map Integration einmal neu laden.
- Die Integration findet keinen Roboter: Die Core Integration muss fertig eingerichtet sein und den Roboter anzeigen. Erst dann die Custom Map Integration hinzufügen.
- Räume lassen sich nicht anklicken: Prüfen, ob die Karte die Entität mit
_customverwendet und in der Roborock-App die richtige Karte gewählt ist. Hilft das nicht, in der Konfiguration der Custom Map Integration eine statische Konfiguration erzeugen und diese in die Karte übernehmen. Das hat bei mehreren Nutzern geholfen, aktualisiert sich aber nicht mehr automatisch bei Raumänderungen. - Die Karte zeigt nach einem Update „Label must have y property“: Das trat mit Home Assistant 2026.8 und Karte 2.4.1 auf. Übergangsweise die
label:-Blöcke in denpredefined_selectionsentfernen. Die Räume bleiben wählbar, nur die Raumnamen fehlen auf der Karte. - Das Skript bricht mit einer Fehlermeldung ab: Fast immer ein Wert, den der Roboter nicht kennt. Saugstufen, Mop-Modus und Wischintensität noch einmal in den Entwicklerwerkzeugen nachsehen und exakt so schreiben.
- Der Wischdurchgang startet nicht: Entweder war der Roboter nach zwei Stunden noch nicht zurück in der Station (den
timeoutim Skript erhöhen), oder er hat den zweiten Befehl direkt nach dem Andocken nicht angenommen. Dann hilft eine kurze Pause nach der Rückkehr und ein zweiter Sendeversuch. - Entitäten sind plötzlich nicht verfügbar: Zu viele Cloud-Abfragen in kurzer Zeit, Roborock sperrt dann die IP-Adresse vorübergehend. Eine Weile warten, nicht ständig neu laden.
- Es fehlen Räume oder sie heißen falsch: Die Raumeinteilung kommt aus der Roborock-App. Dort korrigieren, danach in der Karte Erstelle Raumkonfiguration erneut ausführen und die Liste wieder aufräumen.
Fazit
Durch die Kombination aus Roborock Core Integration, Roborock Custom Map Integration und Vacuum Map Card wird Home Assistant deutlich leistungsfähiger. Die Kartenansicht erleichtert die Steuerung im Alltag erheblich und bietet eine sehr klare Übersicht über alle Räume.
Während bei uns zu Hause meine Frau die puristische Ansicht bevorzugt, nutze ich gerne die Vacuum Map Card mit den erweiterten Funktionen. Beide Varianten haben ihre Vorteile – entscheidend ist, was im Alltag besser funktioniert. Den Blogbeitrag zu meiner alten Lösung findet ihr hier:
Blogbeitrag: Roborock in Home Assistant, Core Integration

Wer nur Räume per Automatisierung reinigen will und keine Karte braucht, kommt seit Home Assistant 2026.3 auch ohne Custom Map Integration aus: In der Vacuum-Entität unter Clean by area → Configure areas jedem Roborock-Raum einen Bereich von Home Assistant zuordnen, danach steht die Aktion vacuum.clean_area zur Verfügung. Mehr dazu in der Doku der Roborock-Integration.
Wenn du eigene Ideen oder Optimierungen hast, freue ich mich über Rückmeldungen. Ergänzende Dateien und Konfigurationen findest du wie gewohnt auf meiner Blogseite.
Häufige Fragen (FAQ)
Wie binde ich einen Roborock in Home Assistant ein?
Über die offizielle Core Integration unter Einstellungen, Geräte und Dienste, Integration hinzufügen. Die Anmeldung erfolgt per E-Mail-Adresse und Bestätigungscode.
Was brauche ich für die Kartenansicht?
Die Roborock Custom Map Integration und die Vacuum Map Card. Damit konfigurierst du die Räume und kannst sie gezielt reinigen lassen.
Was ist an der neuen Lösung besser?
Sie arbeitet mit Entitäten statt mit Geräte-IDs. Kommt ein neuer Roboter hinzu, sind keine manuellen Skriptanpassungen mehr nötig.
Kann ich einzelne Räume gezielt reinigen?
Ja. Nach sauberer Konfiguration der Räume lässt sich die Reinigung über die Karte gezielt pro Raum starten.



