In diesem Beitrag stelle ich mein vollständig automatisiertes Setup vor, mit dem ich meinen ECOVACS Deebot T10 Omni komplett lokal über Home Assistant steuere – ohne App-Zwang und ohne Cloud-Abhängigkeit.
📦 Funktionsumfang des Setups
- ✅ Plan 1 – zeitgesteuert
- ✅ Plan 2 – zeitgesteuert
- ✅ Plan 3 – Sofortstart per Button
- ✅ Raum-Mapping (Helper → Ecovacs Areas)
- ✅ Modus-Mapping (z. B. „Nur Saugen“ → „Vacuum-Only“)
- ✅ Wochentagssteuerung
- ✅ Mushroom-Dashboard zur kompletten Bedienung
Hinweis: Da verschiedene Ecovacs-Modelle unterschiedliche Area-IDs und Modusbezeichnungen nutzen, muss das Setup ggf. angepasst werden.
🖥️ Mein Dashboard
- Plan 1 & Plan 2 (jeweils Uhrzeit + Räume)
- Sofortstart (Plan 3) mit eigener Raumauswahl
- Wochentagsauswahl
- Aktueller Roboterstatus
- Action-Buttons (Pause, Stop, Dock, Start)

1️⃣ Benötigte Helfer (manuell anlegen)
Startzeiten – Plan 1 &2
input_datetime.sr_plan1_zeit
input_datetime.sr_plan2_zeit
Wochentage – Plan 1
input_boolean.sr_plan1_mo
input_boolean.sr_plan1_di
input_boolean.sr_plan1_mi
input_boolean.sr_plan1_do
input_boolean.sr_plan1_fr
input_boolean.sr_plan1_sa
input_boolean.sr_plan1_so
Wochentage – Plan 2
Analog zu Plan 1:
input_boolean.sr_plan2_mo
...
...
input_boolean.sr_plan2_so
Raumauswahl – Plan 1 / 2 / 3
Die Namen müssen exakt so heißen (X = 1, 2 oder 3):
input_boolean.sr_planX_ankleide
input_boolean.sr_planX_kueche
input_boolean.sr_planX_wohnzimmer
input_boolean.sr_planX_schlafzimmer
input_boolean.sr_planX_flur
input_boolean.sr_planX_flur_eingang
input_boolean.sr_planX_bad
input_boolean.sr_planX_buero_rene
input_boolean.sr_planX_buero_sandra
Reinigungsmodus pro Plan
input_select.sr_planX_modus
Optionen:
- Saugen & Wischen
- Nur Saugen
- Nur Wischen
- Wischen nach Saugen
2️⃣ Modus-Mapping (Dashboard → Ecovacs)
Der Deebot akzeptiert intern nur folgende Modi:
- Vacuum & Mop
- Vacuum-Only
- Mopping
- Mop after Vacuum
Das Mapping erfolgt später direkt in der Automation.
3️⃣ Raum-Mapping (Helper → Ecovacs Areas)
Da der Roboter beispielsweise nur kuche oder badezimmer versteht, müssen die Helfer entsprechend gemappt werden.
4️⃣ Automation – Zeitplan Plan 1 & Plan 2
Diese Automation enthält:
- Zeit-Trigger per
time_pattern - Wochentagsprüfung
- Raum-Reihenfolge
- Modus-Mapping
- cleaning_area_id (entscheidend!)
📜 Komplette Automation (YAML)
alias: "Staubsauger: Zeitplan Steuerung Plan 1 & 2"
description: >
Führt die Reinigung basierend auf den Dashboard-Einstellungen für Plan 1 und 2 aus.
mode: parallel
##############################################################
# ZEIT-TRIGGER – moderne & zuverlässige Methode
##############################################################
trigger:
- platform: time_pattern
minutes: "*"
seconds: 0
##############################################################
# VARIABLEN – Zeitvergleich & aktiver Plan
##############################################################
variables:
aktuelle_zeit: "{{ now().strftime('%H:%M') }}"
plan1_zeit: "{{ states('input_datetime.sr_plan1_zeit')[:5] }}"
plan2_zeit: "{{ states('input_datetime.sr_plan2_zeit')[:5] }}"
aktiver_plan: >
{% if aktuelle_zeit == plan1_zeit %}
plan1
{% elif aktuelle_zeit == plan2_zeit %}
plan2
{% else %}
none
{% endif %}
##############################################################
# CONDITIONS – nur weitermachen, wenn Plan aktiv + Wochentag aktiv
##############################################################
condition:
- condition: template
value_template: "{{ aktiver_plan != 'none' }}"
- condition: template
value_template: >
{% set tage = {
'mon': 'mo',
'tue': 'di',
'wed': 'mi',
'thu': 'do',
'fri': 'fr',
'sat': 'sa',
'sun': 'so'
} %}
{% set heute = tage[now().strftime('%a') | lower] %}
{{ is_state('input_boolean.sr_' ~ aktiver_plan ~ '_' ~ heute, 'on') }}
##############################################################
# ACTIONS
##############################################################
action:
- variables:
########################################################
# ROOM MAPPING – Helper → Ecovacs Area-ID
########################################################
area_map:
ankleide: ankleide
kueche: kuche
wohnzimmer: wohnzimmer
schlafzimmer: schlafzimmer
flur: flur
flur_eingang: flur_eingang
bad: badezimmer
buero_rene: arbeitszimmer
buero_sandra: arbeitszimmer_dg
########################################################
# DEINE gewünschte Reinigungsreihenfolge (1–9)
########################################################
sortierte_reihenfolge:
- wohnzimmer
- kueche
- bad
- schlafzimmer
- flur_eingang
- flur
- ankleide
- buero_rene
- buero_sandra
########################################################
# Räume prüfen in exakt deiner Wunschreihenfolge
########################################################
gewaehlte_bereiche: >
{% set ns = namespace(found=[]) %}
{% for helper in sortierte_reihenfolge %}
{% if is_state('input_boolean.sr_' ~ aktiver_plan ~ '_' ~ helper, 'on') %}
{% set ns.found = ns.found + [area_map[helper]] %}
{% endif %}
{% endfor %}
{{ ns.found }}
########################################################
# Reinigungsmodus lesen & korrekt mappen
########################################################
dashboard_modus: "{{ states('input_select.sr_' ~ aktiver_plan ~ '_modus') }}"
ecovacs_modus: >
{% set map = {
'Saugen & Wischen': 'Vacuum & Mop',
'Nur Saugen': 'Vacuum-Only',
'Nur Wischen': 'Mopping',
'Wischen nach Saugen': 'Mop after Vacuum'
} %}
{{ map[dashboard_modus] }}
##############################################################
# Abbrechen wenn kein Raum gewählt
##############################################################
- condition: template
value_template: "{{ gewaehlte_bereiche | count > 0 }}"
##############################################################
# Roboter-Modus setzen
##############################################################
- action: select.select_option
target:
entity_id: select.ecodeebot_reinigungsmodus_2
data:
option: "{{ ecovacs_modus }}"
##############################################################
# Reinigung starten – wichtig: cleaning_area_id
##############################################################
- action: vacuum.clean_area
target:
entity_id: vacuum.ecodeebot_2
data:
cleaning_area_id: "{{ gewaehlte_bereiche }}"5️⃣ Sofortstart – Plan 3
Plan 3 dient dem manuellen Start per Button – z. B. über das Mushroom-Dashboard.
Komplette Automation (YAML)
alias: "Staubsauger: Sofortstart Plan 3"
description: Startet sofort die Reinigung basierend auf den ausgewählten Plan-3-Bereichen.
mode: single
trigger:
- platform: event
event_type: plan3_start
action:
- variables:
# Mapping Helper → Ecovacs-Area-ID
area_map:
ankleide: ankleide
kueche: kuche
wohnzimmer: wohnzimmer
schlafzimmer: schlafzimmer
flur: flur
flur_eingang: flur_eingang
bad: badezimmer
buero_rene: arbeitszimmer
buero_sandra: arbeitszimmer_dg
# Deine gewünschte Reinigungsreihenfolge (1–9)
sortierte_reihenfolge:
- wohnzimmer
- kueche
- bad
- schlafzimmer
- flur_eingang
- flur
- ankleide
- buero_rene
- buero_sandra
# aktive Räume in definierter Reihenfolge sammeln
gewaehlte_bereiche: >
{% set ns = namespace(found=[]) %}
{% for helper in sortierte_reihenfolge %}
{% if is_state('input_boolean.sr_plan3_' ~ helper, 'on') %}
{% set ns.found = ns.found + [area_map[helper]] %}
{% endif %}
{% endfor %}
{{ ns.found }}
# Dashboard-Modus lesen
dashboard_modus: "{{ states('input_select.sr_plan3_modus') }}"
# Ecovacs-Modus korrekt mappen
ecovacs_modus: >
{% set map = {
'Saugen & Wischen': 'Vacuum & Mop',
'Nur Saugen': 'Vacuum-Only',
'Nur Wischen': 'Mopping',
'Wischen nach Saugen': 'Mop after Vacuum'
} %}
{{ map[dashboard_modus] }}
# wenn keine Räume ausgewählt → abbrechen
- condition: template
value_template: "{{ gewaehlte_bereiche | count > 0 }}"
# Modus am Roboter setzen
- action: select.select_option
target:
entity_id: select.ecodeebot_reinigungsmodus_2
data:
option: "{{ ecovacs_modus }}"
# Reinigung starten
- action: vacuum.clean_area
target:
entity_id: vacuum.ecodeebot_2
data:
cleaning_area_id: "{{ gewaehlte_bereiche }}"6️⃣ Mushroom Start-Button
type: custom:mushroom-template-card
primary: "JETZT STARTEN"
icon: mdi:play-circle
tap_action:
action: fire-dom-event
browser_mod:
event: plan3_start✅ Fazit
Dieses Setup ermöglicht:
- Vollautomatische Reinigungspläne (Plan 1 & 2)
- Manuellen Sofortstart (Plan 3)
- Frei konfigurierbare Räume & Modi
- Perfekte Ecovacs-Kompatibilität
- Komplett lokale Steuerung über Home Assistant
Kein Cloud-Zwang. Keine App. Volle Kontrolle.
Hier geht es zu weiteren Smart Home Projekten
Sieht spannend aus, werde ich mal versuchen, bei mir umzusetzen. Aufgefallen ist mir, dass bei den Helfer die beiden input_datetime.sr_plan1_zeit und input_datetime.sr_plan2_zeit nicht erwähnt wurden.
Danke für den Hinweis, habe ich noch mit aufgenommen 😁