ラズパイ

【Homebridge】NatureRemoをHomeKit対応させる方法

更新日:

どうも、CHASUKEです。

これまで、スマートリモコンIRKitをHomebridgeでHomeKit対応し、Appleホームアプリから家電操作をしてました。だが、どうも最近調子が悪い。ということで、後継機「Nature Remo」に世代交代させました。

その結果、高性能なNature Remoのおかげで、Appleホームアプリからサクサクと家電操作できるように♪

avatar

CHASUKE

IRKitさん今までありがとう!

 

今回、せっかくの機会だったので、初期設定済みのラズパイにHomebridgeサーバを設定し、Appleホームアプリから家電操作するまでの手順をメモることにしました。

Nature RemoやNature Remo miniをお使いで、AppleホームアプリやSiriから家電操作したい人は、ぜひ参考にしてみてください。

それでは、やっていきましょう!!

avatar

CHASUKE

もう使わない日は無いくらいに使ってます

Homebridgeとは?

Homebridge(ホームブリッジ)とは、iOS HomeKitAPIをエミュレートし、ホームネット上で実行できるNode.jsサーバーのこと

Nature Remoがあれば赤外線リモコンで操作できる家電に対し、Remo専用アプリやAIスピーカーから操作することが可能です。しかし、HomeKitには非対応のため、Apple標準スマートホームアプリには追加できません。

そこで活躍するのが『Homebridge

ラズパイ(自前PC)にHomebridge用のサーバーを立ち上げることで、あたかもHomeKit対応したかのように振る舞えるのだー!!

必要なもの

iOS端末(ホームアプリ)

今回の目的は、Appleホームアプリで利用するためなので、当たり前だがiOS端末は必要。僕は、iPhone7を使って操作していきます♪

 

ラズベリーパイ一式

僕は、ラズベリーパイ3Bに最新OS「RASPBIAN STRETCH WITH DESKTOP」をインストールして利用した。ラズパイ本体の他にも、SDカードや電源ケーブルなど付属品が必要となるので、これから用意するならスターターキット(※購入記事こちら)がおすすめ。

ただし、今なら処理性能が向上した最新モデル「ラズベリーパイ3B+」のスターターキットがいいかも。

▼検証していませんが、ラズパイZEROでもできると思います。

https://chasuke.com/pizerostarterkit/

 

Nature RemoもしくはMiniモデル

今回「Nature Remo」をHomeKit対応させてみましたが、「Nature Remo mini」でも同様の手法でHomeKit対応できます。

これから購入するならコンパクトで低価格なNature Remo miniがおすすめ。

それぞれの違いは以下のページを参考に。

https://chasuke.com/remomini/

必要ライブラリのインストール作業

ターミナルからコマンド入力して必要ライブラリを、初期設定済みのラズベリーパイにインストールしていきます!!

 

事前準備

設定していく前に、パッケージの最新化をしておきましょう。

$ sudo apt-get update
$ sudo apt-get upgrade

 

Node.jsのインストール

Homebridgeは、Node.jsサーバなので必要。

偶数が安定バージョンなので、8系をインストールした。

$ curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
$ sudo apt install -y nodejs

 

実施後は、バージョン確認コマンドでインストールされているか確認する。

$ nodejs -v
v8.11.3
$ npm -v
5.6.0

 

Avahiのインストール

ラズパイ(Homebridge)から話し相手(Nature Remo)を見つけるために必要。

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

 

Homebridgeのインストール

親玉であるHomebridgeをインストールする。

$ sudo npm install -g --unsafe-perm homebridge

 

正常にインストールできたら、下記コマンドでサーバを起動させ、QRコードやHomeKit設定コードがターミナル上に表示されることを確認しましょう。

$ homebridge

これが表示できていれば、成功です。以降設定が続くので、とりあえず「cntrol + c」でサーバ停止しておきましょう。

 

Homebridgeプラグインをインストール

親玉にプラグインを追加する形で、Nature Remoから操作できるようにします。

Nature Remoを利用するためのHomebridgeプラグインは「homebridge-nremo」を利用することにしました。連続実行など細かな赤外線送信も設定できる。

$ sudo npm install -g homebridge-nremo

 

上記の他にも、多くのプラグインが用意されているので探してみると面白い。

僕の場合、Netatmo情報取得用プラグインやラズパイで任意なコマンドを実行できるプラグインをインストールしました。この辺りはお好みで。

$ sudo npm install -g homebridge-netatmo
$ sudo npm install -g homebridge-cmd

設定ファイルを編集

必要なライブラリのインストールが全て完了すると、ディレクトリ「/home/pi/.homebridge」が作成されているはず。

このディレクトリ配下に設定ファイル「config.json」を作成することで、Nature RemoのHomeKit対応は完了します。

 

config.jsonの編集

作成イメージはこんな感じです。

