mdzio / ccu-jack

CCU-Jack bietet einen einfachen und sicheren REST- und MQTT-basierten Zugriff auf die Datenpunkte der Zentrale (CCU) des Hausautomations-Systems HomeMatic. Zudem können einfach Fremdgeräte an die CCU angebunden werden.
GNU General Public License v3.0
121 stars 12 forks source link

Unterstützung für Zeitstempel der letzten Änderung eines Datenpunktes #71

Closed ghost closed 2 years ago

ghost commented 2 years ago

Einen großen Mehrwert würde folgende Erweiterung des JSON-Objektes für einen Datenpunkt bieten: Der Zeitstempel der letzten Änderung des Wertes. Beispiel: {"ts": 1637523984902, "lc": 1637514933000, "v": true. "s": 0 }

mdzio commented 2 years ago

Die Eigenschaft ts sollte bereits den letzten Änderungszeitstempel für Gerätedatenpunkte und Systemvariablen liefern.

mdzio commented 2 years ago

Ich habe es nochmal überprüft, die Eigenschaft ts enthält den Zeitpunkt der letzten Aktualisierung des Datenpunktes. Das sind auch die Zeitstempel, die die CCU in Web-UI anzeigt.

ghost commented 2 years ago

Danke für die Überprüfung. Leider ist das bei mir jedoch nach wie vor nicht stimmig. Anbei ein Screenshot mit Web-UI CCU und CCU-Jack im Vergleich. Von einigen wenigen Geräten stimmen die Zeitpunkte - konnte jedoch keinen bestimmten Gerätetypen identifizieren, bei dem es fehlerhaft ist. Mal so und mal so. Was mir jedoch aufgefallen ist: Bei allen Geräten, bei denen der Zeitpunkt nicht passt, ist es der exakt gleiche (falsche) Zeitpunkt in der nahen Vergangenheit. screenshot

mdzio commented 2 years ago

Ich werde die Zeitstempel ebenfalls mal von weiteren Geräten bei mir prüfen. Wie sieht es bei anderen Anwendern aus?

Baxxy13 commented 2 years ago

Der Zeitstempel "letzte Änderung" in der WebUI kommt nicht vom jeweiligen Datenpunkt sondern wird mittels LastDPActionTime vom übergeordneten Kanal generiert und ändert sich nur wenn ein Datenpunkt innerhalb des Kanals eine Änderung erfahren hat.

Der Zeitstempel eines Datenpunktes Timestamp / TimestampSeconds wird immer aktualisiert wenn der Wert verändert wird und auch wenn ein unveränderter Wert (zykl. Statusmeldung) gesendet wurde.

Um es zu präzisieren: Ein Datenpunkt besitzt keinen Zeitstempel für "letzte Änderung".

mdzio commented 2 years ago

Damit ist der beobachtete Unterschied zwischen der CCU Web-UI und dem CCU-Jack erklärt. Auf Datenpunktebene kann der CCU-Jack diese Information nicht bereit stellen.