スマート家電が増えてきたので、iOSのホームアプリ"も"活用できないかと思い、
HomebrirgeをMac miniの中の仮想サーバの中のDocker上に作っておりました。
その時の記事は↓。
Mac上にVirtual Box+dockerでHomebridgeを立てる
我が家のスマートホーム化への第一歩。
Mac mini上でも特に問題はなかったのだけど、
Macがスリープすると当然Homebrirgeも反応しなくなるのでちょっと不便だった。
その反面、Raspberry Piなら常時稼働なので特に問題なく、
Mac miniをつけっぱなしにするよりも電気代がちょっとだけ浮くかなと。
さらにDocker上にHomebrirgeを動かしてるから移行も簡単じゃね?ってことで、
色々とやってみますた。
Homebrirge移行の流れ
以下の流れで実施すると正常に移行できた。
合っているかどうかは知らんw
- 移行元のHomebrirgeの設定情報をバックアップ
- 移行元のHomebrirge停止
- 移行先のDocker上に新規でHomebrirgeを導入
- 設定情報をリストア
- Homebridgeアクセサリを初期化
- ホームアプリで既存のHomebrirgeハブを削除
- Homebrirgeハブの再登録、アクセサリも再設定
基本的にDocker上のコンテナはデータを極力保持しない作りになっているので、
データ移行という概念がそもそも存在しないそうな。
ローカルにアタッチされたボリューム(フォルダ)を丸ごと固めて、docker-compose.ymlと一緒に移行して
"docker-compose up -d"すればイケるんじゃね?って思って実際にやってみて、
Homebrirgeとしては問題なく稼働できたが、
iOS側のホームアプリでわけわからんエラーが出たので、
Homebrirgeでバックアップ・リストアが確実だなと判断。
もしかしたら上記の5〜7の再設定で直ったのかもしれんが。
1.設定情報バックアップ
まずは移行元となるHomebrirge上でバックアップを取る。
WebGUIにアクセスして、画面右上から「バックアップと復元」をクリック。
「バックアップアーカイブをダウンロード」をクリックして、バックアップファイルをダウンロード。
あとはdocker-compose.ymlも移行するので、
コピーしておく
2.移行元Homebrirge停止
まぁ、別に停止しなくてもいいんだけどw
もうMac mini上のAmazon Linux2はお役御免。
短い命でしたwwwwwwwwwww
3.移行先でHomebrirge構築
移行先のRaspberry PiでDockerというかPortainer経由でHomebrirgeを立てる。
詳しいやり方は公式サイトに載ってる。
Portainerの管理画面(http://<IPアドレス>:9000)にアクセスして、
左ペインの「Home」から「local」の環境をクリックする。
「Stacks」をクリックする。
「Add stack」をクリックする。
「Name」にスタック名、「Build method」にdocker-compose.ymlの中身を書く、もしくは.ymlファイルをアップロードする。
ちなみに中身はこんな感じ。
version: '2' services: homebridge: image: oznu/homebridge:latest restart: always network_mode: host environment: - PGID=1000 - PUID=1000 - HOMEBRIDGE_CONFIG_UI=1 - HOMEBRIDGE_CONFIG_UI_PORT=8581 - TZ=Asia/Tokyo volumes: - ./volumes/homebridge:/homebridge
一番下の「Deploy the stack」をクリックする。
するとStack画面で作成したスタックが表示されているのでクリックしてみる。
その中に作成されたコンテナがあるはず。
「State」が"Running"になっていたら正常に起動できている。
コンテナ名をクリックしてログを確認してみる。
「Logs」をクリックする。
正常に起動できている。
4.設定情報リストア
Raspberry PiのHomebridgeにアクセスすると、まっさらな状態になっているので、
先ほど取得したバックアップからリストアをする。
今度は復元の「Browse」をクリックして、バックアップファイルを選択する。
「バックアップを復元」をクリックする。
今まで入れていたプラグイン等が全てインストールされる。
「再起動」をクリックする。
これでHomebridgeとしては設定がリストアできたのだが、
iOS側のホームアプリとの紐付けが残ったままなので、
一旦Homebridgeとしてリセットを行う必要がある。
5.Homebridgeアクセサリ初期化
ハブの削除の前に↑のHomebridgeをリセット。
「Homebridge設定」から、
「Homebridgeアクセサリを初期化」をクリックする。
確認画面が表示されるので「初期化」をクリックする。
その後はHomebridgeを再起動。
6.ホームアプリで既存ハブを削除
iOS機器のホームアプリから既存のHomebrirgeハブを削除する。
ホームアプリの「ホーム設定」から対象のハブを選んで、「削除する」をタップする。
確認画面が出るので「削除」をタップする。
7.Homebridgeハブの再登録、アクセサリも再登録
ホームアプリからHomebridgeのQRコードを読み取って、もう一度ホームアプリとして再登録をする必要がある。
それぞれの部屋にアクセサリの配置ももう一度やる必要がある・・・。
カメラ等も再登録が必要。
かなり数が多いと発狂するかもwwwwwww
dockerだとアプリの移行は簡単!Homekitとしては移行は大変!
やはり必要なアプリ環境はコンテナ化されているので、Homebridgeとしての移行は簡単。
しかしながら、問題はiOSのホームアプリ側で、
セキュリティがしっかりしているのか、Homebridgeのハブが変わると完全に別物と認識するのかな。
macアドレスが変わるみたいなもんか。
Homekitがそういう仕様なら仕方ない話なんだけど、
とりあえずは移行できて大満足。
次はメディアサーバでも立てようかなーってことで
まだまだRaspberry Piネタは続きますw
0 件のコメント:
コメントを投稿