Seite 1 von 1

Filtertimer Warnung

Verfasst: 15. Mär 2019 18:16
von PeterA
Hallo zusammen,

hier habe ich eine Rule von "madmike" (vielen Dank), etwas abgeändert.
Damit möchte ich mir eine Warnung "pushen".

Wird das so funktionieren ?

Code: Alles auswählen

 // globale Variablen müssen zu Beginn der rules Datei deklariert werden!
var Timer tFilter = null

rule "Filterwarnung"

when
    Item Filtertimer changed
    
then
    if(tFilter === null && (FilterTimer.state >2000 | "h")) {
        tFilter = createTimer(now.plusHours(1), [ |
            tFilter = null
        ])
        sendBroadcastNotification("Erinnerung !!  Filterwechsel bei 2160h!") //Allgemeine Warnung an alle 
        
        
    }
end

Re: Filtertimer Warnung

Verfasst: 15. Mär 2019 23:15
von PeterA
Also wieder Erwarten funktioniert die Rule nicht :/
Im Grunde möchte ich eine Pushnachricht bekommen wenn der Filtertimer einen bestimmten Wert erreicht hat. Hier 2000h.
Hmm da fällt mir ein, der Wert kommt ohne "h" aus der Anlage. Also nur der Zahlen Wert. Sollte das "h" entfallen?

Re: Filtertimer Warnung

Verfasst: 16. Mär 2019 00:34
von PeterA
So, jetzt scheint es mit dieser Rule zu funktionieren.

könnte ich mir nun noch die Aktuelle "FilterTime" mit Pushen lassen ?

Code: Alles auswählen

 // globale Variablen müssen zu Beginn der rules Datei deklariert werden!
var Timer tFilter = null

rule "Filterwarnung"

when
    Item FilterTimer changed
    
then
    if(tFilter === null && (FilterTimer.state >2000 )) {
        tFilter = createTimer(now.plusHours(12), [ |
            tFilter = null
        ])
        sendBroadcastNotification("Erinnerung !!  Filterwechsel bei 2160h!") //Allgemeine Warnung an alle 
        
        
    }
end/code]

Re: Filtertimer Warnung

Verfasst: 16. Mär 2019 00:36
von udo1toni
Ja sicher,

Code: Alles auswählen

sendBroadcastNotification("Erinnerung !!  Filterwechsel bei 2160h! Aktueller Wert "+FilterTimer.state.toString+"h") //Allgemeine Warnung an alle 

Re: Filtertimer Warnung

Verfasst: 16. Mär 2019 07:51
von PeterA
Hallo Udo,

Top! Funktioniert!
Noch Fragen zu "createTimer(now.plusHours(12)".
Gibt es da "grenzen" was den Timer angeht ? max 24h oder so ?
Und könnte ich da noch ne art Loginfo einbauen, wenn die Notification gesendet wurde ?

Re: Filtertimer Warnung

Verfasst: 17. Mär 2019 17:44
von udo1toni
Nein, es gibt keine Grenzen, man muss nur aufpassen, dass man den Zeitpunkt nicht in die Vergangenheit setzt. now() kennt verschiedene Methoden, plusMillis(), plusSeconds(), plusMinutes(), plusHours(), plusDays... die Methoden können auch miteinander kombiniert werden. Man sollte ich aber darüber im Klaren sein, dass der Scheduler alles vergisst, wenn openHAB neu gestartet wird.

Re: Filtertimer Warnung

Verfasst: 17. Mär 2019 18:03
von PeterA
Ok alles klar,

Damit möchte ich nur verhindern, das ich ständig eine Nachricht bekomme wenn ich über 2000h bin.