HA에서 zigbee 장치들을 활용하기 위해선 zigbee 코디네이터가 필요합니다.
이 코디네이터와 HA에서 z2m 또는 ZHA를 활용해서 zigbee 장치들을 활용할 수 있게 되는데요.
zigbee 네트워크에 코디네이터는 한 장치만 설정할 수 있고, 일부 기기 또는 추가 코디네이터로 라우터 역할을 수행할 수 있습니다.
이 글은 코디네이터를 교체한 경험입니다.
최근 z2m이 버전이 오르면서 업데이트가 있었는데 공교롭게도 엔드디바이스 일부가 오프라인으로 바뀌면서 애드온 시작이 안 되는 현상이 있었습니다.
나타난 증상은 기기 오프라인 다수, z2m 시작불가 (usb 인식문제로 추측) 현상이 있었습니다.
이참에 코디네이터 펌웨어 업데이트를 해줬는데 문제가 해결되지 않아서 z2m 버전을 다운그레이드 했는데 여전히 문제가 발생했습니다.
보통 증상으로 예상되는 문제점을 하나씩 제거하다보면 원인이 찾아지기 마련인데 좀 이해할 수 없는 증상들이었습니다.
지그비 통신은 엔드디바이스가 리피팅 활동이 이뤄질 때 코디네이터나 라우터와 통신이 안될 경우 네트워크 복구가 되어야 하는데, 제가 경험한 HA상에서 z2m상에서 지그비 통신에서는 복구 기능이 원활히 잘 안 되는 느낌을 받았습니다.
z2m 로그도, vm 로그도 usb 장치에 문제가 있는 것 처럼 보여서 교체를 하였습니다.
코디네이터를 교체할 경우 모든 장치를 다시 페어링을 해야 될까?
상황마다 다를 수 있는데, 동일 칩셋을 사용하는 코디네이터로 변경 할 경우 페어링을 다시할 필요는 없다고 합니다.
https://www.zigbee2mqtt.io/guide/faq/#how-do-i-migrate-from-one-adapter-to-another
네이버 HomeAssistant 까페 쬐끔전문가님이 제작하신 CC2652P 칩셋과 SONOFF Zigbee 3.0 USB Dongle Plus-P 칩셋이 동일하여 쉽게 진행할 수 있었습니다.
코디네이터 교체 과정
1. 기존 코디네이터 IEEE 확인
2. 신규 코디네이터 IEEE 주소 설정
3. z2m 구성 확인 및 오프라인 기기 페어링
1. 기존 코디네이터 IEEE 확인
ha z2m 설정에서 확인 하거나
FLASH-PROGRAMMER-2 에서 확인하거나
2. 신규 코디네이터에 IEEE 주소 설정
https://www.zigbee2mqtt.io/guide/adapters/flashing/copy_ieeaddr.html
3가지 방법이 있는데 까페에서도 몇번 언급된 cc2538-bsl 을 활용할 경우 SONOFF Zigbee 3.0 USB Dongle Plus-P의 경우 분해를 하지 않아도 됩니다.
ZigStar Multi Tool 의 경우 간편하지만 secondary ieee 확인은 안됩니다.
FLASH-PROGRAMMER-2는 회원가입 및 동의절차가 필요하고 버그가 있어 플래싱이 안되는 현상이 있습니다.
(CC1352P2_CC2652P_launchpad_coordinator_20230507 는 플래싱이 안된다고 합니다.)
펌웨어는 아래 깃헙 참고
https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator/Z-Stack_3.x.0/bin
3. z2m 구성 확인 및 오프라인 기기 페어링
VM 설정에서 USB 장치 패스스루 설정
HA에서 장치 경로 확인 후 z2m 재시작 한 뒤 오프라인 장치는 새로 페어링을 새로 해주었습니다.
코디네이터 교체 이후로는 장치 인식문제도 사라지고 일부 기기를 페어링 한 뒤 zigbee 네트워크도 잘 복구가 되었습니다.
번외..
secondary ieee 주소는 필수 요소가 아닐 수 있다는데 테스트를 해보지 못했네요.
호환성이 문제이지 동작할 가능성이 높을 것 같은데 이 장치가 고장나면 한번 시도 해봐야겠네요.