Sonoff ZBDongle-P Adapter Zigbee 3.0 domoticz Zigbee2MQTT
Kupując urządzenia ZigBee, traktowałem urządzenia jako nowość na rynku, mimo że mają już kilka lat. Urządzenia ZigBee mega przypadły mi do gustu, ale rzadko były kompatybilne z Domoticzem. Kupiłem również Sonoff, którego widzicie na zdjęciu powyżej jako kolejny przedmiot, który przedstawie, ale okazało się, że to małe urządzenie pozwoli mi na kompatybilność razem z Domoticzem i tym się zajmiemy w tym artykule.
Szukając sposobu na połączenie tego urządzenia z Domoticzem widziałem informacje często błędne np takie, że działa to tylko na firefox, albo takie, że muszę zmienić oprogramowanie na Dongle od sonoff. Oczywiście nie byłby to większy problem, ale byłem ciekaw, czy zadzaiała to z oryginalnym softem i działa faktycznie. Kwestia firefoxa to też jakiś dziwny mit, bo działa normalnie na różnych przeglądarkach i nie ma większego znaczenia, z jakiej korzystacie.
Zmiana softu – Soft można zmienić i zaktualizować, ale ja tego nie robiłem i nie mam zamiaru, bo stosuje zasadę, że jeżeli coś działa prawidłowo, to nie ma sensu tego aktualizować.
Nagram również film o tym module (film jest na końcu tego artykułu), więc przetestuje wszystkie sonoffy zigbee, które posiadam oraz Moduły ZigBee od Tuya.
W tym artykule skorzystamy z oficjalnych w języku angielski instrukcji:
–Zigbee2MQTT
–Support zigbee device
–domoticz-zigbee2mqtt-plugin
Instrukcje wyjaśniają, jak uruchomić Zigbee2MQTT w systemie Linux.
Dla uproszczenia ten przewodnik zakłada działanie na Raspberry Pi z Raspbian Stretch Lite, ale powinien działać na dowolnym komputerze z systemem Linux.
Przed rozpoczęciem upewnij się, że masz zainstalowanego brokera MQTT w swoim systemie. Dostępnych jest wiele samouczków, jak to zrobić, przykład Mosquitto jest zalecanym brokerem MQTT, ale inne również powinni działać dobrze.
Najpierw musimy określić lokalizację adaptera. W tym celu podłącz adapter do Raspberry Pi. W większości przypadków lokalizacja, to /dev/ttyACM0
można to zweryfikować poprzez komendę:
ls -l /dev/serial/by-id
Po screenie powyżej widać, że Sonoff ZigBee Dongle jest prawidłowo wykryty przez raspberry i najważniejsze na żółto jest zaznaczone, że jest on na parci ttyUSB0, ale to będziemy potrzebować później.
Instalowanie node.js:
sudo apt-get install –y git-core
sudo curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
Jeżeli powyższa komenda nie zadziała przeładuj malinę i sprawdź:
sudo apt install nodejs
Po zainstalowaniu możemy sprawdzić wersje:
node --version
Wersja powinna być:
v10.X, v12.X, v14.X, v15.X or V16.X
npm --version
Wersja powinna być:
6.X or 7.X
Pobierz repozytorium ZigBee2MQTT:
git clone https://github.com/Koenkk/zigbee2mqtt.git
Rozpakuj do folderu:
sudo mv zigbee2mqtt /opt/zigbee2mqtt
sudo chown -R pi:pi /opt/zigbee2mqtt
Otwórz folder /opt/zigbee2mqtt:
cd /opt/zigbee2mqtt
npm ci
Jeśli wszystko poszło poprawnie, wynik npm ci
jest podobny do mojego wyniku (liczba pakietów i sekund może być inna):
Zanim będziemy mogli uruchomić Zigbee2MQTT, to musimy dokonać zmiany w configuration.yaml
. Ten plik zawiera konfigurację, która będzie używana przez Zigbee2MQTT.
Otwórz plik konfiguracyjny:
nano /opt/zigbee2mqtt/data/configuration.yaml
# MQTT settings mqtt: # MQTT base topic for Zigbee2MQTT MQTT messages base_topic: zigbee2mqtt # MQTT server URL server: 'mqtt://localhost' # MQTT server authentication, uncomment if required: # user: my_user # password: my_password # Serial settings serial: # Location of the adapter (see first step of this guide) port: /dev/ttyACM0
w tym pliku wklejamy poniższe ustawienia, lub wprowadzamy je ręcznie
homeassistant: false permit_join: true mqtt: base_topic: zigbee2mqtt server: mqtt://localhost user: mqtt password: password serial: port: /dev/ttyUSB0 experimental: new_api: true advanced: log_level: debug channel: 25 network_key: - 72 - 187 - 177 - 9 - 119 - 150 - 203
Pamiętajcie o ustawieniu user, oraz password i prawidłowego portu USB. Dodatkowo musimy wygenerować kod hasła do sieci ZigBee. Klucz nie jest wykorzystywany przez nas, więc nie musimy go znać, ale jeżeli chcecie własny, to można użyć generatora:
advanced: network_key: GENERATE
Po kolejnym restarcie wygeneruje wasz własny klucz.
Zapisujemy plik CTR+ X >> Y >> Enter
Teraz gdy wszystko skonfigurowaliśmy poprawnie, możemy uruchomić Zigbee2MQTT.
cd /opt/zigbee2mqtt
npm start
Do zatrzymania konsoli używamyCTRL + C
.
Utworzenie pliku startowego
sudo nano /etc/systemd/system/zigbee2mqtt.service
[Unit] Description=zigbee2mqtt After=network.target [Service] ExecStart=/usr/bin/npm start WorkingDirectory=/opt/zigbee2mqtt StandardOutput=inherit StandardError=inherit Restart=always User=pi [Install] WantedBy=multi-user.target
Następnie aktywujemy usługę zigbee2mqtt w trybie serwisu:
sudo systemctl enable zigbee2mqtt.service
sudo systemctl daemon-reload
Przykładowe komendy:
sudo service zigbee2mqtt start
Start
sudo service zigbee2mqtt status
Status
sudo service zigbee2mqtt restart
Restart
Przechodzimy do instalowania pluginu w Domoticz:
cd domoticz/plugins
Otwieramy folder z pluginami
git clone https://github.com/stas-demydiuk/domoticz-zigbee2mqtt-plugin.git zigbee2mqtt
Instalujemy plugin
Wykonujemy teraz restart naszej maliny. W tym celu w domoticzu wchodzę w Konfiguracja >> Więcej opcji >> Uruchom ponownie system
Po restarcie wchodzimy w Konfiguracja >> Sprzęt
Nazwa – własna
Typ – Zigbee2MQTT
MQTT Username – nazwa użytkownika np z mosquito
MQTT Password – hasło użytkownika np z mosquito
Na końcu po prawidłowej konfiguracji używamy opcji Dodaj
Wykonujemy teraz restart naszej maliny. W tym celu w domoticzu wchodzę w Konfiguracja >> Więcej opcji >> Uruchom ponownie system
Pojawił się nowy przycisk Własne, ale jeżeli u was się nie pojawił to wejdźcie w Konfiguracja>> Ustawienia>> Aktywne zakładki i zobaczcie czy macie zaznaczone, że może się pojawić własne:
Wykonujemy teraz restart naszej maliny. W tym celu w domoticzu wchodzę w Konfiguracja >> Więcej opcji >> Uruchom ponownie system
Jeżeli nadal nie działa, to pozostaje nam ostatnia opcja, czyli zmiana oprogramowania naszego Domoticza, z wersji stabilnej na wersje beta. W tym celu wchodzimy w Konfiguracja>> Ustawienia:
Wykonujemy teraz restart naszej maliny. W tym celu w domoticzu wchodzę w Konfiguracja >> Więcej opcji >> Uruchom ponownie system
Po restarcie powinien się pojawić komunikat, że jest dostępna nowa wersja i aktualizujemy (pamiętajcie, że wersje beta często są niestabilne i posiadają błędy).
Jeżeli znikną wam wszystkie przełączniki, to należy wyczyścić pliki cookies. W przypadku chroma można nacisnąć CTR +F5 i przeładuje się strona z wyczyszczonymi plikami, jeżeli nie wróci to jeszcze raz restart maliny i znów CTR+F5.
Po tej całej procedurze Przycisk własne powinien się pojawić. Dodatkowo jak wejdziemy w Konfiguracja>> Urządzenia i posegregujemy według najnowszego idx to znajdziemy:
Naciskamy zieloną strzałkę i dodajemy api-transport
Wchodzimy teraz Własne>> Zigbe2MQTT:
Pair Device działa inaczej niż w przypadku zwykłej bramki ZigBee, bo po naciśnięciu zawsze urządzenie może zostać dodane. Oznacza to, że możemy raz nacisnąć i potem naciskając na dowolnym urządzeniu opcje parowania od razu go dodamy do domoticza. Wszystkie urządzenia, które sparujemy będą nam się wyświetlać standardowo w Konfiguracja>> Urządzenia:
Dodawanie urządzeń polega na naciśnięciu zielonej strzałki po prawej stronie.
Powyższy screen pokazuje urządzenia z moją własną nazwą. Urządzenie możemy też zobaczyć na screenie z wszystkimi urządzeniami Zigbee.
Chcecie wiedzieć, jak to działa ??
– Działa idealnie szybkie parowanie łatwe dodawanie. Jedyna uwaga, to w domoticzu pojawia się parę urządzeń jednego typu np temperatura, temperatura i wilgotność, wilgotność, status baterii itd wybieramy urządzenie, które nas interesują i je dodajemy. Przykładowo do czujnika otwarcia również mamy status baterii, ale go nie potrzebuje.
Jeżeli mamy sparowane wszystkie urządzenia, to warto wyłączyć opcje parowania.
nano /opt/zigbee2mqtt/data/configuration.yaml
permit_join: true
Zmieniamy opcje z true na false i zapisujemy.
Opcja usunięcia czujnika:
Jeżeli z jakichś przyczyn mamy urządzenie nierozpoznane prawidłowo, lub nie działa prawidłowo, to chcielibyśmy się go pozbyć i to niestety nie jest zbyt proste, ale mam metodę, która zawsze działa.
Włączmy putty zalogujmy się do raspberry i otwórzmy plik:
nano /opt/zigbee2mqtt/data/configuration.yaml
Plik bardzo dobrze wam znany, bo już wprowadzaliśmy do niego ustawienia, ale wprowadźmy nowe:
frontend: port: 8081 host: 192.168.0.100
Host to adres waszej maliny, ale port musi się różnić od portu maliny. Malina ma port 8080, a tutaj wpisałem 8081.
homeassistant: false permit_join: true mqtt: base_topic: zigbee2mqtt server: mqtt://localhost user: mqtt password: password serial: port: /dev/ttyUSB0 experimental: new_api: true frontend: port: 8081 host: 192.168.0.100 advanced: log_level: debug channel: 25 network_key: - 72 - 187 - 177 - 9 - 119 - 150 - 203
Pamiętajcie o zapisaniu CTR+ X potem Y i zatwierdzamy enterem. Następnie:
sudo systemctl enable zigbee2mqtt.service
sudo reboot
Wykonaliśmy restart maliny i teraz możemy sprawdzić naszą tajemniczą stronę:
Na stronie mamy opcje usuwania urządzeń czerwony przycisk, ale możemy również ponownie przeładować przycisk żółty przycisk. Strona umożliwia nam również parowanie urządzeń i wszystko automatycznie przenosi się do domoticza.
Zachęcam również do zobaczenia materiału wideo: