Haushaltsgeräte verfolgen (Geschirrspüler, Waschmaschine, Wäschetrockner…)

Überwachung des Verbrauchs und der Zyklen des Geschirrspülers

Um den Zustand, die Dauer, den Verbrauch und die Kosten der Zyklen meines Geschirrspülers genau zu verfolgen, habe ich im Home Assistant eine Reihe von Sensoren und Automatisierungen eingerichtet. So habe ich Schritt für Schritt vorgegangen.

1. Zustandssensor des Geschirrspülers

Ich habe einen benannten Sensor erstellt sensor.etat_lave_geschirr die es mir ermöglicht, den aktuellen Zustand des Geräts zu erfahren: Aus, Wache oder Laufen. Dieser Zustand wird in Abhängigkeit von der verbrauchten Leistung bestimmt, gemessen durch sensor.lave_geschirr_power, die von einer angeschlossenen Steckdose stammt.

Empirisch habe ich folgende Schwellenwerte festgelegt:

  • Aus : weniger als 1 W
  • Wache : zwischen 1 W und 20 W
  • Laufen : mehr als 20 W
Geschirrspüler ausgeschaltet

Aus

Geschirrspüler im Standby-Modus

Wache

Geschirrspülmaschine läuft

Laufen

Hier ist das Template, das ich in meine Datei aufgenommen habe: templates.yaml um diesen Sensor zu erstellen:

- name: Einzelnes "Staatsgeschirrspüler"_id: sensor.etat_lave_geschirr state: > {% set power = states('sensor.lave_geschirr_power') | float(0) %} {% if power < 1 %} Aus {% elif power < 20 %} Wache {% else %} Laufen {% endif %} Icon: > {% if is_state('sensor.etat_lave_geschirr', 'Gelöscht') %} mdi:power-plug-off {% elif is_state('sensor.etat_lave_geschirr', 'Veille') %} mdi:sleep {% elif is_state('sensor.etat_lave_geschirr', 'In Bewegung') %} mdi:dishwasher {% else %} mdi:help-circle {% endif %}

2. Sensoren für Zyklusbeginn und -ende

Um die Start- und Endzeiten des letzten Zyklus aufzuzeichnen, habe ich zwei Sensoren vom Typ input_datetime via Einstellungen/Geräte und Dienste/Einträge :

  • input_datetime.letzter_cycle_lave_geschirr_debut
  • input_datetime.letzter_cycle_lave_geschirr_fin

Diese Sensoren sind im Format Datum und Uhrzeit.

3. Verbrauchssensoren zu Beginn und am Ende des Zyklus

Um den Energieverbrauch während eines Zyklus zu berechnen, habe ich zwei Sensoren vom Typ input_number :

  • input_number.letzter_cycle_lave_geschirr_conso_au_debut : erfasst den Verbrauch in kWh zu Beginn des Zyklus.
  • input_number.letzter_cycle_lave_geschirr_conso_a_la_fin : erfasst den Verbrauch in kWh am Ende des Zyklus.

Ich habe 1000000 als Höchstwert festgelegt (wir werden sehen).

4. Zykluszeitsensor

Dieser Sensor berechnet die Zyklusdauer in Stunden und Minuten basierend auf den aufgezeichneten Start- und Endzeiten. Hier ist das Template, das in templates.yaml :

