Zigbee w Asystencie domowym - inne możliwości
Obecnie na rynku najbardziej popularne są adaptery Zigbee oparte na chipach Texas Instruments ccXXXX. Ale pojawiają się już inne możliwości i z czasem będziemy wspierali więcej adapterów Zigbee.
Kilka miesięcy temu dostaliśmy od Sonoff zestaw Zigbee z bramką - ten na zdjęciu powyżej.
W podobnym czasie od firmy ebyte dostaliśmy taką płytkę developerską:
Oba te produkty oparte są na układzie Silabs EFR32 SoC:
Adaptery oparte na tym układzie będą niedługo wspierane przez Zigbbe2Mqtt.
Dzisiaj miałem czas pobawić się bramką Sonoff Zigbee Bridge - opiszę jak to działa
1. Tasmota
Oczywiście na początek trzeba odłączyć się od Chińskiej chmury i zaprogramować bramkę oprogramowaniem Tasmota. Tu jest dokładny opis, nie będę go przepisywał:
Całość jest dość prosta, nie trzeba nic lutować na płycie są otworki w które wystarczy włożyć pinki od kabli:
po zaprogramowaniu w konsoli tasmota widać, że zigbee wystartowało - znaczy wszystko OK
parowanie z urządzeniami przebiega bardzo sprawnie, po 5 minutach jest wszystko gotowe, w aplikacji Tasmota wygląda to tak (szału nie ma ale to dzieje się na układzie ESP8266 więc szacun dla Tasmota):
Integracja z Asystentem domowym
Zigbee Home Automation
Możemy przełączyć bramkę Sonoff w tryb mostu TCP. W tym trybie Tasmota przekazuje wszystkie wiadomości z modułu zigbee do ZHA. Całą konfigurację należy wykonać z integracji Home Assistant ZHA.
Włączamy TCP most w Tasmota:
TCPStart 8888
żeby TCP było włączane automatycznie na starcie bramki Zigbee dodajemy taką regułę w Tasmota:
Rule1 ON System#Boot do TCPStart 8888 endon
wszystko to dokładnie jest opisane tu:
W Asystencie domowym dodajemy integracje:
zamiast ścieżki do urządzenia szeregowego wpisujemy połączenie typu “gniazdo sieciowe”, coś takiego:
socket://[zbbridge_ip]:8888
przy czym zamiast zbbridge_ip wpisujemy adres IP naszej bramki zigbee
prędkość portu ustawiamy na 115200
Urządzenia musimy sparować ponownie bo teraz to ZHA będzie nimi zarządzać a nie Tasmota.
Wszystko idzie dosyć sprawnie i intuicyjnie:
po kilku minutach mamy:
Zigbee2Mqtt
Zigbee2Mqtt właśnie dodaje wsparcie dla układów Silicon Labs EZSP
(to jest w gałęzi DEV kodu zigbee2mqtt - my na bramkach mamy kody z gałęzi master)
cała integracja będzie polegała na zmianie portu z /dev/tty..
na tcp://...
serial:
adapter: ezsp
port: 'tcp://10.10.1.20:8888'
Tego nie róbcie na swoich bramkach, jeżeli korzystacie z zigbee2mqtt
# usuwamy zigbee2mqtt
rm -rf ~/zigbee2mqtt
# klonujemy najnowsze kody z gałęzi dev
git clone --depth 1 -b dev https://github.com/Koenkk/zigbee2mqtt.git
# instalujemy zależności
cd zigbee2mqtt
npm ci
edytujemy ~/zigbee2mqtt/data/configuration.yaml
można w konsoli edytorem nano, albo z aplikacji:
w konsoli startujemy zigbee2mqtt
cd zigbee2mqtt
node index.js
i mamy zigbee2mqtt podłączone do bramki Sonoff z oprogramowaniem Tasmota:
parujemy urządzenia tym razem z zigbee2mqtt
Możemy zapisać serwis zigbee w PM2 - żeby uruchamiał się po starcie systemu:
pm2 start /data/data/pl.sviete.dom/files/home/zigbee2mqtt/index.js --name zigbee-tcp --output /dev/null --error /dev/null --restart-delay=150000
pm2 save
PS
w przypadku błędu z zigbee2mqtt
trzeba upewnić się, że Tasmota ma włączony serwer TCP
Podsumowanie
Zostawiam konfigurację:
Urządzenia Zigbee <-zigbee-> Sonoff Tasmota <-tcp-> Zigbee2Mqtt <-mqtt-> AIS
zobaczę jak to jest stabilne.
Eksperymentuje z tym połączeniem: Adapter Zigbee ← TCP → Zigbee2Mqtt bo daje to możliwość podłączenia każdego adaptera do AIS bez konieczności kompilowania sterowników i zmiany uprawnień do /dev/tty…
Adapter może znajdować się w centralnym miejscu domu (czy tam gdzie być powinien żeby mieć najlepsze połączenie z urządzeniami), a bramka AIS w dowolnym innym miejscu w którym pasuje (koło tv czy zestawu audio).
Na tej samej bramce mogli byśmy w ten sposób uruchamiać kilka koordynatorów (będą to różne sieci zigbee). Wystarczy uruchomiać kolejne instancje zigbee2mqtt z konfiguracją wskazują na odpowiedni socket TCP.
Oczywiście te powyższe rozwiązania są jeszcze w fazie eksperymentalnej… i jeżeli ktoś chciał by je stosować w domu, to lepiej poczekać jak to zostanie wydane w kolejnej wersji zigbee2mqtt.
Ale widać już, że jest na co czekać
PS
To rozwiązanie opisane powyżej może mieć podstawowy problem → WiFi i jego zawodność… zobaczymy