var Timer md1Timer = null
val int timeoutMinutes = 1
rule "Staubsauger received ON"
when
Item staubsauger received command ON
then
if(md1Timer == null) {
md1Timer = createTimer(now.plusMinutes(timeoutMinutes ), [|
staubsauger.sendCommand(OFF)
md1Timer = null
])
}
else {
md1Timer.reschedule(now.plusMinutes(timeoutMinutes )
}
end
Leider bleibt der Status des Items allerdings trotz der Regel bei ON, weshalb ich etwas ratlos bin woran das liegen könnte.
Hallo,
Vergleich mit null sollte immer mit === statt finden (ist aber sicherlich nicht der Grund für das Problem)
Wird die Rule überhaupt aufgerufen. Probleirs doch mal mit Item staubsauger changed to ON.
Ich würde in solchen Fällen anstelle der Rule mit dem Expire-Binding arbeiten.
Wenns funktioniert, ist es gut so, ich verstehe allerdings nicht die Aussage "das Exec-Binding nimmt nur Strings entgegen". Das sollte nichts mit Exec-Binding zu tun haben, sondern nur mit den Item-Type. Wenn Staubsauger ein Switch ist, wie "Item staubsauger received command ON" vermuten läßt, dann sollte auch "staubsauger.sendCommand(OFF)" funktionieren. Weche Version von openHAB verwendest du denn?