Seite 4 von 4

Re: OH3 Beleuchtung rule

Verfasst: 20. Jan 2021 21:56
von SIDE22
hab die regel aktuell über datei in openhab hab diese im ordner rules mit dem namen beleuchtung.rules
die regel funktioniert ja nur der timer abbruch nicht.. habe die variante von Thomas auch mal getestet mit dem fals licht 100% infolog kommt wohl aber timer wird nicht abgebrochen.
wüsste auch nicht wo man in OH3 die timer variable global definieren könnte.

hiernochmal die rule die ich aktuell nutze als datei

Code: Alles auswählen

var Timer tGarten = null
var Timer tTreppe = null

rule "Treppenhaus Bewegung erkennen"
when
    Item Treppe_Melder1 received update ON or
    Item Treppe_Melder2 received update ON or
    Item Garten_Melder1 received update ON or
    Item Garten_Melder2 received update ON or
    Item Test_Switch received update ON
then
val licht = triggeringItemName.split("_").get(0)                       // "Garten" oder "Treppe"
val Licht = gLichter.members.filter[i|i.name.contains(licht)].head     // gLichtGarten oder gLichtTreppe
if(Licht.state != 100) {                                               // Licht nicht in Dauerbetrieb
    if(licht != "Garten") {                                            // falls nicht Garten
        if(gHelligkeit.state < 60) {                                   // falls dunkel
            gLichtTreppe.sendCommand(25)                               // entsprechendes Licht auf 25%
            tTreppe?.cancel                                            // Timer abbrechen
            tTreppe = createTimer(now.plusSeconds(30),[|               // Timer anlegen
                gLichtTreppe.sendCommand(0)                            // Licht aus
            ])
        }
    } else if(licht == "Garten") {                                     // falls Garten
        if(gHelligkeitOUT.state < 110) {                               // falls dunkel
            gLichtGarten.sendCommand(95)                               // entsprechendes Licht auf 95%
            tGarten?.cancel                                            // Timer abbrechen
            tGarten = createTimer(now.plusSeconds(60),[|               // Timer anlegen
                gLichtGarten.sendCommand(0)                            // Licht aus
            ])
        }
    }
}
end

LG
Florian