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