{
    "bridge": {
        "name": "Homebridge",
        "username": "XX:XX:XX:XX:XX:XX",
        "port": 51826,
        "pin": "031-45-154"
    },

    "description": "Nature Remo Control",

    "accessories": [
        {
            "name": "テレビの電源",
            "accessory": "NatureRemo",
            "host": [NatureRemoのIPアドレス],
            "path": "/messages",
            "delayBefore": 0,
            "delayAfter": 500,
            "timeout": 1000,
            "retry_interval": 500,
            "retry": 3,
            "s_on":
            {"format":"us","freq":40,"data":[2346,643,...]},
            "s_off":
            {"format":"us","freq":40,"data":[2346,643,...]},
            "command_order": [
                { "on": ["s_on"] },
                { "off": ["s_off"] }
            ]
        }
    ]
}

連続実行は、command_orderに複数設定することで使えるようになる。例えば、電源ON→電源OFF→電源ONという連続送信をしたいなら以下のように記述する。赤外線情報は利用する分だけ積むことが可能。

▼こんな感じ

{ "on": ["s_on", "s_off", "s_on"] }

 

▼Nature Remoアクセサリの各設定項目の説明は以下の通り

delayBeforeコマンド送信前に指定時間待機
delayAftercommand_orderに複数の赤外線を
指定した際の連続実行間隔
retryリクエストが失敗時の再試行回数
retry_intervalリクエストが失敗時の再試行までの時間
timeoutリクエストのタイムアウト時間

設定ファイルの編集で重要なのが、Nature Remoを探すための「host」と、そこから送信される赤外線情報「s_on、s_off」である。

この2つの設定方法を次で説明する。

 

hostの設定方法

Nature Remoの公式HPにある「Nature RemoのIPアドレスを確認したい」を参照すると取得方法が記載されている。

ラズパイではなく、同ネットワークに接続したMACパソコンから以下のとおりコマンドを叩いて、「Remo-xxxxx.local」を特定することができた。

$ dns-sd -B _remo._tcp
$ dns-sd -G v4 Remo-XXXXXX.local

上記で取得したホスト名を、設定ファイルに編集する。

 

赤外線情報の取得方法

こちらは、Nature RemoのローカルAPIを利用して赤外線情報を取得する。

Nature Remo本体に向けて、リモコンボタンを押すと、表面が青色点滅する。その状態で以下のAPIを実行すると、直前に受け取った赤外線情報を返してくれる。

$ /usr/bin/curl -i "http://Remo-xxxxxx.local/messages" -H "X-Requested-With: curl"
HTTP/1.0 200 OK
Server: Remo/1.0.62-xxxxxxxx
Content-Type: application/json

{"format":"us","freq":40,"data":[2347,659,....]}

上記で取得した値を、設定ファイルに編集する。

こちらのコマンドは、最初、エラーとなったり、何も返って来なかったり不安定だったが、何度か試すと使えるようになった。

Appleホームアプリに登録する

最後の仕上げです。

これまで、設定してきたHomebridgeサーバを再度起動させます。設定ファイルが読み込まれ、エラーが表示されずに、QRコードやHomeKit設定コードが表示されれば、成功です。

停止するとホームから利用できなくなるので、常時起動させておく必要がある

 

▼Appleホームアプリからアクセサリを追加。

表示されているQRコードをカメラで読み込ませればOKです。

 

▼これで追加され、設定ファイルに記載した分のアクセサリを登録していきます。

僕は16個分のアクセサリが作られました。

もし、「既に登録済みアクセサリ」みたいなエラーになったら、「/home/pi/.homebridge」にある「accessories」と「persist」のディレクトリの中身を削除して再度起動してやれば上手くいくはずです。

 

Appleホームアプリから家電操作ができるようになった♪

エアコンならこっちがおすすめ!

これで、Nature Remoの赤外線を1つずつホームアプリから操作できるようになった。

しかし、エアコンに関して言えば、もっと便利に利用できるHomebridgeプラグインが存在しました。それが「homebridge-nature-remo-aircon」です。

 

▼使い方はこちらに記事にしました。

https://chasuke.com/homekit_aircon/

 

これを使えば、こんな感じでスライドで温度変更や冷房/暖房の切り替えが自在にできます。とても使いやすいです。

avatar

CHASUKE

エアコンを暖房23℃にして」これでSiriが操作してくれますよ♪

最後に

IRKitのHomebridge設定を、NatureRemoの設定に載せ替えてみました。

Nature Remoに時間を空けてアクセスするとタイムアウトになってしまうのだが、今回利用したプラグインからタイムアウト時間やリトライ処理を設定できたため、初回は少し時間がかかるものの、問題なくホームアプリから操作可能になった!!

▼Nature Remo

▼Nature Remo mini

それでは良いスマートライフを♪

Amazonお得に買い物

Amazon.co.jpで買い物するならギフト券を現金チャージするのがお得です。チャージごとに最大2.5%分のAmazonポイントがもらえます。また、5000円チャージで1000円分ポイント還元キャンペーンも実施中!!

詳しくはコチラ

  • この記事を書いた人
CHASUKE

CHASUKE

某IT企業でエンジニアをしているCHASUKEです。 当ブログでは生活を便利にするガジェットやサービスなどライフスタイルに関わる様々な情報をお届けします。レビュー依頼も受け付けています。「お問い合わせ」より気軽にご相談ください。

Copyright© CHASUKE.com , 2019 All Rights Reserved Powered by AFFINGER5.