In der Sitemap habe ich ein
um drei unterschiedlich lange Laufzeiten auszuwählen.
Drücke ich einen der Buttons wird er rot und die unten stehende Rule wird ausgelöst.
Allerdings wäre es schön, wenn das Switch item nach Ablauf des Programms zurück auf Stop wechselt, oder wenigstens keiner der drei Buttons rot bleibt.
Kann mir jemand sagen, wie das funktioniert?
Das postUpdate unten löst es jedenfalls nicht.
In items ist itmSprinklerAutomatik definiert als
Code:
Switch item=itmSprinklerAutomatik mappings=[1="7 Min", 2="12 Min", 3="Stop"]
Drücke ich einen der Buttons wird er rot und die unten stehende Rule wird ausgelöst.
Allerdings wäre es schön, wenn das Switch item nach Ablauf des Programms zurück auf Stop wechselt, oder wenigstens keiner der drei Buttons rot bleibt.
Kann mir jemand sagen, wie das funktioniert?
Das postUpdate unten löst es jedenfalls nicht.
In items ist itmSprinklerAutomatik definiert als
Code:
Number itmSprinklerAutomatik "Sprinkler Automatik"
Code:
import org.joda.time.DateTime
import org.openhab.model.script.actions.Timer
var Timer timerStopVorne = null
var Timer timerStopSeite = null
var Timer timerStartGarten = null
var Timer timerStopGarten = null
rule "SprinklerAutomatik"
when
Item itmSprinklerAutomatik received command
then
// Alle eventuell bestehenden Timer zurücksetzen
if (timerStopVorne != null){
timerStopVorne.cancel
timerStopVorne=null
}
if (timerStopSeite != null){
timerStopSeite.cancel
timerStopSeite=null
}
if (timerStartGarten != null){
timerStartGarten.cancel
timerStartGarten=null
}
if (timerStopGarten != null){
timerStopGarten.cancel
timerStopGarten=null
}
var int iDauer = 0
switch(receivedCommand) {
case 1 : iDauer = 7
case 2 : iDauer = 12
}
if (iDauer == 0) {
itmSprinklerFront.sendCommand(OFF)
itmSprinklerGarten.sendCommand(OFF)
}
else
{
// Sprinkler vorne nach ein paar Minuten stoppen und den hinteren starten
timerStopVorne = createTimer(now.plusSeconds(5*iDauer)) [|
itmSprinklerFront.sendCommand(OFF)
]
timerStopSeite = createTimer(now.plusSeconds(5*2*iDauer)) [|
itmSprinklerGarten.sendCommand(OFF)
itmSprinklerAutomatik.postUpdate(0) //keine sichtbare Wirkung
]
}
end


Kommentar