コモノポリタン

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

【Home AssistantでDIY Smart Home】Broadlinkインテグレーション(汎用赤外線リモコン)

【Home Assistant(Hass.io)】
Broadlinkリモートをインテグレーションで扱う

「Home Assistant(Hass.io)でホームオートメーション 再起動!」シリーズです。

 今年の夏は「エアコンのリモコンコマンドを解析して、スマートなエアコンにしてやる!」と思っていたのですが、久しぶりにHome AssistantのBroadlinkの赤外線リモコン・インテグレーションを確認してみたら結構変わっていることに気が付きました。良い機会なので何とか今風に追いつきましょう*1

 汎用赤外線リモコンユニットであるBrodalink RM mini3は、主にシーリングライトの点灯・消灯が目的ですが、私のスマートホーム化計画の中核として初期の段階から活用しております。

 以前は日本の代理店が横槍を入れたりでアプリも十分に活用できず、学習は結構分かり難く、さらに利用にあたってはconfigration.yamlにゴリゴリ記述するという旧Home Assistant時代のやり方でした。その頃の記事が下記です。
maky-ba.hatenablog.com

 一応、インテグレーションに対応したよ、って記事も書きましたが、何となく中途半端というかわかっていないというか。残念感が漂っております。
maky-ba.hatenablog.com

 時は流れてBroadlinkのデバイスもうまい具合にHome Assistantに取り込まれつつある様子ですので、リベンジというほどではありませんが、Broadlink赤外線リモコンの正しい(と私が思う)使い方を書き記しておきます。

この記事の前提条件
Home Assistant 2021.7.4
HassOS 6.10
Server Raspberry Pi 4(2GB)

 上記バージョンを前提とした手順です。 (最新版では動かないこともあるかもしれませんが、私が使っている限り、備忘録を兼ねて最新化してゆきたいとは思っています)

1. Broadlink RM mini 3の新規登録

 久しぶりですので、Broadlink RM mini 3(以下RM3)の新規登録からやってみましょう。Broadlinkのスマホアプリも状況が変わったといいますし。
f:id:maky_Ba:20210804020931j:plain:w300

1.1. Broadlinkアプリのインストール

 前回はe-controlというBroadlink社製スマホアプリをWiFiの設定の為だけに使いました。日本の総代理店様のご努力によりアプリへRM3の登録はできないためリモコンアプリとしての出来栄えは未確認でした。さすがに昨今はBroadlink提供アプリへの登録が可能なったとの話も聞くのでユーザ登録とかして使ってみましょう。

 今回使用するスマホアプリは「Broadlink - Universal TV Remote」(Androidアプリです。iPhoneはBroadlinkって名前かな)です。TV Remoteと書いてあるくせに多種多様な機器のリモコンになれるあたり中華な香りは(良い意味で)残っています。
 アプリをインストール後、最初に起動すると「ユーザエリア(User Area)」を聞かれます。多分サーバーの場所を決めるためだと思われます。その証拠にJapanを選ぶと「アメリカのサーバにつないで良いかい?」って聞かれます。中国のサーバーにつなぎます、って言われるよりちょっとだけ良い気もしますが(政府介入の面で)まあいずれにせよBroadlinkの管理下なので大した違いはなさそう。その後スクリーンショット取れませんでしたが言語パックをダウンロードするので、以降の画面は日本語に!
f:id:maky_Ba:20210801223010p:plain:w100 f:id:maky_Ba:20210801223206p:plain:w100 f:id:maky_Ba:20210801223328p:plain:w100 f:id:maky_Ba:20210801223620p:plain:w100

 次にログインを求められます。前回はユーザ登録をスキップしてましたので、今回初めてアカウントを作ります。Google IDやらApple IDやらと連動はちょっと気が進まないのでメールアドレスで登録します。Privacy Termsはよく読んでから同意しましょう。メールアドレスを入れて登録を進めると、あくまでもGoogle IDやApple IDと連携したいそぶり。こちらも頑なに却下です。
f:id:maky_Ba:20210801224508p:plain:w100 f:id:maky_Ba:20210801224535p:plain:w100 f:id:maky_Ba:20210801224611p:plain:w100 f:id:maky_Ba:20210801224642p:plain:w100 f:id:maky_Ba:20210801224710p:plain:w100

 やっとデバイス(RM3)の登録にたどり着きました。ホーム画面の下の方に「+デバイスを追加」ボタンがあります。プライバシーポリシーをよく読んで、Wi-Fiバイス ⇒ Universal Remote ⇒ RM mini 3と進みます。
