Homebridge on Docker on RaspberryPiとNatureRemoで自宅IoT環境の改善

この記事は ZOZOテクノロジーズ Advent Calendar 2018 - Qiita 10日目の記事です。

2年ほどラズパイ上でHomebridgeの運用をしていましたが、新型NatureRemoの発売に伴い構成を見直すことにしました。 takanamito.hateblo.jp

新型NatureRemoはIRKitと違い、温度・湿度・照度が取れるのでお部屋モニタリングが捗ります。

つくったもの

今回作ったものはこちら github.com

以前の記事ではRaspberry Pi上で直接Homebridgeサーバーを立ち上げていましたが、今回の構成ではRaspberry Pi上でDockerを動かしています。 f:id:takanamito:20181208165335j:plain

Homebridge on Docker

Raspberry Pi上でDockerを動かそうと思い調べてみると、すでに同じことを考えている人がリポジトリを公開していました。 github.com

公開されているDocker Imageを使えばすぐにでもHomebridgeが動かせる上に
condig.jsonをvolume mountすれば、その設定を読み込んでHomebridgeが立ち上がり
package.jsonをvolume mountすれば、コンテナ起動時にnpm installしてpluginをインストールしてくれます。

ご丁寧にRaspberry PiセットアップからDockerインストール、Homebridgeを動かすところまでwikiにまとめてくれているので
ここを参考にすると、ハマらずに環境構築ができるかと思います。
Homebridge on Raspberry Pi · oznu/docker-homebridge Wiki · GitHub

また先述の僕のリポジトリではmitamae用のレシピも公開しているため、より簡単に環境構築ができます。(動かなかったらPRください)

homebridge-config-ui-xを使った環境構築

docker-compose.yml内で指定するオプションでHomebridge用の管理画面を立ち上げることができます。 https://github.com/takanamito/myhome_homebridge/blob/master/docker-compose.yml#L12-L13

これもnpm pluginとしてインストールされたものなんですが、このpluginのおかげでとても環境構築が捗ります。

GitHub - oznu/homebridge-config-ui-x: Homebridge Web UI plugin to monitor, manage and control Homebridge from a browser.

というのも、IRKitとNatureRemoのセットアップに共通して以下の作業を行います。
この作業がまあめんどくさい。

  • 操作したい家電のリモコンの赤外線を送信する
  • NatureRemoのAPIを叩いて、赤外線情報が含まれたjsonを取得
  • アクションと赤外線情報を紐付ける設定ファイルを記述

f:id:takanamito:20181208173654p:plain

  • Homebridgeを再起動
  • 実際にHomeKitからアクションを実行し、家電が操作できるか確認

f:id:takanamito:20181208173802p:plain

上のスクショが実際の画面なんですが、homebridge-config-ui-xを使えば赤外線情報取得以外の
設定ファイル記述や再起動という手順が全て管理画面上のUIから操作可能なので、設定作業が非常に捗りました。

まとめ

Raspberry PiのDocker環境でHomebridgeを動かす手順についてご紹介しました。
非常に簡単にHomeKit連携のサーバーを立ち上げることができるためIRKitやNatureRemoを持て余している方におすすめです。

Nature Remo

Nature Remo