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
Grüße
Sebastian