Hallo, ich hätte da mal ein Problem:
Ich lese über ModBus den Unix Timestamp meiner Heizungsanlage …angeboten wird er als U32 Unixzeit_high und U32 Unixzeit_Low und sieht so aus:
Kann mir einer den Weg weisen wie ich unter php da jetzt Datum & Uhrzeit im Klartext herausbekomme? Die grundsätzliche Verwendung von ‚date(‚d-m-Y H:i:s‘, $value)‘ ist nicht das Problem …wie baue ich den High und Low Wert zusammen?
Gruß, Michael
…vielleicht ist es nicht ganz rüber gekommen: das System bietet einen Low und einen High Teil des Unix Timestamps an… die müssen meines Verständnisses erst zusammengebaut werden bevor ich ein Profil drauf los lassen kann (das wäre ja zu einfach gewesen :)).
Aktuell sehen die Daten so aus:
Genau das versuche ich ja zu verstehen…Danke für den Link! Obwohl er mir grad nicht die zündende Idee bringt … da sich beide Werte im von mir abgefragtes 5sek Takt deutlich ändern passt auch die Idee, dass einmal das Datum, einmal die Zeit gesendet wird nicht wirklich…
Hi,
ist „Status emulieren“ bei einer Variablen die du nur lesen kannst überhaupt sinnvoll? Wenn man die DWORDs als TimeStamp interpretiert kommt man ins Jahr 2011. Was sagt denn das Handbuch der Heizungsanlage dazu?
Wenn die aufeinander folgen, kann man auch die nächst größere Gruppe in Symcon als Datentyp auswählen. Also statt zwei Wörter einzeln zu lesen, stattdessen ein REAL. (vier Byte)
Was sagt denn der Herstellersupport? Ist eine Nischenfrage, aber irgendwer dort wird das Thema hoffentlich kennen.
Ich habe auch gerade eine API-Merkwürdigkeit bei Viessmann in Klärung, die haben immerhin einen (in Worten: einen) Experten für sowas. Vielleicht hast du bei deinem Hersteller auch Glück.
Einerseits frage ich mich, warum den den Unixtimestamp (bis ca. 2037 nur 32 bit) als 64bit auslesen musst, andererseits, kannst du entsprechend dann von DWORD 32bit auf xyz 64bit umstellen. Dann werden automatisch zwei Adressen ausgelesen. Die Umwertung (sprich welche Adresse du dann ggf. einstellen musst, gibt es in entsprechenden Tabellen).