1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

HomebridgeをDockerで導入してRM mini3を動かすまで

Last updated at Posted at 2020-04-20

#HomebridgeをDockerで導入してRM mini3を動かすまで

はじめに

RM mini3を使ってiosのhomeアプリからhomebridge経由で家電を操作する方法について備忘録としてまとめました。同様の記事は山ほどあるのですが、Dockerを使った環境構築の記事がなく、またRM mini3の最初の設定関連でハマる箇所が多かったので記事にしました。

##必要なもの

  • RM mini3

    Broadlink社が製造するスマートリモコンです。国内ではLink Japanがe Remote miniという名前で販売していますが、高いです(6000円くらい)。今回はgearbestで17ドルくらいで買いました。
  • PC 

    raspberry piを使う人が多いです。今回は普通のデスクトップpcでosはubuntu18.04です。
  • iPhoneもしくはiPad

##RM mini3の設定

専用のアプリからRM mini3の設定をすることになります。
国内向けのBroadlink e-controlというアプリは使うことができず、代わりのアプリを使うことになります。以前はIntelligent Home Centerというアプリをダウンロードする必要があったのですが、現在はIntelligent Home Center for EUが使えるので、これをダウンロードしました。
https://apps.apple.com/jp/app/intelligent-home-center-for-eu/id1384362587

ihcをダウンロードしたらwifiを2.4GHzのものに接続します。RM mini3は5Ghzのwifiに対応していないので、注意してください。

アプリを起動したらアカウントを適当に作成し、ihcのホーム画面からデバイスを追加を選択します。
C91EBBC0-3554-450F-BA6E-21803942610E.jpeg

デバイスを追加の画面でRM mini3を選択します。
07E64432-5214-4FF6-87F9-5944AC7A24F9.jpeg

指示に従ってwifiのパスワードを入力して設定完了です。
AAC23EDC-F257-49E5-B1EA-626D8C59D605.jpeg

上手くいかない場合はRM mini3のデバイスをリセットする必要がある場合があります。その場合は後ろのリセットボタンを5秒以上押してください。(ちゃんと5秒以上長押しするとランプの点滅の仕方が変わります。)
4C0800FC-C9CA-49E0-8F8D-AD1CA499305B.jpeg

これで設定完了です。このままihcアプリを使って赤外線リモコンを学習させていくこともできます。今回はhomeアプリからRM mini3を動かしたいので次に進みます。

Homebridgeの設定

Homebridgeの設定は
https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Docker 
を参考にしました。
Dockerを使って環境構築します。Dockerが入ってない人は↓
https://docs.docker.com/
Dockerを入れたら,Docker Composeが入っているか確認します。

$ docker-compose --version

入ってなかったので公式から入れました。
https://docs.docker.com/compose/install/

Dockerの準備ができたらdocker-compose.ymlという名前のファイルを作ります。中身は次の内容にします。

docker-compose.yml
version: '2'
services:
  homebridge:
    image: oznu/homebridge:latest
    container_name: homebridge
    restart: always
    network_mode: host
    environment:
      - TZ=Australia/Sydney
      - PGID=1000
      - PUID=1000
      - HOMEBRIDGE_CONFIG_UI=1
      - HOMEBRIDGE_CONFIG_UI_PORT=8080
    volumes:
      - ./homebridge:/homebridge

上のファイルがあるディレクトリでコンテナを立ち上げます。

$ docker-compose up -d

次にRM mini3用のプラグインを用意します。今回使用したのは
https://github.com/lprhodes/homebridge-broadlink-rm
です。プラグインをインストールします。

$ docker exec homebridge npm install homebridge-broadlink-rm

このとき、-gオプションはつけなくて良いです。

次にhomebridgeにあるconfig.jsonを書き換えます。書き方は次のような感じです。

