パスワードを忘れた? アカウント作成
385414 journal

BAKの日記: UPS

日記 by BAK

今朝,雷で瞬電が起きる. PC は大丈夫だったのだが,OpenBlockS がリブートする. 電源弱いなぁ…

というわけで,パソコンショップに UPS を買いに行く. 濃いショップではないので,個人ユーザ向けの UPS しか置いてない. 良くわからんメーカと,オムロンと,APC の UPS がある. 交換用バッテリの入手性とか考えて,APC のを選ぶ (とは言っても,実際に交換するかどうかは謎). 型番は APC ES 500 という,平型のやつである.

で,おうちに帰って箱を開けてみる.

で,でかい…

何となくイメージしてたより一回り大きい. 気を取り直してセットアップを始める.

蓋を開けてバッテリを接続し(危険防止のため,出荷時にはマイナス端子を接続してないそうである),充電する. ステータス検出は USB で,Windows 用のユーティリティが附属している.

やはりここは Linux で,と思い,おもむろに Linux マシンにつないでみる.

hiddev0: USB HID v1.10 Device [APC APC ES 500 FW:803.p4.A USB FW:p4] on usb1:17.0

と認識される.hiddev を使うようである. USB のひゅーまんいんたーふぇーすでばいす,というのは,キーボード・ジョイスティックのようなほんとの「ヒューマンインターフェース」だけではなく,電圧計などの低速測定機器を接続することが想定されている. というわけで,これは正しいのである.

さて,どうやって使うのかな,と /usr/src/linux/Documentation/usb/hiddev.txt を読む. とりあえず,デバイスファイルを作って open(), read() してやれば,デバイス側が能動的に送ってくる hid と value のペアは取得できるようである. というわけで,C でこちょこちょとプログラムしてみる.

とりあえず動いているようである. どの hid がどういう意味かいまいち不明. まぁ,何となく,というレベルでは見当はつくのだけどね. コンセントから AC プラグを抜くと,ある hid の値が変化し,カウントダウンしていく hid があるな,というぐらい.

とかやってると,いつまでたっても使えないので,適当なところで諦めて,ステータス監視は Windows で使うことにするかしらん.

追記: と思ったら apcupsd でサポートしてるようである. ただ,configure 時に --with-usb とか,USB まわりのオプションを追加してやらないと,うまく動かないようだ.

更に追記: apcupsd でうまく動くようです. AC プラグを抜くと power fail するし(init にイベントが送られて),差し込むと power return する. ステータスもちゃんと取得できる. あっさり動いてラッキー,という反面,プログラムいぢりのネタが無くなってしまってがっかり,という気分も.

更に更に追記: apcupsd であるが,web インターフェースでのステータス監視もできるようなので晒してみる. 実は,UPS の USB ケーブルは Eden 800MHz のマシンに接続してあるのだが,web サーバは OpenBlockS266 だったりする. CGI 自身がリモートマシンのステータスを取得できるようである.

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

ハッカーとクラッカーの違い。大してないと思います -- あるアレゲ

読み込み中...