Code: Alles auswählen
logInfo("lueften-test-udo.rules","Timer: Durchlauf aller Fenster")
Code: Alles auswählen
logInfo("lueften-test-udo.rules","TimOut:"+i.toString + ":" + iTimeout.toString)
Code: Alles auswählen
logInfo("lueften-test-udo.rules","Timer: Durchlauf aller Fenster")
Code: Alles auswählen
logInfo("lueften-test-udo.rules","TimOut:"+i.toString + ":" + iTimeout.toString)
Code: Alles auswählen
TimOut:MQTTSensor_Wohnzimmer_Kontakt (Type=StringItem, State=Offen, Label=Terrassentür Wohnzimmer, Category=contact, Tags=[Point], Groups=[Fenstersensoren, Fenstersensoren_Wohnzimmer, PersistentRestore]):120
Code: Alles auswählen
[...]
Fenstersensoren.members.filter[s|s.state.toString == "Offen"].forEach[i|
logInfo("lueften","Item {} wird abgearbeitet",i.name)
val tTimestamp = i.lastChange()
val strID = i.name.split("_").get(1)
val iTimeout = (Fenstersensoren_Sperrzeitfenster.members.filter[s|s.name.contains(strID)].head.state as Number).intValue
logInfo("lueften","ermittelte Timestamp {} und Timeout mit Namenteil {}",tTimestamp,iTimeout,strID)
if(iTimeout === null || tTimestamp === null) {
logWarn("lueften","Fehler beim Ermitteln des Timeout!",i)
return;
}
if(tTimestamp.plusMinutes(iTimeout).isBefore(now)) {
logInfo("lueften-test-udo.rules","Timer überschritten...")
sb.append(i.label + " ")
}
]
[...]
Code: Alles auswählen
Validation issues found in configuration model 'Lueften.rules', using it anyway: The operator '===' is undefined for the argument types int and null
Code: Alles auswählen
Item MQTTSensor_Wohnzimmer_Kontakt wird abgearbeitet
ermittelte Timestamp 2025-09-08T18:37:11.333+02:00[Europe/Berlin] und Timeout mit Namenteil 120
Timer überschritten...
Code: Alles auswählen
2025-09-08T20:49:39.954086809+02:00[Europe/Berlin]