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:
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
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:
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
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.