Raspberry Pi と BY50S と Ready NAS の連携

Network UPS tool を使って Raspberry Pi とオムロンのUPS BY50S、そして Ready NAS を連携させます。

次のサイトを参考にさせていただきました。ありがとうございました。

NUT のセットアップ

NUT をインストールして、BY50S と連携できるようにします。

$ sudo apt-get install nut

ベンダーIDとデバイスIDを確認して、ルールに追記します。

$ sudo lsusb | grep -i omron

idVendorとidProductをメモしておく
 → Bus 001 Device 005: ID 0590:0081 Omron Corp. 

vi /lib/udev/rules.d/52-nut-usbups.rules
 → 以下を追記
-------
# omron UPS BY50S - blazer_usb
ATTR{idVendor}=="0590", ATTR{idProduct}=="0081", MODE="664", GROUP="nut"
-------

NUT を設定します。

$ sudo vi /etc/nut/nut.conf
 → モードを変更
-------
MODE=standalone
-------

$ sudo vi /etc/nut/ups.conf
 → 以下を追記
-------
[ups]
     driver    = blazer_usb
     port      = auto
     vendorid  = 0590
     productid = 0081
     subdriver = ippon
-------

$ sudo vi /etc/nut/upsd.users
 → ユーザとパスワードを追加
-------
    [upsmon]
            password  = pass
            upsmon master
-------

$ sudo vi /etc/nut/upsmon.conf
 → いろいろ設定がありますが、参考にさせていただいたサイトの情報をそのままコピらせていただきました m(__)m
-------
RUN_AS_USER root
MONITOR ups@localhost 1 upsmon pass master
MINSUPPLIES 1
SHUTDOWNCMD "/sbin/shutdown -h +0"
NOTIFYCMD "/etc/nut/notifycmd"
POLLFREQ 5
POLLFREQALERT 5
HOSTSYNC 15
DEADTIME 15
POWERDOWNFLAG /etc/killpower
NOTIFYFLAG ONLINE       SYSLOG+WALL+EXEC
NOTIFYFLAG ONBATT       SYSLOG+WALL+EXEC
NOTIFYFLAG LOWBATT      SYSLOG+WALL+EXEC
NOTIFYFLAG FSD          SYSLOG+WALL+EXEC
NOTIFYFLAG COMMOK       SYSLOG+WALL+EXEC
NOTIFYFLAG COMMBAD      SYSLOG+WALL+EXEC
NOTIFYFLAG SHUTDOWN     SYSLOG+WALL+EXEC
NOTIFYFLAG REPLBATT     SYSLOG+WALL+EXEC
NOTIFYFLAG NOCOMM       SYSLOG+WALL+EXEC
NOTIFYFLAG NOPARENT     SYSLOG+WALL+EXEC
RBWARNTIME 43200
NOCOMMWARNTIME 300
FINALDELAY 5
-------

停電時に Ready NAS をシャットダウン

notifycmd で NAS にシャットダウンを指示します。


$ sudo vi /etc/nut/notifycmd
-------
#!/bin/bash
#
# NUT NOTIFYCMD script

PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin

LANG=C
export LANG

trap "exit 0" SIGTERM

if [ "$NOTIFYTYPE" = "ONLINE" ]
then
        echo $0: power restored | wall
        # Cause all instances of this script to exit.
        killall -s SIGTERM `basename $0`
fi

if [ "$NOTIFYTYPE" = "ONBATT" ]
then
        echo $0: 5 minutes till system powers down... | wall
        # Loop with one second interval to allow SIGTERM reception.
        let "n = 300"
        while [ $n -ne 0 ]
        do
                sleep 1
                let "n--"
        done

        echo $0: nas shutdown | wall

    ssh root@192.168.1.yyy shutdown -h +0

        echo $0: commencing shutdown | wall
        upsmon -c fsd
fi
-------

設定の反映と動作確認

ルールを再読み込みし、デバイスを再認識してもらいます。

$ sudo udevadm control --reload-rules
$ sudo udevadm trigger
$ sudo upsdrvctl start

NUT サービスを開始します。
サーバとクライアントの両方とも。

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

UPS の状態を確認します。
次のように状態が表示できれば成功です。

$ sudo upsc ups
battery.voltage: 13.50
battery.voltage.high: -1.08
battery.voltage.low: -0.87
device.type: ups
driver.name: blazer_usb
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.parameter.productid: 0080
driver.parameter.subdriver: ippon
driver.parameter.vendorid: 0590
driver.version: 2.6.4
driver.version.internal: 0.08
input.frequency: 49.9
input.voltage: 99.2
input.voltage.fault: 99.2
output.voltage: 98.9
ups.beeper.status: disabled
ups.delay.shutdown: 30
ups.delay.start: 180
ups.load: 29
ups.productid: 0080
ups.status: OL BYPASS
ups.temperature: 37.5
ups.type: offline / line interactive
ups.vendorid: 0590

$ sudo upsc ups ups.status
OL BYPASS

$ sudo upsc ups ups.load
7

ここまで出来たら、実際に UPS の電源コードをコンセントから外してスクリプトがちゃんと呼び出されるかを確認します。

お疲れ様でした!

Raspberry Pi と BY50S と Ready NAS の連携” に対して2件のコメントがあります。

  1. とろる より:

    とても有用な記事を書いていただきありがとうございます。
    1点質問なのですが、停電時にネットワーク経由でラズパイ→NASのシャットダウンが行われているようですが、ルータもUPSにつないでいて自宅内NWは生きているという前提でしょうか?

    私の自宅環境だとNASとルータが物理的に離れていて、ルータの電源バックアップを取ることができないので、停電時にはルータが死ぬため、自宅内NWも落ちてしまうことになります。
    ラズパイとNASをUSB接続してUSB経由でシャットダウンさせようと考えているのですが、NUTツール群にそのような機能があるかどうかわかりますか??

    1. catoocraft_dblog より:

      コメントありがとうございます。
      ご察しの通り、停電時もネットワークが生きている前提です。
      ただ、現在は機器類や配置が変わっているため確認できないのですが、ルータから長いLANケーブルをひいて、一旦4ポートのHUBを挟み、そこからNASとラズパイを繋いでいたと思います。
      UPSには、NASとラズパイ、HUBをつなげていました。(実際にはTVとかTV用のHDDとかも)
      NUTツール群にUSB経由で操作する機能があるかは、すみません、わかりません。
      よろしくお願いします。

コメントを残す

メールアドレスが公開されることはありません。