Asystent AI
Powiadomienia
Wyczyść wszystko

INode w domoticzu - skrypt powiadamiający

11 Wpisów
2 Użytkownicy
1 Reactions
2,262 Wyświetleń
(@rafal_sz)
Wpisów: 26
Praktykant
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
 
[#2113]

@isom

Witam, po przerwie, mam prośbę o skrypt. Moje urządzenie Inode (odczyt zużycia energii) zmieniło miejsce. Domoticz też postawiony na nowo.

Potrzebuję informacji (e-mail lub a lepiej powiadomienie pushover(mam wykupioną licencję)) o tym, że jeśli pobór chwilowy jest np >500 (W) przez pół godziny to mam dostać powiadomienie. Próbowałem coś na poprzednim przykładzie zmieniać ale niestety w logach domoticza są informacje o błędach w działaniu skryptu. Urządzenie Inode przesyła dane chyba co 1s (odświeża). Przesyłam opisy z domoticza.

Dzięki z góry.

 


 
Dodane : 30/12/2020 10:38 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
 

@rafal_sz Nie wiem czy aż tak często czujnik odświeża swoje dane , ale zrobiłem to bardziej uniwersalne i możesz sobie sam dostosować parametry.

W ustawieniu local norma = 500 masz maksymalną moc jaka jest akceptowana , wszystko co powyżej zaczyna być zliczane

W ustawieniu local pomiar_ilosc = 100 masz ilość odczytów do sprawdzenia, jeżeli wszystkie 100 będą powyżej 500 to dostaniesz powiadomienie z datą , godziną i opisem 

Jeżeli 100 odczytów będzie za krótko to możesz to zwiększać ustawiając np 200, 500, 1000

Powiadomienie będzie wysłane na to co sobie skonfigurujesz w domoticz , czyli jeżeli włączysz powiadomienia pushover i np aktywujesz e-mail to dostaniesz powiadomienie na jedno i drugie 

Jeżeli w trakcie analizy chociaż jeden odczyt będzie poniżej 500 to licznik się zresetuje i zacznie liczenie od nowa 

Po sprawdzeniu działania skryptu jeżeli wszystko będzie ok to zmień w skrypcie LOG_DEBUG na LOG_ERROR zmniejszy to ilość logów a gdyby coś się działo to wywali błędy

Jak coś będzie nie tak to pisz

 


 
Dodane : 31/12/2020 4:23 pm
(@rafal_sz)
Wpisów: 26
Praktykant
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

Dzięki za podejście do tematu.

Ustawiłem dla testu wartość tylko 10 odczytów aby szybko wyzwolić powiadomienie ale coś nie działa. Możesz zerknąć na logi

Dodam że w tym czasie wartość odczytu była powyżej 500.

 Skrypt log

 
Dodane : 01/01/2021 5:20 pm
(@rafal_sz)
Wpisów: 26
Praktykant
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
 

Update.

Zaczęły przychodzić powiadomienia. Jednak mam problem z określeniem częstotliwości. Po wpisaniu wartości 1 dla pomiar_ilość ,dostałem powiadomienie po ok.3 minutach.

Czy każdy rekord z pliku LOG oznacza częstotliwość odczytu czy też jest to niezależna od odczytu informacja? 


 
Dodane : 01/01/2021 6:14 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
 

@rafal_sz przy takiej częstotliwości odczytów z czujnika nie ustawiaj małej wartości dla pomiar_ilość bo system się zatka , szczególnie wtedy gdy wartość mocy będzie przekroczona. W takiej sytuacji rozkaz wysyłania powiadomień jest co kilka sekund i system nie jest w stanie tego przerobić.

Generalnie tak jak napisałem skrypt liczy odczyty i jeżeli wszystkie z ustawionych będą za wysokie to wysyła powiadomienie , jeśli w trakcje liczenia np 100 odczytów chociaż 1 będzie mniejszy niż norma to liczenie zacznie się od początku.

Jak nie sprawdzi Ci się ta wersja skryptu to napisz spróbuję napisać żeby skrypt uruchamiał się w funkcji czasu ( co np 5 minut ), 


 
Dodane : 01/01/2021 6:53 pm
(@rafal_sz)
Wpisów: 26
Praktykant
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

Zweryfikowałem częstotliwość i chyba ustawiłem czas (1 odczyt co ok 2s.)? Rozpocząłem testy działania.

Ponieważ apetyt rośnie.....

To mam pytanie i prośbę. Jak powinien wyglądać skrypt z powidomieniem dla tego urządzenia (inode) jeśli nie będzie przesyłał odczytów przez np 5 minut (np.wyczerpana bateria).

 


 
Dodane : 01/01/2021 7:11 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
 

@rafal_sz to może być takie coś 

 
jak wkleisz to do zdarzeń to popraw wszystko co jest w logach i w komunikacie powiadomienia , tak żeby to było czytelne bo wklejając tu skrypt z polskimi znakami robi się sieczka robaczków
do poprawienia 
dz.log 'Czujnik przestał‚ wysyłać dane'
dz.notify("Czujnik pompa","Czujnik nie wysyła danych sprawdź baterie " .. DateTimePressed .. ".", dz.PRIORITY_HIGH)
dz.log 'Czujnik wysyła dane i nie ma z nim problemu'

 
Dodane : 01/01/2021 8:04 pm
(@rafal_sz)
Wpisów: 26
Praktykant
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

Dzięki.

Wstawiłem skrypt ale widzę taki komunikat w logach:

2021-01-01 22:06:00.369 Error: dzVents: Error: (3.0.2) Inode life: An error occurred when calling event handler Inode_life
2021-01-01 22:06:00.369 Error: dzVents: Error: (3.0.2) Inode life: ...omoticz/scripts/dzVents/generated_scripts/Inode_life.lua:18: attempt to index a nil value (global 'licznik')

 
Dodane : 01/01/2021 11:08 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
 

@rafal_sz kurde machnąłem się w nazwie , zmień  w końcówce skryptu w wiersz

elseif licznik.lastUpdate.minutesAgo < 5 then

na 

elseif node.lastUpdate.minutesAgo < 5 then


 
Dodane : 01/01/2021 11:22 pm
(@rafal_sz)
Wpisów: 26
Praktykant
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

Już zmieniłem na "node" i wszystko gra. Brak błędów w logach.

2021-01-01 22:45:00.350 Status: dzVents: Info: Inode life: Czujnik wysyła dane i nie ma z nim problemu

Dzięki jeszcze raz.


 
Dodane : 01/01/2021 11:46 pm
isom zareagował
(@rafal_sz)
Wpisów: 26
Praktykant
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
 

Witam,

Czy mógłbym prosić o dodanie jeszcze takiej funkcji, ze w przypadku braku odczytu z iNodea będzie wykonany restart systemu? Niedawno przeinstalowałem system i wszystko działa ale z nieznanych przyczyn co 2,3 dni traci połączenie i oczywiście dostaję powiadomienia poprzez e-mail (co minutę) ale jak się okazuje nie jest to problem z baterią iNode-a tylko jakaś inny błąd. Restart powoduje nawiązanie ponowne połączenia.

Z góry dziękuję.

 

Dodam, ze taki jest status bluetooth-a:

bluetooth.service - Bluetooth service
Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-12-30 09:03:39 CET; 2h 59min ago
Docs: man:bluetoothd(8)
Main PID: 814 (bluetoothd)
Status: "Running"
Tasks: 1 (limit: 1596)
CPU: 115ms
CGroup: /system.slice/bluetooth.service
└─814 /usr/libexec/bluetooth/bluetoothd

Dec 30 09:03:39 raspberrypi systemd[1]: Starting Bluetooth service...
Dec 30 09:03:39 raspberrypi bluetoothd[814]: Bluetooth daemon 5.55
Dec 30 09:03:39 raspberrypi systemd[1]: Started Bluetooth service.
Dec 30 09:03:39 raspberrypi bluetoothd[814]: Starting SDP server
Dec 30 09:03:39 raspberrypi bluetoothd[814]: Bluetooth management interface 1.21 initialized
Dec 30 09:03:39 raspberrypi bluetoothd[814]: profiles/sap/server.c:sap_server_register() Sap driver initialization failed.
Dec 30 09:03:39 raspberrypi bluetoothd[814]: sap-server: Operation not permitted (1)
Dec 30 09:03:39 raspberrypi bluetoothd[814]: Endpoint registered: sender=:1.23 path=/MediaEndpoint/A2DPSink/sbc
Dec 30 09:03:39 raspberrypi bluetoothd[814]: Endpoint registered: sender=:1.23 path=/MediaEndpoint/A2DPSource/sbc
Dec 30 09:03:39 raspberrypi bluetoothd[814]: Failed to set privacy: Rejected (0x0b)

 
Dodane : 30/12/2022 12:58 pm
Udostępnij: