HomeBridge でシェルを起動して、ガレージのシャッターを開け閉め出来る様にしたものの、そのままだと通常のリモコンでシャッターを開け閉めされるとその状況がわかりません。
そこで、窓の開閉状態を確認できるマグネットセンサーを使い、その状況を GPIO 端子で確認できる様にしました。
単純にセンサーを GPIO 端子とグランド端子に繋いで、GPIO 端子の方は通常時にプルアップしておけば、センサーが感知すれば GPIO 端子は0となります。
これをシャッターの上下に付ければ、閉まっている、開いている、開け閉めの途中の三つの状態を確認出来ます。
で、ついでなので、日没から夜明けまでの時間帯にシャッターの開け閉めをしたら電気もつけたり消したり出来る様にしました。
シェルを叩いて、サーボが動いたのを確認しつつ、センサーの前にマグネットを置いたり離したり。
壁の照明用のスイッチ用のサーボの動作も日没の時刻を弄ってちゃんと動いたのを確認していざシャッターのところにセット。
シャッターの動きに追従して、GPIO のステータスも問題なく動作。
照明もちゃんとオン・オフしてくれます。
で、いざ iPhone を取り出して「シャッターをオン」・・・・ ん?
照明のスイッチ用のサーボが動かない?
色々試してみたところ、パソコンから直接サーバーのシェルを起動すれば問題なく動作するものの、iPhone のホームアプリからだと一部が動かない。
で、結局シェルから別のシェルを起動していると、そこが動かないことが分かりました。
シャッターの開閉のシェルから、自動で照明を点けるシェルを呼び、そのシェルからは夜間かどうかを別のシェルに依頼して確認し、スイッチを入れるか判断しています。
で、普通にシェルとして起動すれば問題ないのに、ホームアプリからだとシャッターの開閉はしても照明のオン・オフは動かない。
って訳で、シャッターの開閉のシェルの中で、自分で夜間かどうかを確認して照明のスイッチを動かす様にしたら問題解決。
でもなんで子供のシェルが動かないのだろう?
そこで、窓の開閉状態を確認できるマグネットセンサーを使い、その状況を GPIO 端子で確認できる様にしました。
単純にセンサーを GPIO 端子とグランド端子に繋いで、GPIO 端子の方は通常時にプルアップしておけば、センサーが感知すれば GPIO 端子は0となります。
これをシャッターの上下に付ければ、閉まっている、開いている、開け閉めの途中の三つの状態を確認出来ます。
で、ついでなので、日没から夜明けまでの時間帯にシャッターの開け閉めをしたら電気もつけたり消したり出来る様にしました。
シェルを叩いて、サーボが動いたのを確認しつつ、センサーの前にマグネットを置いたり離したり。
壁の照明用のスイッチ用のサーボの動作も日没の時刻を弄ってちゃんと動いたのを確認していざシャッターのところにセット。
シャッターの動きに追従して、GPIO のステータスも問題なく動作。
照明もちゃんとオン・オフしてくれます。
で、いざ iPhone を取り出して「シャッターをオン」・・・・ ん?
照明のスイッチ用のサーボが動かない?
色々試してみたところ、パソコンから直接サーバーのシェルを起動すれば問題なく動作するものの、iPhone のホームアプリからだと一部が動かない。
で、結局シェルから別のシェルを起動していると、そこが動かないことが分かりました。
シャッターの開閉のシェルから、自動で照明を点けるシェルを呼び、そのシェルからは夜間かどうかを別のシェルに依頼して確認し、スイッチを入れるか判断しています。
で、普通にシェルとして起動すれば問題ないのに、ホームアプリからだとシャッターの開閉はしても照明のオン・オフは動かない。
って訳で、シャッターの開閉のシェルの中で、自分で夜間かどうかを確認して照明のスイッチを動かす様にしたら問題解決。
でもなんで子供のシェルが動かないのだろう?
コメント
コメントを投稿