はじめに
シリアルポートしか付いていないOMRONのUPSを購入しました。
パソコンと通信するためのソフトウェアは、OMRONのSimple Shutdown Software(オープンソース版)も使えますが、2024年3月で提供停止なので選択から外しました。
今回はNUT(Network UPS Tools)を使ったのでメモしておきます。
環境
パソコンとUPSは1対1で接続します。
- Debian12 bookworm - nut 2.8.0-7 - OMRON BU3002R
nut.confの設定
NUTのパッケージをインストールします。
sudo apt install nut
単独で動作するようにupsmon.confを編集します。
cd /etc/nut sudo cp nut.conf nut.conf-org sudo vi nut.conf
standaloneに変更します。
MODE=standalone
シリアルポートの確認
パソコンのBIOS設定でシリアルポートを有効にします。
OSを起動して、シリアルポートが認識されていることを確認します。
sudo dmesg | lv
ttyS0とttyS1の2個が認識されました。
[ 1.801048] 00:03: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A [ 1.815275] 00:04: ttyS1 at I/O 0x2f8 (irq = 3, base_baud = 115200) is a 16550A
ups.confの設定
UPSのドライバや挙動を設定します。
cd /etc/nut sudo cp ups.conf ups.conf-org sudo vi ups.conf
・シリアルポートなのでドライバはblazer_ser
・シリアルポートなのでデバイスは/dev/ttyS0
・root権限で動かすのでroot
・電源OFFコマンドをパソコンに送信後に、UPSの電源OFFするまでの時間(offdelay)
・確実にUPSの電源をOFFして、起動させるための時間(ondelay)
blazer_serはBlazer社のUPS用ドライバが使えました。
また、root権限でないと動作しませんでした。
[bu3200r] driver = blazer_ser port = /dev/ttyS0 desc = "OMRON BU3002R Serial Cable" user = root offdelay = 60 ondelay = 120
設定反映と確認
設定反映のため、サービスを再起動します。
sudo systemctl restart nut-server
サービスの状態を確認します。
sudo systemctl status nut-server
blazer_serコマンドで通信できるか確認します。
bu3200rは、ups.confで設定した名称です。
sudo /usr/lib/nut/blazer_ser -DDDDD -a bu3200r
rootで動作し、ups.confの設定が反映されています。
Network UPS Tools - Megatec/Q1 protocol serial driver 1.58 (2.8.0) 0.000000 [D3] do_global_args: var='maxretry' val='3' 0.000052 [D3] main_arg: var='driver' val='blazer_ser' 0.000058 [D3] main_arg: var='port' val='/dev/ttyS0' 0.000067 [D5] send_to_all: SETINFO driver.parameter.port "/dev/ttyS0" 0.000078 [D3] main_arg: var='desc' val='OMRON BU3002R Serial Cable' 0.000082 [D3] main_arg: var='user' val='root' 0.000087 [D1] Overriding previously specified user 'nut' with 'root' specified for driver section 0.000093 [D3] main_arg: var='offdelay' val='60' 0.000097 [D5] send_to_all: SETINFO driver.parameter.offdelay "60" 0.000102 [D3] main_arg: var='ondelay' val='120' 0.000111 [D5] send_to_all: SETINFO driver.parameter.ondelay "220" 0.000118 [D1] debug level is '5' 0.001208 [D5] send_to_all: SETINFO device.type "ups" 0.001234 /dev/ttyS0 is locked by another process
upscコマンドでも確認します。
bu3200rは、ups.confで設定した名称です。
sudo upsc bu3200r
rootで動作していることや、UPSの情報が取得できました。
Init SSL without certificate database battery.voltage: 81.90 battery.voltage.high: -1.08 battery.voltage.low: -0.87 device.type: ups driver.name: blazer_ser driver.parameter.offdelay: 60 driver.parameter.ondelay: 120 driver.parameter.pollinterval: 2 driver.parameter.port: /dev/ttyS0 driver.parameter.synchronous: auto driver.version: 2.8.0 driver.version.internal: 1.58 input.frequency: 59.9 input.voltage: 206.8 input.voltage.fault: 0.0 output.voltage: 199.9 ups.beeper.status: disabled ups.delay.shutdown: 60 ups.delay.start: 5400 ups.load: 6 ups.status: OL ups.temperature: 28.1 ups.type: online
Comments