【Homebridge】RM mini3/eRemote miniを使って、テレビもHomekitから操作する

赤外線リモコン
スポンサーリンク

Raspberry piを手に入れてからというもの、家の中を何でもかんでもhomekitに繋げたい衝動に狩られています。今回は、こいつです。

こいつは要は赤外線リモコンですね。元々はAmazon Alexaには純正対応しているものなんですが、Apple homekitには対応してないんですよね。homekitに繋げれば、home.appからのGUI操作も出来るし、勿論Siriから操作も出来るようになります。

ただ他のモジュールと比べて、赤外線を学習させないとならないので、ちょっと面倒です。ただテレビとかちょっとリモコンを探すのが、面倒とか、そういう一手間は省けるようになるかもなと。

こいつに関しては、ちょっと調べて貰えればわかるんですが、海外のウェブサイトから直接買ったほうがかなり安いんですよね。でも安いのには別の問題があって、純正のアプリからの操作が一切できないという多少ハードル高いものになってしまっていて・・・結構皆さん敬遠してるみたいです。

海外で漸く一般普及レベルの低価格赤外線センサーがきたと、まさに“Game Changer”とまで言われて騒がれてたとか騒がれてないとか何ですが、理由は後述しますが、日本ではまだまだ市場に大きなインパクトは与えられませんでした。でも今回は私はhomekitにしか使わないし、純正のアプリからなんて操作しないので、こっちの黒豆君を使っています。

大まかな手順は以下。

  1. 黒豆をWiFiに接続する
  2. homebridge-broadlink-rmをインストールする
  3. config.jsonを編集する
  4. 赤外線をひたすら学習させる

2−3はいつも通りですね。1がちょっと癖があって、4も結構面倒です。

新製品スマート電球とNFCタグ専用20%OFFクーポン

Amazonクーポンコード:【AJZM3P3W】
割引率:20% OFF
有効期限:2021/10/19 ~ 2021/10/28
対象商品:SwitchBotスマート電球 、SwitchBot NFCタグ

Amazonクーポンコードの利用方法

システム構成

今回の構成です。いつも通りですね。RM miniがHomekitに対応してないので、homebridgeにブリッジしてもらい、iOSから操作するという。確かにhomekitに純正対応していたら、すぐに済む話かもしれないんですが、homebridgeを介すことで、柔軟な設計が出来ているとも言えるんじゃないかと。

インストール手順

早速インストールの手順を説明していきたいと思います。既にhomebridgeをインストール済みの方は、最初の2つの手順は飛ばして、WiFiの手順からみてください。

node と npmのインストール

早速インストールをして行きます。今回nodeはv10.15.0を使用していますが、homebridge-broadlink-rmの推奨versionは7.6.0以上になっているので、新しいものにしておけばとりあえずOKです。

#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.7.0

homebridgeのインストール

nodeが準備できたら、次はhomebridgeをインストールします。これは特にversionを指定せずにインストールしていますので、これを参考にした場合にはまたversionが変わっているかもしれません。

#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

黒豆をWiFiに接続する

色んなサイトでも書いてあるので、調べていた人は知っているかもしれないが、結論から言うと黒豆は日本で使うように作られていません

Androidであれば、頑張ってAPKをどっかからダウンロードして行けるのかもしれないですが、iPhoneだと海外Apple IDじゃないとアプリが動作しないように作られてるとか何とか。

但し、一応製造元のBroadlink社が作っているアプリを使うと、WiFiの設定まではできるようなので、そこまではアプリを使いましょう。 因みに実はアプリ自体はLink JapanとBroadlink共通らしく、端末の言語設定とiPhoneの場合はApple IDのLocationをみて、アプリの動作を制限してるとか何とか‥   アプリは同封のマニュアルに記載しているQRコードから読み取りましょう

次に黒豆にUSB電源を繋いで、近くでアプリを立ち上げると、アプリからすぐに接続候補のWiFi SSIDが表示されるので、SSIDを選択して、パスワードを入力してください。 因みにRM mini 3は2.4GHzしか対応していないみたいなので、5GHzを選んでも接続出来ないので気をつけてください

接続が完了すると、エラーも何も出ずに、そして何も表示されません。(一瞬MACが見えた気もしますが、見落としました)

