AP9617を設定する


Blogにも書いているとおりAPCの1500RMを導入した。
http://www.fnf.jp/mt421/fnf-search.fcgi?IncludeBlogs=1&search=UPS%28

従来はSU1400を使っていたのだが、これはホストインタフェースがシリアルしか無く不便だった。
しかもそのシリアルケーブルは専用のものが必要であり、USB-RS232C変換インタフェース経由ではapcupsdが動作しない。
このSU1400は過熱防止の意味からバッテリを筐体の外に出していて置き場所に困ってもいた。
そこで中古で安価に出ていた1500RM(RM=ラックマウントタイプ)を導入したというわけだ。
程度の良いもので5千円、中程度で3千円、バッテリエラーだと500円が相場か。

この世代になるとインタフェースはUSBがスタンダードとなり、apcupsdともUSBで通信が出来る。
なおUSBドライバをインストールせずにapcupsdをインストールした場合は、一旦削除してからUSBドライバを含んだインストールをするのが簡単である。

SU1400もそうなのだが、1500RMにもネットワークインタフェースカードを取り付けることが出来る。
従来からそれは知っていたのだが、このカードが4万円もするシロモノだったので手が出なかった。
が、最近この中古が出回っていることに気づく。
だったら1500RMではなくSU1400にネットワークカードを挿入し、ネットワーク経由で情報を取得しても良かったではないかとも思ったが既に3千円で1500RMを買ってしまった。





そこで1500RMにネットワークカードであるAP9617を突っ込んでみようと考えた。
USB接続でapcupsdは動作しているが、ネットワークカードを使うことで外部からリモートでUPSのステータスをみたりON-OFFも可能になる。
もっともUPSを切ってしまうと現在の接続ではルータも切れてしまうのでその後の通信は不可能になる。
従ってUPSを切るのではなく再起動かけるようにしなければならない。

AP9617は中古で2,000〜3,000円程度、付属品としてソフトウエアのCDとRS-232Cケーブルが付属してくるのは程度の良いものであり、付属品無しのものも多い。
私はこの付属品無しのものを買った。
が、シリアルケーブルは何を使うのだろうか。

APCの場合は様々な品番のシリアルケーブルがあり、940-0024Cを使えと書いてあるページがあったり940-0020Dで無ければダメだというページあり、いやいや940-0020Cが本来の品番だtかかれている所もある。
なお本家には940-0024Dを使えあるいは付属品を使えと書いてあり、この940-0024Dは有償版パワーチュートの付属品で別売りはしていないものだ。

各配線の結線図は以下の通りだが、940-0020はTxDやRxDが接続されていないので明らかに違うだろう。



だとすると940-0024系になるのか。
ところが940-0024Cの結線そのままでは認識しなかったのだ。

何故シリアルケーブルでの接続が必要かと言えば、AP9617のIPアドレスはシリアルケーブル接続で設定しなければならないからだ。
シリアルケーブルはAP9617に挿すのではなく、UPS本体のシリアル端子を経由してインタフェースする事になる。
新品のAP9617であればDHCPからIPアドレスを貰う設定なのだが、中古となれば何かしらのIPアドレスがセットされているとみるべきだ。

試行錯誤と言うほど大げさではないが、940-0014CのPC側のショートしてある端子(1-4,7-8)を切り離したケーブルでインタフェース出来た。
ちなみにこの結線のままシリアル接続のapcupsdも動作する。



古いノートPCを引っ張り出し、シリアル接続してターミナルソフトを2400bpsで起動するとIDとPASSWORDを求める画面になる。



デフォルトのIDとパスワードは共にapcだが、おそらく中古ならば他の設定に変えられているだろう。
これをリセットするのはリセットボタンの操作で、リセットボタンを押して再起動中に再度リセットボタンを押すという二度押しで解除が出来る。
解除後は一定時間以内にログインしないと解除が無効になる。

ログイン出来れば後は簡単で、メニューに従って操作すればいい。
とりあえずIPアドレスを書き換えればあとはTelnetからでもブラウザからでも操作はできる。
なおTelnetやWeb設定は当たり前だがEnableになっていることを確認してログオフする。
(ログオフしないとネットワークからの接続が拒否される)

あとはブラウザから当該IPアドレスをアクセスすれば以下のような画面が現れる。



