コモノポリタン

コモノ、デジモノが好きなKomonopolitan住民 (はてなダイアリーからの引っ越しです)

【Home Assistantでホームオートメーション】猛暑の可視化

【Home Assistant(Hass.io)】
不快指数を表示せよ

「Home Assistant(Hass.io)でホームオートメーション 再起動!」シリーズです。

 今年の夏は暑すぎませんか。センサーの数値はうなぎ登りです*1。折角センサーを設置したのだから不快指数の表示でもしてみましょう。

この記事の前提条件
Home Assistant 0.114.1
HassOS 4.12
Server Raspberry Pi 4(2GB)

 上記バージョンを前提とした手順です。 (最新版では動かないこともあるかもしれませんが、私が使っている限り、備忘録を兼ねて最新化してゆきたいとは思っています)

1. そもそも不快指数とは

 昔はよく天気予報とかで聞いていたような気がするのですが最近あまり聞きませんね。私があまりテレビ見てないからかな。

ja.wikipedia.org

上記によると計算式は下記のとおり。

  不快指数 = 0.81 × 気温[℃] + 0.01 × 湿度[%] × ( 0.99 × 気温[℃] - 14.3 )+ 46.3

同じ気温でも湿度が高いと汗が乾かないので不快、という感じでしょうか。

温度 体感
~70 心地よい
70~75 暑くない
75~80 やや暑い
80~85 暑くて汗がでる
85~ 暑くて堪らない

ということらしいので、~75までを「大丈夫」、75~80を「要注意」、80~を「危険」として表示してみましょう。

2. Home Assistantに計算式型センサーを設定

 Omronのセンサーで観測した気温と湿度を使って不快指数のセンサーを作ります。このような時は、他の値を使ったセンサーをつくるTemplateプラットフォームを使います。

sensors:
(中略)
  # Thermal Heat Index
  - platform: template
    sensors:
      thermal_heat_index_bathroom:
        value_template: "{{ (0.81*(states('sensor.last_value_of_bathroom_temp')|float) + 0.01*(states('sensor.last_value_of_bathroom_humidity')|float)*(0.99*(states('sensor.last_value_of_bathroom_temp')|float)-14.3) + 46.3) | round(1) }}"

(同様に屋内用、屋外用の不快指数の計算式を設定)

 簡単な解説を。OMRONセンサーの値state('sensor.last_value_of_bathroom_temp')は数値ではないので、|float浮動小数点に型変換する必要あり。最後に| round(1)で小数点以下1桁の数字に変換(フィルタ)しておしまい。かっこをうまく入れないといけません。結構面倒。

3. UIを設定

 今回はゲージカードをUIとして選択。 f:id:maky_Ba:20200816163143j:plain

上記のように設定すると、見た目は下記のようになります。

f:id:maky_Ba:20200816162805j:plain

5. おわりに

 不快指数を見える化したら危険度はわかるようになりましたが、やはり「暑いものは暑い」という結果で、ややうんざり、です。

maky-ba.hatenablog.com

*1:それよりも2階のウオーキングクローゼット(という名の小部屋)の棚の上にあるサーバーエリアが心配。Home AssistantサーバーやNAS等、ネットワーク機器が置いてありますがサーバールームと違ってエアコンなし!熱暴走や熱破壊が起こるのでは…