ついに汎用赤外線リモコンの回!!
昨年末からずっとほったらかしていたネタ(正確には最初に設定したのは、もう二年近く前…)ですが、ついに記事にすることに。
この記事の前提条件 | |
---|---|
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*2。
見た目から「黒豆(Black Bean)」と呼ばれています。これを使えるようにしてゆきます。
2. 黒豆(BroadLink RM mini 3)の初期設定
2.1. Broadlink社製アプリ(e-Control)をインストール
- スマホ/タブレットのアプリ検索(AndroidならGoogle Play)でBroadlinkで検索すると
Broadlink - Universal Remote
やe-Control
やe Smart Home
などいろいろでてきます。 - Home Assistantで使うにはBroadlinkのクラウドサービスに登録してはダメという話があるので、ログインしなくても良い
e-Control
を使用しました。 e-Control
をインストールしますが、もう色々権限を求められるので、ものすごく気持ち悪いですが、ぐっとがまん。Privacy Termsも我慢してContinueしてインストール完了。
2.2. WiFi接続設定
- アプリを立ち上げて、黒豆にWiFiを設定を開始します。
ログイン画面が出て「さあログインアカウントを作ろう」的な圧力を感じますが、右上の「Skip」でスキップします(左画面)。そして出てきたTop画面の右上の「+」で「デバイス+」を選びます(右画面)。
黒豆を接続したいWiFiのSSIDが表示されている(=このスマホ・タブレットがそのWiFiに接続している)ことを確認して、パスワード欄にパスワードをセット。
- 黒豆のLEDが青色で素早い点滅(1秒に2、3回)を繰り返していることを確認。初回でないとか、もしそうなっていないなら、MicroUSBの上にあるReset Buttonを細い針金のようなもので6秒以上押して、青色素早い点滅モード(設定モード)にする。デバイス+の画面の下の「SET」ボタンをクリック
- うまくいくと「このデバイスは日本でつかえねーよ」的なメッセージが表示され、黒豆のLEDの点滅が止まる。
(これが「設定成功」の画面!)
これで黒豆が指定したSSIDのWiFiに接続されます。一行目にWiFiのMACアドレスが表示されるのでメモしておきましょう。
何があってもこれ以上進めないので、海外で騒がれている「間違ってもBroadLinkのクラウドサービスに登録しないこと(Do not set up a cloud (not now, not ever). )」は自動的に回避されるのです。Thank you! LinkJapan.
2.3. 固定IPの指定
他のデバイスと同様に、Fingを使って割り当てられてたIPを調べます。さきほどメモしたMACアドレスが使われているIPを探します。Hangzhou Broadlink Technology
やHangzhou 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. 学習
- 「開発者ツール」→「サービス」タブで、サービスのドロップダウンリストから
broadlink.learn
を選択。Service Data(YAMML optional)にhost: 192.168.XX.XX
と黒豆のIPを指定。 - 「サービスを呼ぶ」ボタンをクリック。黒豆のLEDが白く点灯。
- 20秒以内にリモコンを黒豆に向けて、学習したいボタン(ここでは「消灯」)を押す。
- うまくいけば黒豆のLEDが消える。ちなみになかなかうまくいかない。うまくいけば通知が来て、そこに学習した赤外線コードが表示される。
(これは日立のシーリングライトのリモコンです。ううむ長いな。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編集画面の右下のオレンジ色の+ボタンを押します。
いろいろありますが、いつもエンティティパネルを使っているので、今回はボタンを使ってみましょう。
デフォルトでswitchが設定されていることもあります。そうでなくてもエンティティを選ぶだけでOKです。これで右側にプレビュー表示されているの雷マークのパネルが状態画面に表示され、これを押すと天井のライトがOn/Offできます。
4. おわりに
これでどんどん学習させて、Home Assistantからリモコン付き家電を操作できるように出来ますね。
ちなみに学習は周囲の光(LEDが沢山あって、赤外寄りの光もバンバン発光しているのではないだろうか)に影響されてうまくいかいないことが多い気がするので、私は左手でRM mini3の上部を囲んでそこにリモコンを差し込んで学習させています。これでちょっとは認識率が上がる気がする…
汎用赤外線リモコンとクリスマスツリーで使ったIFTTTを組み合わせると「ねぇぐーぐる、ベッドルームの電気を消して」という寒い日には最高の機能が実現されます。が、今は初夏…。そんなこと出来てもねぇ。
次はリモコンのフォーマットを解析してコードを作る、というのに取り組みましょう。乱れのない良いコードを作れる、リモコンにボタンが無い機能をのコードが使える、とかメリットがあります。そして最大のメリットは、「エアコン」のコードを効率的につくれる(可能性がある)、というあたりでしょうか。夏に向けて、さて頑張りましょう。
*1:技適の問題はありますが…。個人の家での使用なのでまあ、なんとか…。
*2:Amazon.co.jpでも買えたりします。また、このご時世なので中国からの荷は遅れそうですが、LightInTheBoxとかGeekBuyingやAliExpressなども結構安く手に入ります、新型コロナ前からけっこう時間かかってましたが