私のスマート モーション センサーは十分に賢くなかったので、Python を使用して修正しました
人感センサーは、あなたが部屋にいるかどうかを伝えるだけではありません。あなたが部屋のどこにいるかを知ることができる人もいます。問題は、存在センサーが常に完全に信頼できる位置を提供するとは限らず、自動化が中断される可能性があることです。プレゼンスベースの自動化の 1 つが失敗し続けたとき、私は Python を使用して問題を解決しました。
オフィス プレゼンス オートメーションのおかげで、もっとやりたいと思うようになりました
誰かが部屋を出たときにテレビを一時停止する方法が欲しかった
ホーム オフィスに Everything Presence Lite mmWave センサーを設置しています。私はホームオフィス全体を監視するためにこれを使用し、部屋にいるときは照明をオンにし、部屋にいるときは照明を消します。
オフィスチェアの周りにもゾーンを設けています。 Everything Presence Lite は、私がいつ椅子に座っているかを判断するのに十分な精度を持っており、私はこれを使用して、どのくらいじっと座っていたかを判断します。私が長時間座っていると、立ち上がって数分間歩き回るまで、ホームアシスタントの自動化が私にしつこくうるさく言います。
存在検知は非常にうまく機能するので、リビングルーム用に別の存在センサーを購入しました。誰かが水を汲むため、または自然の呼びかけに応答するために立ち上がったときにテレビを自動的に一時停止し、再び座ったときに番組や映画を再開できるようにしたいと考えていました。
離れた場所にいる複数の人を監視するのはさらに困難でした
検出された人が突然消えてしまう
オートメーションの作成は、私のオフィス オートメーションとかなり似ていました。私はソファと肘掛け椅子のエリアをカバーするゾーンを作成し、そのゾーン内の人の数が減少したときにテレビの現在のメディアを一時停止するように設定しました。その後、人物がゾーンに戻るとメディアが再開されます。
自動化はある程度機能しましたが、信頼性は非常に低かったです。存在センサーの歴史を少し調べてみると、追跡されたターゲットの位置が突然変化したり、ターゲットが完全に消えたりする場合があることがわかりました。
問題は、オフィス オートメーションではセンサーから 3 フィート未満の距離に座っているのですが、リビング ルームではソファのあるゾーンが部屋の反対側にあるため、検出がはるかに遠い距離で行われていることです。センサーは各ターゲットの正確な位置を維持するのに苦労するため、人々が突然位置をジャンプしたように見えたり、一時的に完全に消えたりすることがあります。
ターゲットが突然見失われると、オートメーションは誰かが部屋から出て行ったと判断し、テレビを一時停止します。一瞬位置が急に飛ぶとターゲットがソファゾーンの外に移動してしまい、テレビも不必要に一時停止してしまいます。
Python はセンサーにメモリを与えました
出て行った証拠が失踪問題を解決する
オフィスのプレゼンスベースの自動化がどれほどうまく機能しているかを知っていたため、テレビの一時停止自動化を諦めたくありませんでした。誰かがソファから離れて再び戻ってきたことを知るための、より信頼性の高い方法が必要だったのです。
ソファから立ち上がって部屋から出ていく人は、突然空中に消えていくのとは全く違うことに気づきました。存在センサーは、ターゲットが単に消えるのではなく、現在の位置から移動し、検出ゾーンから遠ざかることを認識する必要があります。
私は、ローカル サーバー上で実行されている Python コードを使用して、ターゲットがゾーン内で検出されたかどうかだけではなく、一連の位置を調べることにしました。コードは、ソファから部屋に向かって外へ出る持続的な動きのパターンを探します。検出ゾーンから離れた経路を形成するいくつかの位置は、ターゲット数が突然減少するよりも、誰かが起き上がったことを示す可能性がはるかに高くなります。
私の存在センサーはまだ家族全員を処理できません
子供たちが寝た後に仕事をすることに限定しなければなりませんでした
Python を使用して人々が立ち上がったり帰ったりする明確な兆候を探すことで、自動化が希望どおりに機能するようになりました。ターゲットが一時的に消えたり、突然、先ほどよりも 1 フィート先に進んだように見えたりしても、テレビは誰かが立ち上がってソファから離れたときにのみ一時停止します。
その人がいない間に検出が一時的におかしくなったとしても問題ありません。検出されたターゲットの数が元の数と一致した場合にのみ、テレビの再生が再開されます。
少し実験が必要で、期待どおりに動作することを確認するために、何度か立ち上がったり座ったりするのを妻に強制的に強制する必要がありました。しかし、Python を使用することで、機能するよりも失敗することが多かった自動化を、(ほぼ) 毎回機能する自動化に変えることができました。
存在センサーは一度に最大 3 つのターゲットしか追跡できないため、私の自動化はまだ家族全員を処理できません。子供たちが寝た後にのみ機能するように設定したので、追跡するターゲットが 2 つを超えることはありません。
最高のスマート ホーム デバイスでも、多少のサポートが必要な場合があります。
これは私の存在センサーに影を投げているわけではありません。それらは優れており、私のオフィスチェアの検出は盤石です。問題は、精度が低下し始める範囲でセンサーを使用しようとしていたことでした。誰かが起きたときに何が起こるかを考慮した Python スクリプトの助けを借りて、セットアップ全体で私が望んでいたすべてのことを実行できるようになりました。
このテーマについてさらに詳しく知りたい方は以下をご覧ください