config.json
{
 "bridge":{
   "name":"Homebridge",
   "username":"XX:XX:XX:XX:XX:XX",
   "port":XXXXX,
   "pin":"XXX-XX-XXX"
 },
 "description":"Homebridge",
 "accessories":[

 ],
 "platforms":[
   {
     "hosts": [
       {
         "address": "XXX.XXX.XX.XX",
         "mac": "XX:XX:XX:XX:XX:XX",
         "isRFSupported": true
       }
     ],
     "platform":"BroadlinkRM",
     "name":"Broadlink RM",
     "hideScanFrequencyButton": false,
     "hideLearnButton": false,
     "hideWelcomeMessage": false,
     "accessories":[
       {
         "name":"Auto-off Switch",
         "type":"switch",
         "enableAutoOff": true,
         "onDuration": 5,
         "data":{
           "on":"2600500000012...",
           "off":"2600500000012..."
         }
       },
       {
         "name":"TV On/Off",
         "type":"switch",
         "data":{
           "on":"2600500000012...",
           "off":"2600500000012..."
         }
       },
       {
         "name":"Channel Up",
         "type":"switch",     
         "data":"2600580000012...",
         "enableAutoOff": true,
         "onDuration": 1
       },
       {
         "name":"Channel Down",
         "type":"switch",
         "enableAutoOff": true,
         "onDuration": 1,
         "data":"2600580000012a..."
       }
      ]
    }
  ]
}

一番最初にある"bridge"のvalueはデフォルトのままで良いです。

"hosts"は公式ではRM miniの一台使用なら必要ないとされているので書かなくても良いですが、上手くいかないことが多いので記述することをオススメします。"address"はRM mini3のIPアドレス、"mac"はRM mini3のMACアドレスです。IPアドレスの確認はwifiルーターの設定画面からの確認が最も簡単だと思います。MACアドレスの確認方法はihcアプリから行うことができ、
デバイス→RM mini3→右上の…→device infoでMACアドレスを確認することができます。様々なやり方があるみたいなので参考までに載せておきます。
https://qiita.com/canadie/items/3110a0f0ff4f4749e039

config.jsonを編集し終えたらHomebridgeを再起動してください

$ docker restart homebridge

config.jsonが更新されていれば成功です。

成功しているかの確認のためにログを確認します。

$ docker logs -f homebridge

このとき次のようなエラーが出てきたら、下を試してみてください。

Error: Cannot find module 'hap-nodejs'
Error: The requested platform 'BroadlinkRM' was not registered by any plugin.

$ docker exec homebridge npm install hap-nodejs

##homeアプリとの連携
iPhone(もしくはiPad)にhomeアプリをダウンロードします。
Homebridge側ではペアリング用のコードを表示します。

$ docker logs -f homebridge

homeアプリを起動し、表示されたQRコード、もしくはコードを入力するとペアリングできます。
アプリの表示画面にlearnというアイコンがあり、これをタップすると赤外線リモコンの学習モードになります。学習モード中はRM mini3のライトが白く光るので、この間にリモコンのスイッチをRM mini3に向けて押してください。
学習できるとHomebridge側では赤外線のHex codeが表示されます。

[4/19/2020, 11:23:34 PM] [Broadlink RM] [RESULT] Learn Code (learned hex code: 2600500000012a91151015351536151015351511151015111535153515351511153515111535151015111510151115351535151115101511143615351535151115101536143615351500052200012a4815000d050000000000000000)

このcodeを対応するconfig.jsonの"data"の値に入れて、準備完了です。
config.jsonを更新したら、homebridgeを再起動します。

$ docker restart homebridge

これで使えるようになりました。

##おわりに
config.jsonファイルを書き換えればスイッチの数や種類を増やしたり、細かい設定を付け加えることができます。詳細については公式を参照してください。
https://lprhodes.github.io/slate/#advanced-setup

設定はHomebridge Config UI Xから確認することもできます。http://<ip of machine>:8080で設定画面に入れます。プラグインの確認には便利なので見てみてください。
https://github.com/oznu/homebridge-config-ui-x

あとこの手法の問題点なんですが、wifiが再接続されるとbridgeの情報が更新されて上手くいかないことがあります。その場合は最初からセットアップするしかないです。別の良い方法があったら教えていただけると嬉しいです。m(_ _)m

1
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?