Date: 2016.05.11
Home / Windows. / スティックPCにapcupsdを導入。
結局iTunes起動しっぱなしも厳しくて放置していたスティックPC「m-Stickシリーズ MS-NH1-W10」。

以前の記事 ⇒ スティックPCの使い道を考えてみた。

先日購入したUPS「APC RS 400 BR400G-JP」の管理にまずはこれにapcupsdを入れてみました。


このPC自体を管理する必要性はあまりないんですが、1台はUPSとUSBシリアルケーブルで直接接続する必要があり、設置場所の関係等からこれをマスターとして使う事にしました。
apcupsdは対象OSに載ってなかったけど、Windows10でも問題なく動作してくれました。

apcupsd導入

apcupsd公式サイトからWindows用をダウンロードします。
最新版は3.14.13です。

ダウンロードしたらインストーラーを実行します。
基本、デフォルトで先に先に進めば問題なし。
途中でコンフィグ編集を求められますが、後からでも変更は可能です。
コンフィグを閉じると、タスクトレイアイコン、サービスのインストールも行われます。

apcupsd状態確認

インストール完了後、タスクトレイアイコンを右クリック→StatusでUPSのステータスが確認できます。
正常にUPSと通信できていたらステータスやバッテリーレベルが確認できます。
apcupsd Windowsステータス画面

apcupsdコンフィグ(テスト)

テストの為にコンフィグは以下のように。
(UPSCABLE、UPSTYPEは今回はusbである必要がありますが、デフォルトでusbだったので触っていません。)
UPSNAME RS400
ONBATTERYDELAY 10
BATTERYLEVEL 0
MINUTES 0
TIMEOUT 60
KILLDELAY 120

パラメータ名説明
UPSNAMEステータス画面等に表示する名前。なくてもいい。
ONBATTERYDELAY値秒経過しても電源が復旧していない場合にONBATTERY稼働と判断してPCに上にもポップアップメッセージが表示される。この間に復旧したら一切何もしない。瞬断対策。
BATTERYLEVELバッテリーレベルが値%以下になったらシャットダウンと判断。
MINUTESバッテリー稼働時間が値分以下になったらシャットダウンと判断。
TIMEOUTONBATTERY稼働になってから値秒経過したらシャットダウンと判断。
KILLDELAYONBATTERY稼働になってから値秒後にUPSの電源をOFFにする。
※BATTERYLEVEL、MINUTES、TIMEOUTどれかの条件にマッチした時点でシャットダウンと判断される。

コンフィグを編集した場合はWindowsの場合はWindowsサービスから「Apcupsd UPS Monitor」を再起動します。

apcupsdテスト

ケース1.UPSの電源をコンセントから抜線し、すぐにコンセント接続。何も起きない。[OK]
 ⇒ただ、6秒ぐらいで「ONBATTERY」ポップアップ出てくる。ONBATTERYDELAYのデフォルト値が6秒だったけど、実は変更できない?まあテストしやすいようにちょっとのばしただけでどっちでもいいんだけども。
ケース2.抜線し、10秒経過後に「ONBATTERY」ポップアップ発生。その後すぐにコンセント接続。「ONLINE」ポップアップ発生し、シャットダウンは起こらない。[OK]
ケース3.抜線し、60秒経過後スティックPCがシャットダウン。[OK]
ケース4.抜線から120秒経過でUPSの電源がOFFにな・・・ならない?![NG]

はい、UPSの自動OFFだけ想定通りになりませんでした。
まあ、別にいいっちゃあいいんですが、自動シャットダウンできないルータ等も繋ぐ予定なので低消費電力とはいえ動き続けられたらバッテリーには優しくないしできればUPS側も落としたいんですよねぇ。

apcupsd KILLDELAY対応

で、あれこれ調べてみたところLinux版だけどKILLDELAYを有効にするにはどうも「-p」の引数をつけて起動しないといけないようでした。
Windowsでも同じ事してあげればいいんでないのと試してみました。

サービスに引数をつけるにはサービスの画面から手動起動するのであればサービスのプロパティの「開始パラメータ」に記載すればいいだけの話ですが、自動起動の場合はレジストリを修正してあげないといけません。
※後で改めて公式のオンラインマニュアルに目を通してみたら「Killpower under Windows」の項に載ってましたが。

レジストリエディタを起動して、以下のキーを開きます。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Apcupsd\ImagePath

値のデータを編集します。(-pつけます。)
"c:\apcupsd\bin\apcupsd.exe" /service -p

「OK」で閉じて保存し、Windowsを再起動します。

apcupsd再テスト

ケース1.[OK]
ケース2.[OK]
ケース3.[OK]
ケース4.抜線から120秒経過でUPSの電源がOFFに・・・なったぁ![OK]

とりあえずこのPCについては想定通りの動きが確認できたので次はマスター機からネットワーク経由でステータスを引き渡して制御するスレーブ機の確認をしていきたいと思います。

【関連記事】
UPSを買ってみた。
おうちで自作NAS - FreeNAS UPS連動編
CentOSなRaspberry Pi 3にapcupsd導入。
おうちでVMware - ESXi UPS連動編


Secret

TrackBackURL
→http://000dandelion000.blog.fc2.com/tb.php/79-5697539d