Item mit Timer ausschalten

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
tim.dreier
Beiträge: 3
Registriert: 13. Apr 2018 14:36
Answers: 0

Item mit Timer ausschalten

Beitrag von tim.dreier »

Hallo,
Ich möchte ein Item ich einer bestimmten Zeit nach dem Einschalten wieder ausschalten. Hierfür habe ich bereits eine Regel geschrieben:

Code: Alles auswählen

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.

Danke schonmal für die Hilfe,
Grüße,
Tim

hr3
Beiträge: 210
Registriert: 23. Mai 2017 21:41
Answers: 0

Re: Item mit Timer ausschalten

Beitrag von hr3 »

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.

tim.dreier
Beiträge: 3
Registriert: 13. Apr 2018 14:36
Answers: 0

Re: Item mit Timer ausschalten

Beitrag von tim.dreier »

Hallo,
Danke für die Antwort. Ich habe das Problem gefunden, das Exec-Binding nimmt nur Strings entgegen. So geht es:

Code: Alles auswählen

staubsauger.sendCommand("OFF")
Das Expire Bindung werde ich mir mal anschauen, Danke!

hr3
Beiträge: 210
Registriert: 23. Mai 2017 21:41
Answers: 0

Re: Item mit Timer ausschalten

Beitrag von hr3 »

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?

Antworten