コモノポリタン

コモノ、デジモノが好きなKomonopolitan住民 (はてなダイアリーからの引っ越しです)

【Home Assistant(Hass.io)でホームオートメーション】汎用赤外線リモコン

ついに汎用赤外線リモコンの回!!

 昨年末からずっとほったらかしていたネタ(正確には最初に設定したのは、もう二年近く前…)ですが、ついに記事にすることに。

この記事の前提条件
Home Assistant 0.111.4
HassOS 4.10
Server Raspberry Pi 3B+

1. はじめに

 ホームオートメーションで出力に相当する機能をつくるのは、なかなか難しい。
 最初からネット経由やアプリ経由で操作できる家電もTVとかエアコンとか段々と増えてきてはいます。しかし家にはすでに多くの家電が存在し、「スマート化」するためだけに家の家電を買い替えるのは我が家の大蔵大臣(誰だ?)が許してはくれません。
 しかし幸いなことに大半の家電には「リモコン」というものがついていて、またその大半は「赤外線リモコン」なのです。つまり、リモコンの赤外線信号を記録して、送信することができれば家電を操作する(例えば、シーリングライトをオンにする、とか)ことができるのです。
 その赤外線を記録し・再生するのが「スマートリモコン」です。日本で帰る製品も最近はいろいろ出ています。Nature Remo mini (Nature社)、eRemote mini(LinkJapan社)、スマートリモコン(エレコム社)、スマート家電リモコン(ラトックシステム社)などのあり、専用のスマホアプリもあり、プリセット(事前に学習済みのリモコン)も充実しているというメリットあります。おおよそ4,000~8,000円ぐらいでしょうか。
 しかし私にとっては結局のところHome Assistantから操作できれば良いので、それほど立派なものでなくても良いのです。LinkJapan社のeRemote miniのOEM元のBroadLink社製品RM mini3であれば、1,500円前後で手に入ります*1*2f:id:maky_Ba:20200621224452j:plain:w300
 見た目から「黒豆(Black Bean)」と呼ばれています。これを使えるようにしてゆきます。

2. 黒豆(BroadLink RM mini 3)の初期設定

2.1. Broadlink社製アプリ(e-Control)をインストール

  1. スマホ/タブレットのアプリ検索(AndroidならGoogle Play)でBroadlinkで検索するとBroadlink - Universal Remotee-Controle Smart Homeなどいろいろでてきます。
  2. Home Assistantで使うにはBroadlinkのクラウドサービスに登録してはダメという話があるので、ログインしなくても良いe-Controlを使用しました。
  3. e-Controlをインストールしますが、もう色々権限を求められるので、ものすごく気持ち悪いですが、ぐっとがまん。Privacy Termsも我慢してContinueしてインストール完了。

2.2. WiFi接続設定

  1. アプリを立ち上げて、黒豆にWiFiを設定を開始します。
  2. ログイン画面が出て「さあログインアカウントを作ろう」的な圧力を感じますが、右上の「Skip」でスキップします(左画面)。そして出てきたTop画面の右上の「+」で「デバイス+」を選びます(右画面)。 f:id:maky_Ba:20200621225312p:plain:w200:left f:id:maky_Ba:20200621225425p:plain:w200

  3. 黒豆を接続したいWiFiSSIDが表示されている(=このスマホタブレットがそのWiFiに接続している)ことを確認して、パスワード欄にパスワードをセット。
    f:id:maky_Ba:20200621225719p:plain:w200

  4. 黒豆のLEDが青色で素早い点滅(1秒に2、3回)を繰り返していることを確認。初回でないとか、もしそうなっていないなら、MicroUSBの上にあるReset Buttonを細い針金のようなもので6秒以上押して、青色素早い点滅モード(設定モード)にする。デバイス+の画面の下の「SET」ボタンをクリック
  5. うまくいくと「このデバイスは日本でつかえねーよ」的なメッセージが表示され、黒豆のLEDの点滅が止まる。
    f:id:maky_Ba:20200621230859p:plain:w200
    (これが「設定成功」の画面!)
     これで黒豆が指定したSSIDWiFiに接続されます。一行目にWiFiMACアドレスが表示されるのでメモしておきましょう。
     何があってもこれ以上進めないので、海外で騒がれている「間違ってもBroadLinkのクラウドサービスに登録しないこと(Do not set up a cloud (not now, not ever). )」は自動的に回避されるのです。Thank you! LinkJapan.

