Home Assistantで気付いたこと・分かったこと
スリープ中でもPingセンサーは一瞬だけ反応することがある
はじめに
PCのスリープと起動に合わせて、スピーカーの電源を自動でON・OFFするオートメーションを作成しています。
トリガーにはPingセンサーを使用しています。
動作はほぼ期待どおりでしたが、ログを確認していると気になる現象がありました。
スリープ中なのに接続済みになる
PCをスリープすると、Pingセンサーは off になります。
ところが、そのままログを見ていると、スリープ中にもかかわらず、一瞬だけ on になることがありました。
もちろん、その直後には再び off に戻ります。
毎回発生するわけではなく、間隔も一定ではありませんでした。
最初に考えた方法
最初は、この一瞬の on を無視するため、
「offが30秒続いたらスピーカーをOFFにする」
という設定にしました。
これでも問題なく動作します。
ログを見直して気付いたこと
その後、何度もログを確認していると、もう一つ気付いたことがありました。
スリープ中には一瞬だけ on になることがあります。
しかし、
起動したときに、一瞬だけoffになることはありません。
つまり、誤判定が起こるのは ON側だけ でした。
現在の設定
そこで、オートメーションを次のように変更しました。
PCがスリープしたら、すぐにスピーカーをOFF
Pingセンサーが on の状態で5秒続いたらスピーカーをON
この設定にしてからは、誤ってスピーカーがONになることはなくなりました。
しかも、起動時の反応も速くなりました。
おわりに
オートメーションを作るときは、「何秒待つか」を先に考えてしまいがちです。
しかし、実際にログを確認すると、どちらの状態で誤判定が起きているのかが見えてきます。
今回もログを見直したことで、待ち時間を入れる場所を変更し、よりシンプルなオートメーションにすることができました。
コメント
コメントを投稿