🐝 Zigbee w Asystencie domowym - inne możliwości

Zigbee :honeybee: 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ą:

image

Oba te produkty oparte są na układzie Silabs EFR32 SoC:

image

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

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'

:warning: :warning: Tego nie róbcie na swoich bramkach, jeżeli korzystacie z zigbee2mqtt :warning: :warning:

# 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
image

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ć :slight_smile:

PS
To rozwiązanie opisane powyżej może mieć podstawowy problem → WiFi i jego zawodność… zobaczymy

7 polubień

A to kolejny dongle oparty na EFR32 - ZigBee 3.0 USB Dongle, ciekawy jestem czy jest/będzie lepszy od CC2531?
Krotki opis modułu na $7 ITEAD Zigbee 3.0 USB dongle features Silicon Labs EFR32MG21 MCU

ten układ na tym adapterze to jest to samo co w bramce Sonoff, takie 2 dongle już do nas lecą :slight_smile: zobaczymy jak to działa… i jakie z tym mogą być problemy :wink:

wg producenta ten SoC ma być w stanie koordynować ok 200 urządzeń zigbee 3.0 (30-60 bezpośrednio podłączonych a resztę przez routery), zobaczymy

1 polubienie

Używam HA i takie coś już można tak uruchomić, i działa, ja odpaliłem sobie jedną instancję Z2M z oficjalnego add-ona, druga wgrana lokalnie (lokalny add-on, po prostu druga kopia Z2M):

Takie rozwiązanie daje spore możliwości testowania bez wpływu na środowisko produkcyjne i jest bardzo elestyczne.
Nadam mam jednak mieszane uczucia czy osobna dedykowana bramka tylko do Zigbee (np. Sonoff ZB Bridge) jest lepsza od modułu wpiętego do bramki HA, wiadomo są plusy i minusy takiego rozwiązania, najważniejsze żeby plusy przysłoniły minusy, na razie mam dylemat :wink:.