Schlagwort-Archiv: Reinigungsplan

ECOVACS Deebot – Vollautomatischer Reinigungsplan – Mit Release 2026.3

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)
ecovacs

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