March 21 Wed, 2012
USB接続の電源制御装置で自宅ルータを自動リブートする
Posted by yoosee on Gadget at 2012-03-22 12:11 JST1 USB Net Power 8800 Single Outlet Network AC Power Controller
以前から自宅のルータがインターネットに繋らなくなることがしばしばあり、ルータのファームをあげたり交換したり幾つか方法を試してみたのだがどうもうまくいかない。恐らくISPであるComcast側の問題なのだろう。幸い殆どの場合は電源をOff/Onすれば繋がるのだが、最近頻度が高くなってきたのとなんにせよ面倒、かつ外から自宅への接続などは自宅にいないと復帰できない事もあり、なにか解決方法が無いかと思って見つけたのがこれ。 端的に言えばUSBからオン・オフを制御できるAC電源のソケットである。 この手のものはサーバ管理用として幾つもあるが大抵は高価でサイズも大きい。これはそこまで多げさではなく、送料を入れても30ドル程度とお手軽である。基本は Windows 用の付属ソフトからの操作になるが、ちょっと調べてみると Linux からも Python で制御するコード usbnetpower8800.py を見つけた。 Ruby から使いたかったので ruby-usb を使ってポートした。 ステータスを取るコードがどうも動かないのだが、とりあえず用途には足りるので置いておく。
うちではこのアダプタにルータの電源を繋ぎ、自宅の Debian から外の4,5箇所に 10分おきに Ping をうち、全てが Timeout した場合にルータの電源をオフ→オンして再起動する、というのを仕込んで以降、数日に1度くらい再接続しているようだが、こちらは殆どそれを意識せずに生活している。大変よい買い物をした。
基本的にはUSB経由で電源を操作できるということなので、なにかの監視系ソフトと組み合わせてアラートが出たら電源をONにして繋いだ回転灯をつける、なんて事もできるわけで、30ドルくらいで意外と使いでのあるデバイスである。日本でも取扱いがあればいいのに。唯一残念なのはUSB接続が切れた際の挙動が電源オフ固定であることくらいか。これを選べれば完璧なのだが。