Homebridge の使い方
Homebridge は Apple のスマートホーム規格である HomeKit に非対応のスマートホームデバイスを HomeKit に対応させるためのブリッジアプリケーションです。「ブリッジ」は HomeKit で定められたブリッジデバイスを指し、Homebridge は HomeKit 非対応デバイスとの通信を翻案しながらこれをエミュレートします。
なお、デバイスを制御する HomeKit アプリとしては、macOS や iOS に搭載されている「ホーム」アプリや、サードパーティの Eve があります。
また、これは Node.js のアプリケーションです。よって、Node.js が動く環境ならおそらく動かすことができます。macOS や Windows といったデスクトップ OS から、Raspberry Pi Zero W といったシングルボードコンピュータまで広い動作環境を持ちます。
Homebridge はコマンドラインプログラムですが、開発者の一人が Homebridge Config UI X という Web UI のプロジェクトを公開しており、これがスタンダードな使い方となっています。(100人近いコントリビューターもいます)
Homebridge 自身のページでも不可分な扱いを受けており、事実上公式の UI と言って良さそうです。
本ページでは、Homebridge をセットアップ・利用する際に躓いた点を含めて、1ページで安定稼動するまでの情報をまとめます。
検証環境
- ハードウェア
- Raspberry Pi Model B Rev 1
- Nature Remo 3
- SwitchBot Hub Mini
- ソフトウェア
- Homebridge Raspberry Pi Image
- Node.js v18.13.0
- npm v8.19.3
- Homebridge v1.6.0
- Homebridge Config UI X v4.50.2
インストール
公式のインストールガイドに従えばうまく行きます。
注意点として、Node.js の最新版(Current)を入れるとインストールに失敗することがあります。Homebridge はインストール過程で Node.js のバージョンに応じたビルド済みバイナリをダウンロードしますが、最新版向けは用意されていないことが理由のようです。
プラグイン
Homebridge はプラグインによって機器と接続します。プラグインは誰でも開発できるため、同一用途で複数のプラグインが公開されている場合も多いようです。ここでは、Nature Remo と SwitchBot を対象にプラグインを紹介します。
なお、プラグインは Homebridge Config UI X の GUI でインストールできます。
SwitchBot
SwitchBot は公式がプラグインを公開しているのでこれを利用します。多種のデバイスを扱える優秀なプラグインです。
@switchbot/homebridge-switchbot
初期設定画面に従いトークンとシークレットを入力すれば、ホームアプリで SwitchBot Hub Mini 上のデバイスを操作できるようになります。
Nature Remo
Nature Remo は公式のプラグインがないため、有志がプラグインを開発しています。Nature の API を利用するので、home.nature.global からアクセストークンを入手する必要があります。ログインするだけで簡単に入手できます。
私の環境で問題なく動いたものを紹介します。括弧内は担当する機能です。
- homebridge-nature-remo-sensor (Remo 本体の気温、湿度、照度センサー)
- @nzws/homebridge-nature-aircon(エアコン・Mac では動いたが Raspberry Pi 1 で動かなさそう。確認中。)
- homebridge-nature-remo-tv-remote(TV)
- homebridge-nature-remo-toggle-switch(トグルスイッチ。シグナルを送るものならなんでも設定可能です。ホームアプリではスイッチ、ファン、照明の図柄を設定できます。)
それぞれ別の方が開発しているので、何もしなくてもホームアプリに繋がるもの、追加の操作が必要なものなどまちまちです。そのため Readme にきちんと従う事が重要です。
hb-service
Homebridge の管理操作を簡単にしてくれるコマンドです。Homebridge Config UI X と一緒にインストールされています。使い方はマニュアルに短くまとまっています。
Node.js のアップデート
Homebridge Raspberry Pi Image を使っている場合、Homebridge 本体の勧める方法は失敗します。ターミナルに入ると Update Node.js: hb-service update-node
と言われますが、途中で止まります。
Homebridge Raspberry Pi Image のアップデートマニュアルに従い、SSH で sudo hb-config
からアップデートすると成功します。
UI のパスワードを忘れたら
~/.homebridge/auth.json
を削除して sudo hb-service restart
をすると、Web UI がウェルカム画面に戻り、アカウントを作り直せます。プラグインや設定は保持されます。
制限
学習させたシグナルを送るデバイスの場合、デバイスを手動で操作すると Homebridge と状態がずれてしまいます。デバイスからリモコンに情報を送り返す機能がない以上仕方のない事であり、HomeKit アプリ上で状態が合わないのはそういうものと割り切る必要があります。
2023年1月26日