Raspberry Pi+Docker上にHomebrirgeを移行

2021/11/12

HomeKit iPhone Linux RaspberryPi

t f B! P L

スマート家電が増えてきたので、iOSのホームアプリ"も"活用できないかと思い、

HomebrirgeをMac miniの中の仮想サーバの中のDocker上に作っておりました。

その時の記事は↓。


Mac mini上でも特に問題はなかったのだけど、

Macがスリープすると当然Homebrirgeも反応しなくなるのでちょっと不便だった。

その反面、Raspberry Piなら常時稼働なので特に問題なく、

Mac miniをつけっぱなしにするよりも電気代がちょっとだけ浮くかなと。

さらにDocker上にHomebrirgeを動かしてるから移行も簡単じゃね?ってことで、

色々とやってみますた。


Homebrirge移行の流れ

以下の流れで実施すると正常に移行できた。

合っているかどうかは知らんw

  1. 移行元のHomebrirgeの設定情報をバックアップ
  2. 移行元のHomebrirge停止
  3. 移行先のDocker上に新規でHomebrirgeを導入
  4. 設定情報をリストア
  5. Homebridgeアクセサリを初期化
  6. ホームアプリで既存のHomebrirgeハブを削除
  7. 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

検索

Blog Archive

Popular Posts

About Me

自分の写真
性別:男
年齢:ついに40over
趣味:Snowboard、パソコン、iPhone、子育て

仕事:ユー子の社内SEとしてサーバ、NW等のインフラ全般をやってます

日々生活していく中で思ったことなどをつらつらと書いていきます。

どうぞよろしく!

ブログランキング

ブログランキング・にほんブログ村へ

QooQ