Conbee II nie paruje urządeń

Hej,

Mam

  • Raspberry Pi 4 z HAOS i Home Assistant:
    • Core - 2024.12.5
    • Supervisor - 2024.12.0
    • Operating System - 14.1
  • Conbee II z taką wersją firmware: 0x26580700.

Skonfigurowałem ConbeeII używając dodatu Zigbee2mqtt i tak wygląda mój config:

homeassistant:
  enabled: true
advanced:
  network_key:
    - ...
  pan_id: 22908
  ext_pan_id:
    - ...
  log_level: debug
  channel: 11
mqtt:
  server: mqtt://core-mosquitto:1883
  user: addons
  password: __PASS__
serial:
  port: >-
    /dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_XXXXXXX-if00
  adapter: deconz
  baudrate: 57600
frontend:
  port: 8099
version: 5
availability:
  enabled: true

Z2M startuje poprawnie z takimi logami:

[14:10:40] INFO: Preparing to start...
[14:10:40] INFO: Socat not enabled
[14:10:41] INFO: Starting Zigbee2MQTT...
Starting Zigbee2MQTT without watchdog.
[2024-12-29 14:10:53] info: z2m: Logging to console, file (filename: log.log)
[2024-12-29 14:10:53] debug: z2m: Loaded state from file /config/zigbee2mqtt/state.json
[2024-12-29 14:10:53] info: z2m: Starting Zigbee2MQTT version 1.42.0 (commit #unknown)
[2024-12-29 14:10:53] debug: z2m: sd-notify loaded
[2024-12-29 14:10:53] info: z2m: Starting zigbee-herdsman (2.1.9)
[2024-12-29 14:10:53] debug: z2m: Using zigbee-herdsman with settings: '"{\"network\":{\"panID\":22908,\"extendedPanID\":[---],\"channelList\":[11],\"networkKey\":\"HIDDEN\"},\"databasePath\":\"/config/zigbee2mqtt/database.db\",\"databaseBackupPath\":\"/config/zigbee2mqtt/database.db.backup\",\"backupPath\":\"/config/zigbee2mqtt/coordinator_backup.json\",\"serialPort\":{\"baudRate\":57600,\"path\":\"/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DEXXXXXXX-if00\",\"adapter\":\"deconz\"},\"adapter\":{\"disableLED\":false}}"'
[2024-12-29 14:10:55] debug: zh:deconz:driver: Set delay to 0
[2024-12-29 14:10:55] debug: zh:controller: Starting with options '{"network":{"networkKeyDistribute":false,"networkKey":"HIDDEN","panID":22908,"extendedPanID":[---],"channelList":[11]},"serialPort":{"baudRate":57600,"path":"/dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DEXXXXXXX-if00","adapter":"deconz"},"adapter":{"disableLED":false},"databasePath":"/config/zigbee2mqtt/database.db","databaseBackupPath":"/config/zigbee2mqtt/database.db.backup","backupPath":"/config/zigbee2mqtt/coordinator_backup.json"}'
[2024-12-29 14:10:55] debug: zh:deconz:driver: Opening with /dev/serial/by-id/usb-dresden_elektronik_ingenieurtechnik_GmbH_ConBee_II_DEXXXXXXX-if00
[2024-12-29 14:10:55] debug: zh:deconz:driver: Serialport opened
[2024-12-29 14:10:55] debug: zh:deconz:driver: send read parameter request from queue. seqNr: 1 paramId: 5
[2024-12-29 14:10:55] debug: zh:deconz:frameparser: PANID: 597c
[2024-12-29 14:10:55] debug: zh:deconz:driver: send read parameter request from queue. seqNr: 2 paramId: 11
[2024-12-29 14:10:55] debug: zh:deconz:frameparser: APS_EXT_PANID: 0xdee5f888426a19ce
[2024-12-29 14:10:55] debug: zh:deconz:driver: send read parameter request from queue. seqNr: 3 paramId: 28
[2024-12-29 14:10:55] debug: zh:deconz:frameparser: CHANNEL: 11
[2024-12-29 14:10:55] debug: zh:deconz:driver: send read parameter request from queue. seqNr: 4 paramId: 24
[2024-12-29 14:10:55] debug: zh:deconz:frameparser: NETWORK_KEY: hidden
[2024-12-29 14:10:55] debug: zh:deconz:driver: send write parameter request from queue. seqNr: 5 paramId: 19 param: 5,2,5,0,0,32,0,1,4,5,1,0,25,0,10,6,0,0,0,5,1,0,5,1,4,1,0
[2024-12-29 14:10:55] debug: zh:deconz:frameparser: write parameter response - parameter id: 19 - status: 0
[2024-12-29 14:10:55] debug: zh:controller: Started with result 'resumed'
[2024-12-29 14:10:55] debug: zh:deconz:driver: send read parameter request from queue. seqNr: 6 paramId: 5
[2024-12-29 14:10:55] debug: zh:deconz:frameparser: PANID: 597c
[2024-12-29 14:10:55] debug: zh:deconz:driver: send read parameter request from queue. seqNr: 7 paramId: 11
[2024-12-29 14:10:55] debug: zh:deconz:frameparser: APS_EXT_PANID: 0xdee5f888426a19ce
[2024-12-29 14:10:55] debug: zh:deconz:driver: send read parameter request from queue. seqNr: 8 paramId: 28
[2024-12-29 14:10:55] debug: zh:deconz:frameparser: CHANNEL: 11
[2024-12-29 14:10:55] debug: zh:controller: Injected database: true, adapter: true
[2024-12-29 14:10:55] debug: zh:controller:device: Request Queue (0x00212effff05e61e): default expiration timeout set to 0
[2024-12-29 14:10:55] debug: zh:controller:database: Writing database to '/config/zigbee2mqtt/database.db'
[2024-12-29 14:10:55] debug: zh:deconz:driver: send read parameter request from queue. seqNr: 9 paramId: 1
[2024-12-29 14:10:55] debug: zh:deconz:frameparser: MAC: 0x00212effff05e61e
[2024-12-29 14:10:55] info: z2m: zigbee-herdsman started (resumed)
[2024-12-29 14:10:55] debug: zh:deconz:driver: send read firmware version request from queue. seqNr: 10
[2024-12-29 14:10:55] debug: zh:deconz:frameparser: read firmware version response - version: 0,7,88,38
[2024-12-29 14:10:55] info: z2m: Coordinator firmware version: '{"meta":{"maintrel":0,"majorrel":38,"minorrel":88,"product":0,"revision":"0x26580700","transportrev":0},"type":"ConBee2/RaspBee2"}'
[2024-12-29 14:10:55] debug: z2m: Zigbee network parameters: {"channel":11,"extendedPanID":"0xdee5f888426a19ce","panID":22908}
[2024-12-29 14:10:55] info: z2m: Currently 0 devices are joined.
[2024-12-29 14:10:55] info: z2m: Zigbee: disabling joining new devices.

Jednak nie jestem w stanie sparować żadnego urządzenia. Włączam łączenie urządzeń w Z2M, ustawiam tryb parowania w urządzeniu i nic się nie dzieje oraz nie ma żadnych logów związanych z parowaniem.

Próbowałem używać Conbee II z moim komputerem i wszystko działa dobrze, więc Conbee II działa ok.

Używałem go również wcześniej w podobnej konfiguracji i działał. Zmiany w porównaniu do mojej poprzedniej konfiguracji:

  • prawdopodobnie inna wersja HAOS
  • prawdopodobnie inna wersja Z2M
  • Dysk SSD zamiast karty SD

Podłączyłem dysk SSD przez adapter SATA-USB3 do Raspberry PI.

Próbowałem podłączyć Conbee II przez USB 3 i USB 2 z 1 metrowym przedłużaczem USB i bez niego. Niestety bez różnicy.

Czy ktoś ma pomysł dlaczego nie mogę sparować żadnego urządzenia i co mogę zrobić, żeby to naprawić?

Bez przedłużacza na 100% nie zadziała - koordynator musi być daleko od silnego źródła zakłóceń, które masz w pierwszym zacytowanym zdaniu.
Wręcz oba kable powinny być poprowadzone możliwie daleko od siebie (najlepiej prostopadle) optymalnie by obudowa dla maliny oraz dla ssd była metalowa, ukrywająca elektronikę i podłączona do masy, a kabel USB3 wysokiej jakości.

Z innej beczki (z dokumentacji)

For ConBee2: specifying the baudrate is not necessary

ale z logów widać, że koordynator działa prawidłowo, więc to bez znaczenia

Czyli robisz coś nie tak bo włączenie parowania jest widoczne w logach Z2M:

2024-12-29 23:41:14z2m: Zigbee: allowing new devices to join.

Mimo wszystko, osobiście usunąłbym ten parametr.

W dokumentwcji jest też wzmianka o wersji oprogramowania Conbee i jak widać Twój egzemplarz się już łapie do problematycznej:

Niczego nowszego jak 0x26580700 to chyba nie ma. Mój Conbbe II pracuje na tym Firmware, choć czasami zdarzają się jakieś dropy, w szufladzie leży Conbee III.

Firmware Conbee II

https://deconz.dresden-elektronik.de/deconz-firmware/?C=M;O=D

@szopen Dzięki za wskazówki! Czy polecasz może jakąś konkretną obudowę albo rozwiązanie?

@macek to są logi z uruchamiania dodatku, potem gdy włączam parowanie w Z2M to mam w logach, że jest to włączone. Próbowałem zarówno z baudrate jak i bez - efekt ten sam.

@angler widziałem ten zapis, ale mówi, że firmware nowszy niż ta wersja powoduje problem, więc ta wersja powinna być ok. Zresztą sam opis problemu z nowszym firmware sugeruje inny problem niż ja mam.

Logi startu jak najbardziej poprawne, dalej nic nie widać bo nic się nie łączy.
Zastanawia mnie tylko

Ten parametr to raczej nie w tym miejscu konfiguracji domyślnie jest V4.

# Required: MQTT settings
mqtt:
    # Required: MQTT server URL (use mqtts:// for SSL/TLS connection)
    server: 'mqtt://localhost:1883'
    # Optional: MQTT base topic for Zigbee2MQTT MQTT messages (default: 

    # Optional: MQTT protocol version (default: 4), set this to 5 if you
    # use the 'retention' device specific configuration
    version: 4
    
1 polubienie

Jak nie ma jak jest 0x26780700, tylko ta ich numeracja jest łatwa do pomylenia.
Łącznie jest 6 nowszych wersji wydanych na przestrzeni 2 lat po zalecanej 0x26580700 którą swoją drogą używa OP.

Jakkolwiek problem z dokumentacją jest niemal zawsze taki (i tu akurat zapewne jest)

  • nie ma ani daty wydania ostrzeżenia, ani konkretnej informacji jakich wersji dotyczy (tylko nowsze od x, więc nie wiadomo, czy 1 nowsza czy 2, a może wszystkie? bo informacja nie jest jednoznaczna)
  • raz wrzuconego ostrzeżenia wszyscy zawsze się boją usuwać

więc moim zdaniem jedynie eksperyment może zweryfikować to które wersje faktycznie działają niestabilnie i czy to istotnie dotyczy wszystkich wersji “nowszych od x”.

Tak naprawdę powinny to testować osoby, które zgłosiły issue, ale większość podchodzi do tematu tak - jeśli działa to już nic nie będę pisać…
(Tu taka dykteryjka na faktach - zgłosiłem kiedyś issue do problemu, z innej dziedziny, ale powiązanej z HA, który wystąpił u mnie na wszystkich instalacjach - wtedy robiłem intensywne eksperymenty i miałem 4 instalacje na 3 różnych platformach, w końcu problem został usunięty więc skrobnąłem info, że już działa i planuję zamykać issue… no i dopiero wtedy posypały się joby na mnie jak śmiem tak twierdzić, skoro problem nadal występuje, i co najlepsze: były to w większości wypowiedzi osób, które wcześniej nawet palcem nie tknęły tego issue…)

1 polubienie

Masz rację źle patrzyłem, numeracja zmienia się w środku, dziwna logika :crazy_face:

Mosquitto w wersjach >=2.0.0 obsługuje protokół MQTT v5
2.0.0 było wydane w grudniu 2020
Tylko Mosquitto >=1.4.x jest ograniczone do protokołu w wersji 3.1.1 znanego jako v4
(jeszcze wcześniejsze wersje obsługują bodajże tylko protokół v3 czyli 3.0 ale to już prehistoria czyt.: okolice roku 2014 albo i wcześniej)

dzisiaj aktualne Mosquitto mamy w wersji 2.0.20 (jeśli ktoś sobie instaluje samodzielnie i je aktualizuje)
instalacja w formie Dodatku w dzisiaj aktualnej wersji 6.4.1 zawiera wersję Mosquitto 2.0.18

więc podsumowując - można śmiało przechodzić na v5


Natomiast z tym się absolutnie zgadzam ta konfiguracja jest zwalona.


W ogóle to jest tam spory nadmiar iksowania (o ile absolutnie nie zachęcam do publikowania kluczy i haseł, to w tym wypadku nawet one nie są danymi specjalnie wrażliwymi), które mogło rozwalić formatowanie, ale mimo to ta konfiguracja jest co najmniej dziwna (załóżmy od ręki, że jest nieprawidłowa).

@artpc version jest automatycznie dodawane i zarządzane przez addon. Jeżeli zmieni się coś w konfiguracji przez UI to wtedy jest inkrementowana ta wersja. Dodatkowo w katalogu tworzą się kopie konfiguracji w poprzednich wersjach jak:
configuration_backup_v1.yaml, configuration_backup_v2.yaml itd.
Więc ten parametr jest prawidłowy w ten konfiguracji.

@szopen zrobiłem reinstalacje na karte SD i wszystko śmiga bez problemu, a konfiguracja wygląda praktycznie identycznie, więc sama konfiguracja była prawidłowa. Wygląda na to, że cały problem był z zakłóceniami od dysku SSD i Twoja pierwsza wskazówka była celna.

Dzięki za pomoc!

1 polubienie

Nie jestem w stanie tego ocenić inaczej niż przez porównanie z dokumentacją (oraz z konfiguracjami, których sam używam) i jest nieprawidłowa, a w każdym razie nie wszystko będzie w niej działać, bo masz niewłaściwy wpis w niewłaściwej sekcji czy raczej wręcz bez sekcji, być może to twoje iksowanie danych pseudo-wrażliwych (tak je nazwałem, bo tym razem tokeny i hasła wyjątkowo nie są danymi wrażliwymi, bo jak zakładam są wygenerowane losowo) doprowadziło do tego, że konfiguracja którą pokazałeś na forum jest istotnie inna od faktycznej.

Natomiast na karcie TF to nie ujedziesz za długo (tzn. HA od dawna ma dobrze zoptymalizowaną bazę i nie jest już utraszybkim niszczycielem kart), to jednak zdecydowanie będzie lepiej, gdy użyjesz ssd (którego stan możesz nawet monitorować “na żywo” smart ), tylko musisz się wyposażyć w akcesoria które wytłumią zakłócenia (metalowa obudowa maliny, metalowa obudowa dysku i kabel USB3 dobrej jakości i możliwie krótki).

W sumie ssd można wykorzystać tylko na partycję danych (system może zostać na karcie), ale nie zmienia to konieczności ekranowania zakłóceń EM.

@szopen we wpisie wyżej wytłumaczyłem skąd jest wpis version.
version jest automatycznie dodawane i zarządzane przez Z2M addon. Jeżeli zmieni się coś w konfiguracji przez UI to wtedy jest inkrementowana ta wersja. Dodatkowo w katalogu tworzą się kopie konfiguracji w poprzednich wersjach jak:
configuration_backup_v1.yaml, configuration_backup_v2.yaml itd.
Więc ten parametr jest prawidłowy w tej konfiguracji, a sama konfiguracja jest dobrze sformatowana w 1. poście.

Odnośnie użycia SSD to tak, mam plan ostatecznie na niego się przesiąść jak tylko dokupie brakujący sprzęt :grinning:

A OK, zaadresowałeś to do @artpc i nie zajrzałem w ten paragraf, faktycznie źle zinterpretowaliśmy tą linijkę…

Ale chyba wtedy wszystko trzeba parować na nowo.

Nie będę się spierał, version: 5 odnosi się do sekcji MQTT u ciebie jest w sekcji
frontend:

W dokumentacji jest:


mqtt:    
    server: 'mqtt://localhost:1883'  
    version: 4

W mojej konfiguracji jest:


mqtt:
  server: mqtt://core-mosquitto:1883
  user: addons
  password: et8shize
  keepalive: 60
  reject_unauthorized: true
  version: 4

Może dziś Z2M inaczej formatuje.

To jest YAML o strukturze hierarchicznej, więc nie ma takiej możliwości aby inaczej cokolwiek było sformatowane (kolejność sekcji nie musi być zachowana, ale hierarchia nie może być zmieniana).
YAML na każdy stopień hierarchii wymaga jednej spacji, zwyczajowo używa się 2 dla większej czytelności, stosowanie 4 powoduje, że listy też ładniej wyglądają, ale działanie jest takie samo (ważne by wcięcia były stosownej i równej głębokości oraz by nie używać tabulatorów).


Warstwa protokołu MQTT nie ma nic do parowania (w szczególności ponownego), bo fizyczna strona sieci Zigbee której konfiguracja jest trzymana w NVRAM koordynatora (de facto są tam zasadniczo niemal tylko klucze parowania i adresy ieee) nie jest zależna od tego protokołu.

Swoją drogą jeśli coś się miało schrzanić w Z2M w związku z wersją protokołu MQTT, to chyba już by się schrzaniło (kojarzę jakieś breaking changes w Z2M z tym związane, choć może dotyczy to przyszłych wydarzeń).

edit
u siebie jestem już na protokole MQTT w wersji 5 (nie pamiętam od kiedy, czyli raczej dłużej niż od miesiąca)


Natomiast nie mam teraz czasu na dociekanie jak zorganizować wersjonowanie backupów w Z2M (może to jest i możliwe, ale nie mam czasu na przekopanie dokumentacji, a u siebie wersjonowanie załatwiam backupami całego HA).

edit 2
przejrzałem całą podstawową dokumentację z2m (również dokumentację Dodatku) i nie ma tam wzmianki o rozwiązaniu opisanym przez @Antek więc chętnie bym zobaczył taką informację “wskazaną palcem” (może są braki w dokumentacji?) zrobiłem też eksperyment edycji konfiguracji w GUI Z2M (no tu możliwości mam dość ograniczone, bo nie zamierzam sobie rozwalić działającej konfiguracji) i nie dopisuje ona niczego takiego w pliku konfiguracyjnym


Z innej beczki - backupy sieci dla dongla conbee2 w ogóle nie mają sensu, bo w jakimś wątku związanym z migracją z AIS na normalny HA się okazało, że dla conbee2 tworzenie backupu sieci jest możliwe, ale jego przywrócenie już nie (więc trzymanie nawet 1 backupu nie ma sensu).

@szopen jednak wygląda, że to może nie działać tak jak to opisałem. Szukałem informacji o tym i wygląda, że to jest świeży mechanizm i wygląda bardziej jako przygotowanie do migracji do zigbee2mqtt 2.0. Tutaj są przykłady konfiguracji z dodanym atrubytem version: Zigbee2MQTT 2.0.0 breaking changes · Koenkk/zigbee2mqtt · Discussion #24198 · GitHub

@artpc version nie odnosi się do atrubutu frontend tylko jest na poziomie ‘roota’ konfiguracji

1 polubienie

Przez chwilę bylem na niewydanej wersji (bo się chłopakom omsknął palec na githubie i na chwilę wyszła aktualizacja której być nie powinno), ale tam też mi nic takiego nie dopisało do konfiguracji.

W sumie mógłbym na chwilę odpalić edge i zobaczyć co się kroi, ale jakoś nie mam ochoty (już się dość naszukałem dziury w całym gdy wyszła ta błędna aktualizacja).

No, ale jeśli siedzisz na deweloperskiej wersji i szukając rozwiązania problemu się do tego nie przyznałeś… to dzięki za nasz zmarnowany czas.

@szopen problem występował na wersji stabilnej, dopiero potem przeszedłem na edge w ramach testowania i dopiero potem pisałem post tutaj, ale fakt powinienem o tym wspomnieć.

Nie zmienia to faktu, że problem nie dotyczył wersji z2m, a dysku SSD.

Tak, cieszę się, że znaleźliśmy źródło problemu, ale z nieścisłych informacji wniknęła zbędna dyskusja, która chyba wiele nie wnosi.

Powiedziałbym, że wręcz miło było pomagać, ba zrodził mi się pomysł na nowego taga zakłócenia-em i z pewnością będzie on wykorzystany jeszcze wielokrotnie, bo wątków na zbliżone tematy już jest dużo.