ioBrokerioBroker Tutorials

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.

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

  • Alex

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

    Antwort
    • Matthias Korte

      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
  • Hi,

    hätte da auch eine „dumme“ Frage.

    Gibt es in der ähnlichen Ausführung auch eine Möglichkeit, Textwerte aus einem anderen Datenpunkt auszulesen, diese umzubenennen und dann in einen eigenen Datenpunkt zu schreiben?

    Hintergrund ist, ich habe einen Datenpunkt wo mir der letzte Motionsensor der Bewegung gemeldet hat, ausgegeben wird. Nun war meine Überlegung, diesen Wert in den Namen der dazugehörigen Alexa umzuschreiben um mir dann evtl. Meldungen in dem Raum ausgeben zu lassen, wo gerade die letzte Bewegung erkannt wurde.

    Gruß Jan

    Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.