因みに私はここで上手く行かずに、一度Factory Resetをかける必要がありましたので、もし上手く行かない場合は一度ピンか何かが背面のボタンを、正面のLEDが高速点滅するまで長押ししてください。

あとはちゃんと接続されているかMAC scanなどで確認すれば、MACアドレスも確認出来ますね。 因みにBroadlink RM miniのMACアドレスは”34:EA:34:XX:XX:XX”の形式になります。

homebridge-broadlink-rmをインストールする

これはもういつも通りな感じなので、コマンドだけ打てば済む感じです。

$ npm install -g homebridge-broadlink-rm

これだけなので特に難しいことはないですね。このモジュールのインストールの面倒はむしろここから

config.jsonを編集する

ここのやり方からがちょっと癖があって、何通りかやり方があるような感じで、かつ持っている機器によって要るものと要らないものが出てくるので、単純にこれ書けばOKと言う感じにならないんですよね。だからちょっと面倒。 基本のタグの定義は開発元の以下を参照しています。

https://lprhodes.github.io/slate/

細かくステップで書くより、最終版の私の環境のconfig.jsonを書いておきますね。

#bridge部分は共通のため、省略

 "hosts": [ 
 {
 "address": "192.168.XX.XX", # RM miniのIPアドレス
 "mac": "34:EA:34:XX:XX:XX", # RM miniのMACアドレス
 "isRFSupported": true
 }
 ],
 {
 "platform": "BroadlinkRM",
 "name": "Broadlink RM",
 "hideScanFrequencyButton": false, # 学習させ終わったらtrueする
 "hideLearnButton": false, # 学習させ終わったらtrueする
 "hideWelcomeMessage": true,
 "accessories": [
 {
 "name": "TV On/Off",
 "type": "switch",
 "data":{
 "on": "2600700051112a111512291215112a12151115122a111511161115121500034e51112a1116112a1115122912151116112a111512151116111500034f50122a111512291215112a111611151229121511161115121500034f50112a1116112a1115122a11151215112a1115121511161115000d050000000000000000",
 "off": "2600540050112a1215112a1116112a11151215112a111611151116111500034f5012291215112a1116112a11151215112a111611151215111600034f50112a1116112a1115122a11151215112a1115121511161115000d0500000000"
 }
 },
 {
 "name":"Volume Up",
 "type":"switch",
 "enableAutoOff": true,
 "onDuration": 2.5,
 "data": [
 {
 "data": "26005400511115122912151116112a11151215112a1116111512151115000364501116112a11151215112a1116111512291215111611151215000363511115112a12151115122a11151116112a1115121511161115000d0500000000",
 "sendCount": 3,
 "interval": 0.3
 }
 ]
 },
 {
 "name":"Volume Down",
 "type":"switch",
 "enableAutoOff": true,
 "onDuration": 2.5,
 "data": [
 {
 "data": "260054004e1328132814131313142714131413132813131413131413130003514e1427142714131313142714131413132813131413141313130003514f132813281313141314271413131314271413141313131413000d0500000000",
 "sendCount": 3,
 "interval": 0.3
 }
 ]
 },

今回は参考までにHEXキーも書いていますが、これは次の章で調べて書いていくものです。因みにSony TVであれば同じものが使えるかもしれないです。これが出来たらあとは、homebridgeを再起動させてエラーが出なければ、大丈夫です。出たら何か記述ミスってるので、直してください。vimだと構文エラーを強調表示してくれるので、便利ですよ。 あとはhostsの部分は基本的にはauto discoveryのため要らないらしいのですが、今回は念のため記載してあります。

赤外線をひたすら学習させる

はい、ではここからが肝です。 この状態だと実は何にも出来ません。単なる準備が出来た状態です。まー上のcofig.jsonは完成形ですが。LinkJapanや純正アプリだとプリセットとして既に主要メーカのIr コードが準備されてるのですが、アプリが使えない今回はそんなこと出来ません。なので、一つ一つ学習させてあげないとならないのです。 ここで使うのが”Learn”と言うボタン。 iOSのhome.appを開いてもらうと、LearnとScan RFというボタンがあると思います。それが見えるようになって要るなら以下の手順で進めます。

手順

  1. Scan RFボタンを押す
  2. RM miniに向かって何かボタンを押す
  3. homebridgeコマンドを押す(Logが見れる状態で)
  4. Learnボタンを押す
  5. RM miniに向かって学習させたいボタンを押す(今回はTV On/OffとVolume Up/Down)
  6. Log上にHEXキーが表示されることを確認する
  7. 確認したHEXキーをconfig.jsonに転記する
  8. homebridgeを再起動

因みにもしhomebridgeを起動して要るサーバでFirewallを設定しているならdisableにしておいてください。ダイナミックポートを使っているらしく、ポート規制がかけられないようなので、使う場合にはLAN内のセキュリティを担保した状態で使ってくださいfirewallが掛かってると以下のようなログになってしまいます。

[2018-9-19 22:11:11] [Broadlink RM] [ERROR] Learn Code (Couldn't learn code, device not found)
[2018-9-19 22:16:01] [Broadlink RM] [ERROR] Learn Code (Couldn't learn code, device not found)

あとはひたすらに4~7を繰り返します。一番最初にScan RFを押すのは、なんかリモコンの周波数を記憶させるとか何とか。でも私はやらなくても大丈夫でした。

最後に

ここまで終わればあとは、確認作業です。私の場合、上のにさらにチャンネルを追加しました。あとはhomekitを立ち上げてあげるとこんな感じになると思います。

RM miniをTVからいい感じの場所に設置してボタンをポチポチすればちゃんとTVがオンオフされると思います最後のラストワンマイルはアナログなんですが、スマホから操作できるってところがちょっと感動ですよね。 学習させると気をつけなきゃならないのでエアコンです。エアコンはTVと違って、一度に送信するデータが多いので、なかなか設定が難しいみたいです。今回は私はチャレンジしてませんが、そのうち調べてみたいと思います あとはもちろんSiriからもこんな感じで

操作できちゃいます。呼び方は”〜〜をオン/オフにして”になります。hueと違って、付けて〜とかあんまり柔軟性がないですよね。〜の部分はボタンの名前が参照されているので、私の場合は、TV on/offをテレビと名付けています。

あとはエアコンとか、ファンとか赤外線で操作できるものを何でもできるんですが、赤外線なんで、RM miniの設置位置に気を使わないとならないのと、現在の状態がわからない(ちゃんと赤外線が届いているか)ので、外出先から使うってレベルじゃないかと思っています。ただ家にいる時には、イチイチリモコン探さなくて済むんで結構便利かなと思っていますよ。

シーンカスタム例(NHKにして)

因みにですが、テレビのチャンネルを操作するときに、今の状態だと「チャンネル4をオンして」というように、Siriにいう必要がありますが、これを例えばチャンネル1であれば、「NHKにして」とか、チャンネル4なら、「日テレにして」とSiriに入力できるように設定することも可能です。

使う機能としては、Appleホームアプリのシーンの機能を使います。新規で追加を選択して、シーン名を「NHKにして」、アクセサリをチャンネル1をオンを選択します。

こんな感じで設定すれば、局名でチャンネル1をオンにすることも可能になっています。是非お試しあれ。

GoogleHomeに接続する方法

黒豆はHomekitだけじゃなく、Google homeに接続できるんですが、少し設定に癖があるので、こちらに設定方法を纏めました。

複数のRM mini3の設定方法

RM mini3を自宅に複数設置する場合の設定方法については、こちらにまとめていますので、こちらをどうぞ。

使用機器

お得にAmazonでお買い物!

Amazonでお買い物するならAmazonギフト券を現金でチャージするのがお得です。チャージごとに最大2.5%のポイントがつきます。(クレジットカードは対象外)

詳しくはコチラ

赤外線リモコンスマートホームRaspberry Pi(ラズパイ)Homekit
スポンサーリンク
スポンサーリンク
スポンサーリンク
\この記事が役に立ったらシェアしよう/
デジライン

Comments

  1. 雨〜 より:

    こんにちは。
    記事をたくさん参考させていただいてます。本当にお世話になってます。
    1階はなんとかスマート化に成功させたものの、2階も試そうと思い、もう一台のrm mini3 を購入しました。
    bridge部分はそのままで、Platformsの下にhostsを1階のmini3と2階のmini3を分けて入れましたが、なぜか新しく買った、2階のものしか反応せず、1階のものは全然反応しません。念のため、2階のmini3を1階に持ってきて繋げたら、また反応します。
    まとめると、1階と2階に分けて設置したが、もともと1階にあったのは反応なし(2階で持ってでもしない)、新しく設置した、2階のは2階でも1階でも全部反応する。
    複数のrm mini3 を各々動作する方法がお分かりでしたら、アドバイスお願いします。

    • TakaTK より:

      雨~さん

      コメントありがとうございます^^
      複数のRM miniの設定方法についてということですね!正直私も複数は持っていないので試してはいないのですが、以下のようなconfig.jsonであれば動くのではないかと思います。
      複数の場合にはスイッチ毎にRM miniを”host”(hostsではなく)で指定するやり方で設定するそうです。RM miniのIPがそれぞれ必要になるので、それぞれIPを固定しておくことも
      忘れずにやってください。

      “hosts”: [
      {
      “address”: “192.168.XX.01”, # RM mini #1のIPアドレス
      “mac”: “34:EA:34:XX:XX:XX”, # RM mini #1のMACアドレス
      “isRFSupported”: true
      },
      {
      “address”: “192.168.XX.02”, # RM mini #2のIPアドレス
      “mac”: “34:EA:34:XX:XX:XX”, # RM mini #2のMACアドレス
      “isRFSupported”: true
      }
      ],
      {
      “platform”: “BroadlinkRM”,
      “name”: “Broadlink RM”,
      “hideScanFrequencyButton”: false, # 学習させ終わったらtrueする
      “hideLearnButton”: false, # 学習させ終わったらtrueする
      “hideWelcomeMessage”: true,
      “accessories”: [
      {
      “name”: “Living TV On/Off”, #1階のTV
      “type”: “switch”,
      “host”: “192.168.XX.01”, # RM mini #1のIPアドレス
      “data”:{
      “on”: “__HEXCODE__”,
      “off”: “__HEXCODE__”
      }
      },
      {
      “name”: “2nd Room TV On/Off”, #2階のTV
      “type”: “switch”,
      “host”: “192.168.XX.02”, # RM mini #2のIPアドレス
      “data”:{
      “on”: “__HEXCODE__”,
      “off”: “__HEXCODE__”
      }
      }
      [
      }

      動作確認が出来たら、後日記事に追加しておきたいので、動作確認報告して頂けると嬉しいです!

      • 雨〜 より:

        TKさん
        お世話になってます。

        流石ですね。

        本当に助かりました。

        今、普通に2台が別々に動けます。
        一台はリビングでもう一台は2階に設置しましたが。普通に別々で作動します。

        改めてTKさんの知識で感心しました。

        僕は日本語、英語サイト、中国語…韓国語サイトまでもっぱら調べましたけど(言葉は別として)検索ワードが悪いせいか、全然答えがありませんでした。

        本当にここに質問して良かったです。

        ありがとうございます。

        正直、vpnの件でも質問がありましたが、一人で研究してどうしても無理の場合、その記事に質問させていただきます。

        ありがとうございます。

        よろしくお願いします。

        • TakaTK より:

          雨~さん

          報告コメありがとうございます^^
          無事に動作してよかったです!また色々記事を見てくれており嬉しいです!

          また気兼ねなく質問してください^^

  2. パパ より:

    記事を参考にさせて頂きました。
    自分がもともとNatureRemoをアプリで使用していましたがこの記事を見て2階用にもう1台設置しようと思いました。
    ついでに記事を参考にしてhomebridgeを構築して1階はNatureRemoで2階はRM mini3ではなく安さにつられてGangWangのRM-Pro2899円(安っ)ですが中身はRM Proのようでした。なんとかjson書き上げ成功して家中スマートホーム化出来ました。
    参考記事有り難うございました。

スポンサーリンク
こちらの記事も読まれています
スポンサーリンク

この記事を書いた人

Taka

シニアモバイルシステムコンサルタント。某大手日系SIerでエンジニアをやりながら、モバイルIT系ブロガーをやっております。独学でプログラミング勉強してWEBアプリ作ったりしながら、日々の生活の中で面白そうな情報を記事にしています。レビュー依頼などはお問合せからお願いします。

\フォローする/
タイトルとURLをコピーしました