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ść
Zrobiłem regułę w Blocky, która wysyła mi powiadomienie o słabej baterii w termometrze (mam ich kilka).
Reguła działa ale efektem jej działania jest kilkanaście, a raczej kilkaset, powiadomień aż do momentu wymiany baterii.
Może mi ktoś jest w stanie podpowiedzieć co zrobić aby dostawać powiadomienie np. gdy bateria ma 15% następne gdy ta wartość spadnie do 10% i kolejne przy 5%.
var notifications = Java.type('org.openhab.io.openhabcloud.NotificationAction'); if (itemRegistry.getItem('gBattery').getState() <= '15') { notifications.sendBroadcastNotification('Słaba bateria w czujniku temperatury','temperature_cold','info'); }
@edass nie wiem jak jest w OH , ale zapewne można użyć jakichś zmiennych pomocniczych wykorzystując je w takim bloczku. Sprawdzasz stan baterii i jednocześnie wartość takiej zmiennej , jeśli stan baterii < 15 i zmienna np = 1 , to ustaw zmienną na 2 , w drugim warunku sprawdzasz stan zmiennej i jeśli = 2 to wyślij powiadomienie i ustaw zmienną na 3 , kolejne sprawdzenie baterii to jeśli bateria < 10% i zmienna = 3 to wyślij powiadomienie i ustaw zmienną na 4 , itd , na końcu dodajesz IF bateria > 90% ustaw zmienną na 1 .
Dobre jest to co mówisz - możesz zerknąć czy o to Ci chodziło?
var bateria_pomoc; var notifications = Java.type('org.openhab.io.openhabcloud.NotificationAction'); if (itemRegistry.getItem('gBattery').getState() > '15') { bateria_pomoc = 1; } else if (itemRegistry.getItem('gBattery').getState() <= '15' && bateria_pomoc == 1) { notifications.sendBroadcastNotification('Słaba bateria w czujniku temperatury 15%','temperature_cold','info'); bateria_pomoc = (typeof bateria_pomoc == 'number' ? bateria_pomoc : 0) + 1; } else if (itemRegistry.getItem('gBattery').getState() <= '10' && bateria_pomoc == 2) { notifications.sendBroadcastNotification('Słaba bateria w czujniku temperatury 10%','temperature_cold','info'); bateria_pomoc = (typeof bateria_pomoc == 'number' ? bateria_pomoc : 0) + 1; } else if (itemRegistry.getItem('gBattery').getState() <= '5' && bateria_pomoc == 3) { notifications.sendBroadcastNotification('Słaba bateria w czujniku temperatury 10%','temperature_cold','info'); bateria_pomoc = (typeof bateria_pomoc == 'number' ? bateria_pomoc : 0) + 1; } else if (itemRegistry.getItem('gBattery').getState() <= '2' && bateria_pomoc == 4) { notifications.sendBroadcastNotification('BATERIA POZIOM KRYTYCZNY','temperature_cold','info'); bateria_pomoc = (typeof bateria_pomoc == 'number' ? bateria_pomoc : 0) + 1; }
else if (itemRegistry.getItem('gBattery').getState() > '90' && bateria_pomoc == 4) { bateria_pomoc = (typeof bateria_pomoc == 'number' ? bateria_pomoc : 0) - 3;
Brakuje takiego zapisu
Chociaż pierwszy warunek to realizuje , powinno być ok
Nie lepiej ustawić cron i np. raz dziennie sprawdzać stan baterii?
Nie mogę resetować zmiennej
bateria_pomoc
przy baterii powyżej 90 ponieważ operuje na całej grupie baterii i po wymianie jednej baterii gBattery przyjmie wartość kolejnej najsłabszej baterii.
Na razie testuje tą regułę w praktyce i działa zdecydowanie lepiej niż moja bazowa 😉 . Ta reguła przyda mi się jeszcze do monitorowania spadu temperatury.
Dzięki za pomoc.
Nie wpadłem na taki pomysł 🙁 . To jest GENIALNE w swojej prostocie. Pewnie będę z niego korzystał. Dzięki!