[tutorial]Supla i moduły bbmagic (czujnik zalania, zamknięcia itp.)

jaku2k
Posty: 91
Rejestracja: ndz maja 24, 2020 8:40 pm

pt sty 08, 2021 4:56 pm

Witam,
moim pierwszym projektem związanym z Suplą było "podłączenie" modułu BBmagic flood do Supli, tak, bym był w stanie monitorować stan drewutni, w której stoją filtry (zalane/niezalane) i otrzymywał powiadomienia o zalaniu (przez Pushover). Zwróciłem się po pomoc do pomocy technicznej w celu edycji programu na Raspberry pi, które w projekcie stanowi bramkę (więcej w dalszej części). Państwo z BBmagica pomogli mi, edytując program pod moje potrzeby. Po kilku miesiącach współpracy, udało się w sklecić pracę, przedstawiającą, jak to zrobiłem. Jako że nie wykorzystuję tu nic innowacyjnego, a bazuję na gotowcach, to myślę, że może być przydatna dla użytkowników, którzy dopiero zaczynają swoją przygodę z Suplą. Mam nadzieję, że tekst jest przejrzysty (jeśli nie, proszę o uwagę w komentarzach) i będzie przydatny. Wzorowałem się na artykułach p. @Robert Błaszczak. Przedstawiony program działa ze wszystkimi modułami BBmagic, pracujących na BLE:
[EDIT]
Do pobrania: viewtopic.php?f=24&t=7858&p=84958#p84958
dodatkowo:viewtopic.php?f=24&t=7858&start=10

Supla to polski projekt rozwijany na zasadzie otwartego oprogramowania pozwalający na zbudowanie systemu automatyki budynkowej. Umożliwia dodanie wielu czujników oraz elementów wykonawczych do naszego domu lub firmy. Wszystko dostępne jest do obsługi przez aplikację Supla (oraz do konfiguracji na supla.org). W tym wpisie pokażę jak dodać jeden z czujników BBmagic do tego systemu i otrzymywać powiadomienia o np. zalaniu. Cały projekt został wykonany z użyciem Raspberry pi 4 (wersja 2gb) oraz modułem Bbmagic flood.

Pierwszym krokiem jest rejestracja na stronie Supli.
1_rejestracja.png
1_rejestracja.png (142.27 KiB) Przejrzano 319 razy
Następnie przechodzimy do Raspberry i Następnie pobieramy program Supervisor, który umożliwi automatyczne uruchomienie SuplaVirtualDevice na naszej malinie. W tym celu wpisujemy komendę:

Kod: Zaznacz cały

sudo apt-get install -y mc git libssl-dev bc python3-pip supervisor
Po kilku minutach, gdy Supervisor się zainstaluje, przechodzimy do następnego kroku, którym jest instalacja SuplaVirtualDevice. Jest to program umożliwiający odczyt danych z plików i przesyłanie ich na serwer Supli. Dla zainteresowanych, link do githuba. Wpisujemy następujące komendy:

Kod: Zaznacz cały

sudo apt-get update
git clone https://github.com/lukbek/supla-virtual-device.git
przechodzimy do folderu supla-virtual-device:

Kod: Zaznacz cały

cd supla-virtual-device
i wpisujemy:

Kod: Zaznacz cały

./install.sh
Po prawidłowej instalacji jesteśmy gotowi na skonfigurowanie pobranego programu. W tym celu otwieramy plik supla-virtual-device.cfg (pamiętając, że cały czas jesteśmy w folderze supla-virtual-device):

Kod: Zaznacz cały

nano supla-virtual-device.cfg
Plik ma ustawionych kilka domyślnych wartości, które możemy edytować (instrukcja zamieszczona jest na wcześniej wspomnianym githubie). Należy zwrócić uwagę, by nasze pierwsze urządzenie miało nagłówek "[CHANNEL_0]" .
2_cfg.png
2_cfg.png (16.49 KiB) Przejrzano 319 razy
Pierwszą wartością, którą możemy zmienić jest nazwa naszego urządzenia widziana w internetowej witrynie Supli. Ja nazwałem swoje "Virtual device". Następnie wpisujemy dane serwera Supla; pozycję protocol_version pozostawiamy z domyślną wartością 10. Dalej przepisujemy dane w odpowiednie okienka, odczytując je z żółtego okna w Supli.
3_dane_z_supli-przepisane.png
3_dane_z_supli-przepisane.png (163.49 KiB) Przejrzano 319 razy
By Supla rozpoznawała nasze urządzenie jako czujnik zalania (w supli definiowany jako czujnik braku cieczy) w sekcji function należy wpisać NOLIQUID, następnie wpisujemy ścieżkę do naszego pliku flood.txt, o którym za chwilę. Zapisujemy plik i wchodzimy do folderu supla-virtual-device. Teraz włączamy w Supli rejestrację urządzeń.
cd. w części drugiej
Ostatnio zmieniony sob sty 09, 2021 10:16 am przez jaku2k, łącznie zmieniany 3 razy.
Pozdrawiam
Jakub
jaku2k
Posty: 91
Rejestracja: ndz maja 24, 2020 8:40 pm