これでOKなのだが、ファームのバージョンを上げてみたくなった。
現在の状態は以下の通りだ。



V1.0.5なのだが、最新版は3.7.3のようだ。
FTP接続するとそのバイナリファイルが見えるのだが、これを上書きすればいいのだろうか。
ヘタすると一発お釈迦なのでちょいと恐い。

APCのサイトなどで情報とファームのダウンロードを試みるが、パスワードで保護されていたりリンクが切れていたりして難航した。
既に旧製品となっているのでサイト側のメンテも出来ていないのだろう。
でもまあ色々検索すれば見つかるもので、ダウンロード出来る最新版を入れてみることにする。
EXEファイルをWindows上で実行するとコマンドプロンプト上でアップデートが開始される。



アップデートは数分で終了し、Telnetで確認してみると以下のようになっている。

この後問題は発生した。
Telnetのメニューでどの番号を入力しても何も表示されないのだ。
ななななんだ?
FTPで中身をみてみるとapc_hw02_aos373.binのみしかない。
最初はapc_hw02_aos105.binとapc_hw02_sumx_105.binがあったのだ。
そこでFTPでapc_hw02_sumx_373.binをアップロードしてみる。
と、FTPアクセスが出来なくなった。
ありゃ。
Telnetでは接続出来ているが何も変わっていない。
ブラウザからアクセスしようとすると必要なファイルがないと言われる。

古いファイルを保存しておけば良かった…
って、それを読み込ませることが出来るかどうかは不明なのだが、仕方がないのでシリアル接続しようかと再度古いノートPCを持ち出す。
と、ブラウザを見るとなにやらリロードしている。
そのうちログイン画面になった。

おっ!

どうやらリブート中か何かだったようだがずいぶん時間がかかるんだなぁ。
ログインするとメニュー系も新しくなっており、WAPアクセスも可能になっている。



設定等もバージョンが上がって簡単になり、メール通知の設定なども同様解りやすくなった。

ネットワークでインタフェースが取れたことでsnmpを使ってapcupsdを動作させることが出来る。
apcupsd.conの変更点は以下の通りだ。
【USB接続の場合】
UPSCABLE usb
UPSTYPE usb
DEVICE

【snmp接続の場合】
UPSCABLE ether
UPSTYPE snmp
DEVICE 192.168.1.60 161 APC public
(DEVICE UPSのIPアドレス ポート MIB コミュニティ名)

ただしapcupsd-3.14.4ではsnmp経由でバッテリ電圧が取得出来なかった。
apcupsd-3.14.8は改善されているが、1V単位の情報しか取得していないのか最大1Vの電圧誤差が生じる。
なおapcupsd経由ではなく独自に取得すればバッテリ電圧を100mV単位で取得出来る。
現在多くの情報はMRTGからダイレクトにMIBを指定しているが、ライン電圧と出力電圧に関してのみはapcupsd経由で取得した上で演算し、100V±10Vを拡大表示している。


#!/usr/bin/perl
$cond = `/usr/local/sbin/apcaccess`;
$cond =~ /LINEV (\d\d\d\.\d) Volts/;
$line = $1;
$cond =~ /OUTPUTV (\d\d\d\.\d) Volts/;
$load = $1;
$line2 = 100 - ((110 - $line) * 5);
$load2 = 100 - ((110 - $load) * 5);
print "$line2\n$load2\n";
exit;

代表的な項目は以下の通り。
バッテリ残量(%).1.3.6.1.4.1.318.1.1.1.2.2.1.0
内部温度(℃).1.3.6.1.4.1.318.1.1.1.2.2.2.0
内部温度(100m℃).1.3.6.1.4.1..318.1.1.1.2.3.2.0
バックアップ時間(分).1.3.6.1.4.1.318.1.1.1.2.2.3.0
入力電圧(V).1.3.6.1.4.1.318.1.1.1.3.2.1.0
出力電圧(V).1.3.6.1.4.1.318.1.1.1.4.2.1.0
負荷(%).1.3.6.1.4.1.318.1.1.1.4.2.3.0
バッテリ電圧(100mV).1.3.6.1.4.1.318.1.1.1.2.3.4.0

