smarthome-tricks.de

ioBroker Änderung von Datenpunkten per Skript überwachen und dokumentieren

In diesem Artikel zeige ich Dir, wie ich die Anzeige der letzten Aktualisierung von Sensordaten implementiert habe. Meine bestehenden Sensoren auf ESP8266-Basis (Temperatur, Luftdruck und Luftfeuchtigkeit) liefern die gemessenen Daten per MQTT oder per HTTP-Request direkt an ioBroker. Bis jetzt hatte mir dabei immer der Zeitpunkt der letzten Aktualisierung gefehlt. Dies kann jedoch ganz einfach mittels einem Skript erledigt werden.

Im folgenden Beispiel wird der Wert eines Sensors per HTTP-Request (SimpleAPI) an ioBroker übertragen. Dazu habe ich die folgenden eigenen Datenpunkte im Bereich „Datenpunkte.0“ angelegt.

Ich möchte nun nach einer Aktualisierung der Temperatur den Datenpunkt „LastChange“ mit dem aktuellen Datum und Uhrzeit versehen. Dazu gehen wir nun in den Bereich Skripts und erstellen uns ein neues Skript:

Mit dem folgenden Code definieren wir einen Event-Handler, der nach einer Änderung des Datenpunktes „Datenpunkte.0.SensorData.ZimmerSensorA.Temperatur“ ausgeführt werden soll. Der EventHandler ermitteln den aktuellen TimeStamp (Datum und Uhrzeit) und schreibt diesen per setState() in den angegebenen Datenpunkt.


on({id: "Datenpunkte.0.SensorData.ZimmerSensorA.Temperatur", change: "any"}, function (obj) 
{ 
  setState('Datenpunkte.0.SensorData.ZimmerSensorA.LastChange', formatDate(new Date(obj.state.ts), "TT.MM.JJJJ hh:mm:ss")); 
});

Wenn wir jetzt den Sensorwert aktualisieren wird auch direkt der Datenpunkt „Datenpunkte.0.SensorData.ZimmerSensorA.LastChange“ aktualisiert:

 

So einfach können wir uns jetzt den Zeitpunkt der letzten Änderung eines Wertes in einen eigenen Datenpunkt schreiben. Ich hoffe euch gefällt dieser Artikel. Über Kommentare unterhalb des Artikels oder per E-Mail freue ich mich wie immer 🙂

Die mobile Version verlassen