pt sty 08, 2021 5:08 pm

cd. - część druga
[...]Teraz włączamy w Supli rejestrację urządzeń.
4_aktywacja_rejestracji.png
4_aktywacja_rejestracji.png (34.68 KiB) Przejrzano 313 razy
W folderze supla-virtual-device wpisujemy komendę

Kod: Zaznacz cały

./supla-virtual-device
W odpowiedzi powinniśmy otrzymać podobną treść:
5_odpowiedz.png
5_odpowiedz.png (22.51 KiB) Przejrzano 313 razy
Na naszym koncie powinno pojawić się urządzenie o wcześniej nadanej nazwie:
6_SVD_witryna.png
6_SVD_witryna.png (68.92 KiB) Przejrzano 313 razy
Klikamy CTRL+C, by zakończyć działanie programu.

Teraz należy stworzyć ścieżkę, w której znajdzie się skrypt odpowiedzialny za odbieranie danych z modułu BBmagic (ten krok nie jest potrzebny, folder można skopiować “bezpośrednio” do raspberry). Mój będzie się nazywał supla_bbmagic:

Kod: Zaznacz cały

mkdir supla_bbmagic
Następnie pobieramy supla_bbmagic_sensors. Ten folder kopiujemy do Raspberry (np. używając programu WinSCP) do wcześniej utworzonego miejsca. Wchodzimy w terminal i otwieramy folder bbmagic_sensors_supla. Przechodzimy do odpowiedniego folderu:

Kod: Zaznacz cały

cd supla_bbmagic/supla_bbmagic_sensors
i wpisujemy:

Kod: Zaznacz cały

sudo chmod 755 ./supla_bbmagic_sensors
, by nadać mu odpowiednie uprwanienia. Potem uruchamiamy:

Kod: Zaznacz cały

sudo ./supla_bbmagic_sensors
cd. w części trzeciej
Ostatnio zmieniony sob sty 09, 2021 10:00 am przez jaku2k, łącznie zmieniany 4 razy.
Pozdrawiam
Jakub
jaku2k
Posty: 91
Rejestracja: ndz maja 24, 2020 8:40 pm

pt sty 08, 2021 5:28 pm

cd. - część trzecia
7_uprawnienia.png
7_uprawnienia.png (27.29 KiB) Przejrzano 307 razy
W odpowiedzi powinniśmy otrzymać podobną treść:

Kod: Zaznacz cały

13:04:18 [bbm open] mac:4E9882EB27B8 | bbm_lib:00000200
13:04:18 [bbm start] ok
Program zapisze wartość 0 lub 1 do pliku o nazwie "flood.txt" (lub innej odpowiedniej do nazwy używanego modułu), znajdującego się w tym samym folderze. 1 oznacza zalanie, a 0 - brak.
CTRL+C kończy działanie programu.
Teraz możemy wrócić do folderu supla-virtual-device i wpisać ścieżkę do pliku flood.txt:

Kod: Zaznacz cały

cd
cd supla-virtual-device
nano supla-virtual-device.cfg
8_ścieżka.png
8_ścieżka.png (16.49 KiB) Przejrzano 307 razy
W celu automatycznego uruchamiania programu supla_bbmagic_sensors należy stworzyć plik bbmagic.service. W tym celu wpisujemy komendę :

Kod: Zaznacz cały

cd
sudo nano /lib/systemd/system/bbmagic.service
Wklejamy:

Kod: Zaznacz cały

[Unit]
Description=BBMagic Service
After=multi-user.target
[Service]
Type=idle
User=pi
WorkingDirectory=/home/pi/4supla/
ExecStart=/usr/bin/sudo /home/pi/4supla/supla_bbmagic_sensors
Restart=always
RestartSec=1
[Install]
WantedBy=multi-user.target
/4supla zastępujemy nazwą folderu, w którym znajduje się program; w moim przypadku

Kod: Zaznacz cały

WorkingDirectory=/home/pi/supla_bbmagic
ExecStart=/usr/bin/sudo /home/pi/supla_bbamgic/supla_bbmagic_sensors/supla_bbmagic_sensors
Zapisujemy i zamykamy plik. Następnie wpisujemy:

Kod: Zaznacz cały

sudo chmod 644 /lib/systemd/system/bbmagic.service
sudo systemctl daemon-reload
sudo systemctl enable bbmagic.service
I testujemy:

Kod: Zaznacz cały