- name: "Dauer Wasch-Geschirr-Zyklus" einzigartig_id: sensor.duree_cycle_lave_geschirr state: > {% set start = states('input_datetime.letzter_cycle_lave_geschirr_debut') %} {% set end = states('input_datetime.letzter_cycle_lave_geschirr_fin') %} {% if start not in ['unknown', 'unavailable', 'none', 'None'] and end not in ['unknown', 'unavailable', 'none', 'None'] %} {% set start_t = as_timestamp(strptime(start, ')%Y-%m-%d %H:%M:%S') %} {% set end_t = as_timestamp(strptime(end, ')%Y-%m-%d %H:%M:%S') %} {% if end_t < start_t %} Laufender Zyklus {% else %} {% set total_seconds = end_t - start_t %} {% set hours = (total_seconds // 3600) | int %} {% set minutes = ((total_seconds % 3600) // 60) | int %} {{ "%dhd" | format(hours, minutes) }} {% endif %} {% endif %} Icon: mdi:clock-outline

5. Zyklusverbrauchssensor

Dieser Sensor berechnet den gesamten Zyklusverbrauch in kWh, wobei der Verbrauch zu Beginn von dem Verbrauch am Ende abgezogen wird. Es berücksichtigt auch Fälle, in denen der Zähler zurückgesetzt wurde.

- name: "Consumer Cycle Geschirrspüler" einzigartig_id: sensor.consumation_cycle_lave_geschirr unit_of_measurement: "kWh" device_class: energy state_class: measurement state: > {% set debut = states('input_number.letzter_cycle_lave_geschirr_conso_au_debut') | float(0) %} {% set fin = states('input_number.letzter_cycle_lave_geschirr_conso_a_la_fin') | float(0) %} {% set Verbrauch = Ende - Anfang %} {% if Verbrauch < 0 %} 0 {% else %} {{ Verbrauch | round(3) }}} {% endif %} Icon: mdi:lightning-bolt-circle

6. Zykluskostensensor

Zur Berechnung der Zykluskosten verwende ich einen Sensor, der den Verbrauch in kWh mit dem in definierten kWh-Preis multipliziert. input_number.Preis_manuel_du_kwh. Hier das Template:

- name: "Kosten Wasch-Geschirr-Zyklus" einzigartig_id: sensor.cout_cycle_lave_geschirr unit_of_measurement: "€" device_class: monetary state: > {{ states('sensor.consumation_cycle_lave_geschirr') | float(0) * states('input_number.prix_manuel_du_kwh') | float(0) | round(4) }} icon: mdi:currency-eur

7. Laufender Zyklussensor

Um Fehler bei der Erkennung zu vermeiden, habe ich einen Sensor vom Typ input_boolean :

  • input_boolean.cycle_lave_geschirr_en_Kurs : Gibt an, ob ein Zyklus im Gange ist.

8. Automatisierungen für die Zyklusverfolgung

Schließlich habe ich drei Automatisierungen geschaffen, um:

  • Erkennen des Beginns eines Zyklus und Aufzeichnen des Verbrauchs und der Startzeit.
  • Erkennen des Endes eines Zyklus und Aufzeichnen des Verbrauchs und der Endzeit.
  • Nachverfolgung zurücksetzen, wenn der Zyklus 6 Stunden überschreitet (Sicherheit).
alias: Geschirrspüler-Zyklus - Beginn Beschreibung: "" Trigger: - entity_id: - sensor.etat_lave_geschirr to: Zu Fuß Trigger: state from: Aus für: hours: 0 Minuten: 0 Sekunden: 20 Bedingungen: - Bedingung: state entity_id: input_boolean.cycle_lave_geschirr_en_cours state: "off" alias: Wenn Sie nicht bereits einen laufenden Zyklus Aktionen: - Aktion: input_boolean.turn_on target: entity_id: input_boolean.cycle_lave_geschirr_en_Kursdaten: {} alias: Laufender Zyklus wechselt zu ON - Aktion: input_number.set_value data: entity_id: input_number.letzter_cycle_lave_geschirr_conso_au_debut value: "{{ states('sensor.lave_geschirr_energy') | float }}" alias: Speichern Sie den Wert der conso kWh am Anfang - Aktion: input_datetime.set_datetime data: entity_id: input_datetime.letzter_cycle_lave_geschirr_debut datetime: "{{ now().strftime(')%Y-%m-%d %H:%M:%S') }}" Alias: Uhrzeit und Datum des Zyklusbeginns speichern alias: Geschirrspüler-Zyklus - Ende Beschreibung: "" Trigger: - Trigger: numeric_state entity_id: - sensor.lave_geschirr_power for: hours: 0 Minuten: 5 Zweite: 0 Below: 20 Bedingungen: - Bedingung: state entity_id: input_boolean.cycle_lave_geschirr_en_cours state: „On“-Aktionen: - Aktion: input_number.set_value data: entity_id: input_number.letzter_cycle_lave_geschirr_conso_a_la_fin value: "{{ states('sensor.lave_geschirr_energy') | float }}" alias: Conso am Ende speichern - Aktion: input_datetime.set_datetime data: entity_id: input_datetime.letzter_cycle_lave_geschirr_fin datetime: "{{ now().strftime(')%Y-%m-%d %H:%M:%S') }}" Alias: Zeit und Datum des Zyklusendes sichern - Aktion: input_boolean.turn_off target: entity_id: input_boolean.cycle_lave_geschirr_en_Kursdaten: {} alias: Deaktivieren Laufender Zyklus alias: Geschirrspüler-Zyklus - Zyklus zu lang Beschreibung: "Flag zurücksetzen, wenn der Zyklus 6h überschreitet" Trigger: - platform: state entity_id: input_boolean.cycle_lave_geschirr_en_cours to: "on" for: "06:00:00" Aktion: - Dienststelle: input_boolean.turn_off target: entity_id: input_boolean.cycle_lave_geschirr_en_Kurs

Erstellung einer speziellen Ansicht für Haushaltsgeräte

Um den Zustand und die Daten meines Geschirrspülers deutlich sichtbar zu machen, habe ich im Home Assistant eine personalisierte Karte erstellt. Mit dieser Karte kann ich die verbrauchte Leistung, den Zustand des Geräts und die Informationen über den letzten Zyklus in Echtzeit verfolgen. Hier ist das Endergebnis und eine detaillierte Erläuterung des verwendeten Codes.

Geschirrspüler-Tracking-Karte im Home Assistant

Erläuterung des Kartencodes

Der folgende Code definiert eine in Abschnitte gegliederte Ansicht, um Informationen zu meinem Geschirrspüler anzuzeigen. Nachstehend eine Beschreibung der einzelnen Elemente:

Typ: max_columns-Abschnitte: 4 Titel: Elektro-Pfad: Elektro-Icon: mdi:washing-machine Abschnitte: - Typ: Grid Cards: - Typ: Heading Heading: Geschirrspülmaschine heading_style: title icon: mdi:dishwasher

Erläuterung: Dieser Abschnitt definiert eine Ansicht namens "Electro" mit einem Waschmaschinensymbol. Der Haupttitel des Abschnitts ist "Geschirrspüler", der mit einem Geschirrspülersymbol angezeigt wird. Die Struktur ist vom Typ Grid, wodurch die Karten in einem flexiblen Raster angeordnet werden können.

      - Typ: custom:button-card entity: sensor.etat_lave_geschirr name: Geschirrspüler show_state: true show_icon: true color_type: Icon Styles: Card: - height: 183px Zustand: - value: Eingeschaltet color: "#1e90ff" Stile: Icon: - Animation: blink 2s ease infinite - operator default color: "#49556c" grid_options: Columns: 6 Rows: 3

Erläuterung: Diese Karte verwendet die Komponente custom:button-card um den aktuellen Zustand des Geschirrspülers anzuzeigen (sensor.etat_lave_geschirr). Sie zeigt sowohl das Symbol als auch den Status an. Wenn der Geschirrspüler „Ein“ ist, blinkt das Symbol blau (#1e90ff). Ansonsten bleibt es grau (#49556c). Die Karte nimmt 6 Spalten und 3 Zeilen im Raster ein.

      - Typ: gauge entity: sensor.lave_geschirr_power min: 0 needle: true severity: Grün: 0 yellow: 60 Red: 1700 grid_options: Columns: 6 Rows: 3 name: Einheitsleistung: W max: 1800

Erläuterung: Diese Karte ist ein Typ-Indikator gauge (Gauge), die die aktuelle Leistung des Geschirrspülers anzeigt (sensor.lave_geschirr_power). Das Messgerät ist von 0 W bis 1800 W abgestuft, mit Farbfeldern, die den Schweregrad anzeigen: grün für niedrigen Verbrauch, gelb für mäßigen Verbrauch und rot für hohen Verbrauch. Das Messgerät nimmt auch 6 Spalten und 3 Zeilen im Raster ein.

      - Typ: custom:mushroom-entity-card entity: input_datetime.letzter_cycle_lave_geschirr_debut icon_color: light-green name: Start grid_options: Columns: 4 Rows: 1 Layout: senkrecht

Erläuterung: Diese Karte verwendet die Komponente custom:mushroom-entity-card um die Startzeit des letzten Zyklus anzuzeigen (input_datetime.letzter_cycle_lave_geschirr_debut). Das Symbol ist hellgrün und die Karte vertikal angeordnet. Es nimmt 4 Spalten und 1 Zeile im Raster ein.

      - Typ: custom:mushroom-entity-card entity: input_datetime.letzter_cycle_lave_geschirr_fin icon_color: red name: "Ende" grid_options: Columns: 4 Rows: 1 Layout: senkrecht

Erläuterung: Diese Karte zeigt die Endzeit des letzten Zyklus (input_datetime.letzter_cycle_lave_geschirr_fin). Das Symbol ist rot, um die Sichtbarkeit zu erhöhen. Es nimmt 4 Spalten und 1 Zeile im Raster ein.

      - Typ: custom:mushroom-entity-card entity: sensor.duree_cycle_lave_geschirr icon_color: orange name: Dauer grid_options: Columns: 4 Rows: 1 Layout: senkrecht

Erläuterung: Diese Karte zeigt die Dauer des letzten Zyklus (sensor.duree_cycle_lave_geschirr). Das Symbol ist orange und die Karte vertikal angeordnet. Es nimmt 4 Spalten und 1 Zeile im Raster ein.

      - Typ: custom:mushroom-entity-card icon_color: light-green name: Conso Letzter Entity-Zyklus: sensor.consumation_cycle_lave_geschirr

Erläuterung: Diese Karte zeigt den Energieverbrauch des letzten Zyklus (sensor.consumation_cycle_lave_geschirr). Das Symbol ist hellgrün. Sie verwendet die Standardeinstellungen für die Größe im Raster.

      - Typ: custom:mushroom-entity-card icon_color: light-green name: Letzter Entity-Zyklus: sensor.cout_cycle_lave_geschirr

Erläuterung: Diese Karte zeigt die Kosten des letzten Zyklus (sensor.cout_cycle_lave_geschirr). Das Symbol ist ebenfalls hellgrün. Sie verwendet die Standardeinstellungen für die Größe im Raster.

      - Typ: custom:apexcharts-card header: Show: true title: Leistung (letzte 7 Tage) show_states: true colorize_states: true graph_span: 7d Serie: - entity: sensor.lave_geschirr_power name: " " apex_config: Chart: height: 450 stroke: curve: Stepline

Erläuterung: Diese Karte verwendet die Komponente custom:apexcharts-card um eine Grafik der in den letzten 7 Tagen verbrauchten Leistung anzuzeigen (sensor.lave_geschirr_power). Das Diagramm ist eingefärbt und zeigt die Zustände an. Die Grafikhöhe ist für eine bessere Lesbarkeit auf 450 Pixel festgelegt.

Vorteile dieser Ansicht

  • Zentralisierung von Informationen : Alle spülmaschinenrelevanten Daten sind an einem Ort zusammengefasst, was die Nachverfolgung erleichtert.
  • Klare Visualisierung : Personalisierte Karten und Farben ermöglichen eine schnelle Unterscheidung zwischen Status und wichtigen Daten.
  • Echtzeit-Tracking : Die Leistungsaufnahme und der Zustand des Geräts werden in Echtzeit aktualisiert.
  • Erreichbare Historie : Die Grafik zeigt die Entwicklung des Verbrauchs über eine Woche.

Diese Ansicht ist ideal, um den Verbrauch und die Nutzung meines Geschirrspülers wirksam zu überwachen und gleichzeitig die Energiekosten im Auge zu behalten.