NEWS
Wie lange keine Wertveränderung
-
Hallo Leute,
Ich hätte da mal ein Problemchen.
Aus bisher noch nicht nachvollziehbaren Gründen verliert mein IR-Lesekopf seine WLAN-Verbindung, was zur Folge hat, dass die letzten übertragenen Werte in der Visualisierung "eingefroren" sind. Damit eine neue Verbindung hergestellt wird muss ich den IR-Lesekopf vom Strom trennen und wieder verbinden. Ursachenforschung geht natürlich weiter. Übergangsweise habe ich die Stromversorgung des IR-Lesekopfes nun in den Lastkreis eines Shelly 1 Pro gesetzt. So spare ich mir im Störfall (siehe oben) den Gang in den Keller und kann die Ab- und Zuschaltung mittels Shelly 1 Pro machen.
Nun ist aber noch das Problem, dass ich ja nicht ständig online bin, um die Datenübertragung vom IR-Lesekopf zu überwachen.
Eine Abfrage des Datenpunktes, welcher im Ergebnis den Text "Online" oder "Offline" ausgibt, hatte sich als sehr unzuverlässig erwiesen. Zu Testzwecken hatte ich mir eine Pushnachricht auf's Handy schicken lassen. 95% der Meldungen waren fehlerhaft.
Meine Idee wäre nun den Datenpunkt, wird mittels mqtt übertragen, welcher den Momentanverbrauch ausgibt, zu überwachen und, würde dieser z.B. länger als 30 Sekunden keine Veränderung aufzeigen, dann das Shelly 1 Pro ausschaltet und nach 5 Sekunden wieder einschaltet.
Den letzten Part, das Schalten des Shelly 1 Pro werde ich gewiss hingekommen. Aber wie kann ich die Routine erstellen, welche prüft, wie lange die letzte Wertveränderung her ist? Ich kann ja schlecht jede Wertveränderung als Trigger nehmen und ein Skript starten, was nach 30 Sekunden ausgeführt wird wenn keine weitere Änderung erfolgt ohne dass diese Änderung neuerlich als Trigger ein Skript ausführt. Das würde ja mit angrenzender Sicherheit zu einem Überlauf und Absturz des Systems führen, oder?
Aber wie könnte man das Problem lösen?
Danke vielmals für Eure Unterstützung
Gruß
Markus -
@mathopa1973 sagte: Momentanverbrauch ausgibt, zu überwachen und, würde dieser z.B. länger als 30 Sekunden keine Veränderung aufzeigen,
-
@mathopa1973
An sich hat meines Wissensn nach jeder State einen Zeitstempel. Damit solltest du feststellen können wann der zuletzt beschrieben wurde. Ich würde dann einfach im vernünftige Abstand den TS abfragen.Kenne mich zwar mit Blockly nicht aus - aber die Info wird dort sicher auch abgreifbar sein.
-
@paul53 Danke vielmals, das werde ich als bald wie möglich mal testen. In welcher Rubrik finde ich diesen Timeout-Baustein? Bei System?
Irritierend finde ich nur das in einen Funktionsblock zusetzen, der auf eine Wertveränderung hin aktiv wird... aber der Wert sich ja in dem Moment eben nicht verändert und der Logik nach der Block nicht auszuführen wäre? Oder habe ich hier ein falsches Denken von der Wirkweise des Triggers?
Gruß
Markus -
@mathopa1973 sagte: Wert sich ja in dem Moment eben nicht verändert und der Logik nach der Block nicht auszuführen wäre?
Die Ausführung findet 30 s nach der letzten Wertänderung statt, wenn nicht vorher der Timer durch eine neue Wertänderung gestoppt und neu gestartet wurde.