Zigbee2MQTT
#
WprowadzenieIntegracja Zigbee w Asystencie domowym daje możliwość łatwego korzystania z urządzeń Zigbee bez potrzeby stosowania bramek producentów. Rozwiązanie oparte jest na projekcie Zigbee2MQTT. I jest całkowicie zintegrowane z naszym oprogramowaniem, dzięki czemu możesz łatwo dodać swoje urządzenia Zigbee do całej infrastruktury inteligentnego domu działającej na systemie Asystent domowy.
#
IntegracjaIntegracja sprowadza się do włożenia do portu USB odpowiednio zaprogramowanego adaptera. Asystent domowy sam rozpozna to urządzenie USB, poinformuje głosowo, że uruchamia serwis Zigbee i automatycznie w konfiguracji pojawi się możliwość dodawania urządzeń zigbee.
#
Obsługiwane urządzeniaObsługujemy to, co obsługuje Zigbee2MQTT, wg informacji na stronie projektu Zigbee2MQTT -> obecnie 06/2021 obsługiwanych jest ponad 1490 urządzeń od 230 różnych dostawców. Projekt rozwija się bardzo intensywnie i nowe urządzenia są stale dodawane.
#
Dodanie nowego urządzenia Zigbee#
Zezwalanie urządzeniom na dołączenie do sieciAby zapewnić bezpieczeństwo sieci Zigbee i uniknąć przypadkowego dołączenia innych urządzeń Zigbee, domyślnie w konfiugracji mamy ustawiony parametr enable_join: false.
Przed rozpoczęciem parowania nowego urządzenia należy włączyć w aplikacji możliwość czasowego parowania z bramką. W przeciwnym razie nowe urządzenia nie będą mogły dołączyć do sieci! Możliwość czasowego parowania z bramką włączamy po przejściu do konfiguracji zigbee2mqtt, w menu wybieramy Konfiguracja -> Konfiguracja urządzeń zigbee
następnie naciskamy przycisk permit join - zezwolenie na dołączenie nowych urządzeń
#
ParowanieNajpierw sprawdź na stronie Zigbee2MQTT w obsługiwanych urządzeniach instrukcję dotyczącą parowania urządzenia po wybraniu modelu urządzenia.
Jeśli nie są dostępne żadne instrukcje, urządzenie można prawdopodobnie sparować przywracając ustawienia fabryczne
#
Mapa sieciPo sparowaniu urządzenia możemy odświeżyć kartę z mapą sieci Zigbee, by zobaczyć nasze nowe urządzenie podłączone do bramki
#
Zmiana nazwy urządzenia#
SterowanieNasze nowe urządzenie autmatycznie dostępne jest w urządzeniach
Po wybraniu urządzenia możemy zobaczyć jego szczegóły i przejść do dodania automatyzacji
Oczywiście nowe encje możemy umieszczać na karcie i wykorzystywać w automatyzacjach, przykłady gotowych rozwiązań zostaną dodane na forum.
#
Informacje techniczne#
Proces zigbeeProcesami na bramce steruje Menedżer procesów PM2. PM2 odpowiedzialny jest też za uruchomienie procesu zigbee po wykryciu urządzenia CC2531, a następnie czuwa nad jego ciągłym działaniem.
Żeby zobaczyć status procesu zigbee w konsoli wpisujemy:
pm2 show zigbee
#
Aplikacja i binarkaProces zigbee oparty jest na aplikacji zigbee2mqtt która działa na binarce nodejs-lts
Naszą kompilację nodejs udostępniamy w naszym repozytorium pakietów binarnych bintray
#
Dostęp lokalnyAplikacja 8099 działa na porcie 8099 w lokalnej sieciu można połączyć się z ją bezpośrednio, wpisując w przeglądarce http://<ip-bramki>:8099
#
Dostęp zdalnyUmożliwiamy też na zdalny dostęp do aplikacji webowej zigbee2mqtt. Dostęp ten jest możliwy tylko po zalogowaniu do Asystenta domowego i jest realizowany z pomocą naszego dodatku ais_proxy - mechnizmu typu ingress
#
Aktualizacja automatycznaZigbee2Mqtt jest dostarczane jako składowa systemu Asystent domowy. Aktualizacja Zigbee2Mqtt do najnowszej stabilnej wersji jest wykonywana automatycznie z interfejsu użytkownika i polega na pobraniu i rozpakowaniu na bramkę gotowej paczki Zigbee2Mqtt z naszego serwisu OTA.
#
Aktualizacja/instalacja ręcznaUwaga
Uwaga! Ręczna aktualizacja jest skomplikowanym procesem dostępnym dla programistów i technicznie zaawansowanych użytkowników. W przypadku wystąpienia problemów po ręcznej aktualizacji zalecamy Wykonanie pełnego resetu aplikacji
Jeżeli chcemy zainstalować wersję dev Zigbee2Mqtt, żeby dodać obsługę nowego urządzenia lub przetestować nowe funkcje, to możemy to zrobić ręcznie z konsoli. Instalacja ręczna polega na pobraniu kodów Zigbee2Mqtt z repozytorium GIT, a następnie uruchomieniu na bramce instalacji zależności (dependencies) aplikacji zigbee2mqtt. Poniżej skrypt bash (do uruchomienia w konsoli) z wyjaśnieniem kroków instalacji ręcznej.
echo "Zatrzymanie serwisu zigbee..."pm2 stop zigbee
echo "kopia konfiguracji zigbee..."cp -R ~/zigbee2mqtt/data/configuration.yaml ~/configuration.yaml
echo "Usuwamy bieżącą wersję zigbee2mqtt..."rm -rf ~/zigbee2mqtt
echo "Kolonujemy kody najnowszej wersji..."git clone --depth=1 https://github.com/Koenkk/zigbee2mqtt.git
echo "Przechodzimy do folderu z kodami zigbee2mqtt..."cd ~/zigbee2mqtt
echo "Przełączamy się na wersję kodu zigbee2mqtt który chcemy uruchomić..."git checkout HEAD -- npm-shrinkwrap.jsongit pull
echo "Instalujemy zależności..."npm ci --unsafe-perm
echo "Przywracamy konfigurację zigbee2mqtt..."cp ~/configuration.yaml ~/zigbee2mqtt/data/configuration.yamlrm ~/configuration.yaml
echo "Uruchomienie serwisu zigbee2mqtt..."pm2 start zigbee
#
KonfiguracjaKonfiguracja Zigbee2Mqtt znajduje się na bramce w pliku ~/zigbee2mqtt/data/configuration.yaml
Uwaga
Uwaga! W przypadku podstawowej konfiguracji ustawienia domyślne są dobre i nie trzeba nic zmieniać.
Potrzeba zmiany konfiguracji może dotyczyć tylko programistów i technicznie zaawansowanych użytkowników którzy np. chcą zmienić parametry połączenia z brkerem MQTT (dodać autentykację itp.). W przypadku wystąpienia problemów po zmianie konfiguracji Zigbee2Mqtt zalecamy Wykonanie pełnego resetu aplikacji
Plik z konfiguracją dostępny jest do edycji z aplikacji. Wystarczy przejść do konfiguracji i wybrać konfigurację urządzeń zigbee:
Następnie w prawym górnym rogu z rozwijalnego menu wybrać opcję "Edit Zigbee2Mqtt configuraton.yaml"
Standardowa konfiguracja znajduje się w pliku ~/zigbee2mqtt/data/configuration.yaml
.
Konfiugracja różni się w zależności od zastosowanego adaptera i jest następująca:
- Adapter PRO Zigbee ConBee2
# configuration.yaml Zigbee2MQTT v 1.19.1 homeassistant: truepermit_join: falsemqtt: base_topic: zigbee2mqtt server: 'mqtt://localhost'serial: adapter: deconz port: /dev/ttyACM0frontend: port: 8099advanced: log_level: info log_output: - console channel: 11
- Adapter DEV Zigbee USB CC2531
# configuration.yaml Zigbee2MQTT v 1.19.1 homeassistant: truepermit_join: falsemqtt: base_topic: zigbee2mqtt server: 'mqtt://localhost'serial: adapter: zstack port: /dev/ttyACM0frontend: port: 8099advanced: log_level: info log_output: - console channel: 11