Sympapaのスマートホーム日記

スマートなんとかはスマートじゃない方法でつくられている

Home Assistant: Nature Remoのカスタムインテグレーションを導入する

Sympapaです。

だいぶ前からHome Assistantに今回記事にするNature Remoのカスタムインテグレーションを導入していたのでタイトルはちょっと偽りですが(笑)
Home AssistantとNature Remoを簡単に連携できるカスタムインテグレーションの導入について書いていきます。


スマートリモコンを使用されている方の中にはNature Remoを使っている方も多いのではないかと思います。私もHome Assistantを導入する前からNature Remoを愛用しており今も3台使っています。


Home Assistantを導入して最初に取り組んだのはHome AssistantからNature Remoを動かすことでした。
Nature RemoはクラウドAPIもローカルAPIも使えるので連携は可能です。
照明やテレビなんかはNature RemoをただのIR信号発信機だと考えてHome Assistantからの指示でIR信号を飛ばすだけでもそれなりの状態になりますし、照明の場合はHome Assisatntのlightインテグレーションを使えばGoogle Homeから照明として認識されるのでGoogle Homeとの連携や同期もバッチリ出来ます。
しかしエアコンに関しては、リモコンの信号が運転モードと温度などの無数の組み合わせで構成されているため、Home Assistantからの指示でIR信号を発射するようにするだけでも一筋縄ではいきません。


だがしかし、世の中にはハッカーさんの作ったありがたいカスタムインテグレーションがあります。
Nature Remoはたぶん日本でしか売っていないので外国人ハッカーさんが作ったNature Remoのカスタムインテグレーションは存在しませんが、日本の数少ないHome Assistantユーザーの中にNature Remoのカスタムインテグレーションを作成されたハッカーさんがいらっしゃいます。


Nature Remoのカスタムインテグレーションとしてはこちらが有名だと思います。
Nature Remoに登録したエアコンとNature Remo E/E Liteのモニターした電力をHome Assistantに統合できるものになります。
github.com


このカスタムインテグレーションは21年3月から更新されてはいませんが、これをベースに改良されている方がいらっしゃいます。
私が見つけたものを2つ挙げておきます。
github.com
github.com


私が調べた限りでは現時点で一番機能が充実しているのはこちらのようで、エアコンとNature Remo E/E Liteの電力以外に、照明とスイッチとNature Remo内臓の温度, 湿度, 照度センサーがサポートされているので、私はこちらを使わせていただいています。ありがたや。
たぶんクラウドAPI経由で操作していて、エアコン,照明,スイッチはGoogle Homeからもエアコンとして認識されHome AssistantとGoogle Home間は同期されます。素敵。
温度, 湿度, 照度はHome Assistantのセンサーとして使えます。
github.com

■導入方法

私はマニュアルでインストールしました。

1)ここへアクセスします。

2)"Code"を押し"Download ZIP"を押してZIPファイルをダウンロードします。

3)ダウンロードしたZIPファイルを解凍します。

4)Home Assistantに”custom_components/nature_remo”フォルダを作成します。(”custom_components”フォルダはもともとあるかもしれません)

5)解凍されたフォルダから下記の6つのファイルを”custom_components/nature_remo”へコピーします。
未だにHome Assistantを使いこなせていない私は、File editorアドオンからひとつひとつファイルをアップロードしました(汗

__init__.py
climate.py
light.py
manifest.json
sensor.py
switch.py
services.yaml

6)ここへアクセスしNature Remoのアクセストークンを作ります。

7)configuration.yamlに以下の記述を加えます。

nature_remo:
  access_token: !secret nature_remo_token

8)secrets.yamlに以下の記述を加えます。

nature_remo_token: あなたのアクセストークン

9)Home Assisatantを再起動します。

■使う

Nature Remo内臓の温度,湿度,照度センサーとNature Remoに登録されているエアコン,照明,スイッチのエンティティが自動で作成されます。
f:id:sympapa:20220304081758p:plain

エアコンは普通にモードや温度を操作することが出来て、更にGoogle Homeからエアコンとして認識されます。
なのでGoogle Homeにエアコンとして登録すれば、Home AssistantとGoogle Home間は同期され、例えば「OK Google! エアコンの温度を20℃にして」でエアコンの温度を20℃に設定した場合、Home Assistant上の設定温度も20℃に変更されます。逆も同期されます。

温度,湿度,照度は”sensor”としてエンティティが作られます。
温度は3分間隔で更新されていますが、湿度は1分間隔、照度は30秒で更新されているように見えます。
それぞれ別々のタイミングで取得しているのかな?

■というわけで

Home AssistantとNature Remoを簡単に連携できて、自前で出来なかったエアコンの連携もバッチリのカスタムインテグレーションの導入について書いてみました。
テレビも連携出来ると完璧ですが、Home Assistant自体にチャンネルも扱える汎用テレビ用インテグレーションが無いようなので難しいのかもしれません。
まぁテレビの場合は電源オンオフさえHome Assistantと同期できれば良い感じですけどね。

それでは。