BLE Supla Gateway - wyzwanie dla programistów

Awatar użytkownika
Robert Błaszczak
Posty: 911
Rejestracja: sob gru 22, 2018 8:55 pm
Lokalizacja: Zielona Góra
Kontaktowanie:

ndz mar 01, 2020 9:35 pm

Obiecana, szczegółowa (dla bardzo początkujących w temacie) instrukcja uruchomienia bramki: https://www.blaszczak.pl/supla-virtual- ... ywsd03mmc/

Informacje o zauważonych przez Was błędach mile widziane :D .
Pozdrawiam
Robert Błaszczak

Strona prywatna: https://www.blaszczak.pl
Jakość powietrza: https://robert.aqi.eco
djack2017
Posty: 367
Rejestracja: pn lis 27, 2017 7:36 am

ndz mar 01, 2020 9:43 pm

Jak ktoś chce mieć na bieżąco wyświetlane wyniki pomiarów czujników, może zmienić w skrypcie LYWSD03MMC.py
linę 179, która oryginalnie wygląda:
measurements.append(measurement)
na
measurements.appendleft(measurement)
Awatar użytkownika
lesny8
Posty: 1045
Rejestracja: pn gru 11, 2017 9:43 pm

ndz mar 01, 2020 9:48 pm

Robert Błaszczak pisze:
ndz mar 01, 2020 12:53 pm
...
W tym tygodniu (2.03 - 8.03.2020) napiszę artykuł, jak krok po kroku...

:lol: przestrzeliłeś termin :P
Szacun ;)
Pomóżcie proszę choć odrobinę
https://pomagam.pl/af3hwf6c
Beku
Posty: 331
Rejestracja: wt lis 06, 2018 1:49 pm

ndz mar 01, 2020 10:01 pm

Robert Błaszczak pisze:
ndz mar 01, 2020 9:35 pm
Obiecana, szczegółowa (dla bardzo początkujących w temacie) instrukcja uruchomienia bramki: https://www.blaszczak.pl/supla-virtual- ... ywsd03mmc/

Informacje o zauważonych przez Was błędach mile widziane :D .
Pięknieś Pan to opisał 🙂🙂

A ten file_write_check_sec to specjalnie zakomentowany?
djack2017
Posty: 367
Rejestracja: pn lis 27, 2017 7:36 am

ndz mar 01, 2020 10:34 pm

Rejestracja temperatury, wilgotności i napięcia baterii w zabbixie

supla-virtual-devices można też, oprócz supli, wykorzystać do rejestracji
wyników pomiarów z czujników LYWSD03MMC na serwerze zabbix.

Instalacja:

sudo apt-get update
sudo apt-get install zabbix-agent

Przykładowa konfiguracja:
W pliku /etc/supervisor/conf.d/supla-dev.conf mamy wpis dla czujnika np. o nazwie "gabinet":

Kod: Zaznacz cały

[program:mi-temp-1]
command=python3 ./LYWSD03MMC.py --device A4:C1:38:63:xx:xx --round --name gabinet --callback odczyt.sh
zawartość pliku odczyt.sh:

Kod: Zaznacz cały

#!/bin/bash
echo $3 > ./var/$2.txt
echo $4 >> ./var/$2.txt
zabbix_sender -z ip_zabbix_server -s $2 -k tempr -o $3
zabbix_sender -z ip_zabbix_server -s $2 -k humid -o $4
zabbix_sender -z ip_zabbix_server -s $2 -k battery -o $5
gdzie ip_zabbix_server to domenowa nazwa naszego serwera zabbix (lub adres IP)

Na serwerze zabbix tworzymy host o nazwie "gabinet" według zaimportowanego szablonu "Template Mi-Temp-LYWSD03MMC"
z podanego niżej pliku "zbx_export_templates.xml"

I możemy otrzymać np takie wykresy:
gabinet.png
gabinet.png (69.41 KiB) Przejrzano 237 razy
Załączniki
zbx_export_templates.zip
(855 Bajtów) Pobrany 4 razy
Awatar użytkownika
Robert Błaszczak
Posty: 911
Rejestracja: sob gru 22, 2018 8:55 pm
Lokalizacja: Zielona Góra
Kontaktowanie:

pn mar 02, 2020 5:33 am

lesny8 pisze:
ndz mar 01, 2020 9:48 pm
Robert Błaszczak pisze:
ndz mar 01, 2020 12:53 pm
...
W tym tygodniu (2.03 - 8.03.2020) napiszę artykuł, jak krok po kroku...

:lol: przestrzeliłeś termin :P
Szacun ;)
Miałem inne plany na niedzielne popołudnie, ale przez pogodę wzięły w łeb. Trzeba było znaleźć sobie jakieś inne zajęcie :lol:
Beku pisze:
ndz mar 01, 2020 10:01 pm
Robert Błaszczak pisze:
ndz mar 01, 2020 9:35 pm
Obiecana, szczegółowa (dla bardzo początkujących w temacie) instrukcja uruchomienia bramki: https://www.blaszczak.pl/supla-virtual- ... ywsd03mmc/