2.3. 固定IPの指定

 他のデバイスと同様に、Fingを使って割り当てられてたIPを調べます。さきほどメモしたMACアドレスが使われているIPを探します。Hangzhou Broadlink TechnologyHangzhou Broadlink Electronics Technologyといった製造名のはずです。これを固定IP化しておきます。

3. Home Assistantでの設定

3.1. 赤外線リモコン学習の準備

 Configuration.yamlファイルに下記設定を記載し、左メニューの「設定」→「サーバーコントロール」→「設定の検証」でConfiguration.yamlの記載を間違えてないか確認。大丈夫なら下の方の「サーバーの管理:再起動」で再起動する。

(前略)

#*****************************************************************************
# Switch
#*****************************************************************************
switch:
  # Broadlink RM mini 3 (#5)
  - platform: broadlink
    host: 192.168.XX.XX           # 先ほど固定化したIP
    mac: 'XX:XX:XX:XX:XX:XX'      # 先ほどメモったWiFiのMACアドレス
    timeout: 30

(後略)

3.2. 学習

  1. 「開発者ツール」→「サービス」タブで、サービスのドロップダウンリストからbroadlink.learnを選択。Service Data(YAMML optional)にhost: 192.168.XX.XXと黒豆のIPを指定。 f:id:maky_Ba:20200622005402j:plain:w400
  2. 「サービスを呼ぶ」ボタンをクリック。黒豆のLEDが白く点灯。
  3. 20秒以内にリモコンを黒豆に向けて、学習したいボタン(ここでは「消灯」)を押す。
  4. うまくいけば黒豆のLEDが消える。ちなみになかなかうまくいかない。うまくいけば通知が来て、そこに学習した赤外線コードが表示される。 f:id:maky_Ba:20200622010321j:plain:w200
    (これは日立のシーリングライトのリモコンです。ううむ長いな。Panasonicのはもっと短かったのに。)
    コードを選択して、下記のcommand off: ''のクオーテーション間にコピー。最後に==を付け加える。
(前略)

#*****************************************************************************
# Switch
#*****************************************************************************
switch:
  # Broadlink RM mini 3 (#5)
  - platform: broadlink
    host: 192.168.XX.XX 
    mac: 'XX:XX:XX:XX:XX:XX'
    timeout: 30
    switches:
      hitachi_ceiling_light_ch1:
        friendly_name: "Study Room Light"
        command_off: 'JgCwBA8NDygQDBAoDw0PDQ8NDw0PDQ8MEAwQDQ8oECcQKA8oECcQKBAnECgQJxAoDw4ODQ8NDw0PDQ8NDw0PDQ8pDigQKBAoDikPKQ8NDikPDQ8NDw0PDQ8oDykPKA8NDygPKQ8oDykPDQ4ODgAD7G82DikPDQ8NDw0PDQ8NDw0PDQ8NDg4ODg4ODikODg4ODg4ODg4ODg4PDQ8oDygPDQ8ODwwQDBAMDw0PKQ8MECgPDQ8oECgPKBAoDw0PKA8NDykPDBAMEAwQDBAMEAwQDA8NECgPKA8oECgPKBAnECgPKQ8oECcQDQ8NDw0PDQ8NDw0PDQ8NDygPKA8oECgPKQ4pDw0PKQ4NDw0PDQ8NDykPKA8pDw0OKQ8oDykPKA8NDw0PAAPrbzYPKQ8NDw0PDBAMEAwPDQ8NDw0ODg4ODg4OKQ8NDg4ODg8NDw0PDQ8NDykPKA8NDw0PDQ8NDw0PDQ8oEAwQKA8NDygQKA8oDygQDBAoDw0PKBAMEAwQDBAMEAwPDQ8NDw0QJxAoDygQJxAoDygQKBAnECgPKBANDw0PDQ4ODg4ODg8NDg4OKQ8oECcQKA8oDykPDQ8pDg0PDQ8NDw0PKQ4pDykODg4pDygPKQ8oDw0PDQ8AA+twNQ8oEAwQDBAMEAwPDQ8NDw0PDQ8NDg4ODg4pDg4ODg4ODg4ODg4ODw0PKA8pDw0PDQ8NDw0PDQ8NDygPDQ8oEAwQKA8oECgPKA8NDygQDBAoDw0PDQ8NDw0PDQ8MEAwQDQ8oECcQKA8oECgPKBAnECgQJxAoDw4ODg4NDw0PDQ8ODg0PDQ8pDycQKA8pDygPKQ8NDygPDQ8NDw0PDQ8oDykPKA8NDykPKA8oDykPDQ8NDwAD7G42DygQDBAMEAwPDQ8NDw0PDQ8NDg4ODg4ODikODg4ODg4ODg4ODg4PDQ8oDykPDQ8NDw0PDQ8NDw0PKA8NDygQDBAoDygQKA8oEAwQJxAMECgQDBAMDw0PDQ8NDw0PDQ8NDygQKA8oECcQKA8oECgPKBAoECcRDA8NDw0PDQ8NDg4PDQ8NDikPKA8oECgPKQ4pDw0PKQ4NDw0PDQ8NDykPKA8pDw0OKQ8oDykPKA8NDw0PAAPsbzUPKQ8NDw0PDQ8NDw0PDQ8NDw0ODg4ODg4OKQ4ODg4ODg4ODg4PDQ8NDygPKBAMEA0PDQ8MEAwQDBAoDw0PKA8NECgPKA8oECgPDQ8oEAwQKA8NDw0PDQ8NDwwQDBAMEA0PKBAnEScQJxAnECgQJxEnECgQJxANDg4ODQ8NDw0PDQ8NDw0PKQ8nEScQKA8oECgQDBIlEAwPDQ8NDw0PKBAoECcPDQ8pDygPKQ8oEAwPDQ8AA+xvNQ8pDw0PDQ8NDw0PDBAMEA0PDQ8MDw0PDQ8pDg4PDQ8NDw0PDQ8NDwwQKA8oEAwPDRAMEAwQDBAMDykPDBAoDw0QJxAoDygQKA8NDygQDBAoEAwPDQ8MEQsQDBAMEAwRCxEnECcRJxAnECcRJxAnEScQJxEnEAwQDA8NDw0PDRAMDw0PDQ8pDygPKBAoDygPKQ8NDygPDQ8NDw0PDQ8oDykQJxAMDykPKA8oDykPDQ8NDwANBQAAAAAAAAAA=='

