mi-home-assistant

mi-home-assistant

1. 간단한 소개

안녕하세요! 오늘 스마트홈 마니아들을 들뜨게 할 프로젝트에 대해 이야기해 보겠습니다. 바로 샤오미 공식 Home Assistant 통합 (ha_xiaomi_home)입니다. 이 프로젝트는 샤오미 공식에서 개발하고 유지보수하며, Home Assistant 사용자에게 더 부드럽고 안정적인 Xiaomi IoT 기기 제어 경험을 제공하는 것이 목표입니다.

과거에는 서드파티 Xiaomi 기기 연동이 몇 가지 있었지만, 기기 상태 응답 지연 같은 문제가或多或少 있었습니다. 이제 공식 지원이 생기면서 더 나은 성능과 보안 강화를 기대할 수 있게 되었죠.

Home Assistant는 강력한 호환성과 유연성으로 유명한 오픈소스 홈 자동화 플랫폼입니다. DIY 애호가들에게 큰 사랑을 받고 있죠. 이제 스마트홈 분야 거인인 샤오미가 Home Assistant 생태계에 합류했으니, 정말 기대되는 일입니다.

주요 기능:

  • 공식 지원: 샤오미 공식에서 개발 및 유지보수하여 더 높은 안정성과 호환성을 제공합니다.
  • Home Assistant 연동: Home Assistant 내에서 Xiaomi 스마트 기기를 제어하고 관리할 수 있습니다.
  • 향상된 사용자 경험: 더 빠른 기기 상태 응답을 제공하며, 서드파티 연동의 지연 문제를 해결합니다.
  • 폭넓은 기기 지원: 대부분의 Xiaomi IoT 기기를 지원합니다. 단, 블루투스, 적외선 및 가상 기기는 제외입니다.
  • 다중 계정 및 지역 지원: 여러 Xiaomi 계정을 지원하며, 서로 다른 지역의 기기를 동일한 Home Assistant 지역에 추가할 수 있습니다.

2. 핵심 기능

  • 다양한 설치 방법: Git 클론, HACS, 수동 설치 등 여러 설치 방식을 지원합니다. 공식 권장 방법은 Git 클론이며, 버전 관리와 업데이트에 편리합니다.
    • Git 클론 설치: cd config; git clone https://github.com/XiaoMi/ha_xiaomi_home.git; cd ha_xiaomi_home; ./install.sh /config
  • OAuth 2.0 로그인: OAuth 2.0 로그인 방식을 사용하여 Home Assistant 내에 사용자 비밀번호를 직접 저장하지 않아 보안성이 높습니다.
  • 클라우드 제어 및 로컬 제어: 주로 Xiaomi 클라우드를 통해 제어합니다. 로컬 제어를 지원하는 기기의 경우 Xiaomi 게이트웨이 또는 LAN을 통해 제어할 수 있습니다.
    • 클라우드 제어: Xiaomi 클라우드 서버를 통해 통신 및 제어합니다.
    • 로컬 제어: Xiaomi 중앙 게이트웨이 또는 LAN을 통해 로컬 네트워크에서 직접 통신합니다. 단, 모든 지역에서 로컬 제어를 사용할 수 있는 것은 아닙니다.
      • 중앙 게이트웨이: 중국 대륙에서만 사용 가능합니다.
      • LAN 제어: 모든 지역에서 사용 가능하지만, IP 기기로 제한되며 실험性功能이라 권장되지 않습니다.
  • 기기 메시지 구독 메커니즘: 메시지 구독 방식을 사용하여 기기 속성 변경이나 이벤트 발생 시 Home Assistant로 실시간 푸시가 이루어져 클라우드 폴링 부하를 줄입니다.
  • MIoT-Spec-V2 매핑: Xiaomi IoT 프로토콜인 MIoT-Spec-V2를 사용하여 기기, 서비스, 속성, 이벤트, 액션을 Home Assistant의 엔티티(entity)로 매핑하여 기기 기능이 정상 작동하도록 보장합니다.