Informacje o zauważonych przez Was błędach mile widziane :D .
Pięknieś Pan to opisał 🙂🙂

A ten file_write_check_sec to specjalnie zakomentowany?
Dzięki za info i za uważne czytanie :) . Miałem o tym napisać, ale na koniec wyleciało mi to z głowy. Już poprawione.
Pozdrawiam
Robert Błaszczak

Strona prywatna: https://www.blaszczak.pl
Jakość powietrza: https://robert.aqi.eco
Awatar użytkownika
Robert Błaszczak
Posty: 911
Rejestracja: sob gru 22, 2018 8:55 pm
Lokalizacja: Zielona Góra
Kontaktowanie:

pn mar 02, 2020 7:03 am

djack2017 pisze:
ndz mar 01, 2020 9:43 pm
Jak ktoś chce mieć na bieżąco wyświetlane wyniki pomiarów czujników, może zmienić w skrypcie LYWSD03MMC.py
linę 179, która oryginalnie wygląda:
measurements.append(measurement)
na
measurements.appendleft(measurement)
Ciekawi mnie, jak ta zmiana wpłynie na pobór prądu z baterii przez czujnik. @djack2017, kontaktowałeś się w tej kwestii z autorem skryptu?
Pozdrawiam
Robert Błaszczak

Strona prywatna: https://www.blaszczak.pl
Jakość powietrza: https://robert.aqi.eco
Beku
Posty: 331
Rejestracja: wt lis 06, 2018 1:49 pm

pn mar 02, 2020 7:09 am

Robert Błaszczak pisze:
pn mar 02, 2020 7:03 am
djack2017 pisze:
ndz mar 01, 2020 9:43 pm
Jak ktoś chce mieć na bieżąco wyświetlane wyniki pomiarów czujników, może zmienić w skrypcie LYWSD03MMC.py
linę 179, która oryginalnie wygląda:
measurements.append(measurement)
na
measurements.appendleft(measurement)
Ciekawi mnie, jak ta zmiana wpłynie na pobór prądu z baterii przez czujnik. @djack2017, kontaktowałeś się w tej kwestii z autorem skryptu?
Taka zmiana nie wpływa na pobór prądu urządzenia. Ten skrypt działa tak ze dopisuje sobie do listy wyniki otrzymane z czujnika i metodą FIFO dopisuje je do pliku. W pliku wtedy mamy wszystkie wyniki ale nie koniecznie ostatni zapisany jest bieżącym. Jest pewne opóźnienie. Zmiana dokonana przez kolegę @djack2017 powoduje że do pliku jest zapisywany od razu ostatni wynik który „wpadł” z czujnika. Oczywiście może to spowodować pominięcie kilku wyników pośrednich ale to już wybór @djack2017
djack2017
Posty: 367
Rejestracja: pn lis 27, 2017 7:36 am

pn mar 02, 2020 7:20 am

Robert Błaszczak pisze:
pn mar 02, 2020 7:03 am
Ciekawi mnie, jak ta zmiana wpłynie na pobór prądu z baterii przez czujnik. @djack2017, kontaktowałeś się w tej kwestii z autorem skryptu?
Nie kontaktowałem się. Ta zmiana nie powinna mieć żadnego wpływu na pobór prądu. Po prostu zamiast wpisywac daną z prawej strony FIFO wpisujesz ją z lewej strony, czyli z tej, z której pobierasz dane do wyświetlenia. Uruchamiając ten skrypt "z palca" widać, że odbiór danych z FIFO odbywa się dużo rzadziej niż ich wpisywanie, więc dane wyświetlane są z jakimś nieokreślonym opóźnieniem.
FIFO używane jest jak nie chce się utracić żadnej zmierzonej danej (co według mnie w przypadku mierzenia temperatur w domu nie ma żadnego znaczenia) i nie chce się zajmować procesora czekaniem w pętli na wolno pojawiające się dane.
FIFO ma przeważnie wskażniki: puste, połowicznie zapełnione, całkowicie zapełnione i na ich podstawie, typowo w przerwaniu,
pobiera się i zapisuje wszystkie dane z FIFO.
Poza tym skrypt jak skrypt, nie jest szczególnie skomplikowany i każdy może go sobie przeanalizować.
Jak widać pisałem ten post równolegle z Beku
Awatar użytkownika
Robert Błaszczak
Posty: 911
Rejestracja: sob gru 22, 2018 8:55 pm
Lokalizacja: Zielona Góra
Kontaktowanie:

pn mar 02, 2020 7:22 am

Dzięki Panowie za rzeczowe wyjaśnienia.
Pozdrawiam
Robert Błaszczak

Strona prywatna: https://www.blaszczak.pl
Jakość powietrza: https://robert.aqi.eco
ODPOWIEDZ