Raspberry PiにHomeBridgeをインストールする

過去のブログのアーカイブ
この記事は前身のブログのアーカイブを引き継いだものです. 画像が正しく表示できないなど,コンテンツの表示に問題がある恐れがあります.

HomeBridgeを使えばiPhoneのSiriに家電を操作してもらうことができます!
iOS10からHomeアプリが本格的に稼働しだしたということで、実際に試してみたいと思います。

必要なもの

img_1260
一応一通り書いてお聞きます。Raspberry Piの初期設定等が全て終わった人は次の項に飛んでください。

  • Raspberry Pi
  • Micro SDカード(8GB以上推奨)
  • HDMIケーブル
  • USB接続のキーボード
  • マウス(Bluetoothタイプでも問題ないけどUSB接続の方が楽)

Raspberry Piに必要なものは上のセットです。
Raspberry Piは小さなコンピューターのようなもの。頑張ればWindowsだって入っちゃいます!
初期設定は他のブログの方が詳しく解説しているのでググってね

ライブラリのインストール

調べてみたら人によってやり方がかなりバラバラな模様。
とりあえず難しい話なしにスムーズに進む方法でご紹介。
結構いろんなライブラリをインストールする

avahiをインストール

sudo apt-get install libavahi-compat-libdnssd-dev

 node.jsをインストール

wget https://nodejs.org/dist/v4.6.0/node-v4.6.0-linux-armv6l.tar.gz
tar -xvf node-v4.6.0-linux-armv6l.tar.gz
cd node-v4.6.0-linux-armv6l
sudo cp -R * /usr/local/

そしてインストールし終わったら念のためバージョンチェックしてください。

node -v

HomeBridgeをインストール

sudo npm install -g homebridge

お待ちかねのHomeBridgeのインストールです。

HomeBridge-cmdプラグインをインストール

HomeBridgeだけのインストールでは動作しないので、プラグインもインストールしておきます。
今回はオンとオフの操作をコマンドで行うことができるHomeBridge-cmdをインストールします。

sudo npm install -g homebridge-cmd

また、プラグインは大量にあります。もし気になるものがある方は覗いてみるとおもしろいかも
https://www.npmjs.com/search?q=homebridge-plugin

HomeBridgeの設定を行う

まだこれだけでは命令もできないし、起動もろくにできません。
初期設定を行いましょう。

sudo nano /home/pi/.homebridge/config.json

これでテキストエディタを開きます。
設定はjsonで行います。Javascriptユーザーにとってはおなじみの形式ですね。

{
    "bridge": {
        "name": "Homebridge",
        "username": "CC:22:3D:ED:CE:30",
        "port": 51826,
        "pin": "031-46-160"
    },
    "description": "HomeBridge Example",
    "accessories": [
        {
            "accessory": "CMD",
            "name": "TEST",
            "on_cmd": "sudo shutdown",
            "off_cmd": ""
       }
    ]
}

bridgeセクションにはHomeBridgeの基本的な項目を記述します。
nameはなんでも可、usernameはMacアドレス形式ならなんでもいいらしい。PINもなんでもいいです。
descriptionには説明を。別になんでもいいみたいです。
accessoriesにHomeアプリで操作するものをずらずら書いていきます。
ちなみに上の設定ファイルだと、ホームアプリに表示されたスイッチをオンにするとRaspberry Piがシャットダウンします()
そのあたりは適当に変更してください。

Lチカをする

この項目については次の記事で紹介します。
Homeアプリ(HomeBridge)でLEDを点灯させる