【Homebridge】ラズパイで使える便利なコマンド&やり方まとめ

Homebridge
スポンサーリンク

ここでは、Apple homekitのエミュレータhomebridgeプラグインをインストールするときに使う便利なコマンドなどを纏めてあります。

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です。

ホーム

ホーム

Apple無料posted withアプリーチ

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

カメラで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
スポンサーリンク
スポンサーリンク
Homebridge スマートホーム
こちらの記事も読まれています
スポンサーリンク
スポンサーリンク
\この記事が役に立ったらシェアしよう/
この記事を書いた人
Taka

スマートホーム x IT x 子育て。モバイルシステムエキスパート。独学でプログラミング勉強してWEBアプリ作ったりしながら、日々の生活の中で面白そうな情報を記事にしています。3万PV/月達成しました!お仕事の依頼はお問合せからお願いします。

\フォローする/
デジライン
Subscribe
更新通知を受け取る »
guest
0 Comments
Inline Feedbacks
View all comments

お得なプライム特典はこちら