f:id:maky_Ba:20210801230254p:plain:w100 f:id:maky_Ba:20210801230405p:plain:w100 f:id:maky_Ba:20210801230459p:plain:w100 f:id:maky_Ba:20210801230558p:plain:w100 f:id:maky_Ba:20210801230639p:plain:w100

 RM3のLEDが高速でチカチカしていたら次へをクリックします。チカチカがゆっくりだったりしたら、後ろのResetを5秒ほど棒で押します。接続するWi-FiSSIDとパスワードを入力しデバイスをネットワークに接続します。「デバイスを追加。デバイスを選択して追加」画面が出たらRM3のネットワークへの接続は完了です。これでHome Assistantに見つけてもらえるはずです。
f:id:maky_Ba:20210801230713p:plain:w100 f:id:maky_Ba:20210801230744p:plain:w100 f:id:maky_Ba:20210801230841p:plain:w100 f:id:maky_Ba:20210801231033p:plain:w100

 おまけですが、上の選択して追加を進めるとRM3に名前を付けたり、部屋の登録とかをすることが出来ます。そのうえで下記の様な機器の制御がアプリで出来るようになります。無いときは当然学習もできます。
f:id:maky_Ba:20210801234327p:plain:w200
 すっかり普通の赤外線リモコンとして使えるようになりましたね。うちではシャープのTV AQUOS三菱電機のエアコン、あたりはプリセットで対応していました。Broadlinkの汎用赤外線リモコンもRM4 Proなんてのも出たり、まだまだ頑張っているのでしばらくアプリも更新続きそうですね。私はHome Assistant Love!なので日常使いはしませんけど。

1.2. Home Assistantに登録

 Home Assistantサーバと同じLANにRM3を登録すれば自動的にHome Assistantが見つけてくれるはずです。設定を選んでRM3に名前を付けて設定完了です。らくちん。
f:id:maky_Ba:20210805042116j:plain:w230 f:id:maky_Ba:20210805042145j:plain:w230
f:id:maky_Ba:20210802000546j:plain:w230

 RM3の新規登録もアプリもふつーになりましたし、Home Assistantも自動でUIで出来るようになったので、らくちんになりましたね。よしよし。

2. Broadlink Remoteのリモコン学習

 以前の記事でのリモコン学習は、「開発者ツール」の「サービス」で学習サービス選択⇒ごりごり手入力でパラメータ設定しサービス呼び出し⇒通知に表示された赤外線コードをconfigration.yamlにコピペで登録、なんて流れで結構面倒でした。今も同じく「開発者ツール」の「サービス」を使いますが、使い易さは一変です!

2.1. 赤外線リモコンの学習

  1. 「開発者ツール」の「サービス」を開き、サービスのドロップダウンから「Remote: Learn Command」を選択する
  2. ターゲットの「+ デバイスを選択」をクリックしドロップダウンリストからリモコンを学習させたいRM3を選択する
  3. Device(デバイス名)とCommand(コマンド名)を設定します(ここでは日立のシーリングライトでリモコンがIR-E01Hだったのでデバイス名はHitachi_IRE01Hに。チャンネルCH1も入れておけばよかったか)。
    コマンド名にはリモコンのボタン名を付けておきましょうか(ここではお好みボタン(お好みの光量でOnするボタン)なのでon_customに)。

f:id:maky_Ba:20210803221354j:plain:w230 f:id:maky_Ba:20210803221443j:plain:w230 f:id:maky_Ba:20210803221515j:plain:w230

 学習されたコードは、/config/.storageディレクトリに格納されます。ここは隠しフォルダなので、File Editorアドオンの素の設定では見えません。File Editorアドオンの設定タブで- .storageをignore patternから消してアドオンを再起動。これでFile Editorのフォルダ選択で.storageが見えるようになります。
 学習された赤外線コードは/config/.storage/broadlink_remote_***********_codesというファイルに記録されます(************の部分はRM3のMACアドレスが入ります)。

