DockerでHomebridgeを動かす
はじめに
Raspberrypi 4B 8GBのリソースが余りまくっているので、Homebridgeを動かしてSwitctBotHubMiniと連携させつつ、moOdeやVolumioも簡易操作できるようにしたい。
ざっくり説明するとHomebridgeは、HomeKitに対応していないデバイスをプラグインなどで対応化させ、スイッチなどによる操作で制御できるようにするものです。
1. Dockerインストール
curl -sSL https://get.docker.com | sh
- 現在のユーザ(管理者)をDockerグループに追加
sudo usermod -aG docker $USER
- docker-composeをインストールして再起動する
sudo apt -y install docker-compose
sudo reboot
2. Homebridge用のディレクトリを作り、設定ファイルを作成する
mkdir ~/homebridge
cd ~/homebridge
- docker-compose.ymlを作成
vi docker-compose.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:
- ./homebridge:/homebridge
logging:
driver: json-file
options:
max-size: "10mb"
max-file: "1
- config.jsonを作成
vi homebridge/config.json
{
"bridge": {
"name": "Homebridge pi",
"username": "0E:ED:B2:22:76:15",
"port": 51826,
"pin": "123-45-678", #8桁のpin番号、iPhoneなどから扱う番号
"bind": [
"eth0", #LANケーブル使用時
"wlan0" #Wi-Fi使用時
]
},
"platforms": [
{
"name": "Config",
"port": 8581,
"platform": "config"
},
{
"name": "SwitchBot",
"credentials": {
"token": "スイッチボット用トークン貼り付け",
"secret": "スイッチボットシークレットコード貼り付け",
"notice": "Keep your Token & Secret a secret!"
},
"_bridge": {
"username": "0E:24:BD:FE:C1:43",
"port": 56709
},
"platform": "SwitchBot"
}
],
"accessories": [
{
"accessory": "CMD",
"name": "Volumio",
"on_cmd": "curl volumio.local/api/v1/commands/?cmd=play",
"off_cmd": "curl volumio.local/api/v1/commands/?cmd=pause",
"_bridge": {
"username": "0E:82:E6:B0:F4:1E",
"port": 38019
}
},
{
"accessory": "CMD",
"name": "moOde",
"on_cmd": "curl http://moode.local/command/?cmd=play",
"off_cmd": "curl http://moode.local/command/?cmd=pause",
"_bridge": {
"username": "0E:82:E6:B0:F4:1F",
"port": 38020
}
}
]
}
スイッチボット用トークンなどについてはググってくださいバージョンによって徐々にやり方が変わったりしているため……。
- Homebridge起動
docker-compose up -d
3. Homebridge画面
-
ホスト名.local:8581 でPCからアクセスする
- うちの環境の場合moOdeをいれてホスト名をmoodeにしてあるのでhttp://moode.local:8581となる
-
最初にユーザ名、パスワードを設定する
-
ログインし直し、プラグインを入れる
-
Homebridge SwitchBot
-
Homebridge Cmd
-
-
メイン画面にHomebridgeターミナルを表示させておくと、Node.jsのバージョンアップとかが簡単に行えて便利
-
hb-service update-node
-
まとめ
これで簡単な操作はHomebridge画面のアクセサリやiPhoneなどのホームアプリから可能になりました。
なにかおかしいと思ったら端末をリブート、プラグイン系・Node.jsのアップデートをしてリブートすると大抵は直ります。
それにしても今のテーマだと何のコードか、何のファイルかがわかりにくい……。
変えよかな。