iPhoneからRaspberry Piに指示を出す(Homebridge)
iPhoneからHomebridgeを使用して、Raspberry Piに対して、指示を出す環境を構築します。
この環境ができれば、Lチカなど、さまざまなことをiPhoneから操作することができます。
Homebridge
HomeKitに対応していない製品とHomekitとの橋渡しをしてくれる。
HomeKitAPIをエミュレートしてくれるNode.jsサーバー
準備するもの
- iPhone
- Raspberry Pi
Homebridgeインストール/設定
Node.jsのインストール
homebridgeはNode.jsで動くため、Node.jsとインストールする必要があります。
インストール方法は、homebridgeのサイトに記述があるので、その通りに実行します。
# リポジトリ登録
$ curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
# Node.jsのインストール
$ sudo apt install -y nodejs gcc g++ make python net-tools
# バージョン確認 これでバージョンが出れば、問題なくインストールできている。
$ node -v
v14.17.1
homebridgeのインストール
HomebridgeとHomebridge UIをインストールします。
sudo npm install -g --unsafe-perm homebridge homebridge-config-ui-x
HomebridgeをRaspberry Piの起動時に立ち上がるようにします。
sudo hb-service install --user homebridge
今回、Raspberry Pi上のスクリプト実行する必要があるので、homebridge-cmdをインストールします。
Homebridgeでは色んなプラグインが用意されているので、自分の用途にあったプラグインをインストールしてください。
※Homebridge UIからもインストールできるようです。
sudo npm install -g homebridge-cmd
homebridgeにログイン
「http://<raspberry piのipアドレス、もしくは、ホスト名>:8581」でHomebridge Config UI Xにアクセスします。
以下でアクセスできます。
ユーザ名:admin
パスワード:admin
iPhoneのホームに登録
Homebridge Uiにログインすると以下のようなページが出てきます。
iPhoneのホームAppの「アクセサリを追加」からこのQRコードを読み込んでください。
スクリプトを追加
Homebridge Uiのコンフィグを選択すると、Homebridgeコンフィグエディタが出てきます。
ここで、以下のようのaccessoriesの中に記述すると、iPhoneから選択できるようになります。
以下の表はhomebridge-cmdで使用するタグです。
| accessory | "CMD"で固定 |
| name | iPhoneに表示されるアクセサリの名前 |
| on_cmd | オンする時に実施するスクリプト |
| off_cmd | オフする時に実施するスクリプト |
今回の例では、iPhoneのホームAppに「IpAddress」というアイコンが出てきます。
家の外から実施したい場合は、ホームハブが必要
HomePod、HomePod mini、Apple TV、iPadのいずれかのApple製品をホームハブとして設定する必要があります。
設定方法はAppleから確認することができます。
残念ながら、Raspberry Piなどをホームハブに設定することはできないようです。
Discussion