目次
動機(必要に応じて読み飛ばしてくださいまし)
SwitchBot をはじめ スマート化やスマート家電に 割と距離を置いていたのですが、ある問題を解決するために 検討しました。
その問題は 時々自宅の無線が調子が悪くなって、ルーターを再起動すると嘘のように解決するアレです。
ルーターに定期再起動などの機能があれば良かったのですがないので、最初は単純なスマートでない再起動できるタイマーなんかを検討していたのですが
、せっかくお金出すなら スマートになる方にしようとしました。
開封の儀式とか初期導入レビューは先人達の活躍でたくさんあるので割愛します。
ひとつだけ言うと 極性コンセントプラグを採用しているので、電源タップなどによっては挿さらないくらいでしょうか。
結論から
ルーターの再起動計画が上手くいったかですが、ほぼ成功しました。
購入後じゃないと分からない実験と試行錯誤(おおげさ)で スマートプラグミニの仕様を知って実現しました。
定期再起動は簡単
まず定期再起動は簡単でした。
スケジュール機能自体は SwitchBot のアプリから簡単に設定できます。
スマートプラグミニ でルーターを再起動する時に、他の家電の再起動と大きく異なるのが、コントールするための基盤である 無線環境がルーターの電源をオフで失われることです。
しかしスケジュールは スマホのアプリで設定して保存した時点で、スマートプラグミニの記憶領域に保存されるようです。
なので無線環境がなくなっても、ちゃんと電源をオンにするところまで作動しました。
1ボタンで再起動する方法(失敗事例)
SwitchBot のアプリには先ほどのスケジュールと同列にオートメーションという機能があり、シーンなどの条件に応じて命令を出すことができます。
シーンは条件となるわけですが、そこに手動実行というものがあり、アプリのホームにボタンとして配置することも可能になっています。
なので、あれ無線の調子悪い時に スマホからアプリを開くボタンをタップするの2ステップで再起動することができます。
さきほどのスケジュールと同様くらいに楽にできると思い、最初
条件:手動実行
命令1:スイッチオフ
命令2:スイッチオン
・・・としましたが、見事に失敗します。スイッチがオフになったきりでオンになりません。まだログにはオフに失敗と出ます。
1ボタンで再起動する方法(仕様を考察)
オフのままという事実から、スケジュールのように記憶領域に一括で命令が保存される線は捨てられます。そしてオフということに成功しているのに、ログにはオフに失敗したと記録されるということから、アプリから無線環境を伝って命令が送られ、その成功をフィードバックしていると予想されます。オフしたことを返答しようとしたら、すでにルーターがオフしているので無線環境がないからです。
1ボタンで再起動する方法(命令の順番を考察)
条件を指定して命令を実行する場合 大抵 wait が存在しますが、SwitchBot には存在しません。
命令の順序を入れ替えるインターフェイスもありません。
念の為以下のようにしてみました。
件:手動実行
命令1:スイッチオン
命令2:スイッチオフ
結果は オンはログとしては成功(元々オンなのでオンが維持)、オフで成功するがログに失敗と出ます。順番という概念はありそうです。
1ボタンで再起動する方法(遅延実行による成功)
wait はありませんが、命令 に遅延実行というものがあります。最小単位は 1分です。
以下のようにしてみました。
件:手動実行
命令1:1分後にスイッチオン
命令2:スイッチオフ
結果は オフになり、1分後にオンになりました成功です。
ちなみにに命令を逆にした場合は成功しませんでした。
おそらく動きはこうです。
命令1送信→記憶領域に命令を保存→フィードバックして命令2を送信→遅延でないためオフを即時実行→フィードバック→(ルータがオフのため送信失敗)→フィードバックがないためログには失敗と出る→記憶領域にある遅延実行が実行されオン実行→結果的には再起動に成功
遅延実行によりほぼ成功
遅延実行を最初の命令に入れることでオフでルーターが通信できなくてもルータがオンになり結果成功になりますが以下の問題があります。なのでほぼ成功としました。
・ログにはどうしてもオフに失敗とでる
・ルータがオンになった後に 2割位の確率でプラグがうまく無線を掴まない
(DHCPによるIP取得に失敗して、インターネットに接続中のステータスになる)