ここでは、Apple homekitのエミュレータhomebridgeプラグインをインストールするときに使う便利なコマンドなどを纏めてあります。
INDEX
Node.jsのインストール
nvmとNode.jsのインストール方法になりますが、比較的に頻繁にアップデートが発生しています。基本的には都度アップデートする必要もないと思っていますが、新しいプラグインなどはNodeのVersionが指定されていたりするので、この操作は比較的何度も実施する事になりますね。
因みにNVMを入れるとNode.jsをVerisonごとにプラグインで管理できるのですが、逆にNode.jsのVersionをあげると過去のプラグインを新しいNode.jsに全てインストールし直しになるので注意して(忘れないで)ください。
#nvm v10.15.0のインストール
$ nvm install v10.15.0
#インストールされたversionを確認
$ which node
/home/pi/.nvm/versions/node/v10.15.0/bin/node
$ node -v
v10.15.0
#npmの最新版をインストール
$ sudo npm -g install npm@latest
$ npm -v
6.9.0
以下のコマンドを事前に設定しておけば、nodeの現在の使用versionを”current”として指定するできるので今後使うときには結構便利になるのでお勧めです。
#複数のversionをインストールした時のためのシンボリックの自動更新をできるようにしておく
$ echo export NVM_SYMLINK_CURRENT=true >> ~/.bashrc
#.bashrc を再リロードする。
$ source ~/.bashrc
Homebridgeのインストール
Homekitエミュレータ、Homebridgeをインストールする時の手順になりますね
#homebridge の依存ライブラリをインストールする。 //以前に実行済の場合はこの手順はスキップ
$ sudo apt-get install libavahi-compat-libdnssd-dev
#homebridgeのインストールを実行します
$ sudo npm install -g --unsafe-perm homebridge
/home/pi/.nvm/versions/node/v10.15.0/bin/homebridge -> /home/pi/.nvm/versions/node/v10.15.0/lib/node_modules/homebridge/bin/homebridg
因みに何らかの理由でhomebridgeを削除したいと思った場合のコマンドは以下になります。
$ sudo npm uninstall homebridge
ラズパイでのMACアドレスの調べ方
プラグインによってはラズパイのMACアドレスを指定したりする事もあります。ラズパイに何のOSを入れるかにもよりますが、ここでは一般的なRasbian OS前提で考えます。
因みにRasbianはDebian系のOSなので、Debian系のOSであればほぼほぼ一緒です。
MACアドレスさらにはIPアドレスを調べれるには以下のコマンド入力してください。
$ ifconfig
そうするとラズパイ本体のネットワークインターフェイス情報が表示されますので、有線の場合であば上部のeth0、WiFiの場合であれば下部のwlan0の値を確認しましょう。
eth0: flags=4355<UP,BROADCAST,PROMISC,MULTICAST> mtu 1500
ether b8:27:eb:bc:c5:17 txqueuelen 1000 (イーサネット) ##<==== 有線接続の場合はこれ
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (ローカルループバック)
RX packets 16387 bytes 12149745 (11.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 16387 bytes 12149745 (11.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST> mtu 1500
inet 192.168.12.90 netmask 255.255.255.0 broadcast 192.168.12.255
inet6 240b:11:1a41:4900:53ec:82af:b75d:57f4 prefixlen 64 scopeid 0x0<global>
inet6 fe80::8288:1be2:baf9:8d09 prefixlen 64 scopeid 0x20<link>
ether b8:27:eb:e9:90:42 txqueuelen 1000 (イーサネット) ##<==== WiFi接続の場合はこれ
RX packets 3163472 bytes 438107864 (417.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3306916 bytes 314032736 (299.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
HomebridgeをAppleホームのアクセサリとして登録する方法
Homebridgeをホームアプリに登録するためのTipsです。
config.jsonの書き方
先ずはConfig.json(設定ファイル)ですね。因みにconfig.jsonはHomebridgeをインストールしても作成されません。自分でvimやvi, nanoコマンドを使って~/.homebridge/config.json部分で作成しましょう。
config.jsonの構成は、以下のような方になっています。
- bridge -> homebridgeアプリが動作するハード関連の設定
- accessories -> homekitアプリで動作するアクセサリ (1 accessory = 1 ボタン)
- platforms -> homekitアプリで動作するプラットフォーム (platformで管理されるアクセサリの集合)
インストールするプラグインがaccesoriesに部分に記載するのか、それともplatformsに記載するのかは、それぞれプラグイン毎の仕様に依存するので、注意してください。
またjson形式で記載がされているので、括弧の数を間違えないように気をつけてください。
{
"bridge": {
"name": "Homebridge",
"username": "CC:22:3D:E3:xx:xx",
"port": 51826,
"pin": "031-45-154"
},
"accessories": [
{
"accessory": "WeMo",
"name": "Coffee Maker"
},
{
"accessory": "WeMo2",
"name": "Humidity"
}
],
"platforms": [
{
"platform" : "PhilipsHue",
"name" : "Hue"
},
{
"platform" : "Dyson",
"name" : "Dyson hp04"
}
]
}
iPhoneへの登録方法
設定ファイルができればあとはhomebridgeアプリを起動しましょう。起動には以下のコマンドで実施します。
$ homebridge
そうするとコマンドプロンプト画面に以下のようなQRコードが表示されます。このQRコードをホームアプリのデバイス追加で読み込ませればOKです。

ホームアプリを開いて右上の+をクリック、アクセサリを追加。

カメラでQRコードを読み込ませるかもしくは設定したpinコードを入力しましょう。例では「"pin": "031-45-154"
」なので、031-45-154になりますね。

サービス自動起動
この後は、Homebridgeの自動起動の設定です。こいつをやらないと、ターミナルを閉じると同時にHomebridgeが使えなくなってしまうので、あまり意味ないです。
homebridgeの自動起動の設定
systemdサービスで使用する起動ファイルを作成します。
#systemdファイルの作成
$ sudo vim /etc/systemd/system/homebridge.service
中身は以下のような感じにしておきましょう。
[Unit]
Description=Homebridge Server
After=syslog.target network-online.target
[Service]
Type=simple
User=pi
EnvironmentFile=/etc/default/homebridge
ExecStart=/home/pi/.nvm/current/bin/homebridge
$HOMEBRIDGE_OPTS Restart=on-failure RestartSec=10 KillMode=process
[Install]
WantedBy=multi-user.target
作成した起動ファイルの権限と環境ファイルの作成を行います。
# 権限の修正
$ sudo chmod 644 /etc/systemd/system/homebridge.service
これで準備は完成です。以下のコマンドでhomebridgeサービスが起動することを確認してしましょう。
# 起動ファイルの再読み込み
$ sudo systemctl daemon-reload
# Systemdの起動確認
$ sudo systemctl start homebridge
$ sudo systemctl status homebridge
# Systemdの自動起動をON
$ sudo systemctl enable homebridge
プラグインの削除/アンインストール
何か問題が起きたり、プラグインを差し替えたい場合などには一度プラグインを削除して、やり直した方が良い時もあります。
そんな時には以下のコマンドで該当プラグインをアンインストールしましょう。
$ npm uninstall プラグイン名
登録アクセサリーのリセット方法
何度かアクセサリーを追加したり、削除したりを繰り返していると、アクセサリーが上手く登録できなくなったり、消えなくなったりするケースが発生します。そんな時は以下のコマンドで登録アクセサリーのリセットをすることができます。
# 先ずはhomebridgeのサービスを止める
$ sudo systemctl stop homebridge
# 以前までの履歴とアクセサリーキャッシュの削除
$ cd ~/.homebridge
$ rm -rf accessories
これでも上手くいかない時は最終手段としてアクセサリーを一度全て削除してしまいましょう。但し、この方法をすると部屋の設定なども全て初期値に戻ってしまうので、最終手段にしておきましょう。
# アクセサリーのリセット
$ rm -rf persist
Comments