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 folgende Datenpunkte 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 LastChange Datenpunkt aktualisiert:

 

Ich hoffe euch gefällt dieser Artikel. Über Kommentare unterhalb des Artikels oder per E-Mail freue ich mich wie immer 🙂

Matthias Korte

Hauptberuflich Software-Entwickler und seit einigen Jahren Smart-Home Fan. Angefangen hat alles mit einem RaspberryMatic und einer schaltbaren Steckdose. Mittlerweile habe ich einige Steckdosen, Sensoren, und Thermostate sowie ioBroker zur Visualisierung im Einsatz.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

* Die Checkbox für die Zustimmung zur Speicherung ist nach DSGVO zwingend.

Ich akzeptiere