前回記事ではhomebridgeのインストールまで出来た。
しかしインストール直後に起動すると設定ファイルやプラグインがないことでエラーが発生していた。
まずは設定ファイルを作っていく。
homebridgeプラグインのインストール
homecridgeでコマンドラインを実行させるプラグインをインストール
$sudo npm install homebridge-cmd -g
homebridgeの設定と準備
以下の設定ファイルへ情報を入力していく
設定ファイルの場所は、homebridgeを起動したときのエラー画面から確認できる(他に場所を知る方法があるかもしれない。。)
まずは設定ファイルへ書き込む情報を取得する
$ ifconfig
これで得られた情報以下のところをメモしておく
wlan0 Link encap:イーサネット ハードウェアアドレス b8:27:eb:ed:6b:08
inetアドレス:192.168.10.105 ブロードキャスト:192.168.10.255 マスク:255.255.255.0
出典:自宅IoTのため家にある電子機器をRaspberry Pi+Homebridge使ってSiriの音声認識で繋ぎまくってみた
得た情報を以下の設定ファイルへ書き込んでいく
| 項目 | 説明 |
|---|---|
| username | ハードウェアアドレス(MAC)アドレス |
| accessary | 実行したいコマンド |
{
"bridge": {
"name": "Pi",
"username": "B8:27:EB:ED:6B:08",
"port": 51821,
"pin": "031-45-154"
},
"description": "Living Room",
"accessories": [
{
"accessory": "CMD",
"name": "エアコン",
"on_cmd": "エアコンをオンにするコマンド",
"off_cmd": "エアコンをオフにするコマンド"
}
]
}
また、このとき使用したコマンドはこちらの記事で使用したものと同様
このときusenameのMACアドレスは小文字表記だとエラーになる。
===============2020/08/26追記
複数登録する場合はこんな感じに
{
"bridge": {
省略
},
"accessories": [
{
"accessory": "CMD",
"name": "名前",
"on_cmd": "コマンド",
"off_cmd": "コマンド"
},
{
"accessory": "CMD",
"name": "名前",
"on_cmd": "コマンド",
"off_cmd": "コマンド"
},
{
"accessory": "CMD",
"name": "名前",
"on_cmd": "コマンド",
"off_cmd": "コマンド"
}
]
}
===============追記ここまで
viを使えば小文字から大文字への変換は楽にできる
v(小文字)でビジュアルモードに入って選択してU(大文字)を入力すれば選択した範囲は大文字になる
homebridgeを自動起動
自動起動の方法は以下の方法がある。
- systemd
- init.d
- /etc/rc.local
今回は簡単だと言われている/etc/rc/localで設定していく
Screenをインストール
$ sudo apt-get install screen
/etc/rc.localを変数する
テキストエディタで/etc/rc.localを編集していく
exit 0の直前に以下を追加する
su -c "screen -dmS homebridge homebridge" -s /bin/sh pi
exit 0
Siriと連携
この項目は8桁ののコードを入力するなり、QRコードを読み込むなり、して追加していきます。
おそらく多くのサイトで書かれているのでこの項目は省略します。
ここまででSiriからエアコンを付けることができました。
しかし今回使用したhomebridgeプラグインでは「オン」「オフ」しか命令できないので、Siriに話しかけた言葉をラズパイに入力させる方法があれば温度を変えたりとかもかんたんになると思った。

エラー、問題が発生したとき
homebridge起動コマンドを入力するとエラーが出て起動できないとき
Error: listen EADDRINUSE: address already in use :::51821
こんなエラーが出る。
上記ポートですでにhomebridgeが起動しているため、51821が使えないことを言っている。
$ lsof -i:51821
これでポートを使用しているプロセルが見れるので表示されているPIDをkillする
$ kill -9 [PID]
ホームアプリ上でのエラー
アクセサリで応答がない、登録していたのにある日突然応答がなくなり、
再追加しようとしても
アクセサリはすでに追加されています このアクセサリをホームに追加するには、まずリセットする必要があります。
と表示されて何もできない場合、
homebridgeサーバ(ラズパイ)側で以下のような操作をやってみると治るかもしれない。
# homebridge停止。プロセスキル、もしくは以下コマンド
$ sudo systemctl stop homebridge
# キャッシュクリア
$ cd ~/.homebridge
$ rm -rf accessories
それでもだめなら
すべてのアクセサリを設定をリセットする(最終手段)
$ rm -rf persist
参考:Homebridge】ラズパイで使える便利なコマンド&やり方まとめ