sudo systemd-analyze verify bbmagic.service
Jeśli nie ma błędów, to restartujemy system:

Kod: Zaznacz cały

sudo reboot now
...i sprawdzamy poleceniem:

Kod: Zaznacz cały

sudo systemctl status bbmagic.service
Jeśli nie ma błędów, to powinniśmy otrzymać odpowiedź o podobnej treści:
9_status_bbmagic_service.png
9_status_bbmagic_service.png (19.2 KiB) Przejrzano 307 razy
cd. w czwartej części
Ostatnio zmieniony sob sty 09, 2021 10:04 am przez jaku2k, łącznie zmieniany 6 razy.
Pozdrawiam
Jakub
jaku2k
Posty: 91
Rejestracja: ndz maja 24, 2020 8:40 pm

pt sty 08, 2021 5:36 pm

cd. - część czwarta
Jesteśmy coraz bliżej końca. Ostatnią rzeczą, jaką musimy zrobić, jest ustawienie autostartu dla SuplaVirtualDevice. W tym celu otwieramy plik konfiguracyjny wcześniej zainstalowanego programu Supervisor:

Kod: Zaznacz cały

sudo nano /etc/supervisor/supervisord.conf
Zmieniamy wpis chmod=0700 na chmod=0770 . Po tym wierszu dodajemy nowy, zawierający chown=root:pi . Sekcja [unix_http_server] powinna wyglądać następująco:

Kod: Zaznacz cały

[unix_http_server]
file=/var/run/supervisor.sock   ; (the path to the socket file)
chmod=0770                       ; sockef file mode (default 0700)
chown=root:pi
10_supervisor-conf.png
10_supervisor-conf.png (5.63 KiB) Przejrzano 303 razy
Zapisujemy i zamykamy plik.

Usuwamy urządzenie, będące VirtualDevicem z Supli (na stronie), i upewniamy się, że rejestracja urządzeń jest włączona (taką sekwencję należy powtórzyć po każdej zmianie w pliku konfiguracyjnym supla-virtual-device.cfg).
Następnie restartujemy program supervisor:

Kod: Zaznacz cały

sudo service supervisor restart
SuplaVirtualDevice powinna zostać uruchomiona w tle. Aby to sprawdzić wpisujemy:

Kod: Zaznacz cały

supervisorctl status
w odpowiedzi powinniśmy otrzymać coś podobnego:

Kod: Zaznacz cały

supla-virtual-device             RUNNING   pid 525, uptime 0:16:10
11_supervisorctl_status.png
11_supervisorctl_status.png (4.58 KiB) Przejrzano 303 razy
Po przydatne komendy odsyłam na stronę p. Roberta, do tego artykułu
cd. w części piątej (konfiguracja powiadomień)
Ostatnio zmieniony sob sty 09, 2021 10:08 am przez jaku2k, łącznie zmieniany 2 razy.
Pozdrawiam
Jakub
jaku2k
Posty: 91
Rejestracja: ndz maja 24, 2020 8:40 pm

pt sty 08, 2021 5:51 pm

cd. - część piąta
Dotychczasowe kroki pokazały jak dodać urządzenie Bbmagic do Supli, teraz ustawimy powiadomienia dla czujnika zalania (ten krok wymaga wykupienia licencji za 4,99 $ - dostępna jest 7-dniowa wersja próbna, więc polecam sprawdzić).

Pierwszym krokiem będzie rejestracja w serwisie. Po poprawnej rejestracji, będąc na stronie głównej Pushover, schodzimy na dół i klikamy przycisk „Create an Application/API Token”. Nazywamy go „Supla”; jako ikonę możemy ustawić jeden z dwóch wariantów dostępnych w plikach do pobrania (z tłem lub bez). Zatwierdzamy stworzenie aplikacji i przechodzimy do zakładki API Supla. Zapisujemy API token (potrzebny przy kolejnym etapie konfiguracji).
Drugi krok to instalacja programu na raspberry:

Kod: Zaznacz cały

git clone https://github.com/lukbek/supla-pushover.git
cd supla-pushover
./install.sh
Następnie wchodzimy w plik konfiguracyjny i edytujemy go:

Kod: Zaznacz cały

nano supla-pushover-config.yaml
Uzupełniamy plik o kluczowe informacje:
port - zostawiamy 2016
host - wpisujemy adres naszego serwera Supla
email - wpisujemy nasz e-mail, na którym założyliśmy Suplę
protocol_version: - pozostawiamy 10.
Pushover:
user: - wpisujemy nasz user key z pushover
token: - wpisujemy API Token zapisany przy konfiguracji API Supli w Pushoverze.

