NEC Speed Wi-Fi NEXT WX01を外部プログラムから制御
2018/05/06作成
現在、UQ WiMAX2+では3日間あたり10GB以上通信すると約1Mbpsに制限されるようになりました。
以前は制限時の速度が6Mbps程度でしたので問題なく利用できたのですが、特に私の場合は自宅の固定回線代わりにしており、家族共用であるため、1Mbpsでは同時に複数の端末からアクセスがあると、速度制限の挙動が数百KB程度のサイズのファイルを並列して扱う動作(つまりWebブラウザで普通のサイトを見るような事)との相性が悪く、非常に不便です。
NEC Speed Wi-Fi NEXT WX01では現WiMAX2+と旧WiMAXの両方に対応(旧WiMAXを使うには多少の裏技が必要ですが、ここでは扱いません)しているのですが、ここで旧WiMAXで通信してみると、pingが若干遅くなるものの、明らかに快適でした。
速度制限の公式情報と上記を踏まえ、快適に通信するための条件は以下のようになります。
- 18:00~2:00以外は速度制限が無いためWiMAX2+で通信する。
- 18:00~2:00の間、直近3日間の通信が10GB未満であればWiMAX2+で通信する(ただし私の場合はこの時間帯は回線が混雑して速度が出ないため、通信量にかかわらずWiMAXに切り替えています)。
- それ以外の場合はWiMAXで通信する。
このように条件は簡単なのですが、WX01で通信を切り替えるためにはWebブラウザ経由で操作しなければならず、APIや電気的な入力は用意されていません。
また、あまりにも単調で毎日2回決まった時間に操作が必要なため、手作業で行うのも現実的ではありません。
そこでこの切り替えを用いて自動化するためにWindows用スクリプトを作成しました。
Windowsは普通のパソコンで構いませんが、私の場合は自宅サーバー上で実行させています。
スクリプトをMITライセンス(修正BSDライセンスと互換)で公開しますので、ご自由にお使いください。
このスクリプトの使用方法を以下に示します。
- このスクリプトを拡張子jseとして保存する。
- WX01上で現WiMAX2+用と旧WiMAX用の2種類のプロファイルを事前に登録する。
- スクリプトに「selectprofile WX01のIPアドレス 管理者パスワード プロファイル名」のように引数を与える。
- 上記の引数付きのコマンドをタスクスケジューラに登録し、18:00と2:00に実行するように設定する。
このままでは電源断時にプロファイルが元に戻ってしまいますので、切り替えた状態が保存されるようにしました。
- スクリプトに「save WX01のIPアドレス 管理者パスワード」のように引数を与える。
- 上記の引数付きのコマンドをタスクスケジューラに登録し、18:01と2:01に実行するように設定する。
さらに自動化を一歩進めて、旧WiMAX使用中にまれに発生する通信不能状態への対処も行いました。
- バッチファイル等を用いて定期的に外部サーバーへpingを発信するようなプログラムを作成する。
- pingに失敗した場合にスクリプトに「reboot WX01のIPアドレス 管理者パスワード」のように引数を与えて実行する。
このスクリプトを導入して3年近く経過しましたが、以前のような不便さはほとんど感じなくなりました。
旧WiMAXがサービス終了するまでは、もうしばらく使用を続けようかと思います。
目次
質問フォーム
Q&A
このサイトについて
トップページ