Ich möchte hier mein fertiges Setup vorstellen, mit dem ich meinen ECOVACS Deebot T10 Omni vollständig über Home Assistant steuere.
Das System beinhaltet:
-
Plan 1 (Zeitgesteuert) -
Plan 2 (Zeitgesteuert) -
Plan 3 (Sofortstart über Button) -
Raum‑Mapping (Helper → Ecovacs‑Areas) -
Modus‑Mapping (z.B. „Nur Saugen“ → „Vacuum‑Only“) -
Wochentag‑Steuerung -
Mushroom‑Dashboard für die komplette Bedienung
Da viele Ecovacs‑Modelle andere Area‑IDs und andere Modus‑Bezeichnungen verwenden, ist eine Anpassung nötig.
Mein Dashboard
Das Dashboard besteht aus:
-
Plan 1 & Plan 2 (jeweils Zeit + Räume)
-
Sofortstart Plan 3 mit eigener Raumauswahl
-
Wochentagsauswahl
-
Aktueller Status
-
Action‑Buttons (Pause, Stop, Dock → Start)
1. Benötigte Helfer (alle manuell anlegen)
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:
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
(X = 1, 2 oder 3)
Reinigungsmodus pro Plan
input_select.sr_planX_modus
Mit den Optionen:
Saugen & Wischen
Nur Saugen
Nur Wischen
Wischen nach Saugen
2. Ecovacs Modus → internes Mapping
Der Deebot akzeptiert nur:
Vacuum & Mop
Vacuum-Only
Mopping
Mop after Vacuum
Dazu später im Code der passende Mapper.
3. Raum‑Mapping auf Ecovacs Areas
Der Roboter versteht z. B.:
kuche
badezimmer
arbeitszimmer
arbeitszimmer_dg
Daher müssen wir Hilfsvariablen → Ecovacs‑Areas zuordnen.
4. Plan 1 & Plan 2 – komplette Zeitplan‑Automatisierung
Diese Version enthält:
-
Zeit‑Trigger per
time_pattern(moderne HA‑Methode) -
Wochentags‑Mapping
-
Bereichs‑Mapping
-
Ecovacs‑Modus‑Mapping
-
cleaning_area_id(sehr wichtig!) -
startet den Roboter genau zur eingestellten Zeit
Komplette Automation für Plan 1 & 2
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
Für manuelles Starten per Button.
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. Start‑Button (Mushroom)
type: custom:mushroom-template-card
primary: "JETZT STARTEN"
icon: mdi:play-circle
tap_action:
action: fire-dom-event
browser_mod:
event: plan3_start
7. Fazit
Dieses Setup erlaubt:
-
vollautomatische Reinigungspläne (Plan 1 & 2)
-
manuellen Sofortstart (Plan 3)
-
frei konfigurierbare Räume
-
frei wählbaren Reinigungsmodus
-
perfekte Kompatibilität mit Ecovacs
-
vollständig konfigurierbares Dashboard
Und das Ganze ohne App‑Cloud, komplett lokal über Home Assistant.


