본문 바로가기

IOT/Home Assistant

[Home Assistant] Zigbee2MQTT 2.0.0 업데이트 후 USB 어댑터 인식 오류 해결기

Home Assistant를 쓰면서 그동안 core 한 add-on들은 업데이트를 미루고 있었다.
사용하는 에드온이 많아지다 보니 하나하나 버전업하는 것도 귀찮았고, 무엇보다 '잘 돌아가는 건 건드리지 말자'는 마음이 컸다. 😅

그런데 오늘은 왠지 마음이 땡겨서, 오랜만에 모든 애드온을 한 번에 최신 버전으로 업그레이드했다.

그리고... 두둥. 마주하고 싶지 않던 문제가 터졌다.

 

 

 

 

이번에 문제가 생긴 주인공은 Zigbee2MQTT였다.

Zigbee2MQTT를 1.38.0-1 버전에서 2.2.1-1로 업데이트했더니, Zigbee USB 어댑터를 인식하지 못하는 이슈가 생긴 것이다.

Zigbee2MQTT는 Zigbee 장치들을 Home Assistant 같은 스마트홈 시스템에 연결할 수 있게 해주는 중간다리 역할을 하는 애드온이다. 쉽게 말하면, 각종 스마트 전구, 스위치, 센서 같은 Zigbee 기기들을 Home Assistant가 알아듣게 번역해 주는 통역사 같은 존재라고 보면 된다.

 

덕분에 집 안 Zigbee 장치들이 전부 먹통이 되고, 결국 불도 못 켜는 사태가 벌어졌다.

버그 터졌다고, 이젠 불도 못 켜는 집... 어두워 어두워... 😭
일단 문제부터 차근차근 고쳐보자.


문제 상황

애드온을 업데이트한 후, Zigbee2MQTT가 아래와 같은 에러를 뿜으며 실행되지 않았다.

 
Error: USB adapter discovery error (No valid USB adapter found). Specify valid 'adapter' and 'port' in your configuration.

주요 증상

  • Zigbee2MQTT가 실행되지 않고 바로 종료됨
  • 로그에 "No valid USB adapter found" 메시지 출력
  • Home Assistant에서 Zigbee 기기 제어 불가

원인 분석

Zigbee2MQTT 2.0.0 이상 버전에서는 USB 어댑터 자동 인식 기능이 변경되어, 설정 파일에 어댑터 종류(adapter)와 포트(port)를 명확하게 지정해주어야 한다고 한다.

 

이전 버전에서는 알아서 잘 잡아줬던 포트와 어댑터 종류를,
이제는 configuration.yaml에 명확히 지정해 줘야 실행이 가능하다.


해결 방법

1. USB 어댑터 포트 확인

터미널에서 아래 명령어를 입력해 어댑터의 실제 포트를 확인한다.

ls -l /dev/serial/by-id

예시 결과:

/dev/serial/by-id/{your-id}

 

여기서 나온 경로(/dev/serial/by-id/{your-id})를 기억해 둔다.

2. configuration.yaml 파일 수정

zigbee2mqttconfiguration.yaml 파일을 열고, 다음과 같이 설정을 추가/수정한다.

serial:
  port: /dev/serial/by-id/{your-id}
  adapter: zstack
  • port: 위에서 확인한 실제 어댑터 경로로 입력
  • adapter: 사용하는 어댑터 종류에 맞게 지정 (예: zstack, ezsp, deconz 등)

참고로, 대다수 CC2652 기반 동글은 zstack이다.

 

내가 구매한 동글도 CC2652 기반의 칩셋이라 adapter를 zstack로 명시했다.

 

[이전 포스팅] Zigbee Dongle 구매기 (ZBDongle-P vs ZBDongle-E): https://blog.wookingwoo.com/64

3. Home Assistant 재시작 또는 Zigbee2MQTT 재시작

설정 저장 후 Zigbee2MQTT 애드온을 재시작하니 정상적으로 동작했다.

 

 


마치며

Zigbee2MQTT를 2.0.0 이상으로 업데이트할 때는 configuration.yaml에 어댑터 종류와 포트를 명시해야 한다.

업데이트 전에는 꼭 설정 파일 백업을 해두고, 문제가 생기면 침착하게 로그부터 보는 습관을 들이자! ✍️

당황했지만 생각보다 어렵지 않게 해결할 수 있었다.

 

혹시 비슷한 문제를 겪고 있다면 이 글이 작은 도움이 되길 바랍니다.
궁금한 점이나 추가로 필요한 정보가 있으면 댓글로 편하게 남겨주세요!