HomeAssistantでスマートホームコントローラを作ってみる[4/6]

スマートホーム
スポンサーリンク
このエントリーをはてなブックマークに追加

はじめに

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ログインします。

②シェルスクリプトの作成

次に「/config/scripts/」に「SendsRemo.sh」というシェルスクリプトを作成します。
なお「<APIアクセストークン>」「<APIサーバ>」「<sRemo識別子>」の部分は前回メモしたものに置換してください。

このシェルスクリプトでは、sCouldのWebAPIにCurlコマンドでアクセスし、sRemoRに登録されたリモコンボタン(コマンドラインパラメータで指定)を押す操作を行うものです。

③シェルスクリプトの実行確認

作成したシェルスクリプトに実行権限を付与して、ちゃんと動作するか確認してみましょう。実行時の引数の数字はsRemo-R上の操作したいボタン番号です。

うまく家電がOnやOffになればOKです。

Homme Assistantへの登録

ここからは、上で作成したシェルスクリプトをcommandline switchとしてHome Assistantへ登録していきます。

①Configuratorの起動

まずは、Home Assistantの画面からConfiguratorを起動します。

②configuration.yamlの編集

左メニューからConfiguratorを選択してconfiguration.yamlを開き、以下を追記して保存します。

この記述は、スイッチに関する記述を「switch.yaml」で行いconfiguration.yamlにインクルードするというものです。

③switch.yamlの追加

次に、画面左上のフォルダのアイコンを選択し、さらにファイル追加のアイコンをクリックします。そして、表示されたファイル名の入力画面で「switch.yaml」と入力し「OK」をクリックします。

④switch.yamlの選択

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

⑤switch.yamlの編集

switch.yamlに以下のようにスイッチを追加して、保存します。Home Assistantのcommand_switchというものを利用する事で、先ほど作成したシェルスクリプトをあたかもスイッチのように扱うことが可能です。

この記述では、1行目でcommand_lineスイッチを利用することを記述し、3行目以降で3つのスイッチを追加しています。各スイッチの定義部分は、1行目でスイッチの名称、2行目でONの場合のコマンド、3行目でOffの場合のコマンド、4行目で日本語名を定義しています。見ていただいた通り、センサーの場合とは異なった文法となっていて、スイッチの場合にはfriendly_nameの定義もcustomize.yamlではなく、ここで行います。この辺りからも、HomeAssistantが、まだ発展途上である事が伺えます。

⑥customize.yamlの編集

次にcustomize.yamlを開き、3つのスイッチのアイコンの定義を追加します。追加したら「保存」してくださいね。

⑦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の設定

関連記事

Alexaをしゃべらせる(Node-red編)
やりたいことNode-redでnode-red-contrib-amazon-echoやnode-red-contrib-alexa-home-skillのパレットを使うと、Alexaに音声で話しかけることをトリガーにNode-redの処理
自分のGoogleカレンダーにJWTを使って予定を追加してみる
今回は、JWT(JSON Web Token)を使って、ブラウザからのログイン操作なしで特定のGoogleカレンダーに予定を追加することをやってみます。
Alexaに通知を送る(Node-red編)
今回は、Alexaに「通知」を送ることをやってみたいと思います。ちなみに、この通知を送る機能は「プロアクティブイベントAPI」という物を利用しますが、少々実装が面倒なのが難点です。
Node-redでスマートハウス-LG製テレビを操作してみる(1/5)
はじめに我が家にも有機ELテレビがやってきました。国産メーカのテレビも、有機ELパネルはほとんどがLG製のパネルを利用しているらしく「同じパネルなら安い方がいいんじゃない?」という事でOLED 55C7Pを購入!このLG製のテレビ、内部はw
Node-redでスマートハウス-Gravioで子供用プリキュアボタン
今回は、Gravioのボタンセンサーを使って、2歳の子供でもテレビのアプリをyoutubeにして、プリキュアの動画を再生できる「プリキュアボタン」を作りたいと思います。
Gravioでミルク&オムツ交換記録をGoogleカレンダにつけてみる
子育てをしていると両手が塞がっていたり、手が汚かったりすることが本当多いんです。なので、スマホを手に取って、ロック解除して、記録アプリを開いて、時間・種類などをいちいち入力することはホント面倒です。今回は「赤ちゃんボタン」を作って、ボタンを押すだけでミルク&おむつ交換の記録がワンプッシュで記録することをやってみます。
Node-redだけで簡易Alexaアプリを作ってみる「アレクサ、雨雲きてる?」
今回はASKを使わずNode-redだけを使って、自分用の簡易Alexaアプリを作ることをやってみたいと思います。

記事が参考になったら、ブログランキングに協力(クリック)して貰えると嬉しいです。
スポンサーリンク
naka-kazz

昼間はIT企業に勤めてますが、プライベートでは「育児×家事×IoT」をテーマに家のスマートホーム化に取り組んでいます。Androidアプリも作っているので使って下さい。質問・コメントは、↓のコメント蘭でもFacebookメッセンジャーでもどちらでも大丈夫です。
E-mail:naka.kazz.d@gmail.com

naka-kazzをフォローする
スマートホーム 開発者向け
naka-kazzをフォローする
育児×家事×IoT

コメント

タイトルとURLをコピーしました