W sekcji notifications pozostawiamy opcję "onchange", oznacza ona, że powiadomienie zostanie wysłane w momencie zmiany stanu kanału. W polu "%channel_1% == 1" pierwszą jedynkę zmieniamy na liczbę ID naszego kanału. W moim przypadku ID czujnika zalania to 9007.
12_dane-pushover.PNG
12_dane-pushover.PNG (87.29 KiB) Przejrzano 296 razy
W ostatniej rubryce tej kategorii wpisujemy treść powiadomienia.
13_zdjęcie_z_ telefonu.png
13_zdjęcie_z_ telefonu.png (113.23 KiB) Przejrzano 296 razy
Więcej na temat supla-pushover można znaleźć na githubie twórcy.

W ostatnim poście zamieszczam podsumowanie pracy i zdjęcia zainstalowanego modułu.
Ostatnio zmieniony sob sty 09, 2021 10:14 am przez jaku2k, łącznie zmieniany 1 raz.
Pozdrawiam
Jakub
jaku2k
Posty: 91
Rejestracja: ndz maja 24, 2020 8:40 pm

pt sty 08, 2021 6:03 pm

Efekty mojej pracy są zamieszczone na zdjęciach poniżej. Moduł umieszczony w hermetycznej puszce (zasilacz, podłączony przez stabilizator, jest poza nią), z której wychodzą dwie zaizolowane elektrody. Na samym końcu zdjąłem izolację. Podłożyłem folię, by kable nie miały bezpośredniego kontaktu z podłożem, ponieważ nasiąknięcie płyty wiórowej mogłoby dawać sygnał zalania, mimo że problem został zażegnany. Na końcu przykręciłem belkę, by woda nie uciekła do dalszych partii drewutni. Kable złapałem do podłogi zszywaczem tapicerskim.

Widzę, że całość wyszła trochę długo. Niejeden poradnik na forum poruszający znacznie bardziej skomplikowane tematy potrafi być kilkakrotnie krótszy. Specjalnie nie oszczędzałem słów opisu, by wszystko przedstawić dla osoby początkującej (jaką sam jestem) i odpowiedzieć na potencjalne pytania. Dziękuję państwu z pomocy BBmagic, którzy edytowali program do moich potrzeb, jak i panu Robertowi Błaszczakowi, który podzielił się programem do modułów BBmagic na forum (cytat przesłany poniżej). Mam nadzieję, że w poradniku nie ma błędów, jednak, jeśli są, proszę o informację.
Z poważaniem
Jakub Tatarski
Załączniki
SNY05388.JPG
SNY05388.JPG (179.56 KiB) Przejrzano 289 razy
SNY05393.JPG
SNY05393.JPG (147.79 KiB) Przejrzano 289 razy
SNY05395.JPG
SNY05395.JPG (137.21 KiB) Przejrzano 289 razy
Pozdrawiam
Jakub
jaku2k
Posty: 91
Rejestracja: ndz maja 24, 2020 8:40 pm

pt sty 08, 2021 6:08 pm

Robert Błaszczak pisze:
pt sty 01, 2021 7:00 pm
Tutaj: https://download.blaszczak.pl/?dir=SUPLA/BBMagic/rb-bbm zmodyfikowany projekt BBMagic Home obsługujący narazie tylko jeden sensor BBMagic MAGNETO.
Pozdrawiam
Jakub
jaku2k
Posty: 91
Rejestracja: ndz maja 24, 2020 8:40 pm

pt sty 08, 2021 7:08 pm

Poniżej przesyłam pliki do pobrania (program i ikony do Pushovera).
supla_bbmagic_sensors - plik .zip zawierający wszystko, co opisane w poradniku. Wystarczy odpakować i skopiować folder na raspberry. Należy zwrócić uwagę na obecność pliku w "drzewku folderów".
Załączniki
Pushover - ikona z tłem.png
Pushover - ikona z tłem.png (8.79 KiB) Przejrzano 200 razy
Pushover - ikona bez tła.png
Pushover - ikona bez tła.png (5.51 KiB) Przejrzano 200 razy
supla_bbmagic_sensors.zip
(194.01 KiB) Pobrany 12 razy
Ostatnio zmieniony sob sty 09, 2021 10:14 am przez jaku2k, łącznie zmieniany 2 razy.
Pozdrawiam
Jakub
Awatar użytkownika
pzygmunt
Posty: 10069
Rejestracja: wt sty 19, 2016 9:26 am
Lokalizacja: Paczków
Kontaktowanie:

pt sty 08, 2021 7:46 pm

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

pt sty 08, 2021 8:11 pm

Super. Może dzięki Supli projekt BBMagic ożyje :)

Ps. @jaku2k, będzie mi milej, jak będzie po prostu Robert, a nie Pan :D :lol: :D
Pozdrawiam
Robert Błaszczak

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

Wróć do „Projekty użytkowników”