Seite 1 von 1

OH3 rule springt nicht an

Verfasst: 1. Nov 2021 21:25
von exceptio
Guten Abend,

Rahmenbedingung, möchte einen Lüfter schalten in Anhängigkeit mit der Luftfeuchte aufgrund steigende Flanke. Luftfeuchte wird alle 3 Minuten ausgelesen und in eine Datenbank abgelegt. Funktioniert auch alles soweit.

Leider springt meine rule nicht an.

Code: Alles auswählen

var Zeitraum = 10 // in Minuten
var Number Unterschied = 5 // in Prozent
var Number MinDauer = 2 * 60 * 1000 // x Min * 60sek * 1000 in Millisekunden

rule "LüftungssteuerungTest"

when 
    Item BathRoom_Humidity changed
then
    var Number HumidityMin = BathRoom_Humidity.minimumSince(now.minusMinutes(Zeitraum), "influxdb").state as Number
    var Number HumidityMax = BathRoom_Humidity.maximumSince(now.minusMinutes(Zeitraum), "influxdb").state as Number
    var Number LuefterAN = BathRoom_Fan.lastUpdate.toInstant.toEpochMilli as Number
    var Number Zeit = now.toInstant.toEpochMilli as Number
    var Number Delta = HumidityMax - HumidityMin
    var Number Zeitdifferenz = Zeit - LuefterAN

    switch (BathRoom_Fan) {
        
        case ON:
            if( MinDauer > Zeitdifferenz ) 
            BathRoom_Fan.sendCommand(OFF)
            else logInfo("loggerName", "Case ON mal im log")
              
        case OFF:
            if( Delta < Unterschied )
            BathRoom_Fan.sendCommand(ON)
            else logInfo("loggerName", "Case OFF mal im log")
                                
    }    
    
end
Kann mir jemand auf die Sprünge helfen.

Grüße
Sebastian

Re: OH3 rule springt nicht an

Verfasst: 1. Nov 2021 23:57
von udo1toni
Du verwendest im Code BathRoom_Fan als Input für switch. Das ist aber ein Item. Du willst auf den Status des Items zugreifen. Also besser BathRoom_Fan.state verwenden...

Re: OH3 rule springt nicht an

Verfasst: 2. Nov 2021 14:09
von exceptio
Danke, werde ich testen.

Grüße
Sebastian