Seite 5 von 5

Re: OH3 Rules now(DateTimeZone...

Verfasst: 9. Jan 2021 22:32
von LCN-User
int5749 hat geschrieben: 9. Jan 2021 22:01 Hast Du evtl. einen Link, wo dies im Detail beschrieben ist? Meine Suche war da nicht zielführend :-/
Ich suche einfach nach "Java 8 java.time" oder "Java 11 java.time" und lande dann z. B. hier
Java8-java.time

Re: OH3 Rules now(DateTimeZone...

Verfasst: 9. Jan 2021 23:56
von udo1toni
Tipp: Statt secondOfDay durch 60 zu teilen, solltest Du lieber pro Stunde 3600 Sekunden und pro Minute 60 Sekunden hinzurechnen, also aus 1015 (16*60 + 55) wird entsprechend 60900 (16* 3600 + 55 * 60 - oder 1015 * 60). secondOfDay ist mit Sicherheit ein Integer Wert, beim Teilen müsste openHAB dann daraus ein Float machen, das geht gerne mal schief.

Re: OH3 Rules now(DateTimeZone...

Verfasst: 10. Jan 2021 17:28
von int5749
udo1toni hat geschrieben: 9. Jan 2021 23:56 beim Teilen müsste openHAB dann daraus ein Float machen, das geht gerne mal schief.
Thanks for this note! ICh prüfe somit einfach direkt auf die Sekunde.

Aber schon kommt das nächste Problem, beim durchforsten der Rules.

Code: Alles auswählen

House_EnergyIn.deltaSince(now.withTimeAtStartOfDay, "jdbc")
Dies nutze ich zum Berechnen der verbrauchten Strommenge, aber "now.withTimeAtStartOfDay" gibt es ja auch nocht mehr.
Ich finde derzeit aber auch keine vergleichebare Funktion bei Java.time :(

Hat dies noch jemand benutzt und evtl. schon umgestellt??

Re: OH3 Rules now(DateTimeZone...

Verfasst: 10. Jan 2021 17:39
von peter-pan
int5749 hat geschrieben: 10. Jan 2021 17:28 Hat dies noch jemand benutzt und evtl. schon umgestellt??
...probier mal das:

Code: Alles auswählen

var vStartOfDay = ZonedDateTime.now().with(LocalTime.MIDNIGHT)

Re: OH3 Rules now(DateTimeZone...

Verfasst: 10. Jan 2021 20:16
von int5749
peter-pan hat geschrieben: 10. Jan 2021 17:39 ...probier mal das:

Code: Alles auswählen

var vStartOfDay = ZonedDateTime.now().with(LocalTime.MIDNIGHT)
Danke, scheint zu funktioren, auch wenn die Funktion nicht die millisekunden liefert ;)

Nur mal als Vergleich:

Werte in Datenbank im Format
2020-02-10 12:45:01.200
Funktion unter OH2

Code: Alles auswählen

now.withTimeAtStartOfDay
liefert
2021-01-10T00:00:00.000+01:00
Unter OH3 von mir gefunden aber noch nicht getestet

Code: Alles auswählen

LocalDate.now().atStartOfDay()
liefert
2021-01-10T00:00
Von PeterPan

Code: Alles auswählen

ZonedDateTime.now().with(LocalTime.MIDNIGHT)
liefert
2021-01-10T00:00+01:00[Europe/Berlin]
Da dort auch die Zeitdifferenz mit dabei ist, ist dies bisher am nächsten an OH2