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
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.
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.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet
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?
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.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian