DSL-Rule - Period.between -Fehlermeldung

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

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

Re: DSL-Rule - Period.between -Fehlermeldung

Beitrag von peter-pan »

Muss dir ehrlich sagen, ich habs noch nicht verstanden was Lolodomo genau meint.
Ich bin ja kein Programmierer, aber sind das nicht Methoden ("between") einer Java Date Time Funktion ? Oder so ähnlich.

Sollte das so bleiben, gäbe es wohl kein "between" mehr, oder ? Das beträfe ja dann wohl alle !?
Pi5/8GB(PiOS Lite 64-bit(trixie)/SSD 120GB - OH5.1.4 openhabian
(Test openHAB 5.2.0-SNAPSHOT - Build #5309 - RPi 5/8 / M.2 SSD)

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

Re: DSL-Rule - Period.between -Fehlermeldung

Beitrag von udo1toni »

Nein, das bleibt nicht so.
Offensichtlich wird das between (fälschlich) als Schlüsselwort erkannt, weil es an anderer Stelle ein Schlüsselwort ist.
Eventuell ist der Fix schon im aktuellen Nightly enthalten, oder es dauert noch ein paar Tage...
openHAB5.1.3 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime - LXC, 4 Kerne, 3 GByte RAM)
Hostsystem Proxmox VE 9.1.6 - AMD Ryzen 5 3600 6 Kerne, 12 Threads - 64 GByte RAM - ZFS Pools: Raid Z1, 3 x 20 TB HDD -> 40 TByte und Raid Z0-Mirrored 4 x 1 TByte NVMe -> 2 TByte

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

Re: DSL-Rule - Period.between -Fehlermeldung

Beitrag von peter-pan »

...Danke für die Erläuterung. In #5309 war es auf jeden Fall noch nicht drin. Ich melde mich wieder, wenn ich eine Veränderung feststelle.
Pi5/8GB(PiOS Lite 64-bit(trixie)/SSD 120GB - OH5.1.4 openhabian
(Test openHAB 5.2.0-SNAPSHOT - Build #5309 - RPi 5/8 / M.2 SSD)

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

Re: DSL-Rule - Period.between -Fehlermeldung

Beitrag von peter-pan »

...hab grad nochmal im internat. Forum gelesen.
Nadahar hat einen Workaround gepostet (Potenz-Zeichen).
Hab's gleich ausprobiert ... und es klappt !!!
Pi5/8GB(PiOS Lite 64-bit(trixie)/SSD 120GB - OH5.1.4 openhabian
(Test openHAB 5.2.0-SNAPSHOT - Build #5309 - RPi 5/8 / M.2 SSD)

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

Re: DSL-Rule - Period.between -Fehlermeldung

Beitrag von udo1toni »

Also var diff = Period.^between(endofCentury, just)?
openHAB5.1.3 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime - LXC, 4 Kerne, 3 GByte RAM)
Hostsystem Proxmox VE 9.1.6 - AMD Ryzen 5 3600 6 Kerne, 12 Threads - 64 GByte RAM - ZFS Pools: Raid Z1, 3 x 20 TB HDD -> 40 TByte und Raid Z0-Mirrored 4 x 1 TByte NVMe -> 2 TByte

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

Re: DSL-Rule - Period.between -Fehlermeldung

Beitrag von peter-pan »

..ja, genau.
.rules

Code: Alles auswählen

rule "Datum testen_test"
  when
//    Item Dummy_blind changed to "100"
    Item Dummy_11 changed to ON
     
  then

    var LocalDate endofCentury = LocalDate.of(2000, 01, 01)
    var LocalDate just = LocalDate.now()

    var diff = Period.^between(endofCentury, just)
   logInfo("datediff", "diff between  Years: {}  Months: {} Days: {} - diff ist {}", diff.getYears, diff.getMonths, diff.getDays, diff)

   val heute   = now.toLocalDate
   val abholTag = (Spring_Start_Met.state as DateTimeType)
              .getZonedDateTime(ZoneId.systemDefault)
              .toLocalDate
   val delta = ChronoUnit.DAYS.^between(heute, abholTag)
   logInfo("datediff-delta", "delta between  Years: {}  Months: {} Days: {} - diff ist {}", delta)

end
Funktioniert übrigens auch mit OH5.1.4
Pi5/8GB(PiOS Lite 64-bit(trixie)/SSD 120GB - OH5.1.4 openhabian
(Test openHAB 5.2.0-SNAPSHOT - Build #5309 - RPi 5/8 / M.2 SSD)

Antworten