APC UPSをUSB接続で使用しているのでapcaccessでステータスを取得して
line V と 負荷率から消費電力を記録する。
sudo apt install apcaccessをインストールする
$sudo apt install apcaccess
シャットダウンするバッテリー残量等々あるのですが、その設定を解説してサイトはいくらでもあるので検索してください(不親切w
apcaccessの出力結果
ここから必要なLINEV(電源電圧)とLOADPCT(負荷率)を取り出します。
UPSの出力電圧を監視したほうが良い気がしますが値があまり変わらないのでw
うちのUPSは550VA 330W 効率悪w
chitae@lubuntu-server:~/bin$ sudo apcaccess
APC : 001,037,0929
DATE : 2026-01-19 09:03:07 +0900
HOSTNAME : lubuntu-server
VERSION : 3.14.14 (31 May 2016) debian
UPSNAME : lubuntu-server
CABLE : USB Cable
DRIVER : USB UPS Driver
UPSMODE : Stand Alone
STARTTIME: 2026-01-14 12:07:54 +0900
MODEL : APC RS 550S
STATUS : ONLINE
LINEV : 99.0 Volts
LOADPCT : 10.0 Percent
BCHARGE : 100.0 Percent
TIMELEFT : 29.3 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME : 300 Seconds
SENSE : Medium
LOTRANS : 82.0 Volts
HITRANS : 123.0 Volts
ALARMDEL : No alarm
BATTV : 13.7 Volts
LASTXFER : Low line voltage
NUMXFERS : 6
XONBATT : 2026-01-18 12:36:12 +0900
TONBATT : 0 Seconds
CUMONBATT: 12 Seconds
XOFFBATT : 2026-01-18 12:36:14 +0900
SELFTEST : NO
STATFLAG : 0x05000008
SERIALNO : 3B1645X35299
BATTDATE : 2016-11-12
NOMINV : 100 Volts
NOMBATTV : 12.0 Volts
NOMPOWER : 330 Watts
FIRMWARE : 941.c3 .A USB FW:c3
END APC : 2026-01-19 09:03:20 +0900
値を取り出すシェルスクリプト
直接消費電力を表示する項目がないので負荷率とUPSの容量から計算してます。
元はどこかから拾ってきました。検索し直したけど見つからんw
apc-w.sh
#!/bin/bash
# apcaccessの出力結果を取得
UPS_STATUS=$(apcaccess)
# 1. 現在の負荷率(%)を取得
LOAD_PCT=$(echo "$UPS_STATUS" | grep LOADPCT | awk '{print $3}')
LOAD_LVOLT=$(echo "$UPS_STATUS" | grep LINEV | awk '{print $3}')
# 2. 定格出力容量(W)を取得(通常はNOMPOWERという項目にあるが、ない場合はMODELから推測する必要あり)
# 多くの現代的なAPC機器はNOMPOWERを出力します
NOM_POWER=$(echo "$UPS_STATUS" | grep NOMPOWER | awk '{print $3}' | cut -d. -f1)
# NOMPOWERが取得できない場合のフォールバック(例: 750VA/500Wの機器なら500を設定)
if [ -z "$NOM_POWER" ]; then
NOM_POWER=330 # <- あなたのUPSの定格ワット数に合わせて変更してください
fi
# 3. 消費電力(W)を計算 (負荷率% * 定格W / 100)
# bc コマンドを使って小数点計算を行う
POWER_WATT=$(echo "scale=2; $LOAD_PCT * $NOM_POWER / 100" | bc)
#echo "UPS Load: $LOAD_PCT %"
echo "$LOAD_LVOLT"
#echo "$LOAD_PCT"
#echo "Estimated Power: $POWER_WATT W"
echo "$POWER_WATT"
/etc/mrtg.cfg の設定
#################################################################
#
#Target[inV]: `/usr/sbin/apcaccess status | awk '/^LINEV/ {print int($3)}'`
Target[inV]: `/home/chitae/bin/apcups-w.sh`
MaxBytes[inV]: 600
Title[inV]: input VW
PageTop[inV]: <h1>input Volt&W</h1>
Options[inV]: growright,absolute,gauge,nopercent,noinfo
WithPeak[inV]: ymw
#unscaled[inV]: dwmy
YLegend[inV]: Volt&W
ShortLegend[inV]:
LegendI[inV]: inputV
LegendO[inV]: out-W
Legend1[inV]: inputV
Legend2[inV]: out-W
ThreshMaxI[inV]: 120
ThreshMinI[inV]: 93
#################################################################
あとはinde.htmを出力してrmtgの2回動かせば終わり
保存したらmrtgのindexmakerでindexhtmlを作成する
$sudo indexmaker /etc/mrtg.cfg > /var/www/mrtg/index.html.tmp
エラーがなければ黙って終了しますw
index.htmlを退避しindex.html.tmpをindex.htmlへ書き込みます
$sudo cp /var/www/mrtg/index.html /var/www/mrtg/index.html.20260114-1201
$sudo cp /var/www/mrtg/index.html.tmp /var/www/mrtg/index.html
mrtgデータを作成します。
sudo su
#LANG=C LC_ALL=C /usr/bin/mrtg /etc/mrtg.cfg --lock-file /var/run/mrtg
これ私の環境だとなぜか sudoで実行するうまく行かないのでsudo su でrootになってから実行しました。
ブラウザでmrtgのページへ行って確認します。
30分くらいしないと目に見えてデータが蓄積されないです。
朝電子レンジとオーブン使うと加減ギリギリの95Vまで下がってる
うちは商用電源-太陽光蓄電池-太陽光蓄電池-UPSと3段階のバッテリーを経由してるのでほぼ停電はない。

コメントを残す