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

jaku2k
Posts: 920
Joined: Sun May 24, 2020 8:40 pm
Has thanked: 1 time

Post

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
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ę:

Code: Select all

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:

Code: Select all

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

Code: Select all

cd supla-virtual-device
i wpisujemy:

Code: Select all

./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):

Code: Select all

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
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
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
You do not have the required permissions to view the files attached to this post.
Last edited by jaku2k on Sat Jan 09, 2021 10:16 am, edited 3 times in total.
Pozdrawiam
Jakub
jaku2k
Posts: 920
Joined: Sun May 24, 2020 8:40 pm
Has thanked: 1 time

Post

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

Code: Select all

./supla-virtual-device
W odpowiedzi powinniśmy otrzymać podobną treść:
5_odpowiedz.png
Na naszym koncie powinno pojawić się urządzenie o wcześniej nadanej nazwie:
6_SVD_witryna.png
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:

Code: Select all

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:

Code: Select all

cd supla_bbmagic/supla_bbmagic_sensors
i wpisujemy:

Code: Select all

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

Code: Select all

sudo ./supla_bbmagic_sensors
cd. w części trzeciej
You do not have the required permissions to view the files attached to this post.
Last edited by jaku2k on Sat Jan 09, 2021 10:00 am, edited 4 times in total.
Pozdrawiam
Jakub
jaku2k
Posts: 920
Joined: Sun May 24, 2020 8:40 pm
Has thanked: 1 time

Post

cd. - część trzecia
7_uprawnienia.png
W odpowiedzi powinniśmy otrzymać podobną treść:

Code: Select all

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:

Code: Select all

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

Code: Select all

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

Code: Select all

[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

Code: Select all

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:

Code: Select all

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

Code: Select all

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

Code: Select all

sudo reboot now
...i sprawdzamy poleceniem:

Code: Select all

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
cd. w czwartej części
You do not have the required permissions to view the files attached to this post.
Last edited by jaku2k on Sat Jan 09, 2021 10:04 am, edited 6 times in total.
Pozdrawiam
Jakub
jaku2k
Posts: 920
Joined: Sun May 24, 2020 8:40 pm
Has thanked: 1 time

Post

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:

Code: Select all

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:

Code: Select all

[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
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:

Code: Select all

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

Code: Select all

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

Code: Select all

supla-virtual-device             RUNNING   pid 525, uptime 0:16:10
11_supervisorctl_status.png
Po przydatne komendy odsyłam na stronę p. Roberta, do tego artykułu
cd. w części piątej (konfiguracja powiadomień)
You do not have the required permissions to view the files attached to this post.
Last edited by jaku2k on Sat Jan 09, 2021 10:08 am, edited 2 times in total.
Pozdrawiam
Jakub
jaku2k
Posts: 920
Joined: Sun May 24, 2020 8:40 pm
Has thanked: 1 time

Post

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:

Code: Select all

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

Code: Select all

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
W ostatniej rubryce tej kategorii wpisujemy treść powiadomienia.
13_zdjęcie_z_ telefonu.png
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.
You do not have the required permissions to view the files attached to this post.
Last edited by jaku2k on Sat Jan 09, 2021 10:14 am, edited 1 time in total.
Pozdrawiam
Jakub
jaku2k
Posts: 920
Joined: Sun May 24, 2020 8:40 pm
Has thanked: 1 time

Post

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
You do not have the required permissions to view the files attached to this post.
Pozdrawiam
Jakub
jaku2k
Posts: 920
Joined: Sun May 24, 2020 8:40 pm
Has thanked: 1 time

Post

Robert Błaszczak wrote: Fri Jan 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
Posts: 920
Joined: Sun May 24, 2020 8:40 pm
Has thanked: 1 time

Post

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".
You do not have the required permissions to view the files attached to this post.
Last edited by jaku2k on Sat Jan 09, 2021 10:14 am, edited 2 times in total.
Pozdrawiam
Jakub
User avatar
pzygmunt
Posts: 20302
Joined: Tue Jan 19, 2016 9:26 am
Location: Paczków
Been thanked: 59 times

Post

Brawo
SUPLA.... Nareszcie w domu.
User avatar
Robert Błaszczak
Posts: 5222
Joined: Sat Dec 22, 2018 8:55 pm
Location: Zielona Góra
Has thanked: 37 times
Been thanked: 27 times

Post

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


Moja prywatna strona: www.blaszczak.pl

Return to “Projekty użytkowników”