Home Assistant와 XGIMI 프로젝터를 통합하여 블루투스 전원 켜기와 LAN 제어를 구현하는 방법을 알아봅니다. 이 오픈 소스 프로젝트는 Xgimi-4-Home-Assistant를 통해 제공되며, 이를 통해 XGIMI 프로젝터를 Home Assistant 시스템에 완전히 통합할 수 있습니다.
프로젝트 개요
Xgimi-4-Home-Assistant은 XGIMI 프로젝터를 홈 오토메이션 시스템에 통합하는 기능을 제공합니다. BLE(Bluetooth Low Energy)를 사용해 전원을 켤 수 있으며, UDP 프로토콜을 통해 볼륨 조절 및 네비게이션 제어 등의 기능을 지원합니다.
핵심 기능
- 블루투스 전원 켜기: BLE 광고 패킷에서 제조사 데이터를 추출하여 원격으로 전원을 켤 수 있습니다.
- LAN 제어: UDP 프로토콜을 이용해 실시간으로 볼륨 및 전원 제어를 수행합니다.
- 다양한 언어 지원: 한국어, 영어, 스페인어, 프랑스어 등 다양한 언어 인터페이스를 제공합니다.
실제 활용 사례
가정용 영화관 자동화
오후 7시에 스마트 홈 시스템이 거실 조명을 끄고 커튼을 닫은 후 XGIMI 프로젝터를 켜는 예제입니다.
<automation>
<alias>"저녁 영화 시간"</alias>
<trigger>
<platform>time</platform>
<at>"19:00"</at>
</trigger>
<action>
<service>light.turn_off</service>
<target>
<entity_id>light.living_room</entity_id>
</target>
<service>cover.close_cover</service>
<target>
<entity_id>cover.living_room_blinds</entity_id>
</target>
<service>remote.send_command</service>
<data>
<command>poweron</command>
</data>
<target>
<entity_id>remote.xgimi_projector</entity_id>
</target>
</action>
</automation>
음성 제어 통합
Google Assistant 또는 Amazon Alexa와 연동하여 간단한 음성 명령으로 프로젝터를 제어할 수 있습니다.
"OK Google, 프로젝터 켜줘"
"Alexa, 프로젝터 음소거 해줘"
"OK Google, 프로젝터 볼륨 올려"
기술적 구현
블루투스 전원 켜기 메커니즘
XGIMI 프로젝터의 블루투스 전원 켜기는 BLE 광고 패킷에서 특정 토큰을 추출하는 과정을 포함합니다. 이 토큰은 각 장치마다 고유하며, 다음과 같은 단계를 통해 얻을 수 있습니다:
- Home Assistant 내장 블루투스 광고 모니터 사용
- MAC 주소 접두사 필터링 (일반적으로 '1C:'로 시작)
- 프로젝터가 꺼진 상태에서 리모컨 전원 버튼을 누름
- 제조사 데이터 ID '70' 필드에서 토큰 추출
LAN 제어 아키텍처
UDP 통신을 사용하여 LAN 제어를 구현하며, 주요 구성 요소는 다음과 같습니다:
- config_flow.py: 사용자 친화적인 설정 인터페이스
- remote.py: 모든 제어 명령을 처리하는 원격 엔티티
- pyxgimi.py: Bluetooth 및 UDP 프로토콜을 처리하는 핵심 통신 라이브러리
- const.py: 상수 정의 및 명령 매핑
설정 최적화
HACS 설치 (권장)
- HACS에서 사용자 지정 저장소 추가: https://gitcode.com/gh_mirrors/xg/Xgimi-4-Home-Assistant
- "Integration" 카테고리 선택
- "Xgimi" 검색 및 다운로드
- Home Assistant 재시작
수동 설치
- 저장소 클론:
git clone https://gitcode.com/gh_mirrors/xg/Xgimi-4-Home-Assistant custom_components/xgimi폴더를 Home Assistant의custom_components디렉토리로 복사- Home Assistant 재시작
문제 해결
블루투스 전원 켜기 실패
블루투스 안테나가 제대로 설치되었는지 확인하고, RSSI 신호 강도가 -70dBm 이상인지 확인하세요. 또한, BLE 토큰이 올바르게 추출되었는지 다시 한 번 확인해야 합니다.
LAN 제어 응답 없음
프로젝터 IP 주소가 올바른지 확인하고, 네트워크 연결 상태를 점검하세요. 필요하다면 방화벽 설정을 확인하여 UDP 통신이 차단되지 않았는지 확인해야 합니다.