OpenHAB letzte Aktualisierung eines Items

Aus Laub-Home Wiki

Arbeitet man mit Sensoren oder sonstigen Werten in OpenHAB ist es vielleicht interessant zu wissen, wann ein Item das letzte mal aktualisiert wurde. Hierbei kann man darin unterscheiden wann ein Item das letzte mal aktualisiert wurde (timestamp-update) oder wann sich der Wert das letzte mal geändert hat (timestamp-change). Gerade bei MQTT Items, die Sensoren Werte abonniert haben, ist es interessant zu wissen, wann das letzte Update war. Man kann sich dann mittel Regel darüber zum Beispiel per Pushnachricht informieren lassen.

Um dieses Ziel zu erreichen brauchen wir als erstes ein Item das entweder das Datum der letzten Aktualisierung oder der Letzten Änderung ausliefert. Hierfür gibt es zwei Wege, PaperUI oder Konfigurationsdatei.

Timestamp Item via PaperUI einrichten

In Paper UI gehen wir zu unseren Things und wählen ein Thing aus, für dessen Channel wir ein Timestamp Item anlegen wollen. Ich nehme hier mein MQTT Thing. bei Link Channel wählen wir eines der Zeitstempel Profile aus. Ich habe mich hier für das Profile: "Zeitstempel bei Aktualisierung" entschieden.

Bei select Item to Link wählen wir dann "Create new item" aus:

Nun konfigurieren wir unser Item:

und speichern es mit dem "Link" Button.

Wie man nun unter Control sehen kann, sieht man hier leider nur einen Platzhalter "%s":

erst wenn man zum Beispiel in HABPanel das Ganze einbindet kann man sich das Datum anzeigen lassen:

Wie man diesen nach seinen Wünschen Formatiert findet ihr hier:

Legt man dieses Item via Konfigurations Datei an, so kann man die Ausgabe direkt formatieren.

Timestamp Item via Konfigurationsdatei einrichten

Hierfür legen wir im Konfigordner /items eine Datei mit Namen timestamp.items an. Diese sollte dann wie Folgt aussehen. Bitte hier eure Channel ID austauschen. Falls ihr die Aktualisierung nur bei Änderung haben möchtet, kann hier noch timestamp-update in timestamp-change geändert werden.

/opt/openHAB/data/openhab/conf/items/timestamp.items

DateTime  LivingroomRaspberryPi_Humidity_Timestamp  "Wohnzimmer Luftfeuchtigkeit Timestamp [%1$td.%1$tm.%1$tY %1$tH:%1$tM:%1$tS]"     {channel="mqtt:topic:8f04b8dc:Humidity" [profile="timestamp-update"]}
DateTime  LivingroomRaspberryPi_Lux_Timestamp  "Wohnzimmer Helligkeit Timestamp [%1$td.%1$tm.%1$tY %1$tH:%1$tM:%1$tS]"     {channel="mqtt:topic:8f04b8dc:Lux" [profile="timestamp-update"]}
DateTime  LivingroomRaspberryPi_Switch_Timestamp  "Wohnzimmer Licht Timestamp [%1$td.%1$tm.%1$tY %1$tH:%1$tM:%1$tS]"     {channel="mqtt:topic:8f04b8dc:Switch" [profile="timestamp-update"]}

das Ergebnis unter Control sollte dann so aussehen:

Man beachte das oben in PaperUI angelegte Timestamp Item.

Quellen