"Keep alive"- Überwachung für Zählerstandvariablen, z.B. des 3EM

  • ©2022 Stefan K. (alias 66er) - ausführlicher Hinweis dazu am Ende der Anleitung

    Alle Rechte vorbehalten!


    Entwickelt und getestet auf Shelly 3EM


    Hallo liebe Shelly- und Homematic-Freunde. :)

    Heute möchte ich Euch mein Projekt "Shelly-Zählerüberwachung" vorstellen.

    Wie kam es zu diesem Projekt?

    Schon vor längerem wurde ich von gmt94 darauf angesprochen, dass es schön wäre die Variablen des 3EM "auf Wachstum" zu überwachen. Damals war der Shelly 3EM zwar online, änderte aber seine Werte nicht mehr. Inzwischen ist das auch bei einem meiner 3 Shelly 3EM passiert. Das war dann nochmal ein Anstoß über das Thema nachzudenken und tatsächlich fand ich einen Weg

    • die Zählerstandsvariablen zu überwachen
    • das oben beschriebene Szenario zu erkennen
    • einen Reboot automatisch auszulösen
    • Erfolg oder Misserfolg zu visualisieren
    • Das Ergebnis kann beliebig weiterverarbeitet werden mit Homematic
    • Die Umsetzung funktioniert für alle Variablen mit stetig steigenden Werten für alle Shelly der Gen.1 und Gen.2

    Die Umsetzung legt 2 neue Variablen (je Umsetzung) automatisch an. Davon arbeitet Eine im Hintergrund und die 2. wird dem Kanal Eures Gerätes automatisch vom Skript zugeordnet. Letzteres sieht dann so aus:

    SV Zustand 0.PNG


    In der Umsetzung geht es um die Variable unten rechts und die letzte Abfrage war erfolgreich. ;)

    Ein Tageszähler wird zwar täglich zurückgesetzt, doch auch dazu gibt es eine Lösung. :thumbup: Dazu später mehr. (Hier braucht es etwas mehr Aufwand als bei Verbrauchswerten ohne wiederholte Rücksetzung auf den Wert "0")

    Und nun geht's los. :)

    __________________________________________________________________________________

    ©2022 Stefan K. (alias 66er) - ausführlicher Hinweis dazu am Ende der Anleitung

    Alle Rechte vorbehalten!

  • ©2022 Stefan K. (alias 66er) - ausführlicher Hinweis dazu am Ende der Anleitung

    Alle Rechte vorbehalten!


    Die Umsetzung:

    Eure Arbeit besteht eigentlich nur aus dem gewissenhaften Ausfüllen des Setup im Skript und der Anlage bzw. Erweiterung eines Programms.

    Das Intervall für das Ausführen des Skriptes muß in jedem individuellen Fall so gewählt werden, dass sich der Zählerstand im Regelfall geändert / erhöht hat!

    Anders ausgedrückt,

    • je geringer der Verbrauchswert steigt, desto länger sollte das Intervall gewählt werden.
    • da wir hier keine Meßwerteauswertung im eigentlichen Sinn betreiben (z.B für Diagramme), sondern nur die Funktion des Shelly überwachen, sollte i.d.R eine Prüfung 1 bis 2 mal am Tag ausreichen.
      (Natürlich kann das jeder für sich erntscheiden.)

    Wie arbeitet das Skript?

    Für die zu überwachende Variable wird (im Hintergrund) automatisch eine Backupvariable angelegt und mit aktualisierten Werten / Abfrage befüllt.

    • Steigt der Wert bis zur nächsten Abfrage ist alles in Ordnung und die Variable im Kanal bleibt auf Ihrem Status "erfolgreich"

    SV Zustand 0.PNG

    • Bleibt der Wert bei der nächsten Abfrage unverändert wird zunächst nur der Status in der Variablen geändert, denn gerade bei kleineren Verbräuchen kann das ja vorkommen

    SV Zustand 1.PNG

    • Ist der Wert auch nach dem 2. Durchlauf hintereinander unverändert, wird zunächst geprüft, ob der Shelly im Netzwerk erreichbar ist. Ist das der Fall, wird ein Reboot-Befehl abgesetzt

    SV Zustand 2.PNG

    • Ist der Shelly nicht im Netzwerk erreichbar oder ist im nächsten Durchlauf der Wert immer noch unverändert, so wechselt der Status auf "Reboot erfolglos".

    SV Zustand 3.PNG

    • Kommt es durch ein sonstiges Problem zu nicht plausiblen Werten wir die Variable auf "unplausibel, bitte prüfen" gesetzt

    SV Zustand 4.PNG


    Diese Informationen können nach eigener Anforderung beliebig innerhalb Homematic weiterverarbeitet werden. :) :thumbup:

    Als Beispiel kann man sich eine eMail zusenden lassen oder den Zustand wichtiger Variablen visualisieren.


    __________________________________________________________________________________

    ©2022 Stefan K. (alias 66er) - ausführlicher Hinweis dazu am Ende der Anleitung

    Alle Rechte vorbehalten!

  • ©2022 Stefan K. (alias 66er) - ausführlicher Hinweis dazu am Ende der Anleitung

    Alle Rechte vorbehalten!


    Das Programm

    Wer sicher ist, dass sich die Variable permanent ändert (den Wert erhöht) kan das Skript einfach als neue, zusätzliche DANN-Zeile im existierenden Aktualisierungsprogramm des Shelly mit einer passenden Zeitverzögerung einfügen.

    Wer seine Zähler zurücksetzt muß zeitgleich auch die temporäre Variable im Hintergrund auf 0 setzen!

    Das funktioniert am einfachsten in einem eigenen Programm:

    Programm.PNG

    Das Programm prüft 2x am Tag die Variable auf steigenden Wert und setzt der Backup-Wert um 00:05 auf 0 zurück.
    (Hinweis: 00:00 macht meiner Erfahrung nach beim Zeitmodul Probleme)

    __________________________________________________________________________________

    ©2022 Stefan K. (alias 66er) - ausführlicher Hinweis dazu am Ende der Anleitung

    Alle Rechte vorbehalten!

  • ©2022 Stefan K. (alias 66er) - ausführlicher Hinweis dazu am Ende der Anleitung

    Alle Rechte vorbehalten!


    Das Skript


    Zu guter Letzt fehlt noch das Herz des Ganzen, das Skript:


    Skript Changelog:


    V1.0.0 | 27.03.2022

    Erstveröffentlichung


    ____________________________________________________________

    Die Anleitung inkl. der Skripte und Bilder unterliegt dem Urheberrecht. Wer gegen das Urheberrecht verstößt (z.B. Bilder oder Texte unerlaubt kopiert und auf anderen Webseiten publiziert), macht sich gem. §§ 106 ff UrhG strafbar, kann zudem kostenpflichtig abgemahnt werden und muss Schadensersatz leisten (§ 97 UrhG).


    © 2022 Stefan K. (alias 66er)

    Alle Rechte vorbehalten


    ____________________________________________________________