Fehler in Rule

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

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

Re: Fehler in Rule

Beitrag von udo1toni »

Puh. Auf Anhieb sehe ich jetzt keinen Fehler. Du könntest versuchen, die Fehlerursache etwas einzukreisen, z.B. indem Du nicht now.withDate() verwendest, sondern new DateTime.withDate(). Notfalls könntest Du diesen Faktor in eine Konstante auslagern, also so:

Code: Alles auswählen

val nAdvStart = new DateTime.withDate(now.year,11,26).getDayOfYear
Natürlich innerhalb der Rule, also als lokale Konstante.
Du könntest natürlich auch direkt das DateTime Objekt füllen:

Code: Alles auswählen

val nAdvStart = new DateTime(now.year,11,26,0,0).getDayOfYear
Die beiden letzten Werte sind dann für Stunde und Minute.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

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

Re: Fehler in Rule

Beitrag von peter-pan »

SaschaQ hat geschrieben: 6. Nov 2020 18:47 Woran liegt das?
Ich hatte grad etwas Zeit :D ...
Warscheinlich meinst du:

Code: Alles auswählen

now.withDate(now.getYear,11,26).getDayOfYear
bzw. die ganze Rule:

Code: Alles auswählen

rule "Weihnachtsbeleuchtung Anfang November bis Mitte Januar"
when
    Item ws_daemmerung changed
then
    if((now.getDayOfYear > now.withDate(now.getYear,11,26).getDayOfYear || now.getDayOfYear < 16)) {
        if(ws_daemmerung.state == OPEN) { 
            au_terrasse_st.sendCommand(ON)
            au_eingang_st.sendCommand(ON)
			au_garten_brightness.sendCommand(70)
			au_vorgarten_brightness.sendCommand(70)
        } else {
            au_eingang_st.sendCommand(OFF)
            au_terrasse_st.sendCommand(OFF)
        }
    }
end
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

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

Re: Fehler in Rule

Beitrag von udo1toni »

Sollte eigentlich beides gehen. Unter OH3 sieht das anders aus, wie ich gestern gelesen habe - ausprobiert habe ich noch nicht... unter OH3 gibt es eh kein joda...
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

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

Re: Fehler in Rule

Beitrag von peter-pan »

udo1toni hat geschrieben: 7. Nov 2020 12:06 Sollte eigentlich beides gehen
Hab's mit einer kleinen Rule ausprobiert. Aber irgendwie will's nicht klappen.
Rule:

Code: Alles auswählen

rule "Weihnachtsbeleuchtung Anfang November bis Mitte Januar test if-Bedingung"
when
    Item Dummy_4 changed to ON
then
   var vDayOfYear = now.getDayOfYear
   var vYear1 = now.year()  // auch ohne Klammern das gleiche Ergebnis
   var vYear2 = now.withDate(now.getYear,11,26).getDayOfYear //.toString("yy.mm.dd")

logInfo("datumtest1", "day of the year is {} - vYear2 {} ", vDayOfYear, vYear2)
logInfo("datumtest1", "day of the year is vYear1 {} ",  vYear1)
end
Das Ergebnis im Logger:

Code: Alles auswählen

2020-11-07 12:59:10.887 [INFO ] [se.smarthome.model.script.datumtest1] - day of the year is 312 - vYear2 331 
2020-11-07 12:59:10.890 [INFO ] [se.smarthome.model.script.datumtest1] - day of the year is vYear1 Property[year] 
Die Variable "vYear1 bringt als Ergebnis "Property[year]". gibt's da noch etwas, was man machen muss ?

Da ich ja Dank deiner Hilfe auch mal in OH3 reingeschnuppert habe und auch eine kleine Rule zum Umwandeln eines Datums erstellt habe, habe ich das auch feststellen dürfen, dass es keine Joda-Time mehr gibt. Aber mehr dazu (vor allem Fragen) an anderer Stelle.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

Antworten