Zeitstempel DateTime +2:00
-
- Beiträge: 33
- Registriert: 24. Jan 2020 08:15
- Wohnort: Wien
Zeitstempel DateTime +2:00
Hallo zusammen,
ich sehe schon wieder den Wald vor lauter Bäumen nicht. Ich hab schon mit hilfe der Suche einiges gefunden, jedoch komme ich auf keinen grünen Zweig
Ich habe einen Zeitstempel als DateTime _Item mit dem Wert (2022-04-16T17:30:19+2:00), lokale Zeit ist aber 19:30.
Wie kann ich dieses Datum und Uhrzeit in der Sitemap (OH 3.1) richtig (16.04.2022 19.30) anzeigen lassen?
Danke im Voraus!
ich sehe schon wieder den Wald vor lauter Bäumen nicht. Ich hab schon mit hilfe der Suche einiges gefunden, jedoch komme ich auf keinen grünen Zweig
Ich habe einen Zeitstempel als DateTime _Item mit dem Wert (2022-04-16T17:30:19+2:00), lokale Zeit ist aber 19:30.
Wie kann ich dieses Datum und Uhrzeit in der Sitemap (OH 3.1) richtig (16.04.2022 19.30) anzeigen lassen?
Danke im Voraus!
Symptome behandeln ist eigentlich nie eine gute Idee. Du kannst versuchen, ob Du mit dem Profile Offset etwas ausrichten kannst, aber ich fürchte, das wird eher nur für gewöhnliche Zahlen geeignet sein. Es wird also eher auf ein JavaScript Script hinauslaufen, welches Du dann als Profile einbindest.
Über eine Rule kannst Du den Inhalt eines Items zwar ändern, aber bei der nächsten Änderung müsste die Rule ja wieder auslösen. Da die Rule selbst aber das Item ändert, hättest Du eine Endlosschleife. Also müsstest Du ein zweites Item dafür anlegen.
Auszug aus meinem Log:
Mein Datumsitem vom Typ DateTime zeigt also die korrekte lokale Zeit an und zeigt zusätzlich an, um wieviel die Zeit von UTC abweicht, während bei Dir offensichtlich UTC plus Abweichung angezeigt wird. Mein erster Verdacht wäre eine Konfiguration im Shelly. openHAB behandelt alle Datums/Uhrzeitangaben gleich.
konkretes Rechnen mit DateTimeType:
Die Rule triggert, wenn sich der Status des Eingangsitems ändert Daraufhin prüft die Rule, ob der Status vom Typ DateTimeType ist. Ist das nicht der Fall, bricht die Rule ab (da es sonst zu einer nullPointerException kommt).
Ist alles schick, so setzt es die lokale Konstante auf den Zeitstempel, allerdings als ZonedDateTime, das ist das Java Time Äquivalent.
Anschließend wird das Ausgangsitem mit diesem Wert beschrieben, allerdings werden dabei zwei Stunden aufaddiert.
In JavaScript wird das ähnlich funktionieren, da müsste ich aber erst mal stöbern. Aber wie gesagt, vermutlich liegt hier ein Konfigurationsfehler im Shelly vor. Es wäre weitaus sinnvoller, an dieser Stelle anzusetzen.
Gehe zur vollständigen AntwortÜber eine Rule kannst Du den Inhalt eines Items zwar ändern, aber bei der nächsten Änderung müsste die Rule ja wieder auslösen. Da die Rule selbst aber das Item ändert, hättest Du eine Endlosschleife. Also müsstest Du ein zweites Item dafür anlegen.
Auszug aus meinem Log:
Code: Alles auswählen
2022-04-17 11:43:33.155 [vent.ItemStateChangedEvent] - Datum changed from 2022-04-17T11:41:33.152+0200 to 2022-04-17T11:43:33.152+0200
2022-04-17 11:45:33.155 [vent.ItemStateChangedEvent] - Datum changed from 2022-04-17T11:43:33.152+0200 to 2022-04-17T11:45:33.152+0200
konkretes Rechnen mit DateTimeType:
Code: Alles auswählen
rule "plus zwei Stunden"
when
Item MeinDateTimeInput changed
then
if(!(MeinDateTimeInput.state instanceof DateTimeType))
return;
val theDate = (MeinDateTimeInput.state as DateTimeType).getZonedDateTime
MeinDateTimeOutput.postUpdate(theDate.plusHours(2))
end
Ist alles schick, so setzt es die lokale Konstante auf den Zeitstempel, allerdings als ZonedDateTime, das ist das Java Time Äquivalent.
Anschließend wird das Ausgangsitem mit diesem Wert beschrieben, allerdings werden dabei zwei Stunden aufaddiert.
In JavaScript wird das ähnlich funktionieren, da müsste ich aber erst mal stöbern. Aber wie gesagt, vermutlich liegt hier ein Konfigurationsfehler im Shelly vor. Es wäre weitaus sinnvoller, an dieser Stelle anzusetzen.
- udo1toni
- Beiträge: 13982
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Zeitstempel DateTime +2:00
Wenn openHAB korrekt konfiguriert ist, sollte die Uhrzeit direkt richtig angezeigt werden. Ist das nicht so?
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 33
- Registriert: 24. Jan 2020 08:15
- Wohnort: Wien
Re: Zeitstempel DateTime +2:00
Wie erkenne ich ob es richtig konfiguriert ist?
Zeitstempel zb. vom Astro-Binding werden korrekt angezeigt, Uhrzeit der Logfiles ist auch richtig. Der falsche Zeitstempel kommt aber von einem Shelly Motion.
Zeitstempel zb. vom Astro-Binding werden korrekt angezeigt, Uhrzeit der Logfiles ist auch richtig. Der falsche Zeitstempel kommt aber von einem Shelly Motion.
- udo1toni
- Beiträge: 13982
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Zeitstempel DateTime +2:00
Wenn die Zeit im Log stimmt, ist das schon mal ein gutes Zeichen. Bleibt die Frage, warum die Zeit dann falsch angezeigt wird. Auf Anhieb fällt mir da leider erst mal nicht s ein.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 33
- Registriert: 24. Jan 2020 08:15
- Wohnort: Wien
Re: Zeitstempel DateTime +2:00
...anders gefragt - wie kann ich per Rule zu dem DateTime _Item 2 Stunden addieren? Wenn Ja - Wie?
Danke und LG
Danke und LG
- udo1toni
- Beiträge: 13982
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Zeitstempel DateTime +2:00
Symptome behandeln ist eigentlich nie eine gute Idee. Du kannst versuchen, ob Du mit dem Profile Offset etwas ausrichten kannst, aber ich fürchte, das wird eher nur für gewöhnliche Zahlen geeignet sein. Es wird also eher auf ein JavaScript Script hinauslaufen, welches Du dann als Profile einbindest.
Über eine Rule kannst Du den Inhalt eines Items zwar ändern, aber bei der nächsten Änderung müsste die Rule ja wieder auslösen. Da die Rule selbst aber das Item ändert, hättest Du eine Endlosschleife. Also müsstest Du ein zweites Item dafür anlegen.
Auszug aus meinem Log:
Mein Datumsitem vom Typ DateTime zeigt also die korrekte lokale Zeit an und zeigt zusätzlich an, um wieviel die Zeit von UTC abweicht, während bei Dir offensichtlich UTC plus Abweichung angezeigt wird. Mein erster Verdacht wäre eine Konfiguration im Shelly. openHAB behandelt alle Datums/Uhrzeitangaben gleich.
konkretes Rechnen mit DateTimeType:
Die Rule triggert, wenn sich der Status des Eingangsitems ändert Daraufhin prüft die Rule, ob der Status vom Typ DateTimeType ist. Ist das nicht der Fall, bricht die Rule ab (da es sonst zu einer nullPointerException kommt).
Ist alles schick, so setzt es die lokale Konstante auf den Zeitstempel, allerdings als ZonedDateTime, das ist das Java Time Äquivalent.
Anschließend wird das Ausgangsitem mit diesem Wert beschrieben, allerdings werden dabei zwei Stunden aufaddiert.
In JavaScript wird das ähnlich funktionieren, da müsste ich aber erst mal stöbern. Aber wie gesagt, vermutlich liegt hier ein Konfigurationsfehler im Shelly vor. Es wäre weitaus sinnvoller, an dieser Stelle anzusetzen.
Über eine Rule kannst Du den Inhalt eines Items zwar ändern, aber bei der nächsten Änderung müsste die Rule ja wieder auslösen. Da die Rule selbst aber das Item ändert, hättest Du eine Endlosschleife. Also müsstest Du ein zweites Item dafür anlegen.
Auszug aus meinem Log:
Code: Alles auswählen
2022-04-17 11:43:33.155 [vent.ItemStateChangedEvent] - Datum changed from 2022-04-17T11:41:33.152+0200 to 2022-04-17T11:43:33.152+0200
2022-04-17 11:45:33.155 [vent.ItemStateChangedEvent] - Datum changed from 2022-04-17T11:43:33.152+0200 to 2022-04-17T11:45:33.152+0200
konkretes Rechnen mit DateTimeType:
Code: Alles auswählen
rule "plus zwei Stunden"
when
Item MeinDateTimeInput changed
then
if(!(MeinDateTimeInput.state instanceof DateTimeType))
return;
val theDate = (MeinDateTimeInput.state as DateTimeType).getZonedDateTime
MeinDateTimeOutput.postUpdate(theDate.plusHours(2))
end
Ist alles schick, so setzt es die lokale Konstante auf den Zeitstempel, allerdings als ZonedDateTime, das ist das Java Time Äquivalent.
Anschließend wird das Ausgangsitem mit diesem Wert beschrieben, allerdings werden dabei zwei Stunden aufaddiert.
In JavaScript wird das ähnlich funktionieren, da müsste ich aber erst mal stöbern. Aber wie gesagt, vermutlich liegt hier ein Konfigurationsfehler im Shelly vor. Es wäre weitaus sinnvoller, an dieser Stelle anzusetzen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 33
- Registriert: 24. Jan 2020 08:15
- Wohnort: Wien
Re: Zeitstempel DateTime +2:00
Danke udo1toni für Deine Zeit und Hilfe, funktioniert bestens!
LG Merlin
LG Merlin