Powiadomienia
Wyczyść wszystko

Wysyłanie powiadomień w zależności od zapełnienia zbiornika.

2 Wpisów
2 Użytkownicy
0 Likes
618 Wyświetleń
(@edass)
Wpisów: 216
Weteran
Autor tematu
 

Cześć

Próbuje napisać sobie regułę która będzie mi wysyłała powiadomienia o niskim poziomie ekogroszku w zasobniku. W zasobniku siedzi czujnik odległości SR04 a w OH przeliczeniu daje mi wynik w %.

Zasadniczo reguła jest prosta i działa ale okazało się, że jest bardzo uciążliwa bo powiadomienia przychodzą co klika minut... 

Chciałbym aby przy poziomie poniżej 15% przyszło powiadomienie i np. kolejne przy <10% . Dodatkowo jak poziom spadnie poniżej 5% niech powiadomienia przychodzą co np.  godzinę.

Rules._zasobnik - to wirtualny wyłącznik wyłączający regułę na 1h

 

rule "Niski poziom ekogroszku w zasobniku"

when

  Item Nodemcu_sr04dist_procenty changed 

then

    if (Rules_zasobnik.state == ON && Nodemcu_sr04dist_procenty.state < 15) {

  sendNotification("aaa@gmail.com""Mało ekogroszku w zasobniku " + Nodemcu_sr04dist_procenty.state) }

  else


Thread::sleep(3600000)

   Rules_zasobnik.postUpdate(ON)

end
 
Dodane : 31/01/2021 1:14 pm
(@kamikac)
Wpisów: 226
Pomocny
 

Na szybko to tak:

Items:

Number Rules_zasobnik_procent "Spadek poniżej [d%]"

Rules:

rule "Niski poziom ekogroszku w zasobniku"
when
 Item Nodemcu_sr04dist_procenty changed 
then
if (Rules_zasobnik_procent.state == NULL || Rules_zasobnik_procent.state > 50) { //Start OH lub napełnienie powyżej 50%
if (Nodemcu_sr04dist_procenty > 15) {
Rules_zasobnik_procent.postUpdate(15)
}
else if (Nodemcu_sr04dist_procenty > 10) {
Rules_zasobnik_procent.postUpdate(10)
}
else {
Rules_zasobnik_procent.postUpdate(5)
}

    if (Nodemcu_sr04dist_procenty.state < Rules_zasobnik_procent.state && Rules_zasobnik_procent.state > 5) {
  sendNotification("aaa@gmail.com""Mało ekogroszku w zasobniku " + Nodemcu_sr04dist_procenty.state)
switch(Rules_zasobnik_procent.state) { case 15: { Rules_zasobnik_procent.postUpdate(10) }
case 10: {
Rules_zasobnik_procent.postUpdate(5)
}
} }
end

rule
 "Bardzo niski poziom ekogroszku w zasobniku"
when
 Time cron "0 0 * ? * * *"
then
if (Rules_zasobnik_procent.state == 5) {
sendNotification("aaa@gmail.com""Mało ekogroszku w zasobniku " + Nodemcu_sr04dist_procenty.state)
}
end

 

 
Dodane : 02/02/2021 1:34 am
Udostępnij: