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 🙂

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.

2 Gedanken zu „ioBroker Änderung von Datenpunkten per Skript überwachen und dokumentieren

  • 27. Oktober 2019 um 12:10
    Permalink

    Dumme Frage: wo genau muss der Code für den Eventhandler eingefügt werden, damit er das Update des neuen Datenpunkts triggert?

    Antwort
    • 29. Oktober 2019 um 6:15
      Permalink

      Moin,
      gibt keine Dummen Fragen 🙂

      Du legst dazu einfach ein neues JavaScript an, fügst den Code ein und aktivierst das Script.
      Schaue Dir auf jeden Fall mal folgende Artikel-Reihe an:

      ioBroker JavaScript

      Viele Grüße,
      Matthias

      Antwort

Schreibe einen Kommentar

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