(後略)

 ちなみにswitchesの次の行のentity名(ここではhitachi_ceiling_light_ch1)は、大文字やスペースは不可です。 同じようにして、「全灯」のボタンも学習しましょう。

3.3. UI設定

 左メニューの「状態」をクリックし状態画面にする。次に画面の右端の3点メニューボタン(…を縦にしたやつ)を押して「Configure UI」を選択します。UI編集画面の右下のオレンジ色の+ボタンを押します。
f:id:maky_Ba:20200622134014j:plain:w400
 いろいろありますが、いつもエンティティパネルを使っているので、今回はボタンを使ってみましょう。
f:id:maky_Ba:20210804011404j:plain:w400
 デフォルトでswitchが設定されていることもあります。そうでなくてもエンティティを選ぶだけでOKです。これで右側にプレビュー表示されているの雷マークのパネルが状態画面に表示され、これを押すと天井のライトがOn/Offできます。

4. おわりに

 これでどんどん学習させて、Home Assistantからリモコン付き家電を操作できるように出来ますね。
 ちなみに学習は周囲の光(LEDが沢山あって、赤外寄りの光もバンバン発光しているのではないだろうか)に影響されてうまくいかいないことが多い気がするので、私は左手でRM mini3の上部を囲んでそこにリモコンを差し込んで学習させています。これでちょっとは認識率が上がる気がする… f:id:maky_Ba:20200623214426j:plain:w300

 汎用赤外線リモコンとクリスマスツリーで使ったIFTTTを組み合わせると「ねぇぐーぐる、ベッドルームの電気を消して」という寒い日には最高の機能が実現されます。が、今は初夏…。そんなこと出来てもねぇ。

 次はリモコンのフォーマットを解析してコードを作る、というのに取り組みましょう。乱れのない良いコードを作れる、リモコンにボタンが無い機能をのコードが使える、とかメリットがあります。そして最大のメリットは、「エアコン」のコードを効率的につくれる(可能性がある)、というあたりでしょうか。夏に向けて、さて頑張りましょう。

maky-ba.hatenablog.com

*1:技適の問題はありますが…。個人の家での使用なのでまあ、なんとか…。

*2:Amazon.co.jpでも買えたりします。また、このご時世なので中国からの荷は遅れそうですが、LightInTheBoxとかGeekBuyingやAliExpressなども結構安く手に入ります、新型コロナ前からけっこう時間かかってましたが