Asystent AI
Powiadomienia
Wyczyść wszystko

Pomoc Zbyt częste powiadomienia

6 Wpisów
3 Użytkownicy
1 Reactions
1,412 Wyświetleń
(@edass)
Wpisów: 225
Weteran
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 
[#3103]

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');
}
aaaaaaa

 
Dodane : 28/09/2022 5:04 pm
isom
 isom
(@isom)
Wpisów: 5319
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

@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 . 


 
Dodane : 28/09/2022 7:50 pm
(@edass)
Wpisów: 225
Weteran
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Dobre jest to co mówisz - możesz zerknąć czy o to Ci chodziło? 

bbbbb
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;
}

 
Dodane : 28/09/2022 8:35 pm
isom
 isom
(@isom)
Wpisów: 5319
Szef wszystkich szefów Moderator Zasłużony dla Forum, Donator 2K19, Donator 2K20
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 
 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 


 
Dodane : 28/09/2022 9:33 pm
(@maras)
Wpisów: 197
Weteran Donator 2K22 Donator 2K19
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Nie lepiej ustawić cron i np. raz dziennie sprawdzać stan baterii?


 
Dodane : 29/09/2022 4:54 pm
kamiKAC zareagował
(@edass)
Wpisów: 225
Weteran
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

@isom

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.

 

@maras

Nie wpadłem na taki pomysł 🙁 . To jest GENIALNE w swojej prostocie. Pewnie będę z niego korzystał. Dzięki!

 


 
Dodane : 01/10/2022 8:36 pm
Udostępnij: