UWAGA: Strona oraz Forum Smart'ny Dom nie będzie dostępne 23 Grudnia 2024 ze względu na przenoszenie serwisu na mocniejszą maszynę.
W tym czasie polecam poświęcenie swojego czasu na pomoc partnerowi w przygotowaniu udanych Świąt 😉
Za niedogodności z góry przepraszam, admin
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
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