自分が家に居るかどうかセンサ類無しで検知して照明空調を自動制御させる
やりたいこと
- 自分が家に戻った際に、ディスプレイ、エアコン、照明を自動でONにする
- 自分が家から出た際に、ディスプレイ、エアコン、照明を自動でOFFにする
閃いた方法
最初は部屋の扉に赤外線センサでも付けて判別しようかと思っていたんだけれども、もっと良い方法を思いついた。
よく考えたら外出時は端末を常時持ち歩いているので、端末が自宅のLANに繋がっている時は自分が存在すると判別できる。
単純かつ追加機器も一切要らない上にセンサ類を使うよりも確実に思える。
やったこと
リモコンはAVC300を使っているがPCから制御の効く学習リモコンなら何でも良い。
Autohotkeyスクリプト
超絶単純なのでAHKじゃなくても何でも書けるはず。
Loop{ runwait, %ComSpec% /c ping 192.168.1.5 | find "=32" , ,Hide if Errorlevel ;未接続時処理 { if (status=FALSE) continue ControlClick,Button49,AVC300 ; モニタ電源 Sleep,2000 ControlClick,Button33,AVC300 ; ライト切 Sleep,2000 ControlClick,Button32,AVC300 ;エアコン切 status:=FALSE } else ;接続時処理 { if (status=TRUE) continue ControlClick,Button49,AVC300 ; モニタ電源 Sleep,2000 ControlClick,Button38,AVC300 ; ライト入 Sleep,2000 ControlClick,Button31,AVC300 ; エアコン入 status:=TRUE } }
良い
かなり正確というか完璧に判断して制御してくれている。
日々の動作が数アクション完全に無くなるってのはかなり気分が良い。
備考:一部Android端末がARPに応答しない件
一部Android端末に、ARPリクエストに応答しないバグ?があるらしく、使ってたのが対象機器だったようで見事に同事象が起きた。
Automateitで、該当のネットワークへの接続をトリガに、http://制御するPCのIP へのバックグラウンドアクセスするルールを作り、端末側からARPテーブル更新させるようにして回避した。