🎉 Zigbee2MQTT w Home Assistant Supervised

:tada: Zigbee2MQTT w Home Assistant Supervised

W poprzednim wpisie: :tada: Home Assistant Supervised na DEV3 i PRO1 opisaliśmy jak uruchomić na bramce AIS Home Assistant Supervised.

W tym wpisie opiszemy jak zainstalować i skonfigurować Zigbee2MQTT w Home Assistant Supervised.

1. MQTT Broker

W obrazach systemu które publikujemy jest już zainstalowany i skonfigurowany z HA MQTT Broker, więc ten punkt mamy wykonany - nie musimy nic robić.

2. Dodanie repozytorium z dodatkiem Zigbee2MQTT

Przechodzimy do UstawieniaDodatkiSklep z dodatkami klikamy trzy kropki w prawym górnym rogu i wybieramy Repozytoria:

dodajemy następujący adres repozytorium:

https://github.com/zigbee2mqtt/hassio-zigbee2mqtt

3. Dodatki Zigbee2MQTT

Po dodaniu repozytorium z dodatkami, pojawią nam się 3 nowe dodatki Zigbee2MQTT, wybieramy i instalujemy pierwszy dodatek Zigbee2MQTT


4. Konfiguracja

Przechodzimy do zakładki konfiguracja i wpisujemy:

  • w polu mqtt: server: mqtt://ais-dom:1883
  • w polu serial: port: /dev/ttyUSB0

* w polu mqtt podajemy IP naszej bramki ais np. : server: mqtt://192.168.0.8:1883 lub nazwe hosta bramki ais: server: mqtt://ais-dom:1883
* w polu serial wpisujemy wartość na zgodnie z tym na jakim porcie został dodany nasz adapter zigbee, żeby sprawdzić ścieżkę do adaptera szeregowego USB, który był podłączony jako ostatni wystarczy w konsoli wykonać taką komendę:

dmesg | awk '/tty/ && /USB/ {print "/dev/"$10}'|tail -1

zapisujemy nasze ustawienia i uruchamiamy dodatek

5. Zigbee2MQTT się uruchomił

6. Logi

Gdyby coś nie zadziałało tak jak opisaliśmy, to sprawdzamy logi zigbee2MQTT, w tym celu łączymy się z bramką po ssh i przechodzimy do folderu /usr/share/hassio/homeassistant/zigbee2mqtt/log:

cd /usr/share/hassio/homeassistant/zigbee2mqtt/log
ll

po wylistowaniu zawartości folderu z logami, przechodzimy do najnowszego folderu z logami, np:

cd 2023-08-29.10-47-07

następnie sprawdzamy co jest w logach:

tail -f log.txt

TADA :tada: i mamy zigbee2mqtt

1 polubienie

@jolka bardzo mnie to zastanawia

  • piki co chce używać bramki z Android i testować HA Supervised z SD.

Chce przenieść cała konfigurację ręcznie (skoro AIS android będzie działać to mogę poświęcić czas)

I tu moje pytanie - czy Conbee i zigbee2mqtt jak będę miał skonfigurowane na AIS android i… Jednocześnie jak się przełączę na HA Supervised z SD ustawie zigbee2mqtt i ten sam Koordynator Conbee to będzie on działać i tu i tu?

Tak samo że sparowanymi urządzeniami - jak mam sparowane je w AIS Android i sparuje z HA Supervised (te same) to będą wykrywanie i tu i tu w zależności jak uruchomię bramkę?

1 polubienie

Tak, jak będzie trochę czasu to opublikujemy skrypt bash do kopiowania konfiguracji, ale całe przeniesienie konfiguracjizigbee2mqtt na HA to prostu skopiowanie katalogu data na nową maszynę.

2 polubienia

Witam. Po przeniesieniu katalogu (podmianie plików) musiałem każde urządzenie wyłączyć i włączyć , tak samo w MQTT część urządzeń pojawiła się po ich restarcie, na szczęście ich konfiguracja przeniesiona z AIS nie znika. W konfiguracji MQTT wpisujemy port: /dev/ttyACM0
adapter: deconz
Jeśli mamy ten adapter.

1 polubienie

Witam. Jaka jest różnica między Z2M a integracją ZHA z home assistant ? Muszę i tak poprawić automatyzacje i nie wiem na co się zdecydować.

