Homebridge で Nature Remo を HomeKit 対応

Nature Remo に登録された家電を iPhone/iPad の「ホーム」アプリから操作したい。でも Nature Remo は HomeKit 対応していない。ぐぬぬ。となったので Homebridge で実現する備忘録。

環境
  • Nature Remo mini
  • Raspberry pi 3
  • Raspbian
  • Docker インストール済み

Dockerイメージが配布されていたのでDockerでやってみる。

homebridge-ui のインストール

$ mkdir homebridge $ cd homebridge $ cat << EOF > compose.yml services: homebridge: image: oznu/homebridge:latest restart: always network_mode: host volumes: - ./volumes/homebridge:/homebridge logging: driver: json-file options: max-size: "10mb" max-file: "1" EOF $ docker compose up -d

http://<Raspberry pi の IP>:8581 で homebridge-ui にアクセスできる。

Image in a image block

初期設定を済ませダッシュボードへ。

参考)エラーが出る場合
Image in a image block

エラー。registry.npmjs.org へ到達できていなさそう。

コンテナ内のターミナルから ping を飛ばしてみる。

$ docker compose exec homebridge /bin/bash Note: This is a restricted shell, sudo cannot be used here. Homebridge Terminal Node.js Version: v18.12.1 Node.js Path: /opt/homebridge/bin/node Plugin Path: /var/lib/homebridge/node_modules Update Node.js: hb-service update-node Install Plugin: hb-service add homebridge-plugin-name Remove Plugin: hb-service remove homebridge-plugin-name root@raspi:/homebridge $ ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=56 time=10.5 ms 64 bytes from 8.8.8.8: icmp_seq=2 ttl=56 time=10.3 ms 64 bytes from 8.8.8.8: icmp_seq=3 ttl=56 time=10.5 ms 64 bytes from 8.8.8.8: icmp_seq=4 ttl=56 time=10.1 ms 64 bytes from 8.8.8.8: icmp_seq=5 ttl=56 time=9.96 ms ^C --- 8.8.8.8 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4007ms rtt min/avg/max/mdev = 9.961/10.266/10.492/0.219 ms root@raspi:/homebridge $ ping registry.npmjs.org # 到達せず
ターミナルしっかりしててびっくりした

Raspberry Pi のネットワーク設定を見直すと DNS 設定に漏れがあったので修正すると治った。めちゃくちゃこっちのミス。

root@raspi:/homebridge $ ping registry.npmjs.org PING registry.npmjs.org (104.16.19.35) 56(84) bytes of data. 64 bytes from 104.16.19.35 (104.16.19.35): icmp_seq=1 ttl=55 time=10.9 ms 64 bytes from 104.16.19.35 (104.16.19.35): icmp_seq=2 ttl=55 time=10.4 ms 64 bytes from 104.16.19.35 (104.16.19.35): icmp_seq=3 ttl=55 time=10.6 ms 64 bytes from 104.16.19.35 (104.16.19.35): icmp_seq=4 ttl=55 time=10.3 ms 64 bytes from 104.16.19.35 (104.16.19.35): icmp_seq=5 ttl=55 time=10.5 ms ^C --- registry.npmjs.org ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4007ms rtt min/avg/max/mdev = 10.313/10.544/10.864/0.186 ms

無事ダッシュボードが正常に表示された。

Image in a image block

Nature Remo プラグインのインストール

様々なプラグインを試して比べた結果「Homebridge Nature Remo Platform」が一番手軽&正常に動作&安定していると感じたのでこれを導入。

したかったのだがレポジトリがアーカイブされており、メンテナンスが止まっていた。

ので以降は夢の中での出来事である…。

1. 一旦探してみる

通常ルート同様「Plugins」タブで検索してみる。出ない。

Image in a image block
2. コンソールへ接続し npm で直接ダウンロード

コンテナに潜り込む。

$ docker compose exec homebridge /bin/bash # ... root@raspi:/homebridge $ npm i @takeya0x86/homebridge-nature-remo-platform
3. homebridge-ui を再起動

右上電源マークで再起動。

4. プラグインの追加を確認
Image in a image block
5. Access Token を取得

ここ↓で発行しコピーしておく。

6. プラグインの設定

プラグイン左下の「SETTINGS」から設定を開き「Access Token」に先ほどコピーした値を入力し「SAVE」を押下。

Image in a image block
7. homebridge-ui を再起動

右上電源マークで再起動。

8. Accessories の追加を確認

Nature remo に登録済みの家電が表示されるはず。

Image in a image block
Image in a image block