Poolreinigung
Verfasst: 17. Jun 2023 16:18
Hi zusammen,
ich habe eine kurze Frage zu meine Rule für die Poolreingung. Ich habe das Beispiel hier aus dem Forum nur irgendwie meckert der Editor immer bei der Timer Definition. (z.B. The method timer1(Object) is undefined).
Ich verstehe nicht was ich dort falsch mache kann dort mal jemand auf die Rule schauen. Ich bekomme sie einfach nicht zu laufen. Eigentlich was ganz einfaches Pumpe 1 und nach Wunschzeit aus. Mit Rest und idealer Istlaufzeitanzeige.
Danke
ich habe eine kurze Frage zu meine Rule für die Poolreingung. Ich habe das Beispiel hier aus dem Forum nur irgendwie meckert der Editor immer bei der Timer Definition. (z.B. The method timer1(Object) is undefined).
Ich verstehe nicht was ich dort falsch mache kann dort mal jemand auf die Rule schauen. Ich bekomme sie einfach nicht zu laufen. Eigentlich was ganz einfaches Pumpe 1 und nach Wunschzeit aus. Mit Rest und idealer Istlaufzeitanzeige.
Danke
Code: Alles auswählen
rule "Poolreinigung starten"
when
Item Poolreinigung_starten changed to ON //das Item das den Timer aktivern soll angeben
then
val gartenactions = getActions("pushover", "pushover:pushover-account:account")
gartenactions.sendMessage("Poolreingung gestartet", "@ Home")
sendCommand(Shelly_Pool_oben , ON)
val timerlaufzeit = Poolreingungszeit.state as Number
Laufzeit_Poolreinigung.postUpdate(timerlaufzeit)
timer1 = createTimer(now.plusMinutes(timerlaufzeit.intValue)) [|
sendCommand(Shelly_Pool_oben , OFF)
]
end
Code: Alles auswählen
rule "Verbleibende Zeit"
when
Item Poolreinigung_starten changed to ON
then
Verbleibende_Laufzeit_Poolreinigung.postUpdate(Poolreingungszeit.state)
timer2 = createTimer(now.plusMinutes(1), [ |
var int remain = (Verbleibende_Laufzeit_Poolreinigung.state as DecimalType - 1 ).intValue
if( remain < 0 )
remain = 0
Verbleibende_Laufzeit_Poolreinigung.postUpdate(remain)
if( remain > 0)
timer2.reschedule(now.plusMinutes(1))
])
end
Code: Alles auswählen
rule "Timer abbrechen"
when
Item Poolreinigung_starten changed to OFF
then
timer1?.cancel
timer1 = null
Verbleibende_Laufzeit_Poolreinigung.postUpdate(0)
sendCommand(Shelly_Pool_oben , OFF)
timer2?.cancel
timer2 = null
Laufzeit_Poolreinigung.postUpdate(0)
end