Home Assistantで気付いたこと・分かったこと
オートメーションの「切断」は2種類ある
はじめに
Home Assistantでオートメーションを作成していたときのことです。
PCがスリープしたらスピーカーの電源を切り、起動したら電源を入れるという単純なオートメーションを作っていました。
ところが、何度試しても期待どおりに動きません。
設定を何度見直しても間違いは見つからず、原因が分かりませんでした。
「切断」が2つある
トリガーの「変化後」を開くと、
切断
切断
接続済み
と表示されていました。
最初は、
「同じ項目が2つ表示されている。どちらを選んでも同じだろう。」
と思っていました。
ところが、それが間違いでした。
実際には意味が違っていた
いろいろ試してみると、
ある「切断」を選ぶとオートメーションは動かず、
もう一方の「切断」を選ぶと正常に動作しました。
原因を調べると、
表示は同じでも、内部で表している状態が異なっていたのです。
つまり、
画面上ではどちらも「切断」と表示されますが、
Home Assistant内部では別の状態として扱われています。
なぜ気付きにくいのか
今回使用していたのは binary_sensor でした。
binary_sensor は本来 on と off の2つの状態を持っています。
一方、Home Assistantには device_tracker のように、接続状態を表すエンティティもあります。
日本語UIでは、これら異なる状態が同じ「切断」と表示されることがあります。
そのため、
表示だけでは、どの状態を選択しているのか判断できません。
原因に気付いたきっかけ
何度設定を見直しても原因が分からなかったため、
オートメーションを実際に動かしながら、一つずつ状態を変更して確認しました。
すると、
「切断」の選び方によって動作が変わることに気付きました。
そこでエンティティの状態を確認したところ、
画面表示は同じでも、内部状態が異なることが分かりました。
今回分かったこと
今回一番の気付きは、
Home Assistantでは画面の表示だけで判断してはいけない
ということです。
日本語表示では同じ文字列でも、
内部では異なる状態を表している場合があります。
オートメーションが期待どおりに動かないときは、
設定ミスを疑う前に、
エンティティが実際にどの状態へ変化しているのか
を確認した方が原因を見つけやすいと感じました。
おわりに
今回の問題はHome Assistantの不具合ではありませんでした。
また、私の設定ミスというより、
日本語UIだけでは判断できない仕様が原因でした。
今回の経験から、
表示ではなく「実際の状態」を確認することが、Home Assistantのトラブルシューティングでは重要だと実感しました。
コメント
コメントを投稿