1 polubienie

Na Z2M na pewno. Patrząc przynajmniej po ilości wątków problemów z tymi integracjami. Jeśli chcesz wiedzieć konkrety to są tutaj zaawansowani użytkownicy co Ci to rozłożą na czynniki pierwsze :wink: ja korzystam z Z2M od roku i nigdy nie miałem z nim problemów.

Wyklikałem, krok po kroku, ale nie uruchamia mi się Zigbee2MQTT.
Browser Working
Cloudflare Working
Host Error

W logach mam takie info:
[11:32:42] INFO: Preparing to start…
[11:32:44] INFO: Socat not enabled
[11:32:49] INFO: Starting Zigbee2MQTT…
Zigbee2MQTT:info 2024-04-18 11:32:59: Logging to console and directory: ‘/config/zigbee2mqtt/log/2024-04-18.11-32-59’ filename: log.txt
Zigbee2MQTT:info 2024-04-18 11:32:59: Starting Zigbee2MQTT version 1.36.1 (commit #unknown)
Zigbee2MQTT:info 2024-04-18 11:32:59: Starting zigbee-herdsman (0.40.3)
Zigbee2MQTT:error 2024-04-18 11:33:00: Error while starting zigbee-herdsman
Zigbee2MQTT:error 2024-04-18 11:33:00: Failed to start zigbee
Zigbee2MQTT:error 2024-04-18 11:33:00: Check Zigbee2MQTT fails to start | Zigbee2MQTT for possible solutions
Zigbee2MQTT:error 2024-04-18 11:33:00: Exiting…
Zigbee2MQTT:error 2024-04-18 11:33:00: Error: Error: No such file or directory, cannot open /dev/ttyUSB0

Najwyrażniej nie znajduje portu USB, na polecenie:
dmesg | awk ‘/tty/ && /USB/ {print “/dev/”$10}’|tail -1
mam odpowiedż po prostu:
/dev/

Ma ktoś jakieś propozycje jak to ruszyć?

  1. czy przypadkiem nie masz uruchomionego ZHA?
  2. jaki masz koordynator?
  3. czy na Supervised nie ma menu Ustawiania → System → Sprzęt → Cały Sprzęt jak w HAOS?

(no bo kto powiedział, że koordynator musi być pod ścieżką /dev/ttyUSB0? przecież wcale nie musi i często nie jest, wprawdzie akurat na instalacji z której zrobiłem screenshota tak się składa, że akurat właśnie jest pod tą ścieżką, ale w konfiguracji i tak używam inną, tj. typu by-id by uniknąć utraty sprzętu przy podłączaniu innych urządzeń USB)

Z mądrym to aż miło poklikać :slight_smile:
Znalazłem, mam ConBee pod /ttyACM0

No i drugie, to mam w Urządzeniach “Zigbee Home Automation”

Rozumie, że ZHA i Z2M się gryzą i np. ZHA usunąć?

Hmm, już chciałem pisać, że to pewnie “dawno i nieprawda”, ale nie było to jakoś szczególnie dawno, nie zostało też wyszczególnione, że zapewne chodziło o koordynator np. na CC2531 (zwykle TI są pod taką ścieżką), a nie jakiś inny.
No, ale napisać dobry tutorial, który uwzględnia chociaż z 90% przeciętnych przypadków jest po prostu bardzo trudno.

Użyj ścieżki by-id.
Dla sprzętu z mojego screenshota to by było
/dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
ale masz jakąś inną, więc oczywiście użyj swojej.
No chyba, że masz 100% pewności, że do tego komputera nie podłączysz nigdy niczego, co mogło by się pojawić pod /dev/ttyACM0 i uniemożliwić współpracę koordynatora z Z2M.


No nie rozpisałeś się zanadto, ale dla ConBee / ConBee II / ConBee III / RaspBee / RaspBee II z firmware NCP Dresden Elektronik musisz wyspecyfikować sterownik conbee (inne ustawienia zależą od modelu)


Usunąć się nie da, bo ZHA jest wbudowanym składnikiem HA, ale skutecznie zdezaktywować trzeba jak najbardziej (tj. wyłączyć na stałe jeśli już skonfigurowałeś lub zignorować na stałe jeśli dotąd nie konfigurowałeś ZHA).

Już się poprawiam :slight_smile:
Mam ConBee II
w by-id mam taki wpis:
usb-dresden_elekktronik_integnieurtechnik_GmbH_ConBee_II_DE2696129-if00

Natomiast w ‘Cały sprzęt’ jest on pod ttyACM0

ttyACM0/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2696129-if00

Podsystem:tty

Ścieżka urządzenia:`/dev/ttyACM0`

Identyfikator:`/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2696129-if00`

Atrybuty:

DEVLINKS: >- /dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2696129-if00 /dev/serial/by-path/platform-xhci-hcd.3.auto-usb-0:2:1.0 DEVNAME: /dev/ttyACM0 DEVPATH: >- /devices/platform/soc/ffe09000.usb/ff500000.usb/xhci-hcd.3.auto/usb1/1-2/1-2:1.0/tty/ttyACM0 ID_BUS: usb ID_MODEL: ConBee_II ID_MODEL_ENC: ConBee\x20II ID_MODEL_FROM_DATABASE: ZigBee gateway [ConBee II] ID_MODEL_ID: '0030' ID_PATH: platform-xhci-hcd.3.auto-usb-0:2:1.0 ID_PATH_TAG: platform-xhci-hcd_3_auto-usb-0_2_1_0 ID_REVISION: '0100' ID_SERIAL: dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2696129 ID_SERIAL_SHORT: DE2696129 ID_TYPE: generic ID_USB_CLASS_FROM_DATABASE: Communications ID_USB_DRIVER: cdc_acm ID_USB_INTERFACES: ':020201:0a0000:' ID_USB_INTERFACE_NUM: '00' ID_USB_MODEL: ConBee_II ID_USB_MODEL_ENC: ConBee\x20II ID_USB_MODEL_ID: '0030' ID_USB_REVISION: '0100' ID_USB_SERIAL: dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2696129 ID_USB_SERIAL_SHORT: DE2696129 ID_USB_TYPE: generic ID_USB_VENDOR: dresden_elektronik_ingenieurtechnik_GmbH ID_USB_VENDOR_ENC: dresden\x20elektronik\x20ingenieurtechnik\x20GmbH ID_USB_VENDOR_ID: 1cf1 ID_VENDOR: dresden_elektronik_ingenieurtechnik_GmbH ID_VENDOR_ENC: dresden\x20elektronik\x20ingenieurtechnik\x20GmbH ID_VENDOR_FROM_DATABASE: Dresden Elektronik ID_VENDOR_ID: 1cf1 MAJOR: '166' MINOR: '0' SUBSYSTEM: tty TAGS: ':systemd:' USEC_INITIALIZED: '170704919472'

ttyAML0

Podsystem:tty

Ścieżka urządzenia:`/dev/ttyAML0`

Atrybuty:

DEVNAME: /dev/ttyAML0 DEVPATH: /devices/platform/soc/ff800000.bus/ff803000.serial/tty/ttyAML0 MAJOR: '244' MINOR: '0' SUBSYSTEM: tty TAGS: ':systemd:' USEC_INITIALIZED: '9860772'

A tu mam logi z Zigbee2MQTT

[21:55:58] INFO: Preparing to start...
[21:56:00] INFO: Socat not enabled
[21:56:05] INFO: Starting Zigbee2MQTT...
Zigbee2MQTT:info  2024-04-18 21:56:15: Logging to console and directory: '/config/zigbee2mqtt/log/2024-04-18.21-56-15' filename: log.txt
Zigbee2MQTT:info  2024-04-18 21:56:15: Starting Zigbee2MQTT version 1.36.1 (commit #unknown)
Zigbee2MQTT:info  2024-04-18 21:56:15: Starting zigbee-herdsman (0.40.3)
Zigbee2MQTT:error 2024-04-18 21:56:36: Error while starting zigbee-herdsman
Zigbee2MQTT:error 2024-04-18 21:56:36: Failed to start zigbee
Zigbee2MQTT:error 2024-04-18 21:56:36: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start.html for possible solutions
Zigbee2MQTT:error 2024-04-18 21:56:36: Exiting...
Zigbee2MQTT:error 2024-04-18 21:56:36: Error: Failed to connect to the adapter (Error: SRSP - SYS - ping after 6000ms)
    at ZStackAdapter.start (/app/node_modules/zigbee-herdsman/src/adapter/z-stack/adapter/zStackAdapter.ts:103:27)
    at Controller.start (/app/node_modules/zigbee-herdsman/src/controller/controller.ts:132:29)
    at Zigbee.start (/app/lib/zigbee.ts:62:27)
    at Controller.start (/app/lib/controller.ts:109:27)
    at start (/app/index.js:107:5)

No i nie mam pojęcia co dalej.
Nadmienię, że mam dwa urządzenia, i teraz w obu mam dokładnie ten sam błąd.
Obstawiam, że coś mi brakuje w ustawieniach, konfiguracji, albo jeszcze inna prozaiczna przyczyna :frowning:

A to moja konfiguracja Zigbee2MQTT

Nawet nie kliknąłeś w link do dokumentacji, a tam są informacje, o tym czego brakuje w twojej konfiguracji.

co do ścieżki do urządzenia, to użyłbym właśnie tej (bo jest unikalna nawet dla danego egzemplarza sticka)
/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2696129-if00

  1. tu się daje włączyć tryb YAML, dzięki temu można wklejać na forum konfigurację jako tekst (kod), a nie obrazki

  2. tu masz braki, a powyżej ścieżkę /dev/ttyACM0 zmieniłbym na tą w formacie by-id
    czyli by to wyglądało jakoś tak (to jest w trybie YAML !!! dodatkowo po wyjściu z trybu YAML edytor GUI sobie połamie to formatowanie po swojemu, bo linia jest strasznie długa, ale funkcjonalnie będzie to równoznaczne z tym co wkleiłem niżej)

serial:
  port: /dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DE2696129-if00
  adapter: deconz
  1. nie wiem jak na Supervised ani jaki masz broker i czy zainstalowany jako Dodatek na tej samej maszynie, ale w HAOS dla Mosquitto w formie Dodatku wystarcza pusty wpis o brokerze (to jest w trybie YAML !!!)
mqtt: {}

Pozbyłeś się ZHA?

Też próbowałem ścieżkę by-id, i nic to nie dawało i pozbyłem się ZHA,
Ale teraz ruszyło, i chyba kluczowym wpisem jest adapter:

adapter: deconz

Tak więc pomogło.

Na drugim AI-Speaker (mam dwa urządzenia) dopisałem tylko adapter:

port: /dev/ttyACM0
adapter: deconz

I też działa.

Wielkie dzięki za pomoc

przecież o tym piszę od rana, tylko nie kliknąłeś w dokumentację…

Zmień sobie te ścieżki na takie jak sugerowałem, jak chcesz zobaczyć co to daje, to podepnij oba sticki do jednej maszyny i wtedy się ujawni magia takich ścieżek, bo jeśli będziesz miał

/dev/ttyACM0

to Z2M nie będzie umiał rozpoznać który stick jest który (co ostatecznie się może zakończyć rozwaleniem konfiguracji obu koordynatorów sieci)

przy ścieżkach by-id jesteś bezpieczny - Z2M pozna “swój” koordynator i go użyje, a drugegoo zostawi w spokoju, niezależnie od tego który trafi pod jaką ścieżkę (bo to, że jeden z nich będzie /dev/ttyACM0, a drugi /dev/ttyACM1, to jest pewne jak śmierć, tylko nigdy nie wiadomo który wylosuje którą taką zwykłą ścieżkę…)


Aha w sumie to ważne, ale tak lansuję by-id bo sticki nie są zamienne, każdy z nich ma unikalny ieee adres, więc nie możesz włożyć jednego zamiast drugiego i bezkarnie przenieść istniejącej sieci z jednego koordynatora na inny.

A czemu użyłem słowa “bezkarnie”? Bo oczywiście sieć można przenieść na inny kompatybilny koordynator, ale to kosztuje wykorzystanie jednorazowej zmiany ieee adresu (to jest operacja jednorazowa i nieodwracalna…).

Dodatkowo inne urządzenia mogą się pojawiać jako /dev/ttyACMx a x jest liczbą przydzielaną losowo (tzn. przydzielaną od 0 w górę, ale nie jest powiązania na stałe z danym egzemplarzem)

2 polubienia