自作プログラムに起因する清掃機器の不適切作動による同居人のオンライン会議への影響事案について【事案番号:2024-07-001】
1. はじめに
2024年7月31日、筆者が自宅にて運用していた自作プログラムにより、清掃機器(ルンバ)が不適切に作動し、同居人のオンライン会議中に連続的な動作を引き起こす事象が発生しました。本報告書では、当該事案の経緯、原因、及び影響について詳細に記述するとともに、再発防止策を検討します。
2. 事案発生の経緯
事案は、筆者が開発したネットワーク監視プログラムがトリガーとなり、清掃機器がオンライン会議中に意図せず作動を繰り返したことで発生しました。以下に、事案発生までの経緯を時系列に沿って説明します・・・
と、しっかり書き連ねようとするとなかなか時間を要してしまいそうだったので、以降はいつも通り書きたいと思います。。。
前回の記事のとおり、無事にプログラムが完成して、ラズパイ上で動くことも確認し、実運用に投入してみたところ、上記が起こりました・・・
実現したかったことは、居住者が所有するスマートフォンのWi-Fiネットワークへの接続状況をスキャンして、在宅していない時にルンバを作動させることなのですが、在宅しているにも関わらずルンバに清掃開始の命令を出してしまうことに・・・
調べてみると、どうもタイミングによってはスマホの端末がWi-Fiネットワークに接続していないということがあるようです。。。可能性としては予期できないことはなかったので、迂闊でした。。それが同居人のオンライン会議中に何度も起こってしまったということで、申し訳ないことをしました。。。
プログラムを停止し、一旦は開発を凍結していたのですが、同居人から開発再開のお許しが出たので、再発防止策の実装に着手したいと思います。
まず、改めてラズパイの死活の確認。pingを実行してみたところ、無事に反応がありましたので疎通は大丈夫ですね。
気を取り直して実行してみたところ、早速自分のスマホがスキャンされない・・・
実行ファイルの中身を見てみる。56から始まるのが自分の端末なのですが、これがスキャンだと上がってこない・・・
なんとなく薄々勘づくところですが、スマホも常時Wi-Fiに接続しているわけではないということなのでしょうね。。。特に、このときスマホはバッテリー残量が20%を下回っていて省エネモードになっていたので、通信を制限していた可能性があります。調べてないけど。
するとやっぱりこのプログラムには運用上の欠陥があることを認めざるを得ないわけで、処理の見直しが必要です。
今は15分に一回スキャンして2回連続で端末が見つからなかったら実行にしていますが、これを5分に一回スキャンにして6回連続で見つからなかった場合に実行するような力技か、
端末が見つからず不在と判定したら自動でルンバを起動するのではなく、なんらかの手段で家主に通知して、家主の承認を持ってルンバを起動するみたいに根本的なフローを見直すか。。。どっちだろうなあ。
承認依頼がつどつど来るのも面倒なので、本来的には前者の方法が理想ではあるけど、スキャンの成功率次第ですね。。。ただ、正直スマホ側の通信の仕様がわからないので、実績ベースで判断するしかないのがリスキーです。
後者の場合は通知手段を考える必要があります。手持ちの方法だとLINEボットが簡易に実装できますが、無料のメッセージ数に制限があるので、あまり闇雲にも使えないなという・・・という意味ではSlackのボットとか現実的な気もしますが、調べてみないとですね。
あと、今気づいたんですが、これこのままだと、不在中なら無限に実行をくり返してしまう欠陥がありますね。一回実行したら、一定時間はスキャンもお休みするみたいな追加の条件が必要と気づきました。まあこれはGPT先生なら造作もなかろう。
と言っている間に、3回目のスキャンが走りました。
56からはじまる端末がしっかりスキャンできていることが分かります。やっぱりスキャンできる時とできない時があるんだなあ。
どうしようかなあ。。あまり息抜きでは時またこの開発をあまり長引かせたくないのも本音なので、さくっと解決したいですが・・・次に事故を起こしたらラズパイごと捨てられてしまうかもしれない汗汗
一旦は下記の仕様を追加して、運用してみましょうか。
・これを5分に一回スキャンにして6回連続で見つからなかった場合
・一度実行したら3時間スキャンを停止する
事故がないことを祈りつつ、実績が出たら続報したいと思います。