f:id:maky_Ba:20210802001325j:plain:w230 f:id:maky_Ba:20210805043729j:plain:w230

 ほら、ラクチンでしょ。同じコマンド名で学習命令(学習サービス:Remote: Learn Command)を繰り返すと上書きされますし、間違って変なコマンド名で学習してしまったりしたときは削除命令(削除サービス:Remote: Delete Command)で削除できます。

 ボタンが沢山あるときはコマンドをリストで記述しておくと、リモコンのボタンを一個学習するたびに通知エリアに次のボタンが通知されますので、次々とボタンを押してゆくことで学習が進みますよ。
f:id:maky_Ba:20210803231355j:plain:w230 f:id:maky_Ba:20210803231913j:plain:w230

 まあ「UIでラクラク設定!」というにはもう一歩な感もありますが、当初の頃に比べれば段違いにラクチンですね。

2.2. 学習した信号の送信テスト

 うまく学習できているか、は同じく「開発者ツール」の「サービス」を開き、サービスのドロップダウンから今度は「Remote: Send Command」を選択し、DeviceおよびCommandを指定します。「サービスの呼び出し」ボタンをクリックするとRM3から赤外線コードが発射されてシーリングライトがOnされます。
f:id:maky_Ba:20210803232623j:plain:w230
 めでたしめでたし…

3. リモコンを使ったシーリングライトの登録

3.1. スクリプト

 いちいちRemote: Send_Commandで呼び出すと引数(RM3のデバイス名、コマンド名、などなど)が多すぎて面倒なので、一度スクリプトでコマンド呼び出し(=リモコンボタン)を設定しておきます。

 「設定」→「スクリプト」で、まずはスクリプト名などを設定しておきます。ここでは「Hitachi Ceilinglight On」としておきます。この名称でスクリプトをつくると、スクリプトのエンティティ名は大文字→小文字、スペース→_(アンダースコア)等の変換がされて「script.hitachi_ceilinglight_on」となります。

 次にシーケンスを登録します(1つか登録しなくてもシーケンス…)。アクションは「サービス呼び出し」、サービスは「Remote: Send Command」、ターゲットは「+ デバイスを選択」から使うRM3を選択。Deviceは先ほど学習させたリモコンの名前を「Hitachi_IRE01H」、Commandは先ほど学習させたボタン名「on_custom」を設定。
f:id:maky_Ba:20210806004950j:plain:w230 f:id:maky_Ba:20210806005337j:plain:w230

3.2. トグルスイッチにする

 3.1でスイッチ・オンのスクリプト(scriprt.hitachi_ceilinglight_on)を作りましたが、同様にスイッチ・オフ(script.hitachi_ceilinglight_off)も作ります。あとは1回押す・クリックするたびにOn/Offが切り替わるスイッチをTemplate Switchを使用して作って赤外線リモコン版スマートシーリングライトの完成です。
 ここはまだconfiguration.yamlにゴリゴリ書き込まないといけません。たぶん。

(前略)
  # Hitachi Ceiling Lamp
  #   entity_id: switch.hitachi_ceiling_light_ch1
  - platform: template
    switches:
      hitachi_ceiling_light_ch1:
        turn_on:
          service: script.hitachi_ceilinglight_on
        turn_off:
          service: script.hitachi_ceilinglight_off
(後略)

 ちなみに以前の赤外線リモコンでのswitchも同じくトグルスイッチでしたが記述は下記のとおりです。command_on:の中身が非常に長くて煩雑ですね。

(前略)
  # Hitachi Ceiling Lamp
  #   entity_id: switch.hitachi_ceiling_light_ch1
  - platform: broadlink
    mac: '24:DF:**:**:**:**'
    switches:
      - name: Hitachi ceiling light Ch1
        command_on:  'JgCwBA4ODikODg4pDg4O(中略)wANBQAAAAAAAAAA=='
        command_off:  'JgCwBA8NDygQDBAoDw0(中略)wANBQAAAAAAAAAA=='
(後略)

 以前の記事でも使ったトグルボタンのUI(下記)をクリックするたびに、シーリングライトがオン・オフされます。
f:id:maky_Ba:20210804011404j:plain:w300

4. おわりに

 よし、これで汎用赤外線リモコン(Broadlink RM mini 3)の利用準備完了!
 ついにリモコン信号の解析とエアコン操作だ!(か?)

maky-ba.hatenablog.com

*1:って言っていつも回り道している間に夏が過ぎてゆきます。「ねぇグーグル」し始めてから3度目の夏。今年はどうだエアコン…