Rule mit Vergleich und Timer
Verfasst: 2. Mai 2023 16:27
Hallo zusammen,
die nachfolgende Rule soll folgendes machen:
Vergleiche den State zweier Items. Da eines der beiden Items seinen State verzögert bekommt habe ich einen Timer eingebaut.
Kann das so funktionieren ? (Timer mache ich nicht so oft)
Viele Grüße
Peter
die nachfolgende Rule soll folgendes machen:
Vergleiche den State zweier Items. Da eines der beiden Items seinen State verzögert bekommt habe ich einen Timer eingebaut.
Kann das so funktionieren ? (Timer mache ich nicht so oft)
Code: Alles auswählen
var Timer myTimer = null // Variable zu Beginn der Datei definieren
rule "WAC350 Geringe feuchte Alarm"
when
Item LuefterStufe received command 2 // Lüfterstufe auf 2 (Mittel)
then
if (WAC350_Geringe_Feuchte.state != ON) { // Überprüfen, ob Item "ON" ist //!!NEUES ITEM Type Switch! MapDB!!!
return; // Regel abbrechen, wenn Bedingung nicht erfüllt ist
}
if (myTimer !== null) {
myTimer.cancel() // Timer abbrechen, falls bereits gestartet
}
myTimer = createTimer(now.plusSeconds(60), [ |
if (LuefterStufe.state == 2 || Luefter1.state == 60) { // Wert 2 mit 60 vergleichen
if (myTimer !== null) {
myTimer.cancel() // Timer abbrechen, falls bereits gestartet
myTimer = null
}
return; // Regel abbrechen, wenn Bedingung nicht erfüllt ist
}
// Wenn die Bedingung aus dem Vergleich erfüllt wurde (LuefterStufte==2 und Luefter1 nicht 60)
WAC350_Geringe_Feuchte_Alarm.postUpdate(1) //!!NEUES ITEM Type Number! MapDB!!!
// Hier den Code einfügen, um die Push-Nachricht zu versenden / Logeintrag erzeugen / Variable zurücksetzen
sendBroadcastNotification("Alarm geringe Feuchte" + now.toString("HH:mm") + " Uhr") //Allgemeine Warnung an alle
logWarn("WAC Alarme","Geringe Feuchte Alarm") // Logeintrag erzeugen
myTimer = null // Variable zurücksetzen
])
end
Peter