커뮤니티 솔루션

ZVM을 통해 Zigbee USB 동글을 Home Assistant OS에 연결하기

A Home Assistant OS user cannot see a ConBee II dongle in ZVM; community members provide a libvirt XML passthrough method and Zigbee2MQTT verification path.

Samba 공유로 실제 Zigbee 어댑터를 HAOS에 전달할 수 없음

원래 문제는 폴더가 아닌 USB 직렬 장치와 관련되어 있습니다. Samba 공유는 가상 머신에 파일을 노출할 수 있지만, ConBee, Sonoff, Nortek 또는 유사한 무선 장치를 게스트의 USB 하드웨어로 표시하게 만들 수는 없습니다. 실제로 작동하는 커뮤니티 방식은 libvirt를 통해 호스트 USB 장치를 ZVM 게스트에 연결하는 것입니다.

이는 확인된 ZVM USB 선택기가 아니라 명령줄 우회 방법입니다. 영구 하드웨어를 편집하기 전에 가상 머신 XML을 백업하고 Home Assistant OS를 종료하세요. XML 편집이 잘못되거나 동글이 누락되면 게스트가 시작되지 않을 수 있으므로, 이전 구성을 복원할 수 있는 사본을 보관하세요.

다른 사용자의 ID를 복사하지 말고 동글 확인하기

지원되는 SSH 및 권한 상승 경로를 통해 ZimaOS에 연결한 다음 lsusb를 실행하세요. 예시에 있는 1a86:55d4처럼 동글의 공급업체 및 제품 ID 조합을 찾습니다. 사용 중인 ConBee, Sonoff 또는 Nortek의 ID는 다릅니다.

목록이 모호하면 동글을 한 번 분리했다가 다시 연결하세요. 동일한 어댑터 두 개가 연결되어 있을 때는 공급업체 및 제품 ID 일치만으로도 구분이 모호할 수 있습니다. libvirt 호스트 장치 형식에서 VID/PID 일치 및 더 구체적인 USB 주소 지정을 확인할 수 있습니다.

virsh list --all로 VM의 정확한 libvirt 이름 또는 UUID를 기록하세요. 스레드의 예시 ID를 사용하지 마세요. 변경하기 전에 virsh dumpxml VM_NAME으로 현재 정의를 내보내세요.

게스트 장치 섹션 안에 hostdev 블록 하나 추가하기

게스트가 종료된 상태에서 virsh edit VM_NAME을 사용해 정의를 여세요. 기존 <devices> 요소 안에 <hostdev mode='subsystem' type='usb' managed='yes'><source><vendor id='0xVID'/><product id='0xPID'/></source></hostdev>를 추가하고, VID와 PID는 호스트에서 확인한 값으로 바꾸세요.

실제 장치마다 완전한 hostdev 섹션을 하나씩 추가하세요. 두 번째 <devices> 래퍼를 만들지 말고, 닫는 </devices> 태그 뒤에 블록을 붙여 넣지도 마세요. 저장한 다음 VM을 시작하기 전에 XML을 다시 확인하세요.

게스트를 시작하고 virsh list --all을 확인하세요. 실패하면 첫 번째 libvirt 오류를 읽으세요. 편집을 계속 추가하기보다 저장해 둔 XML을 복원하세요. “device not found” 결과는 호스트 장치 열거 또는 일치 설정을 다시 확인해야 한다는 뜻이고, XML 구문 분석 오류는 위치나 문법 문제를 의미합니다.

Zigbee2MQTT를 설정하기 전에 HAOS에서 장치 확인하기

Home Assistant에서 설정 → 시스템 → 하드웨어를 열고 새 USB 또는 직렬 장치를 찾으세요. /dev/ttyACM0 같은 인터페이스 이름은 변경될 수 있습니다. HAOS에 /dev/serial/by-id/... 항목이 표시되면 Zigbee2MQTT에서 해당 안정적인 식별자를 사용하세요.

HAOS가 장치를 인식한 후에만 Zigbee2MQTT의 serial.port를 설정하세요. 애드온을 다시 시작하고 로그에서 어댑터 연결 성공 여부를 확인하세요. HAOS는 동글을 인식하지만 Zigbee2MQTT가 열지 못한다면 패스스루 단계는 이미 작동하고 있으며, 문제는 어댑터 유형, 직렬 설정 또는 애드온 접근 권한으로 좁혀집니다.

지속성을 테스트하려면 HAOS를 재부팅한 다음 ZimaOS도 재부팅하세요. 동일한 by-id 경로가 다시 나타나고 Zigbee2MQTT가 재연결되는지 확인하세요. 일부 버전에서는 ZVM 리소스 변경으로 수동 XML이 덮어써질 수 있으므로 CPU, 메모리, 디스크를 변경하거나 플랫폼을 업그레이드한 후 XML을 다시 확인하세요.

FAQ

XML 파일은 어디에 저장되나요?

파일을 수동으로 찾을 필요가 없습니다. virsh edit VM_NAME으로 등록된 도메인 정의를 편집하고, virsh dumpxml로 백업하세요.

여러 USB 장치를 같은 VM에 전달할 수 있나요?

예. 스레드에는 장치마다 하나의 hostdev 블록을 사용하는 방법이 나와 있습니다. 각 블록은 의도한 하드웨어와 모호하지 않게 일치해야 합니다.

재부팅 후 USB 경로가 변경된 이유는 무엇인가요?

Linux가 하드웨어를 열거하는 순서에 따라 짧은 장치 이름이 변경될 수 있습니다. 패스스루 후에는 HAOS의 by-id 경로를 우선 사용하되, 장치 전체가 사라졌다면 XML을 다시 확인하세요.

HAOS 관련 명령과 이후 XML 예시는 ZVM USB 공유 토론에서 확인할 수 있습니다.