【スマートホーム】Home Assistantで設定温度になったら自動的に冷房オン&タイマーで自動オフ

2018年5月22日Home AssistantHome Assistant, IoT, スマートホーム

Home Assistantを用いて、設定温度になったら自動的に冷房をオンにし、さらに設定温度を上回るもしくは指定時間経過した場合に自動的に冷房をオフにする、というオートメーションを組んでみた。

用意するもの

  • 温度センサー
  • 冷房
  • iRemoconやNature Remo等、冷房をサーバー(Raspberry Pi等)経由で操作できるもの

用意するものは非常に簡単で、スマートホームを実現する場合には多くの場合持っているだろう。
ない場合は、それぞれ用意してあげよう。以下がオススメ。

また、Home Assitantの基本的なインストール及び設定方法に関しては、こちらにまとめて記入をしている。適宜ご参照をいただきたい。

設定ファイルの編集

それぞれ、こんな感じで設定をしてあげる。

温度センサー

今回は引き続きXiaomiのセンサーを使用しているので、xiaomi_aqaraとして設定。設定場所はconfiguration.yaml。

そうすると、Home Assistantの「States」パネルで見れるようになっているので、ここでセンサーに割り当てられているデバイス名称を確認。今回の場合、「sensor.temperature_158d000201f683」という名称が割り振られていた。

なお、 Xiaomiのセンサーはほとんどの設定が中国語なので、購入するときはご注意を。

理想温度を設定するスライダー

こんな感じで、温度や自動オフにする時間をスライダーで決めることが出来るバーを作る。下記の場合、冷房のターゲットは21度、それ以外に60分稼働したら自動的に停止する。

slide-w381

設定方法はやはりconfiguration.yamlを編集する形となる。次のようにすれば問題ない。

これで、input_number.desired_temperatureがターゲットとする温度、input_number.air_timerが、エアコンを自動的にオフとする時間となる。

さて、これで材料は揃った。あとは以下のようなオートメーションを作れば良い。

  • ターゲットとする温度を1度上回ったら(暑くなったら)、冷房を自動的にオンにする
  • ターゲットとする温度よりも1度下回ったら(寒くなったら)、冷房を自動的にオフにする
  • 上記とは別に、指定した時間を過ぎたら、自動的に冷房をオフにし、さらに自動的なオンオフも停止する

これが出来ると、自動的に温度を調整してくれるだけではなく、冷房をオフにすることもしてくれるので、非常に便利だ。

オートメーションの作成

オートメーションを作成するにあたって、以下の3つを用意する。

  • 自動的に冷房をオンにする機能
  • 自動的に冷房をオフにする機能
  • 「自動的に冷房をオンにする機能」と同期する形で、「自動的に冷房をオフにする機能」をオンオフする機能

それぞれ設定をしていこう。

自動的に冷房をオンにする機能

スクリプトはこんな感じ。

こんな感じの流れになっている。

  • 1分おきに「自動冷房オン」になっているかどうかを確認し、なっていたら作動
  • ただし、現在温度が設定温度より1度以上高く、かつ冷房(switch.cold)がオフの場合のみ作動
  • 作動したら冷房をオンにする
  • オンになってから設定時間がたった段階で、オートメーションを停止&冷房のスイッチを停止

自動冷房をオフにする機能

これは非常にシンプルで、同じように1分ごとに監視をし、設定温度よりも1度以上室内の温度が上回ったらオフとしている。

自動冷房オンと自動冷房オフを関連づける

自動冷房オンをオンにしたら自動暖房オフもオンになり、自動冷房オンをオフにしたら自動冷房オフもオフになる、というもの。
正直もうちょっとうまくかける気もするのだが、面倒なのでそのまま。

最後のオートメーションは常に実行する形としておけば、「自動冷房オン」をオンにすれば、それ以外はhiddenとしておいても全て正常に動作するようになる。

これで、温度とタイマーを設定しておけば、それに従って動くようになる。実のところ、明け方に自動的に動作させるためのオートメーションを上記とは別に組んでいるのだが、上記があれば猛暑となる季節までは快適に過ごすことが出来るだろう。