はじめに
6ヶ月間の育児休業を取って、育児&家事に専念しているnaka-kazzです。今年になって、スマートリモコン・各種IoTセンサー・スマートスピーカが手軽に手に入るようになってきて「2019年はスマートホーム元年」だったかなーと今年一年を振り返りながら記事を書いています。
ただ、家の中にIoT機器が増えてくると、スマートリモコンを操作する時はスマホのリモコンアプリ、太陽光発電の発電状況を見るにはHEMSのパネルなど・・・情報や操作がバラバラで使いづらいなと感じています。そこで、今回は家の中のIoT機器を一元管理できるようにしてみたいと思います。
やりたいこと
最終的にやりたいことは、家の中のセンサー情報を一括で表示したり、各種家電の操作を行える「かっこいいスマートホームコントローラ」を作っていきたいと思います。今回は、このスマートホームコントローラを、Home Assistant(Hass.io)で作っていきます。


実現に向けた連載
やりたいことを実現するために、以下のように少しずつに記事を書いていきます(予定)。
1回目:Home Assistantのインストール
2回目:アドインのインストール
3回目:温度・湿度・照度センサーの追加
4回目:家電操作スイッチの追加 ←この記事
5回目:コントロールパネルの設定
6回目:Picture Elementsの設定
4回目:家電操作スイッチの追加
前回は、Home Assistantに温度・湿度・照度センサーを追加して、部屋の状況を可視化しました。今回は、電気・エアコン・テレビのスイッチを追加して、家の中の家電を一括で操作できるようにしたいと思います。
今回も家電の操作に利用するスマートリモコンはsRemo-Rを利用します。前回同様に、sRemo識別子、APIサーバ名、APIアクセストークンが必要ですので、取得がまだの方は前回の記事を参照して準備しておいてください。
シェルスクリプトの作成
まずは、WebAPI経由でRemo-Rを利用するためにシェルスクリプトを作成していきます。
①Home AssistantにSSH接続
PCのコンソールより、Home AssistantにSSHログインします。
1 2 |
$ssh hassio@<IPアドレス> hassio@<IPアドレス>'s password: |
②シェルスクリプトの作成
次に「/config/scripts/」に「SendsRemo.sh」というシェルスクリプトを作成します。
なお「<APIアクセストークン>」「<APIサーバ>」「<sRemo識別子>」の部分は前回メモしたものに置換してください。
1 2 3 |
#!/bin/bash curl -H "Authorization: Bearer <APIアクセストークン>" https://<APIサーバ>/user_api/<sRemo識別子>/send_sig?sig=0-$1 |
このシェルスクリプトでは、sCouldのWebAPIにCurlコマンドでアクセスし、sRemoRに登録されたリモコンボタン(コマンドラインパラメータで指定)を押す操作を行うものです。
③シェルスクリプトの実行確認
作成したシェルスクリプトに実行権限を付与して、ちゃんと動作するか確認してみましょう。実行時の引数の数字はsRemo-R上の操作したいボタン番号です。
1 2 3 |
#chmod 777 SendsRemo.sh #./SendsRemo.sh 1 |
うまく家電がOnやOffになればOKです。
Homme Assistantへの登録
ここからは、上で作成したシェルスクリプトをcommandline switchとしてHome Assistantへ登録していきます。
①Configuratorの起動
まずは、Home Assistantの画面からConfiguratorを起動します。

②configuration.yamlの編集
左メニューからConfiguratorを選択してconfiguration.yamlを開き、以下を追記して保存します。
1 2 |
switch: !include switch.yaml |

この記述は、スイッチに関する記述を「switch.yaml」で行いconfiguration.yamlにインクルードするというものです。
③switch.yamlの追加
次に、画面左上のフォルダのアイコンを選択し、さらにファイル追加のアイコンをクリックします。そして、表示されたファイル名の入力画面で「switch.yaml」と入力し「OK」をクリックします。

④switch.yamlの選択
左側のファイル一覧に「switch.yaml」が追加されていると思いますので、これを選択して開きます。

⑤switch.yamlの編集
switch.yamlに以下のようにスイッチを追加して、保存します。Home Assistantのcommand_switchというものを利用する事で、先ほど作成したシェルスクリプトをあたかもスイッチのように扱うことが可能です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
- platform: command_line switches: switch_tv: command_on: "/config/scripts/SendsRemo.sh 63" command_off: "/config/scripts/SendsRemo.sh 63" friendly_name: テレビ電源 switch_light: command_on: "/config/scripts/SendsRemo.sh 5" command_off: "/config/scripts/SendsRemo.sh 3" friendly_name: 電気 switch_air: command_on: "/config/scripts/SendsRemo.sh 60" command_off: "/config/scripts/SendsRemo.sh 59" friendly_name: エアコン |

この記述では、1行目でcommand_lineスイッチを利用することを記述し、3行目以降で3つのスイッチを追加しています。各スイッチの定義部分は、1行目でスイッチの名称、2行目でONの場合のコマンド、3行目でOffの場合のコマンド、4行目で日本語名を定義しています。見ていただいた通り、センサーの場合とは異なった文法となっていて、スイッチの場合にはfriendly_nameの定義もcustomize.yamlではなく、ここで行います。この辺りからも、HomeAssistantが、まだ発展途上である事が伺えます。
⑥customize.yamlの編集
次にcustomize.yamlを開き、3つのスイッチのアイコンの定義を追加します。追加したら「保存」してくださいね。
1 2 3 4 5 6 |
switch.switch_tv: icon: mdi:television switch.switch_light: icon: mdi:lightbulb-on-outline switch.switch_air: icon: mdi:air-conditioner |

⑦HASSの再起動
yamlの保存が完了したら、Home Assistantを再起動します。

ここまでで、スイッチの定義は完了です。
Lovelace画面への追加
ここからは、追加したスイッチをLovelace画面へ追加していきます。
①Lovelace編集画面を開く
まずは、Lovelace画面の右上の「・・・」ボタンをクリックして「Configure UI」を選択します。

②ENTITIESカードの追加
次に、画面右下に表示される「(+)」ボタンをクリックして、表示されるカードの選択画面から「ENTITIES」カードを選択します。

③ENTITIESカードの編集
カードの編集画面では、以下のように先ほど追加した3つのスイッチを追加しましょう。

④ENTITIESカードの確認
Lovelaceに以下のようなカードが追加され、各スイッチの⚡️アイコンをクリックすると、スイッチをOnやOffにできると思いますので、確認しましょう。

以上でスイッチの追加は、全て完了です!!
おわりに
今回はHome AssistantにsRemo-Rのスイッチを追加し、家の中の家電を一括操作できるようにしてみました。次回は、Home Assistantにコントロールパネル機能を追加してみたいと思います。
連載記事
1回目:Home Assistantのインストール
2回目:アドインのインストール
3回目:温度・湿度・照度センサーの追加
4回目:家電操作スイッチの追加
5回目:コントロールパネルの設定 ←次はこれ
6回目:Picture Elementsの設定
コメント