メモ:Home Assistant + Raspberry Pi + センサー でホームオートメーションしたい #2


前回までのあらすじ

注意:その制御は安全か?

ホームオートメーションを行う際には、遠隔制御/自動制御するもの・することの安全性に注意したい。2012年にパナソニックがスマホで宅外から操作できるエアコンの販売を一時断念したり、2015年にCerevoが「サービスコンセント付き調光器」として開発した製品の国内販売を断念したことは記憶に新しい。

その後、問題が解決され発売を開始したパナソニックにおいても「『パナソニック スマートアプリ』ご利用時のお願い」という専用ページを設けて、使用上の注意を促しているので、参考にしたい。

また言うまでもないが、ネットワークのセキュリティにも気を付けておきたい。

設定(続き)

アイコンや表示名称のカスタマイズ

デフォルトで各バッジ表示には数値が、各カード表示には目のアイコンが表示されるようになっているが、画像ファイルを指定しカスタマイズすることができる。
ファイル名はローカルパス、URLが指定でき、アイコンについてはmaterialdesignicons.comの画像名を指定することもできる。(mdi:XXXXX)
表示名称の変更も可能。(friendly_name:)

homeassistant:
  (省略)
  customize:
    sensor.bme280_humidity:
      icon: mdi:water-percent

IFTTTコンポーネントと、オートメーションの設定

IFTTTコンポーネントはイベントの送受信両方をサポートしているようだ。今回は送信のみを確認する。あらかじめIFTTTにMaker Channelを使用したレシピを作成しておくこと。今回は以前から使っている、PushBulletに回すレシピをそのまま使用する。

IFTTTコンポーネントを有効にするには、まずAPI keyを設定する。

ifttt:
  key: [省略]

設定を有効化するためHome Assistantを再起動。

確認のため制御用Webページのサイドバーメニュー下方にある"Developer Tools"のうち一番左側、"Call Service"機能を使ってIFTTTコンポーネントのサービスを呼び出す。

IFTTTのレシピが有効に働くことを確認する。

続いてオートメーションの設定を追加する。今回は7:00~23:59の時間の範囲で、室内湿度が規定値を上回った/下回ったとき、IFTTTに通知するような設定にする。

automation:
  - alias: Low humidity alart
    trigger:
      platform: numeric_state
      entity_id: sensor.bme280_humidity
      below: 25
    condition:
      platform: time
      after: '07:00:00'
      before: '23:59:59'
    action:
      service: ifttt.trigger
      data: {"event": "raspberrypi", "value1": "室内湿度が25%以下です" }

  - alias: High humidity alart
    trigger:
      platform: numeric_state
      entity_id: sensor.bme280_humidity
      above: 70
    condition:
      platform: time
      after: '07:00:00'
      before: '23:59:59'
    action:
      service: ifttt.trigger
      data: {"event": "raspberrypi", "value1": "室内湿度が70%以上です" }

さすがに湿度はすぐには変化させられないので、これも"Developer Tools"のうち左側から二番目、"Set State"機能を使って目的の湿度センサの取得値が規定値以上になったようなイベントを発行し、オートメーションが動作するのを確認することにする。

オートメーション設定が有効に働くことを確認する。