[gelöst] - Berechnung - Tage zwischen Heute und Messbeginn (DateTime)

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderatoren: Cyrelian, seppy

Antworten
Benutzeravatar
Florian.Reinartz
Beiträge: 53
Registriert: 11. Apr 2022 08:47
Wohnort: bei Schwerin

[gelöst] - Berechnung - Tage zwischen Heute und Messbeginn (DateTime)

Beitrag von Florian.Reinartz »

Moin in die Runde,
ich habe "jetzt" doch angefangen alles auf openHAB 3.3 umzumodeln.
Also zweiten Raspberry und zurück auf los...
Ich habe allerdings die meisten *.ules, *.items und *.things übernommen bzw. angepasst.
Eins von zwei Rätseln möchte ich mit Eurer Hilf lösen:
In opanHAB 2.5 habe ich die Differenz zwischen heute und einem DateTime-Item (Messbeginn) in Tagen wie folgt berechnet:

Code: Alles auswählen

rule "Beginn der Messung Tasmota 043"
    when
        //Time cron "*/30 * * * * ?" or
        //Time cron "0 * * * * ?" or
        Item Tasmota043_Pool_Messbeginn received update or
        Item Tasmota043_Pool_Messbeginn changed
    then
        var dtStart  = new DateTime((Tasmota043_Pool_Messbeginn.state as DateTimeType).zonedDateTime.toInstant.toEpochMilli)
        val Diff     = now.millis - dtStart.millis
        val iDays    = (Diff / 1000 / 60 / 60 / 24).intValue                             // volle Tage
        Tasmota043_Pool_Messdauer.postUpdate(iDays)
end
In openHAB 3.3 funktioniert die Rule aber so nicht mehr!
Weiß jemand was ich ändern muss?
Danke und Gruß
Florian

PS: Muss die Signatur noch anpassen ;-)
Zuletzt geändert von Florian.Reinartz am 2. Jul 2022 13:46, insgesamt 1-mal geändert.
openHAB 3.3 auf einem Raspberry Pi 4 Model B Rev 1.1 mit 4GB

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

Re: Berechnung - Tage zwischen Heute und Messbeginn (DateTime)

Beitrag von peter-pan »

...vielleicht hilft dir dieser Schnipsel als Beispiel weiter:

Code: Alles auswählen

val vDiffNext = (Tasmota043_Pool_Messbeginn.state as DateTimeType).getZonedDateTime.getDayOfYear() - LocalDate.now.getDayOfYear()
logInfo("test","Differenz in Tagen : {}", vDiffNext)

Benutzeravatar
Florian.Reinartz
Beiträge: 53
Registriert: 11. Apr 2022 08:47
Wohnort: bei Schwerin

Re: Berechnung - Tage zwischen Heute und Messbeginn (DateTime)

Beitrag von Florian.Reinartz »

Moin,
hat funktioniert, danke.
Allerdings habe ich die Rechnung umgedreht damit ich keine negative Zahl raus bekomme (heute - Messbeginn)

Code: Alles auswählen

val vDiffNext_Tasmota043 = LocalDate.now.getDayOfYear() - (Tasmota043_Pool_Messbeginn.state as DateTimeType).getZonedDateTime.getDayOfYear()
Gruß
Florian
openHAB 3.3 auf einem Raspberry Pi 4 Model B Rev 1.1 mit 4GB

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

Re: [gelöst] - Berechnung - Tage zwischen Heute und Messbeginn (DateTime)

Beitrag von peter-pan »

...ja ist klar. Sollte nur als Beispiel herhalten. Aber Achtung bei Jahreswchsel. Da Weiss ich nicht, ob das klappt. !!! ;)

Antworten