Homebridgeを複数インスタンス化する

投稿者: | 3月 17, 2024

はじめに

現在のスマートホームの構成が普段使いのios17、ipadOS17の端末と、部屋に置きっぱなしのHomeKitコントローラのios12の端末の2つがありました。これまでは、すべて同じAppleIDでログインして同期させていたのですが、HomeKitのアップグレードで同一アカウントでの利用が不可能となりそうなことがわかりました。そこで、ios15以下用のAppleIDと普段遣いのios16以上用のAppleIDで分けることにしました。同じHomebridgeを複数のアカウントに登録することはできないので、Homebridgeのインスタンスを2つ立ち上げる必要が発生しました。

作成したい物

2つのインスタンスを作成する
メイン(Homebridge)・・・Google Homeとの同期をこちらで行う。
サブ(Homebridge2)・・・Google Homeとの同期は行わない。

手順

1. /opt/homebridge/start2.shの作成

Homebridgeが立ち上げられたときに実行されるファイルです。

1-1. /opt/homebridge/start.shをコピー

sudo cp /opt/homebridge/start.sh /opt/homebridge/start2.sh

1-2. start2.shを編集

sudo vim /opt/homebridge/start2.sh

で編集画面にします。
HB_SERVICE_STORAGE_PATH=”/var/lib/homebridge2″

. “/opt/homebridge/source2.sh”
に変更してください。

1-3. 所有者の変更

sudo chmod homebridge:homebridge /opt/homebridge/start2.sh

2. /opt/homebridge/source2.shの作成

start2.shと同じようにコピー後、編集します。

2-1. /opt/homebridge/source.shをコピー

sudo cp /opt/homebridge/source.sh /opt/homebridge/source2.sh

2-2. source2.shを編集

sudo vim /opt/homebridge/source2.sh

で編集画面にします。
HB_SERVICE_STORAGE_PATH=”/var/lib/homebridge2″
に変更してください。

2-3. 所有者の変更

sudo chown homebridge:homebridge /opt/homebridge/source2.sh

3. /var/lib/homebridge2とconfig.jsonの作成

データが入っているフォルダです。プラグインもこっちに入っています。今回はそのままコピーするので、コピー元の元々実行していたHomebridgeのプラグインも引き継がれます。プラグインが不要な場合は、コピー後にhomebridge2/node_modulesの中身を消せば良いと思います。

3-1. フォルダをコピーする

sudo cp /var/lib/homebridge /var/lib/homebridge2 -R

3-2. config.jsonを編集する

sudo vim /var/lib/homebridge2/config.json

絶対に編集しないと行けない部分は
bridgeのname、username、port、pin
platformsのport
です。元の値と重ならないようにしてください。

3-3. 所有者の変更

sudo chown homebridge:homebridge /var/lib/homebridge2 -R

4. サービスの作成

4-1. /lib/systemd/system/homebridge.serviceをコピー

sudo cp /lib/systemd/system/homebridge.service /lib/systemd/system/homebridge2.service

4-2. homebridge2.serviceの中身を編集

sudo vim /lib/systemd/system/homebridge2.service

で編集画面にします。
WorkingDirectory=/var/lib/homebridge2

ExecStart=/opt/homebridge/start2.sh
に変更してください。

4-3. サービスの再読み込み

sudo systemctl daemon-reload

4-4. サービスの有効化

sudo systemctl enable homebridge2.service

4-5. サービスの開始

sudo systemctl start homebridge2.service

5. 動作確認

2つ目のインスタンスが立ち上がったはずなのでブラウザで確認してください。アクセスできないようなら、

journalctl -u homebridge2.service -f

とかでログを確認できます。Webすら立ち上がらないのは、start2.sh、sorce2.sh、homebridge2.serviceのどれかの書きミスか、platformsのportが同じになっているとかです。

Webページにアクセスできても、サービスを永遠と再起動してる感じだと、なにかのポート番号が同じになっているとかです。自分の場合は、Homebridge People Xのポート番号が同じで無限に再起動してました。

問題点

他のプラットフォーム(Tuya、Merross、eWeLink等々)のスマートデバイスを追加する場合、そのプラットフォームが同時多重ログインに対応していない場合があります。Tuyaはプロジェクトを増やすことで解決しました。Merrossはもとから問題なく、eWeLinkはめっちゃlogin failedってエラーが出ますが、なんとか動いています。

おわりに

同じ要領で3、4、・・・って増やせると思います。まあ、一つのインスタンスに1つのプラグインにしたいのであれば、小ブリッジにHomebridgeが対応したのでやる必要はないと思います。
いい感じに他ブリッジ化できましたが、何故かios12の端末で登録しようとすると、追加できませんでした。って言われてしまい、ios17の端末から登録すると、ios12の端末ですべて応答なしになってしまいます。困ったものです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)