mi-home-assistant

mi-home-assistant

1. はじめに

みなさん、こんにちは!今日はスマートホームファンの皆さんにとってワクワクするプロジェクトについてお話しします。小米公式 Home Assistant 統合(ha_xiaomi_home)です。このプロジェクトはXiaomi公式が開発・メンテナンスしており、Home Assistantユーザーによりスムーズで信頼性の高いXiaomi IoTデバイス制御体験を提供することを目的としています。

以前はサードパーティ製のXiaomiデバイス統合もありましたが、デバイス状態の応答遅延など、多多少少の問題がありました。公式サポートが実現した今、より良いパフォーマンスと高いセキュリティを期待できます。

Home Assistantはオープンソースのホームオートメーションプラットフォームで、その強力な互換性と柔軟性によりDIY愛好家から広く支持されています。ここにスマートホーム分野の巨人Xiaomiが加わったことで、まさに期待大な出来事です。

主な機能:

  • 公式サポート: Xiaomi公式が開発・メンテナンスしており、高い安定性と互換性を実現。
  • Home Assistant統合: Home Assistant上でXiaomiスマートデバイスの制御と管理が可能。
  • ユーザー体験の向上: デバイス状態の応答速度を改善し、サードパーティ統合の遅延問題を解決。
  • 広範なデバイス対応: 大多数のXiaomi IoTデバイスに対応(Bluetooth、IR、仮想デバイスは除く)。
  • 複数アカウント・リージョン対応: 複数の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. 活用テクニック

  • 複数アカウント管理: 1つのXiaomiアカウントのログインと設定完了後、「HUBを追加」することで他の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. セキュリティに関する懸念

Xiaomi公式統合はOAuth 2.0ログイン方式を採用してセキュリティを向上させていますが、依然としていくつかのリスクが存在します:

  • ユーザーデータの平文保存: デバイス情報、証明書、トークンなどの機密情報がHome Assistantの設定ファイルに平文で保存されます。設定ファイルが漏洩した場合、第三者がXiaomiデバイスにアクセスする可能性があります。
  • 設定ファイルの保護: Home Assistantの設定ファイルは安全に保管し、漏洩を防ぐ必要があります。
  • 認証の取り消し: OAuthトークンの漏洩が疑われる場合、Xiaomi Homeアプリからログイン認証を取り消すことができます。

したがって、Home Assistantの設定ファイルは必ず安全に保管し、漏洩を防いでください!

6. よくある質問

  • 対応していないデバイスは?
    • 現在、Bluetoothデバイス、IRデバイス、仮想デバイスには対応していません。
  • 複数のXiaomiアカウントを追加するには?
    • 設定済みのXiaomi Home統合ページで「HUBを追加」をクリックすると、他のXiaomiアカウントを追加できます。
  • ローカル制御はすべてのリージョンで利用可能?
    • セントラルゲートウェイ経由のローカル制御は中国本土でのみ利用可能です。LAN制御はすべてのリージョンで利用できますが、IPデバイスのみ対象で、非推奨です。
  • なぜ公式はGitクローンインストールを推奨しているの?
    • Gitクローンならバージョンの切り替えやアップデートが簡単で、管理しやすいからです。
  • 統合を更新するには?
    • Gitクローンで特定のバージョンに切り替えるか、HACSを使用して更新できます。
  • カスタム設定を使うには?
    • spec_filter.json と multi_lang.json ファイルを編集してフィルタリングと翻訳を行い、エンティティ変換ルールを更新してください。