Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
6
Help us understand the problem. What is going on with this article?
@sugi_0000

Omron BY50S を Linux で使う (udev のイケてる設定編)

More than 1 year has passed since last update.

長年 APC の UPS を使ってきたけど、ちょっと変えてみようということで Omron の BY50S を買ってみた。

おおむね有難い先人の情報で事足りるのだけど……

しかし、日本語の情報はみんなudevの設定が微妙だ
というわけでDebian stretch での設定を記録しておく。

UPS 監視デーモンを入れる

$ sudo apt install nut

udev の設定

udev を設定して USB を挿した時に nut デーモンから読めるよう設定する。このパートが書きたかった事の殆ど全てである。

ポイントは2つ

  • 自分の設定ファイルは /etc の下に置こう
  • SYMLINK を使ってデバイスのパスを固定しよう

みんなが罠にはまっているけど、パッケージで用意される /lib/udev/rules.d/62-nut-usbups.rules を直接編集するのはやめよう。アップデート時に上書きされて後日泣くことになる。あと、分離できなくなるので自分の設定ファイルを /lib/udev 以下に置くのもやめよう。

というわけで自分のファイルは用意されている /etc/udev/rules.d 以下に置く。/etc/udev/rules.d/90-omron-ups.rules とかの名前にしておこう。
中身はこうだ

# Omron BY50S - blazer_usb
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", \
ATTRS{idVendor}=="0590", ATTRS{idProduct}=="0081", \
MODE="0664", GROUP="nut", SYMLINK+="ups"

ここでもう一つのポイントとして SYMLINK+="ups" を使おう。これで 常に /dev/ups というパスでアクセスできる。どこのポートに挿しても、同じクラスのデバイスの何番目に指してもOKだ。USB のバス番号を調べる必要もない。

設定が終わったらルールをリロードする。

$ sudo udevadm control --reload

この後 USB を抜き差ししてみて、/dev/ups と言う symlink が作られる事を確認しよう。

監視デーモン nut の設定

後は先人の情報通り設定ファイルを編集する。

/etc/nut/nut.conf

MODE=standalone

/etc/nut/ups.conf

[by50s]
driver = blazer_usb
port = /dev/ups
desc = "Omron UPS BY50S"
vendorid = 0590
productid = 0081
subdriver = ippon
default.battery.voltage.high = 13.5
default.battery.voltage.low = 11

port に先程の /dev/ups を指定する。
default.battery.voltage の high /low に関しては情報通りの値を使わせして貰った。こちらでも上手く動いている。

/etc/nut/upsmon.conf

MONITOR by50s@localhost 1 upsmon upspass master

/etc/nut/upsd.users

[upsmon]
password = upspass
upsmon master

設定のチェック

ここまで設定したら以下のコマンドでチェックする。

$ sudo -u nut /lib/nut/blazer_usb -a by50s -DDD

read: の行でそれらしき値が出てくるならOK. Ctrl+C で止める。

設定の適用

systemctl でやっても良いんだけど面倒くさいので init script で……

$ sudo /etc/init.d/nut-server restart
$ sudo /etc/init.d/nut-client restart

状態の確認

upsc で見られる

$ upsc by50s
Init SSL without certificate database
battery.charge: 100
battery.voltage: 13.50
battery.voltage.high: 13.5
battery.voltage.low: 11
device.type: ups
driver.name: blazer_usb
driver.parameter.pollinterval: 2
driver.parameter.port: /dev/ups
driver.parameter.productid: 0081
driver.parameter.subdriver: ippon
driver.parameter.synchronous: no
driver.parameter.vendorid: 0590
driver.version: 2.7.4
driver.version.internal: 0.12
input.frequency: 49.9
input.voltage: 102.5
input.voltage.fault: 0.0
output.voltage: 102.1
ups.beeper.status: disabled
ups.delay.shutdown: 30
ups.delay.start: 180
ups.load: 13
ups.productid: 0081
ups.status: OL BYPASS
ups.temperature: 47.7
ups.type: offline / line interactive
ups.vendorid: 0590
6
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
repro
世界59か国6,500以上の導入実績を持つCE(カスタマーエンゲージメント)プラットフォーム「Repro(リプロ)」を提供

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
6
Help us understand the problem. What is going on with this article?