Raspberry PiとHomebridgeでお家ハック
Raspberry PiとHomebridgeを使ってお家をIOT化してみる
今回はHomebridgeのインストールから、実際にIPhoneで制御するまでの
方法を紹介していきたいと思います。
webで色々と記事を見ながら、実装していったのですが、
行き詰った所がたくさんあったので、そのあたりもやっていきます。
使用するもの
今回使用する主な物は
- Raspberry Pi 3
- Nodejs
- Avahi
- Homebridge
- Homebridge-cmd
- Homebridge-Irkit
です
では早速、はじめて行きましょう。
Raspiを最新のバージョンにアップデートする。
ラズパイのターミナル画面を開き、以下のコマンドを入力します。
$ sudo apt-get update $ sudo apt-get upgrade
少し時間がかかるかもしれませんが、ラズパイが最新のバージョンにアップデートされます。
何か表示されたらキーボードのYボタンを押してエンターで実行してあげてください。
ここで一度、ラズパイを再起動します。
Nodejsインストール
次にNodejsをいれていきます。
以下のコマンドを入力してください。
$ wget https://nodejs.org/dist/v6.2.2/node-v6.2.2-linux-armv6l.tar.gz $ tar -xvf node-v6.2.2-linux-armv6l.tar.gz $ cd node-v6.2.2-linux-armv6l $ sudo cp -R * /usr/local/ $ cd .. $ node -v v6.2.2
node -v で現在ラズパイにインストールされている
nodejsのバージョンが表示されると思います。
今回、バージョンは6.2.2を使用していますが、
バージョンを7系でインストールすると、
後にインストールするhomebridgeがうまく起動されず、
can't find module......というエラーで先に進めなかった。
調べて見たところ、nodejsは奇数バージョンは最新であるが
不安定、偶数バージョンは安定バージョンらしい。。。
とりあえず7系ではHomebridgeが起動できなかったので
6系をインポートしてやる。(2017/1/14現在)
Avahiインストール
次にavahiをインストール。
以下のコマンドを実行
$ sudo apt-get install libavahi-compat-libdnssd-dev
Homebridgeのインストール
最後に、Homebridgeをインストールする。
同様に以下のコマンドを実行
$ sudo npm install -g homebridge --unsafe-perm
これでhomebridgeをインストールが完了。
うまく動いているか確認するために
$ homebridge
で実行してみる。
warrningが6つ程でるが、公式をみても無視してくれとのことなので問題ないとおもいます。
Homebridge-cmd,Homebridge-irkit
こちらはhomebridgeでon_cmdなどを利用するためのプラグイン
以下のコマンドを入力。
$ sudo npm install -g homebridge-irkit $ sudo npm install -g homebridge-cmd
ここまで実行すると、IPhoneのHomeアプリにHomebridgeという名前で認識されるはずです。
いったんここでHomebridgeとiphoneをペアリングしてあげましょう。
$ homebridge
を入力してiphoneでhomeアプリを開きます。
おそらくデフォルトで入ってると思いますが、
消してしまった人はもう一度取り直しましょう!!
アクセサリーにhomeridgeが追加されるはずです。
config.jsonの作成
使用するアクセサリーの情報をこのjsonファイルに記述して言ってあげましょう。
このjsonファイルはディレクトリが指定されており
/home/pi/.homebridge以下にいれてあげる必要があります。
$ cd /home/pi/.homebdige
$ nano config.json
でnano エディタを開き、以下のサンプルコードのように記述して上げてください。
{ "bridge": { "name": "Homebridge", "username": "AA:BB:CC:DD:EE:FF", "port": 51826, "pin": "031-45-154" }, "accessories": [ { "accessory": "CMD", "name": "LED", "on_cmd": "/usr/bin/gpio -g mode 4 out;/usr/bin/gpio -g write 4 1", "off_cmd": "/usr/bin/gpio -g mode 4 out;/usr/bin/gpio -g write 4 0" } ] }
bridgeのところの設定はどうやらなんでもいいみたいです。
usernameはmacaddress形式にすることだけ注意すればオッケーです(大文字)
これで準備完了。
$ homebridge
を入力してiphoneを見てみるとledというアクセサリが追加されているのを確認してください。
エラーまとめ
Homebridgeが起動できない
最初に試した時はエラーでhonebridgeが起動できませんでした。
Can't find module......
と表示され、調べるとどうやらnodejs側の
エラーだったので、バージョンを7系から
6系におとして、実行してみた所無事解決。
ウェブで検索してみても、同様のエラーで
困ってる人が何人かいました。