OH3 Rules now(DateTimeZone...

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Benutzeravatar
sihui
Beiträge: 1827
Registriert: 11. Apr 2018 19:03
Answers: 21

Re: OH3 Rules now(DateTimeZone...

Beitrag von sihui »

Hoggle hat geschrieben: 28. Dez 2020 10:41 Würde mich sehr über nen Link oder über eine Erleuchtung hier im Forum freuen.
Release Notes:

https://github.com/openhab/openhab-distro/releases

Runterscrollen bis "Rules":
Rules now use Java Time API instead of Jodatime so some expressions need to be adapted:

getHourOfDay → getHour, getMinuteOfHour → getMinute, getMonthOfYear → getMonthValue
Some simple >and < comparisons may no longer work and you may need to use isAfter()/isBefore() instead.
See also this thread for more information.
openHAB3 mit Zwave, Alexa, ESPEasy, MQTT, Logitech Harmony, Philips HUE und ZigBee Hardware auf Proxmox VE.

EmptySoft
Beiträge: 247
Registriert: 7. Jan 2020 14:45
Answers: 2
Kontaktdaten:

Re: OH3 Rules now(DateTimeZone...

Beitrag von EmptySoft »

Ich bin jetzt nicht so der Java Mensch (deswegen tue ich mir mit OpenHAB etwas schwerer), aber gehe davon aus, dass sie jetzt ein anderes Time Library verwenden, deswegen ändern sich ein paar Dinge. In meinem speziellen Fall war es keine Timer, sondern einfache Zeitberechnungen in Rules (für die Pool Steuerung)
BYe
Harald

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: OH3 Rules now(DateTimeZone...

Beitrag von peter-pan »

Hallo Harald,
ich bin auch kein IT-ler. Soweit ich das verstanden habe wird nicht mehr mit der Joda-Time-Funktion gearbeitet sondern mit einer Funktion, die sich ZonedDateTime nennt. Und in dieser Funktion lauten die Methoden zur Verarbeitung etwas anders und man muss halt etwas andere Parameter benutzen.

Leider ist es nicht immer so einfach, wie "aus getHourOfDay wird getHour" ;) . Ich bin da eher der Praktiker und probier's dann halt mit "Trial and Error". Und wenn mich ein Problem eines "Mitstreiters" interessiert, ich vielleicht auch mal von der Lösung partizipieren kann und vor allem helfen kann(will), dann setz' ich mich auch mal 'ne Stunde oder zwei hin und tüftle an einer Lösung herum.
Viel Spass noch weiterhin.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

EmptySoft
Beiträge: 247
Registriert: 7. Jan 2020 14:45
Answers: 2
Kontaktdaten:

Re: OH3 Rules now(DateTimeZone...

Beitrag von EmptySoft »

Lieber peter-pan
peter-pan hat geschrieben: 29. Dez 2020 01:24 Ich bin da eher der Praktiker und probier's dann halt mit "Trial and Error". Und wenn mich ein Problem eines "Mitstreiters" interessiert, ich vielleicht auch mal von der Lösung partizipieren kann und vor allem helfen kann(will), dann setz' ich mich auch mal 'ne Stunde oder zwei hin und tüftle an einer Lösung herum.
Ja das mit dem Trial an Error praktiziere ich auch sehr oft. Und als Programmiersprache spreche ich Copy and Paste :D

Vielen Dank für Deine Hilfe, hat mir echt sehr geholfen.
BYe
Harald

Chaosmax
Beiträge: 20
Registriert: 29. Dez 2020 12:29
Answers: 0

Re: OH3 Rules now(DateTimeZone...

Beitrag von Chaosmax »

habe ein Problem mit der Zeitkonvertierung und leider zu wenig Ahnung von openhab 3 und java etc. Vielleicht kann mir jemand helfen.
In einer Mail möchte die letzte Statusveränderung eines items angeben.

Das funktioniert mit "item.lastUpdate" auch wunderbar. Das Ergebnis ist nur etwas unübersichtlich "2020-12-30T04:04:06.945+01:00[Europe/Berlin]" Gerne hätte ich "30.12.2020".

Iich habe nun schon Stunden gegoogelt und mit "Trial and Error" versucht, bekomme es aber nicht hin.
Hat hier jemand eine Lösung? Danke!

violine21
Beiträge: 600
Registriert: 20. Sep 2019 05:49
Answers: 7

Re: OH3 Rules now(DateTimeZone...

Beitrag von violine21 »

Chaosmax hat geschrieben: 30. Dez 2020 12:00Das funktioniert mit "item.lastUpdate" auch wunderbar. Das Ergebnis ist nur etwas unübersichtlich "2020-12-30T04:04:06.945+01:00[Europe/Berlin]" Gerne hätte ich "30.12.2020".
Ich habe gerade mein OH3-Testsystem nicht am Start, daher ungetestet. Aber versuch es mal mit einer Datumsformatierung:

Code: Alles auswählen

item.lastUpdate("dd.MM.YYYY")

Chaosmax
Beiträge: 20
Registriert: 29. Dez 2020 12:29
Answers: 0

Re: OH3 Rules now(DateTimeZone...

Beitrag von Chaosmax »

Leider bringt das nicht das gewünschte Ergebniss, ist aber vielleicht ein kleiner Schritt in die richtige Richtung. Zumindest bricht die Regel nicht komplett ab.

Als Ergebniss kommt aber "null" (klein geschrieben) als Datum raus und im Log steht

Code: Alles auswählen

2020-12-30 15:38:15.105 [WARN ] [nce.extensions.PersistenceExtensions] - There is no queryable persistence service registered with the id 'dd.MM.YYYY'
hier nochmal der item aus der rule

Code: Alles auswählen

Ladevorgang1.lastUpdate("dd.MM.YYYY")

Benutzeravatar
udo1toni
Beiträge: 15243
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: OH3 Rules now(DateTimeZone...

Beitrag von udo1toni »

Also, der Trick dürfte an dieser Stelle sein, die DateTime Antwort über den Formatter zu setzen. Das Problem dabei ist, dass sich ja gerade im Zusammenhang mit DateTime erhebliche Änderungen ergeben haben...
Im Zweifel müsste es aber in diese Richtung gehen:

Code: Alles auswählen

String::format("dd.MM.yyyy",item.lastUpdate)
Es kann aber sein, dass item.lastUpdate zuerst noch in eine andere Form gebracht werden muss.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Benutzeravatar
peter-pan
Beiträge: 2758
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: OH3 Rules now(DateTimeZone...

Beitrag von peter-pan »

Ich hab mal ein bisschen "gespielt" und auf der Basis von Udo's Vorlage eine Möglichkeit herausbekommen:

Code: Alles auswählen

  val vDate1 = String::format("Letzte Änderung am: %1$td.%1$tm.%1$tY",radiator_valve_01_next_change.lastUpdate.toLocalDate())
  logInfo("test","last Update war um: {}", vDate1)
  val vDate2 = String::format("Letzte Änderung am: %1$td.%1$tm.%1$tY",radiator_valve_01_next_change.lastUpdate)
  logInfo("test","last Update war um: {}", vDate2)
Beide Varianten liefern:

Code: Alles auswählen

2021-01-01 19:31:57.097 [INFO ] [org.openhab.core.model.script.test  ] - last Update war um: Letzte Änderung am: 01.01.2021
2021-01-01 19:31:57.108 [INFO ] [org.openhab.core.model.script.test  ] - last Update war um: Letzte Änderung am: 01.01.2021
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Benutzeravatar
udo1toni
Beiträge: 15243
Registriert: 11. Apr 2018 18:05
Answers: 242
Wohnort: Darmstadt

Re: OH3 Rules now(DateTimeZone...

Beitrag von udo1toni »

Genau... war zu früh... bzw. zu spät...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Antworten