Wartungsplan auf HA einrichten

Guten Morgen liebe Community

Wer kennt es nicht. Haushaltsgeräte oder sonstige Anlagen benötigen eine regelmässige Betreuung. Sei es den Fettfilter bei Dampfabzug oder das schon fast lebende Sieb im Geschirrspüler zu reinigen. Das sind Aufgaben, die man gerne mal vor sich herschiebt… ein paar Jahre… und dann von alleine davon läuft.

Lösungsansatz

Ein Hilfsmittel ist die Erstellung eines Wartungsplans, der dich zum entsprechenden Zeitpunkt erinnert. Du musst wissen, welches Gerät wann welche Interaktion benötigt. Was braucht es dazu?

Pro zu wartendes Gerät braucht es folgendes:

  • Ein Datetime-Helfer
  • Ein Number-Helfer
  • Ein Template-Sensor
  • Ein Template-Binary-Sensor
  • Eine Automation
  • Und bei Bedarf, eine Dashboardansicht.

Date-Time-Helfer

Dieser Helfer definiert den Tag der letzten Wartung. Wenn du die Wartungsinteraktion ausgeführt hast, setzt du hier das aktuelle Datum ein. Dieser Helfer ist die Grundlage für den Template-Sensor.

Beim Erstellen des Sensors, gibst du dem Sensor einen eindeutigen Namen. In meinem Beispiel heisst dieser "WP Geschirrspüler, Innenreinigung". WP steht für Wartungsplan. Der Helfer muss nur das Datum anzeigen.

Number-Helfer

Ich bin nicht so Fan, wenn man Variablen händisch im Code anpassen muss. Ergo versuche ich stets ein Eingabefeld für eine nachträgliche Anpassung bereitzustellen. Der Nummerhelfer definiert die Laufzeit bis zur nächsten Wartung und bildet das zweite wichtige Element für den Template-Sensor.

Dieser Sensor heisst in meinem Beispiel "WP Geschirrspüler, Siebsystem reinigen – Laufzeit". Der Minimumwert ist 0 der Maximumwert liegt bei 365 (ein Jahr). Du kannst diesen beliebig verlängern. Der Anzeigemodus ist "Eingabefeld" und die Masseinheit "Tage".

Template-Sensor

Nun erstellen wir die Sensoren. Öffne im File Editor die Configuration.yaml.

Die Formel für den Template-Sensor besteht aus drei Teilen und ist folgendermassen aufgebaut:

type: vertical-stack
cards:
  - type: entities
    entities:
      - entity: input_datetime.wp_geschirrspuler_innenreinigung
        name: Letzte Wartung
      - entity: input_number.wp_geschirrspuler_innenreinigung_laufzeit
        name: Laufzeit
      - entity: sensor.geschirrspuler_innenreinigung_ausfuhren
        name: Tage bis zur nächsten Wartung
      - entity: binary_sensor.wp_geschirrspuler_innenreinigung_ausfuhren
        name: Zustand
    title: Geschirrspüler, Innenreinigung ausführen
    show_header_toggle: false
    state_color: false
  - type: conditional
    conditions:
      - entity: binary_sensor.wp_geschirrspuler_innenreinigung_ausfuhren
        state: 'on'
    card:
      type: markdown
      content: >-
        **Anweisung**

        Der Innenbereich des Geschirrspüler ist mit einem Reinigungsmittel zu
        reinigen. Nach Abschluss der Arbeit ist das Wartungsdatum zu
        aktualisieren.

Wenn du Fragen hast, melde dich einfach bei mir.

2 „Gefällt mir“

Geschirrspüler Innenreinigung? Was ist das denn? 😀

Aber sehr cool gemacht, danke fürs teilen :)

@matmen, danke. 😊

Ich bezog letzten August meine neue Wohnung. Da wurde auch einen riesigen Stapel an Betriebshandbücher abgegeben (also pro Gerät einen). Der Plan im Beispiel stammt aus dem Betriebshandbuch vom Geschirrspüler und dort wird die periodische Innenreinigung des Geräts vorgegeben. In Echt kaufst du ein spezielles Reinigungsmittel und lässt die Maschine einmal leer laufen. Natürlich mit dem Reinigungsmittel drin. Damit wird der Innenraum von kleinem Belag und Verschmutzung entfernt. Dieser setzt sich bereits beim Besteckkorb leicht an. Von allen meinen Geräten erstellte ich sieben Wartungspläne.

Bin auf der Suche nach der Lösung für eigentlich das gleiche Problem auf deinen Beitrag gestoßen und wollte mal fragen, ob sich auch etwas universeller implementieren lässt. Da ich sehr neu auf dem Gebiet bin, verzeih bitte, falls das nach meinen (folgenden) Vorstellungen überhaupt nicht geht oder ich üble Denkfehler gemacht habe - dann schreibt mir das gerne.

Input-Elemente für den Helper:

  • “Terminserie”`: Dropdown-Liste mit den Optionen “ja” und “nein”.
  • “Intervallzahl”`: Nummerneingabe für die Anzahl, alle wieviele Tage/Monate/Stunden etc.
  • “Wiederholungstyp”`: Dropdown-Liste mit den Optionen “Minuten”, “Stunden”, “Tage”, “Wochen”, “Monate”, “Jahre”.
  • “Intervallart”`: Dropdown-Liste mit den Optionen “Manuell” und “Automatisch”

Die Berechnung an sich wird vermutlich einleuchtend sein. Mit der Intervallart möchte ich unterscheiden, ob das nächste Event erst nach Bestätigung der Wartung berechnet werden soll oder ob die Regelmäßigkeit ganz automatisch weiterlaufen soll (wie beispielsweise bei einem Müllabfuhrplan).

Und das wäre natürlich dann geil, direkt als Typ “Serienevent” beim Erstellen eines Helpers auszuwählen.

Der Ausgabewert des Helpers soll eigentlich auch hier nur der Zeitpunkt der Wartung sein. Bei Manuell soll demnach auch ein Termin in der Vergangenheit möglich sein, um überfällige Events darstellen zu können.

Verstrick ich mich da oder kann sowas funktionieren?
Grüße und danke schon mal

Hast du auch ein Beispiel für den Template Sensor
und Template-Binär-Sensor ?
Ich kann nicht ganz herausfinden, wie das geht.

gr.
Henk

ich habe das script genau so bei config.yaml eingefügt und da ich noch keine templates hatte, eine zeile höher noch tamplate: gesetzt… jetzt sagt er mir aber, integration cards: not found

wieso?