Seite 1 von 1

Rule geht nicht nach Umstieg auf V3

Verfasst: 21. Apr 2021 21:35
von dreamar
Hallo zusammen,

ich nun endlich den Umstieg von Openhab 2 auf Version 3 gewagt. Einiges läuft auch schon, jedoch habe ich noch Probleme bei meinen Rollos.
Ich habe in Openhab2 folgende Rule

Code: Alles auswählen

when 
    Item BewegungsmelderRolloPhilips_Illuminance received update
then 
    val lux = (BewegungsmelderRolloPhilips_Illuminance.state as QuantityType<Number>).floatValue
    if (lux <= 7 && IT_Rollo_Auto_Manuell_Betrieb.state == ON && RolloAuto_Counter.state == OFF){   // Status 2 = offen
        IT_OG_Rollo_Zentral_Ab.sendCommand(ON)
        IT_EG_Rollo_Gaeste_WC_Ab.sendCommand(ON)
        IT_EG_Rollo_HWR_Fenster_Ab.sendCommand(ON)
        IT_EG_Rollo_HWR_Tuer_Ab.sendCommand(ON)
        IT_EG_Rollo_Kueche_Ab.sendCommand(ON)
        IT_EG_Rollo_Esszimmer_Ab.sendCommand(ON)
        Eingangslicht.sendCommand(ON)
        RolloAuto_Counter.sendCommand(ON)
        
        if (IT_Terrassentuer.state != "OPEN"){
            IT_EG_Rollo_Terasse_Tuer_Ab.sendCommand(ON)
            IT_EG_Rollo_Terasse_Ab.sendCommand(ON)
        } 
    }
end


Der RolloCounter ist OFF und Rollo_Auto_Manuell ist auf ON. Daher vermute ich das es an der Angabe der Helligkeit liegt. Helligkeit geht laut Log
unter 7 Lux und es passiert aber nichts weiter. Kann mir hier jemand behilflich sein?
Vielen Dank.

Re: Rule geht nicht nach Umstieg auf V3

Verfasst: 21. Apr 2021 23:18
von udo1toni
Da fehlt der Kopf der Rule.

Der untere Vergleich ist fehlerhaft, "OPEN" ist ein String, Du vergleichst aber mit einem Status. Also entwerder .state.toString mit "OPEN" vergleichen oder .state mit OPEN (ohne Anführungszeichen) vergleichen.

Re: Rule geht nicht nach Umstieg auf V3

Verfasst: 22. Apr 2021 10:03
von dreamar
Guten Morgen udotoni1,

ich habe zur Zeit folgende Regel

Code: Alles auswählen

rule "Rolos runter nach Helligkeit"  
when 
    Item BewegungsmelderRolloPhilips_Illuminance received update
then 
    val lux = (BewegungsmelderRolloPhilips_Illuminance.state as QuantityType<Number>).floatValue
    if (lux <= 7 && IT_Rollo_Auto_Manuell_Betrieb.state == ON && RolloAuto_Counter.state == OFF){   // Status 2 = offen
        IT_OG_Rollo_Zentral_Ab.sendCommand(ON)
        IT_EG_Rollo_Gaeste_WC_Ab.sendCommand(ON)
        IT_EG_Rollo_HWR_Fenster_Ab.sendCommand(ON)
        IT_EG_Rollo_HWR_Tuer_Ab.sendCommand(ON)
        IT_EG_Rollo_Kueche_Ab.sendCommand(ON)
        IT_EG_Rollo_Esszimmer_Ab.sendCommand(ON)
        Eingangslicht.sendCommand(ON)
        RolloAuto_Counter.sendCommand(ON)
        
      }
end
da ich den Terrassentürsensor noch nicht wieder am laufen habe. Unter Openhab2 läuft die Regel so

Kann man irgendwie sehen ob eine Rule angesprochen wird?

Re: Rule geht nicht nach Umstieg auf V3

Verfasst: 22. Apr 2021 14:14
von peter-pan
..klar geht das. Einfach eine "LogInfo" einbauen. Z.B.:

Code: Alles auswählen

rule "Rolos runter nach Helligkeit"  
when 
    Item BewegungsmelderRolloPhilips_Illuminance received update
then 
    logInfo("Rolos-Info","Bewegungsmelder hat sich geändert")              // Logging
    val lux = (BewegungsmelderRolloPhilips_Illuminance.state as QuantityType<Number>).floatValue
    if (lux <= 7 && IT_Rollo_Auto_Manuell_Betrieb.state == ON && RolloAuto_Counter.state == OFF) {   // Status 2 = offen
        logInfo("Rolos-Info","If-Bedingung erfüllt")                       // Logging
        IT_OG_Rollo_Zentral_Ab.sendCommand(ON)
        IT_EG_Rollo_Gaeste_WC_Ab.sendCommand(ON)
        IT_EG_Rollo_HWR_Fenster_Ab.sendCommand(ON)
        IT_EG_Rollo_HWR_Tuer_Ab.sendCommand(ON)
        IT_EG_Rollo_Kueche_Ab.sendCommand(ON)
        IT_EG_Rollo_Esszimmer_Ab.sendCommand(ON)
        Eingangslicht.sendCommand(ON)
        RolloAuto_Counter.sendCommand(ON)
       
      }
end
Es wird einmal ein Meldung ausgegeben, wenn die Rule triggert und eine zweite Meldung, wenn die If-Bedingung erfüllt ist.