Integracja z protokołem ZigBee

  • Numer dokumentu: PO-197
  • Wersja: 1.0
  • Data publikacji: 7 marca 2023


Wstęp

Integracja urządzeń wspierających protokół ZigBee z systemem Ampio możliwa jest na przykład dzięki dopięciu bramki do modułu M-SERV-s. W celu wykonania połączenia niezbędne jest użycie platformy Node-RED. W poniższym przykładzie jako bramka służy moduł ZBDongle-E firmy Sonoff z dedykowaną anteną.

Instalacja bramki

Aby podłączyć bramkę, odłączamy M-SERV od zasilania, wpinamy moduł w dowolne złącze USB i zasilamy ponownie serwer. Po kilku minutach, poprzez interfejs www aktywujemy połączenie SSH (wskazówki dostępne w poradniku Konfiguracja serwera). Logujemy się przy użyciu utworzonego hasła na konto root na serwerze np. poprzez aplikację putty.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Wyszukanie portu z bramką

Po wpisaniu hasła wyszukujemy urządzenia z użyciem komendy:

dmesg | grep tty

Mostek prawdopodobnie zostanie dodany jako ttyACM0.

Tworzenie i konfigurowanie folderu

Tworzymy folder

sudo mkdir /ampio/rw/zigbee2mqtt

Nadajemy uprawnienia

sudo chown -R ${USER}: /ampio/rw/zigbee2mqtt

Klonowanie repozytorium zigbee2mqtt

git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git /ampio/rw/zigbee2mqtt

Instalowanie zawartości

Zmieniamy aktualny folder

cd /ampio/rw/zigbee2mqtt

Następnie instalujemy

npm ci

Modyfikacja pliku konfiguracyjnego

Otwieramy plik do edycji

nano /ampio/rw/zigbee2mqtt/data/configuration.yaml

Pole server ustawiamy na mqtt://localhost.

Pole port zgodnie z tym co wyszukane zostało powyżej np. /dev/ttyACM0.

Pola połączenia MQTT zgodnie z naszymi ustawieniami serwera, user to najczęściej admin oraz odpowiednie hasło (dane logowania jak do bloczków mqtt w Node-RED).

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Po zmianie zapisujemy i zamykamy plik konfiguracyjny. W putty robimy to poprzez Ctrl+x, następnie y i Enter.

Pierwsze uruchomienie

Wpisujemy komendę

npm start

Dodanie urządzenia podrzędnego

Urządzenie dodawane w poradniku to czujnik temperatury i wilgotności SNZB-02 firmy Sonoff. Instrukcje dla urządzeń dostępne są na stronach odpowiednich producentów. W przypadku opisywanego czujnika, w celu jego dodania należy przytrzymać przycisk na obudowie przez 5 sekund. Po poprawnym dodaniu urządzenia w terminalu powinno pokazać się kilka komunikatów w tym np. taki:

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Po dodaniu czujnika, można poprzez platformę Node-RED reagować na dane lub z użyciem bloczków (np. mqtt out) wysłać dane do magistrali CAN.

Aby zachować bezpieczeństwo, po dodaniu wszystkich urządzeń należy zatrzymać proces np. Ctrl+c, ponownie wejść w plik configuration.yaml i ustawić permit_join:false. Potem uruchamiamy proces ponownie.

Konfiguracja w Node-RED

Poradnik opisujący podstawy Node-RED w systemie Ampio dostępny jest pod adresem: Integracja systemu Ampio z Node-RED. Po dodaniu urządzeń podrzędnych można już nasłuchiwać danych z brokera MQTT Ampio. Topic na którym urządzenie nadaje można podejrzeć w terminalu poprzez połączenie SSh. W tym przykładzie jest to topic główny i ID dodanego urządzenia: zigbee2mqtt/0x00124b00250e039e.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Dane można podejrzeć po dodaniu bloczka debug.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

W celu np. odczytania liczbowo wilgotności z tego czujnika przepuszczamy informację przez bloczek function z zawartością:

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

Różne urządzenia końcowe mogą nadawać informację w różnych postaciach dlatego warto podejrzeć dane w oknie debug przed napisaniem funkcji przesyłającej informację.

Automatyczne uruchamianie

Aby aplikacja została uruchomiona automatycznie po restarcie zasilania, należy dodać odpowiedni skrypt. W interfejsie www modułu M-SERV wchodzimy w zakładkę SYSTEM a następnie SKRYPTY. Pobieramy załączony plik o nazwie zigbee2mqtt.sh. Wgrywamy go poprzez WYBIERZ PLIK, następnie WGRAJ PLIK. W kolejnym kroku zaznaczamy przy skrypcie pole 5 min i naciskamy ZAPISZ.

Kliknij, aby powiększyć i otworzyć w nowej zakładce.

W celu sprawdzenia poprawności konfiguracji resetujemy zasilanie serwera i po kilku minutach sprawdzamy działanie poprzez Node-RED np. w oknie debug.

Plik do pobrania: