Seite 1 von 1

Wasserleckage Rule wiederkehrend

Verfasst: 14. Mär 2021 18:09
von SaschaQ
Hallo zusammen,

ich habe eine Rule mit der ich benachrichtigt werde, wenn mein Wasserleckagesensor an der Spülmaschine Wasser erkennt:

Nun ist es so, dass der Leckagesensor einmal auf An springt wenn Wasser anliegt und dann die Benachrichtigung versendet wird. Der Sensor springt erst dann wieder auf Aus, wenn das Wasser beseitigt wurde.

Wie kann ich die Rule anpassen, sodass öfter nachgeprüft wird, ob der Sensor noch auf An steht ohne dass dieser von Aus auf An wechseln muss.
Ich möchte dass der Sensor mir öfter eine Benachrichtigung schickt, falls der Sensor noch auf An steht und ich die erste Benachrichtigung überlesen habe.

Code: Alles auswählen


rule "Benachrichtigung Wasserleckage Küche Spülmaschine"
when
	Item eg_kueche_spuelmaschine_wasser_leckage changed to ON

then
sendBroadcastNotification("Wasserleckage in der Küche bei der Spülmaschine!")

end



Re: Wasserleckage Rule wiederkehrend

Verfasst: 14. Mär 2021 18:25
von peter-pan
...evtl. einem zusätzlichen Cron-Trigger und einer If-Bedingung ?!

Re: Wasserleckage Rule wiederkehrend

Verfasst: 14. Mär 2021 21:52
von KellerK1nd
Hat der Sensor auch einen Channel mit Updatetime oder sowas? Dann könntest du auch darauf triggern lassen.

Re: Wasserleckage Rule wiederkehrend

Verfasst: 14. Mär 2021 22:05
von udo1toni
Also, gesetzt den Fall, es handelt sich um OH2, wäre meine erste Wahl:

Code: Alles auswählen

var Timer tWarn = null

rule "Benachrichtigung Wasserleckage Küche Spülmaschine"
when
    Item eg_kueche_spuelmaschine_wasser_leckage changed
then
    tWarn?.cancel
    if(eg_kueche_spuelmaschine_wasser_leckage.state == ON) {
        tWarn = createTimer(now, [|
            sendBroadcastNotification("Wasserleckage in der Küche bei der Spülmaschine!")
            tWarn.reschedule(now.plusMinutes(30))
        ])
    }
end
Die Rule löst bei jedem Wechsel aus (wichtig)
Zunächst wird ein eventuell laufender Timer gelöscht. ist der Status ON, so wird der Timer angelegt und unmittelbar ausgeführt.

Wird der Timer ausgeführt, so wird die Nachricht verschickt. Anschließend wird der Timer erneut geplant. Im Beispiel gibt es alle 30 Minuten eine Meldung, bis der Sensor wieder von ON zu einem anderen Zustand wechselt.

Re: Wasserleckage Rule wiederkehrend

Verfasst: 15. Mär 2021 10:10
von SaschaQ
Ich nutze OH3, da sollte das doch auch so gehen oder?

Re: Wasserleckage Rule wiederkehrend

Verfasst: 16. Mär 2021 05:06
von udo1toni
Ja, aber nur, denn die Rule zum einen in einer *.rules Datei gespeichert ist (wegen der globalen Variable zwingend) und Du zum anderen das now an beiden Stellen durch ZonedDateTime.now ersetzt.

Re: Wasserleckage Rule wiederkehrend

Verfasst: 16. Mär 2021 21:18
von SaschaQ
Ich habe es gestern mal getestet und es funktioniert in OH3 genauso wie du es gepostet hast.

Habe den Sensor mal in Wasser gelegt und die Meldung kam alle 30 Minuten.