snmpwalk -v 1 -c public 192.168.1.60 .1.3.6.1.4.1.318.1.1.1
SNMPv2-SMI enterprises.318.1.1.1.1.1.1.0 = STRING "Smart-UPS 1500 RM"
SNMPv2-SMI enterprises.318.1.1.1.1.1.2.0 = STRING "APC 1500"
SNMPv2-SMI enterprises.318.1.1.1.1.2.1.0 = STRING "617.3.A"
SNMPv2-SMI enterprises.318.1.1.1.1.2.2.0 = STRING "03/15/04"
SNMPv2-SMI enterprises.318.1.1.1.1.2.3.0 = STRING "AS0712312285"
SNMPv2-SMI enterprises.318.1.1.1.1.2.4.0 = ""
SNMPv2-SMI enterprises.318.1.1.1.2.1.1.0 = INTEGER 2
SNMPv2-SMI enterprises.318.1.1.1.2.1.2.0 = Timeticks (0) 0 00 00.00
SNMPv2-SMI enterprises.318.1.1.1.2.1.3.0 = STRING "03/13/07"
SNMPv2-SMI enterprises.318.1.1.1.2.2.1.0 = Gauge32 100
SNMPv2-SMI enterprises.318.1.1.1.2.2.2.0 = Gauge32 23
SNMPv2-SMI enterprises.318.1.1.1.2.2.3.0 = Timeticks (828000) 2 18 00.00
SNMPv2-SMI enterprises.318.1.1.1.2.2.4.0 = INTEGER 1
SNMPv2-SMI enterprises.318.1.1.1.2.2.5.0 = INTEGER 0
SNMPv2-SMI enterprises.318.1.1.1.2.2.6.0 = INTEGER -1
SNMPv2-SMI enterprises.318.1.1.1.2.2.7.0 = INTEGER -1
SNMPv2-SMI enterprises.318.1.1.1.2.2.8.0 = INTEGER 27
SNMPv2-SMI enterprises.318.1.1.1.2.2.9.0 = INTEGER 0
SNMPv2-SMI enterprises.318.1.1.1.2.2.10.0 = INTEGER 0
SNMPv2-SMI enterprises.318.1.1.1.2.3.1.0 = Gauge32 1000
SNMPv2-SMI enterprises.318.1.1.1.2.3.2.0 = Gauge32 234
SNMPv2-SMI enterprises.318.1.1.1.2.3.4.0 = INTEGER 276
SNMPv2-SMI enterprises.318.1.1.1.3.1.1.0 = INTEGER 1
SNMPv2-SMI enterprises.318.1.1.1.3.2.1.0 = Gauge32 98
SNMPv2-SMI enterprises.318.1.1.1.3.2.2.0 = Gauge32 100
SNMPv2-SMI enterprises.318.1.1.1.3.2.3.0 = Gauge32 97
SNMPv2-SMI enterprises.318.1.1.1.3.2.4.0 = Gauge32 50
SNMPv2-SMI enterprises.318.1.1.1.3.2.5.0 = INTEGER 9
SNMPv2-SMI enterprises.318.1.1.1.3.3.1.0 = Gauge32 986
SNMPv2-SMI enterprises.318.1.1.1.3.3.2.0 = Gauge32 1000
SNMPv2-SMI enterprises.318.1.1.1.3.3.3.0 = Gauge32 979
SNMPv2-SMI enterprises.318.1.1.1.3.3.4.0 = Gauge32 500
SNMPv2-SMI enterprises.318.1.1.1.4.1.1.0 = INTEGER 2
SNMPv2-SMI enterprises.318.1.1.1.4.1.2.0 = INTEGER 1
SNMPv2-SMI enterprises.318.1.1.1.4.2.1.0 = Gauge32 97
SNMPv2-SMI enterprises.318.1.1.1.4.2.2.0 = Gauge32 50
SNMPv2-SMI enterprises.318.1.1.1.4.2.3.0 = Gauge32 7
SNMPv2-SMI enterprises.318.1.1.1.4.3.1.0 = Gauge32 979
SNMPv2-SMI enterprises.318.1.1.1.4.3.2.0 = Gauge32 500
SNMPv2-SMI enterprises.318.1.1.1.4.3.3.0 = Gauge32 78
SNMPv2-SMI enterprises.318.1.1.1.4.3.4.0 = Gauge32 0
SNMPv2-SMI enterprises.318.1.1.1.5.1.1.0 = INTEGER 4

他はMIBブラウザで。