Keine Kommentare
Vergiss nie wieder die Reinigung! Smarthome-Helfer für Haushalt & Geräte

Es gibt Aufgaben im Haushalt, die man ständig vor sich herschiebt oder schlichtweg vergisst: Wann wurde die Kaffeemaschine zuletzt entkalkt? Wie viele Spülgänge hat die Spülmaschine eigentlich hinter sich? Und wie voll ist der Staubbehälter vom Roborock wirklich, wenn es dafür keinen Sensor gibt?
In diesem Beitrag zeige ich dir, wie du mit Home Assistant eine intelligente To-Do-Liste erstellst, die sich automatisch meldet, wenn es Zeit für die Wartung ist.
Das Grundkonzept: Das “To-Do” Label
Bevor wir in die Automationen springen, nutzen wir ein System, um alles übersichtlich zu behalten. Jedes Gerät oder jede Aufgabe, die überwacht werden soll, bekommt einen Helfer (Schalter) mit dem Label To-Do.
Dadurch können wir auf dem Dashboard die Auto Entities Karte nutzen, um uns nur die aktuell anstehenden Aufgaben anzeigen zu lassen.
YAML für die Auto Entities Karte:
type: custom:auto-entities
card:
type: entities
title: Aktive ToDos
show_header_toggle: false
state_color: true
filter:
include:
- options:
secondary_info: last-updated
state: "on"
label: todo
show_empty: false
sort:
method: name
1. Kaffeemaschine: Reinigung nach Bezug oder Zeit
Bei der Kaffeemaschine nutze ich zwei Kriterien: Entweder nach 20 Tassen oder spätestens nach 14 Tagen. Über Home Connect frage ich den Gesamtzähler ab und vergleiche ihn mit dem Stand der letzten Reinigung. Anhand von diesem Beispiel ist die Kaffeemaschine natürlich nur eine Art “Platzhalter”. Du kannst dieses auch mit anderen Geräten machen – je nachdem wie es passt. Ebenso – sollte klar sein – müssen die Entitäten angepasst werden!
YAML für die Kaffeemaschinen-Automation (Erinnerung für die Reinigung):
alias: Kaffeemaschine reinigen Erinnerung
description: >-
Erstellt eine To-Do, wenn 20 Kaffees seit der letzten Reinigung gemacht wurden
oder 14 Tage vergangen sind.
triggers:
- hours: /1
trigger: time_pattern
- event: start
trigger: homeassistant
actions:
- variables:
aktueller_zaehler: "{{ states('sensor.kaffeevollautomat_kaffees') | int(0) }}"
letzter_zaehler: >-
{{ states('input_number.kaffeezahlstand_bei_letzter_reinigung') | int(0)
}}
tage_seit_reinigung: >-
{% set lr = states('input_datetime.letzte_kaffeemaschinenreinigung') %}
{% if lr in ['unknown','unavailable','', None] %}
0
{% else %}
{% set lr_dt = as_datetime(lr, default=now()).astimezone() %}
{% set delta = (now().astimezone() - lr_dt).days %}
{{ delta }}
{% endif %}
kaffees_seit_reinigung: "{{ (aktueller_zaehler - letzter_zaehler) | int }}"
- if:
- condition: or
conditions:
- condition: template
value_template: "{{ kaffees_seit_reinigung >= 20 }}"
- condition: template
value_template: "{{ tage_seit_reinigung >= 14 }}"
then:
- action: input_boolean.turn_on
data: {}
target:
entity_id: input_boolean.kaffeemaschine_reinigung_notig
mode: single
Automation zum Zurücksetzen
alias: Kaffeemaschine – Reinigung bestätigt
description: Setzt Werte zurück wenn Schalter ausgeschaltet wird
triggers:
- entity_id:
- input_boolean.kaffeemaschine_reinigung_notig
to: "off"
trigger: state
actions:
- variables:
aktueller_zaehler: "{{ states('sensor.kaffeevollautomat_kaffees') | int(0) }}"
- data:
entity_id: input_datetime.letzte_kaffeemaschinenreinigung
datetime: "{{ now().isoformat() }}"
action: input_datetime.set_datetime
- data:
entity_id: input_number.kaffeezahlstand_bei_letzter_reinigung
value: "{{ aktueller_zaehler }}"
action: input_number.set_value
mode: single
2. Spülmaschine: Wash Data Integration
Für die Spülmaschine (und andere “dumme” Geräte via Zwischenstecker) ist die Custom Integration Wash Data genial. Sie lernt die Verbräuche der verschiedenen Programme und zählt die Zyklen mit.
Link zur Integration: Wash Data auf GitHub
3. Roborock: Staubbehälter voll (berechnet)
Da der Roborock keinen Sensor für den Füllstand des Behälters hat, nutzen wir die gereinigte Fläche. Ich habe festgelegt, dass nach ca. 750 m² geleert werden muss. Die Formel in der Automation prüft, ob durch die letzte Reinigung ein neuer 750er-Block angebrochen wurde.
Die Formel-Logik:

YAML für die Roborock-Automation:
alias: "Roborock: Wartungserinnerung - Staubbeutel (alle 750qm)"
description: Sendet eine Benachrichtigung an Stefan alle 750qm Reinigungsleistung.
triggers:
- entity_id: sensor.saros_10r_gesamter_reinigungsbereich
trigger: state
conditions:
- condition: template
value_template: >-
{{ (trigger.to_state.state | float(0) / 750) | int >
(trigger.from_state.state | float(0) / 750) | int }}
actions:
- data:
title: Roborock Wartung fällig
message: >
Der Saros 10 hat weitere 750m² gereinigt. Aktueller Gesamtstand: {{
states('sensor.saros_10r_gesamter_reinigungsbereich') }} m².
action: notify.mobile_app_iphone_stefan
- action: input_boolean.turn_on
metadata: {}
target:
entity_id: input_boolean.staubbehalter_entleeren
data: {}
mode: single
4. Waschmaschine: Zyklen zählen
Hier triggern wir einfach auf den Zustand “Waschen”. Wenn dieser für mindestens eine Minute ansteht, erhöht ein Helfer den Zähler um +1. Bei Erreichen von 30 Wäschen wird die Reinigungs-Erinnerung aktiviert.
YAML für die Waschmaschinen-Automation (Zähler):
alias: "Waschmaschine: Zähler & Alarm"
description: Zählt Waschgänge und aktiviert Wartungshinweis bei 30
triggers:
- entity_id:
- sensor.zeo_lite_zustand
to:
- washing
for:
hours: 0
minutes: 1
seconds: 0
trigger: state
actions:
- target:
entity_id: counter.waschmaschine_zyklen
action: counter.increment
- if:
- condition: numeric_state
entity_id: counter.waschmaschine_zyklen
above: 29
then:
- target:
entity_id: input_boolean.waschmaschine_reinigung_fallig
action: input_boolean.turn_on
mode: single
YAML für die Waschmaschinen-Automation (Reset):
alias: "Waschmaschine: Reset nach Reinigung"
description: Setzt Zähler auf 0, wenn der Wartungsschalter deaktiviert wird
triggers:
- entity_id: input_boolean.waschmaschine_reinigung_fallig
from: "on"
to: "off"
trigger: state
actions:
- target:
entity_id: counter.waschmaschine_zyklen
action: counter.reset
Du musst angemeldet sein, um einen Kommentar abzugeben.




