Xiaomi Aqara Sensor Aktualisierung protokollieren

In diesem kleinen Artikel zeige ich Dir, wie Du die letzte Aktualisierung des Xiaomi Aqara Sensors protokollieren kannst. 

In folgendem Artikel habe ich bereits erklärt, wie ich die Xiaomi auch ohne Gateway in ioBroker einbinden und betreiben kann. Derzeit wird leider noch nicht der letzte Aktualisierungszeitpunkt des Sensors als Datenpunkt im Zigbee-Adapter geführt. Aus diesem Grund schreiben wir uns heute dafür ein kleines Script, mit dem wir per JavaScript selber den aktuellen Zeitpunkt ermitteln und in einem separaten Datenpunkt ablegen.

 

Im ersten Schritt legen wir uns dafür einen eigenen Datenpunkt in den Objekten an.

 

Im nächsten Schritt kopieren wir uns die Objekt-IDs des neuen Datenpunktes sowie des zu beobachtenden Datenpunktes aus dem Zigbee-Adapter:

Zu beobachtender Datenpunkt:

zigbee.0.00158d000245ad9e.temperature

Datenpunkt für die Protokollierung:

Datenpunkte.0.SensorInfos.Zigbee.OutdoorTempHumidity.LastChange

 

Diese beiden Datenpunkte sollten wir uns in einer Textdatei zwischenspeichern, da wir sie für den nächsten Schritt im Bereich der Skripte benötigten. Wir wechseln nun also in den Bereich der Skripte und legen ein neues JavaScript mit folgendem Inhalt an:


on({id: "zigbee.0.00158d000245ad9e.temperature", change: "any"}, function (obj) {
var TimeStamp = formatDate(new Date(obj.newState.ts), "TT.MM.JJ hh:mm");
setState('Datenpunkte.0.SensorInfos.Zigbee.OutdoorTempHumidity.LastChange', TimeStamp );
});

Die Objekt-ID des zu überwachenden Datenpunktes müssen wir natürlich an den eigenen Datenpunkt anpassen. Im Skript erstellen wir uns einen Eventhandler, der bei der Veränderung des Datenpunktes „zigbee.0…..temperature“ anspringt und den in der Funktion definierten JavaScript-Code ausführt. Die Funktion liest das Änderungsdatum aus dem Datenpunkt aus und formatiert es in das Format „TT.MM.JJ hh:mm“. Das formatierte Datum wird dann per setState-Funktion in den Datenpunkt geschrieben.

Nach dem wir das Script angepasst haben können wir es nun direkt starten. Bei mir wurde dann nach 10 Minuten der Datenpunkt aktualisiert und somit auch das Datum der letzten Änderung in den Datenpunkt geschrieben.

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.

4 Gedanken zu „Xiaomi Aqara Sensor Aktualisierung protokollieren

  • Pingback: Xiaomi Smart-Home Sensoren und Aktoren – smarthome-tricks.de

  • 7. Dezember 2020 um 22:02
    Permalink

    Habe leider keine Ahnung von Java Script, das scheint aber die einzige Lösung zu sein um Wert „Lastupdated“ im Aquara Temperatur Sensor auszuwerten. Kann ich da irgendwie ein blockly dran stricken für den Event Handler ?

    Antwort
    • 8. Dezember 2020 um 7:20
      Permalink

      Moin, beschreib doch mal bitte genauer, was Du genau damit vor hast. Vielleicht ist das auch für andere Leser interessant 🙂
      LG Matthias

      Antwort
  • 8. Dezember 2020 um 17:02
    Permalink

    Hi,
    habe gesehen das der Datenpunkt automatisch gesetzt wird, dachte das muss man irgendwie triggern.Echt sehr praktisch.

    Ich lasse mir von Alexa meine Temperaturen der einzelnen Sensoren vorlesen.
    Draussen, 1 Etage , Dachgeschoss etc.
    Mache ich öffters um zu bewerten ob meine Heizung richtig eingestellt ist.
    Ist aber dann nur sinvoll wenn man weiss wann der Wert ausgelesen worden ist.
    Sollte ich jetzt aus dem Datenpunkt extrahieren können da mich eigentlich nur die Uhrzeit interessiert.
    Wenn man das natürlich im Script noch umzubauen ist nehme ich das gerne auch.

    Gruß
    HDM

    Antwort

Schreibe einen Kommentar

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