3. 사용 팁

  • 다중 계정 관리: 하나의 Xiaomi 계정 로그인 및 설정 완료 후 "허브 추가"를 통해 다른 Xiaomi 계정을 추가할 수 있습니다.
  • 지역 선택: Xiaomi 기기를 가져올 때 올바른 지역을 선택하세요. 지역마다 데이터가 분리되어 있습니다.
  • 디버그 모드: 액션(action)의 디버그 모드를 활성화하면 매개변수가 포함된 액션 명령을 수동으로 전송할 수 있습니다.
  • 엔티티 변환 규칙 업데이트: specv2entity.py, spec_filter.json 또는 multi_lang.json 파일을 수정한 경우, 통합 설정 페이지에서 엔티티 변환 규칙을 업데이트해야 변경 사항이 적용됩니다.
  • 사용자 정의 필터링: spec_filter.json 파일을 사용하여 Home Assistant로 변환할 필요가 없는 MIoT-Spec-V2 인스턴스를 필터링할 수 있습니다.
  • 현지화: multi_lang.json 파일은 기기 이름 및 기타 텍스트 요소의 현지화 번역을 제공하며, 클라우드 번역보다 우선 적용됩니다.

4. 활용 사례

  • 스마트 조명 제어: Home Assistant를 통해 Xiaomi 스마트 전구의 밝기, 색상, 온/오프 상태를 제어합니다.
  • 스마트 보안: Xiaomi 스마트 카메라와 센서를 결합해 홈 보안 자동화를 구축합니다. 예를 들어 이상 움직임을 감지하면 알림을 전송합니다.
  • 환경 모니터링: Xiaomi 온습도 센서로 실내 환경을 실시간 모니터링하고, 온도에 따라 에어컨이나 난방을 자동 조절합니다.
  • 자동화 씬: Home Assistant의 자동화 기능을 활용해 "귀가 모드", "외출 모드" 등 다양한 씬을 설정하여 스마트홈 자동화를 실현합니다.

5. 보안 고려사항

샤오미 공식 통합이 OAuth 2.0 로그인을 사용하여 보안성을 높였지만, 여전히 일부 보안 위험이 존재합니다:

  • 사용자 데이터 평문 저장: 사용자의 기기 정보, 인증서, 토큰 등 민감 정보가 Home Assistant 설정 파일에 평문으로 저장됩니다. 설정 파일이 유출되면 타인이 Xiaomi 기기에 접근할 수 있습니다.
  • 설정 파일 보호: Home Assistant 설정 파일을 안전하게 보관하여 유출을 방지해야 합니다.
  • 권한 취소: OAuth 토큰 유출이 의심되면 Xiaomi Home 앱에서 로그인 권한을 취소할 수 있습니다.

반드시 Home Assistant 설정 파일을 안전하게 보관하세요!

6. FAQ

  • 어떤 기기가 지원되지 않나요?
    • 현재 블루투스 기기, 적외선 기기 및 가상 기기는 지원되지 않습니다.
  • 여러 Xiaomi 계정을 추가하는 방법은?
    • 설정된 Xiaomi Home 통합 페이지에서 "허브 추가"를 클릭하여 다른 Xiaomi 계정을 추가할 수 있습니다.
  • 로컬 제어가 모든 지역에서 사용 가능한가요?
    • 중앙 게이트웨이 방식의 로컬 제어는 중국 대륙에서만 가능하며, LAN 제어는 모든 지역에서 사용 가능하지만 IP 기기로 제한되며 권장되지 않습니다.
  • 공식에서 Git 클론 설치를 권장하는 이유는?
    • Git 클론을 사용하면 버전 전환과 업데이트가 편리하여 관리가 쉽습니다.
  • 통합을 업데이트하는 방법은?
    • Git 클론을 통해 특정 버전으로 전환하거나 HACS를 사용하여 업데이트할 수 있습니다.
  • 사용자 정의 설정을 사용하는 방법은?
    • spec_filter.json 및 multi_lang.json 파일을 편집하여 필터링과 번역을 수행한 후, 엔티티 변환 규칙을 업데이트하면 됩니다.