ユーザ用ツール

サイト用ツール


mae3xx_tips:use_ups:start

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
mae3xx_tips:use_ups:start [2014/09/12 11:02]
admin
mae3xx_tips:use_ups:start [2017/11/17 13:07] (現在)
admin
ライン 1: ライン 1:
 +====== UPS との接続 (APC) ======
 +
 +SD カードや USB HDD などを接続して、ロガーとして運用する場合など、UPS と連動させたい場合もあると思います。\\
 +電源断時にシャットダウン処理などができるよう、UPS と接続する方法を紹介します。
 +
 +\\
 +
 +===== UPS の選択 =====
 +
 +  * Ubuntu Linux で標準でパッケージが用意されている
 +  * ドキュメントも豊富
 +
 +という理由から、[[http://​www.apc.com/​products/​category.cfm?​id=13&​ISOCountryCode=jp|APC]] 社の UPS を使用します。
 +
 +[[http://​www.apc.com/​products/​category.cfm?​id=13&​ISOCountryCode=jp|{{:​mae3xx_tips:​use_ups:​ups-apc.png?​400|UPS と言えば APC、マジでおすすめ}}]]
 +
 +\\
 +
 +製品の種類はたくさんありますが、
 +  * MA-E3xx は、PC ほど消費電力は大きくない
 +  * 正弦波出力のほうが安心
 +といった理由から、[[http://​www.apc.com/​products/​resource/​include/​techspec_index.cfm?​base_sku=SMT500J&​total_watts=50&​tab=models|Smart-UPS]] シリーズの中の、容量が一番小さな製品 (Smart-UPS 500) を使ってみます ((手持ちの旧型機で写真のものとは異なるものを使っています))。
 +
 +\\
 +
 +**※注** 現行品は、Ubuntu 14.04 の apcupsd (3.14.10) と製品添付のシリアルケーブル (940-0625A) の組み合わせでは動作しません(([[http://​apcupsd-ups-control-software.10985.n7.nabble.com/​apcupsd-can-t-connect-to-the-UPS-serial-td8623.html|apcupsd can't connect to the UPS (serial)]]))。
 +  * UPS 本体ファームウェアの更新
 +    * [参考] [[http://​www.schneider-electric.us/​sites/​us/​en/​support/​faq/​faq_main.page?​page=content&​country=ITB&​lang=EN&​id=FA164737&​redirect=true|How do I update the firmware of my SMT, SMX, SMC, or SRT series Smart-UPS?​]]
 +  * UPS **"​modbus"​** プロトコルの有効化 (本体パネルでの操作)
 +  * apcupsd 3.14.12 への upgrade (v2.4.2α2 で、Ubuntu 15.04α から backport しています)
 +が必要です。
 +
 +{{:​mae3xx_tips:​use_ups:​smart-ups_500.jpg|Smart-UPS 500}}
 +
 +\\
 +===== 設定 =====
 +
 +==== MA-E3xx との接続 ====
 +
 +USB ケーブルで、UPS と接続します。\\
 +HID driver で認識されます。
 +
 +<​code>​
 +[56980.932837] usb 1-1.3: new low-speed USB device number 5 using musb-hdrc
 +[56981.032473] usb 1-1.3: New USB device found, idVendor=051d,​ idProduct=0002
 +[56981.032513] usb 1-1.3: New USB device strings: Mfr=3, Product=1, SerialNumber=2
 +[56981.032523] usb 1-1.3: Product: Smart-UPS 500 FW:650.13.A USB FW:4.2
 +[56981.032531] usb 1-1.3: Manufacturer:​ American Power Conversion
 +[56981.032538] usb 1-1.3: SerialNumber:​ AS06xxxxxxxx
 +</​code>​
 +
 +※ シリアルケーブル (940-0625A 等) で接続する場合、上記ログは出力されません。
 +
 +\\
 +
 +==== 設定ファイルの編集 ====
 +
 +APC 社の UPS と連動するためのソフト apcupsd はパッケージからインストール済みですので、\\
 +設定ファイルの編集だけを行います。
 +
 +参考:
 +  * [[https://​help.ubuntu.com/​community/​apcupsd|apcupsd - Ubuntu Community Help Wiki]]
 +  * [[http://​mizupc8.bio.mie-u.ac.jp/​pukiwiki/?​apcupsd|apcupsd - PukiWiki]]
 +
 +/​etc/​apcupsd/​apcupsd.conf を編集します。
 +
 +<file config apcupsd.conf>​
 +## apcupsd.conf v1.1 ##
 +
 +#  for apcupsd release 3.14.12 (29 March 2014) - debian
 +#
 +# "​apcupsd"​ POSIX config file
 +
 +#
 +# ========= General configuration parameters ============
 +#
 +
 +# UPSNAME xxx
 +#   Use this to give your UPS a name in log files and such. This
 +#   is particulary useful if you have multiple UPSes. This does not
 +#   set the EEPROM. It should be 8 characters or less.
 +#UPSNAME
 +
 +# UPSCABLE <​cable>​
 +#   ​Defines the type of cable connecting the UPS to your computer.
 +#
 +#   ​Possible generic choices for <​cable>​ are:
 +#     ​simple,​ smart, ether, usb
 +#
 +#   Or a specific cable model number may be used:
 +#     ​940-0119A,​ 940-0127A, 940-0128A, 940-0020B,
 +#     ​940-0020C,​ 940-0023A, 940-0024B, 940-0024C,
 +#     ​940-1524C,​ 940-0024G, 940-0095A, 940-0095B,
 +#     ​940-0095C,​ 940-0625A, M-04-02-2000
 +#
 +UPSCABLE 940-0625A
 +
 +# To get apcupsd to work, in addition to defining the cable
 +# above, you must also define a UPSTYPE, which corresponds to
 +# the type of UPS you have (see the Description for more details).
 +# You must also specify a DEVICE, sometimes referred to as a port.
 +# For USB UPSes, please leave the DEVICE directive blank. For
 +# other UPS types, you must specify an appropriate port or address.
 +#
 +# UPSTYPE ​  ​DEVICE ​          ​Description
 +# apcsmart ​ /​dev/​tty** ​      Newer serial character device, appropriate for 
 +#                            SmartUPS models using a serial cable (not USB).
 +#
 +# usb       <​BLANK> ​         Most new UPSes are USB. A blank DEVICE
 +#                            setting enables autodetection,​ which is
 +#                            the best choice for most installations.
 +#
 +# net       ​hostname:​port ​   Network link to a master apcupsd through apcupsd'​s ​
 +#                            Network Information Server. This is used if the
 +#                            UPS powering your computer is connected to a 
 +#                            different computer for monitoring.
 +#
 +# snmp      hostname:​port:​vendor:​community
 +#                            SNMP network link to an SNMP-enabled UPS device.
 +#                            Hostname is the ip address or hostname of the UPS 
 +#                            on the network. Vendor can be can be "​APC"​ or 
 +#                            "​APC_NOTRAP"​. "​APC_NOTRAP"​ will disable SNMP trap 
 +#                            catching; you usually want "​APC"​. Port is usually ​
 +#                            161. Community is usually "​private"​.
 +#
 +# netsnmp ​  ​hostname:​port:​vendor:​community
 +#                            OBSOLETE
 +#                            Same as SNMP above but requires use of the 
 +#                            net-snmp library. Unless you have a specific need
 +#                            for this old driver, you should use '​snmp'​ instead.
 +#
 +# dumb      /​dev/​tty** ​      Old serial character device for use with 
 +#                            simple-signaling UPSes.
 +#
 +# pcnet     ​ipaddr:​username:​passphrase:​port
 +#                            PowerChute Network Shutdown protocol which can be 
 +#                            used as an alternative to SNMP with the AP9617 ​
 +#                            family of smart slot cards. ipaddr is the IP 
 +#                            address of the UPS management card. username and 
 +#                            passphrase are the credentials for which the card 
 +#                            has been configured. port is the port number on 
 +#                            which to listen for messages from the UPS, normally ​
 +#                            3052. If this parameter is empty or missing, the 
 +#                            default of 3052 will be used.
 +#
 +# modbus ​   /​dev/​tty** ​      ​Serial device for use with newest SmartUPS models
 +#                            supporting the MODBUS protocol.
 +#
 +UPSTYPE modbus
 +DEVICE /dev/ttyO1
 +
 +# POLLTIME <int>
 +#   ​Interval (in seconds) at which apcupsd polls the UPS for status. This
 +#   ​setting applies both to directly-attached UPSes (UPSTYPE apcsmart, usb, 
 +#   dumb) and networked UPSes (UPSTYPE net, snmp). Lowering this setting
 +#   will improve apcupsd'​s responsiveness to certain events at the cost of
 +#   ​higher CPU utilization. The default of 60 is appropriate for most
 +#   ​situations.
 +#POLLTIME 60
 +
 +# LOCKFILE <path to lockfile>​
 +#   Path for device lock file. Not used on Win32.
 +LOCKFILE /var/lock
 +
 +# SCRIPTDIR <path to script directory>​
 +#   ​Directory in which apccontrol and event scripts are located.
 +SCRIPTDIR /​etc/​apcupsd
 +
 +# PWRFAILDIR <path to powerfail directory>​
 +#   ​Directory in which to write the powerfail flag file. This file
 +#   is created when apcupsd initiates a system shutdown and is
 +#   ​checked in the OS halt scripts to determine if a killpower
 +#   ​(turning off UPS output power) is required.
 +PWRFAILDIR /​etc/​apcupsd
 +
 +# NOLOGINDIR <path to nologin directory>​
 +#   ​Directory in which to write the nologin file. The existence
 +#   of this flag file tells the OS to disallow new logins.
 +NOLOGINDIR /etc
 +
 +
 +#
 +# ======== Configuration parameters used during power failures ==========
 +#
 +
 +# The ONBATTERYDELAY is the time in seconds from when a power failure
 +#   is detected until we react to it with an onbattery event.
 +#
 +#   This means that, apccontrol will be called with the powerout argument
 +#   ​immediately when a power failure is detected. ​ However, the
 +#   ​onbattery argument is passed to apccontrol only after the 
 +#   ​ONBATTERYDELAY time.  If you don't want to be annoyed by short
 +#   ​powerfailures,​ make sure that apccontrol powerout does nothing
 +#   i.e. comment out the wall.
 +ONBATTERYDELAY 6
 +
 +
 +# Note: BATTERYLEVEL,​ MINUTES, and TIMEOUT work in conjunction,​ so
 +# the first that occurs will cause the initation of a shutdown.
 +#
 +
 +# If during a power failure, the remaining battery percentage
 +# (as reported by the UPS) is below or equal to BATTERYLEVEL, ​
 +# apcupsd will initiate a system shutdown.
 +BATTERYLEVEL 5
 +
 +# If during a power failure, the remaining runtime in minutes ​
 +# (as calculated internally by the UPS) is below or equal to MINUTES,
 +# apcupsd, will initiate a system shutdown.
 +MINUTES 3
 +
 +# If during a power failure, the UPS has run on batteries for TIMEOUT
 +# many seconds or longer, apcupsd will initiate a system shutdown.
 +# A value of 0 disables this timer.
 +#
 +#  Note, if you have a Smart UPS, you will most likely want to disable
 +#    this timer by setting it to zero. That way, you UPS will continue
 +#    on batteries until either the % charge remaing drops to or below BATTERYLEVEL,​
 +#    or the remaining battery runtime drops to or below MINUTES. ​ Of course,
 +#    if you are testing, setting this to 60 causes a quick system shutdown
 +#    if you pull the power plug.   
 +#  If you have an older dumb UPS, you will want to set this to less than
 +#    the time you know you can run on batteries.
 +TIMEOUT 0
 +
 +#  Time in seconds between annoying users to signoff prior to
 +#  system shutdown. 0 disables.
 +ANNOY 300
 +
 +# Initial delay after power failure before warning users to get
 +# off the system.
 +ANNOYDELAY 60
 +
 +# The condition which determines when users are prevented from
 +# logging in during a power failure.
 +# NOLOGON <​string>​ [ disable | timeout | percent | minutes | always ]
 +NOLOGON disable
 +
 +# If KILLDELAY is non-zero, apcupsd will continue running after a
 +# shutdown has been requested, and after the specified time in
 +# seconds attempt to kill the power. This is for use on systems
 +# where apcupsd cannot regain control after a shutdown.
 +# KILLDELAY <​seconds> ​ 0 disables
 +KILLDELAY 0
 +
 +#
 +# ==== Configuration statements for Network Information Server ====
 +#
 +
 +# NETSERVER [ on | off ] on enables, off disables the network
 +#  information server. If netstatus is on, a network information
 +#  server process will be started for serving the STATUS and
 +#  EVENT data over the network (used by CGI programs).
 +NETSERVER on
 +
 +# NISIP <dotted notation ip address>
 +#  IP address on which NIS server will listen for incoming connections.
 +#  This is useful if your server is multi-homed (has more than one
 +#  network interface and IP address). Default value is 0.0.0.0 which
 +#  means any incoming request will be serviced. Alternatively,​ you can
 +#  configure this setting to any specific IP address of your server and 
 +#  NIS will listen for connections only on that interface. Use the
 +#  loopback address (127.0.0.1) to accept connections only from the
 +#  local machine.
 +NISIP 127.0.0.1
 +
 +# NISPORT <​port>​ default is 3551 as registered with the IANA
 +#  port to use for sending STATUS and EVENTS data over the network.
 +#  It is not used unless NETSERVER is on. If you change this port,
 +#  you will need to change the corresponding value in the cgi directory
 +#  and rebuild the cgi programs.
 +NISPORT 3551
 +
 +# If you want the last few EVENTS to be available over the network
 +# by the network information server, you must define an EVENTSFILE.
 +EVENTSFILE /​var/​log/​apcupsd.events
 +
 +# EVENTSFILEMAX <​kilobytes>​
 +#  By default, the size of the EVENTSFILE will be not be allowed to exceed
 +#  10 kilobytes. ​ When the file grows beyond this limit, older EVENTS will
 +#  be removed from the beginning of the file (first in first out).  The
 +#  parameter EVENTSFILEMAX can be set to a different kilobyte value, or set
 +#  to zero to allow the EVENTSFILE to grow without limit.
 +EVENTSFILEMAX 10
 +
 +#
 +# ========== Configuration statements used if sharing =============
 +#            a UPS with more than one machine
 +
 +#
 +# Remaining items are for ShareUPS (APC expansion card) ONLY
 +#
 +
 +# UPSCLASS [ standalone | shareslave | sharemaster ]
 +#   ​Normally standalone unless you share an UPS using an APC ShareUPS
 +#   card.
 +UPSCLASS standalone
 +
 +# UPSMODE [ disable | share ]
 +#   ​Normally disable unless you share an UPS using an APC ShareUPS card.
 +UPSMODE disable
 +
 +#
 +# ===== Configuration statements to control apcupsd system logging ========
 +#
 +
 +# Time interval in seconds between writing the STATUS file; 0 disables
 +STATTIME 0
 +
 +# Location of STATUS file (written to only if STATTIME is non-zero)
 +STATFILE /​var/​log/​apcupsd.status
 +
 +# LOGSTATS [ on | off ] on enables, off disables
 +# Note! This generates a lot of output, so if         
 +#       you turn this on, be sure that the
 +#       file defined in syslog.conf for LOG_NOTICE is a named pipe.
 +#  You probably do not want this on.
 +LOGSTATS off
 +
 +# Time interval in seconds between writing the DATA records to
 +#   the log file. 0 disables.
 +DATATIME 0
 +
 +# FACILITY defines the logging facility (class) for logging to syslog. ​
 +#          If not specified, it defaults to "​daemon"​. This is useful ​
 +#          if you want to separate the data logged by apcupsd from other
 +#          programs.
 +#FACILITY DAEMON
 +
 +#
 +# ========== Configuration statements used in updating the UPS EPROM =========
 +#
 +
 +#
 +# These statements are used only by apctest when choosing "Set EEPROM with conf
 +# file values"​ from the EEPROM menu. THESE STATEMENTS HAVE NO EFFECT ON APCUPSD.
 +#
 +
 +# UPS name, max 8 characters ​
 +#UPSNAME UPS_IDEN
 +
 +# Battery date - 8 characters
 +#BATTDATE mm/dd/yy
 +
 +# Sensitivity to line voltage quality (H cause faster transfer to batteries)  ​
 +# SENSITIVITY H M L        (default = H)
 +#​SENSITIVITY H
 +
 +# UPS delay after power return (seconds)
 +# WAKEUP 000 060 180 300   ​(default = 0)
 +#WAKEUP 60
 +
 +# UPS Grace period after request to power off (seconds)
 +# SLEEP 020 180 300 600    (default = 20)
 +#SLEEP 180
 +
 +# Low line voltage causing transfer to batteries
 +# The permitted values depend on your model as defined by last letter ​
 +#  of FIRMWARE or APCMODEL. Some representative values are:
 +#    D 106 103 100 097
 +#    M 177 172 168 182
 +#    A 092 090 088 086
 +#    I 208 204 200 196     ​(default = 0 => not valid)
 +#​LOTRANSFER ​ 208
 +
 +# High line voltage causing transfer to batteries
 +# The permitted values depend on your model as defined by last letter ​
 +#  of FIRMWARE or APCMODEL. Some representative values are:
 +#    D 127 130 133 136
 +#    M 229 234 239 224
 +#    A 108 110 112 114
 +#    I 253 257 261 265     ​(default = 0 => not valid)
 +#HITRANSFER 253
 +
 +# Battery charge needed to restore power
 +# RETURNCHARGE 00 15 50 90 (default = 15)
 +#​RETURNCHARGE 15
 +
 +# Alarm delay 
 +# 0 = zero delay after pwr fail, T = power fail + 30 sec, L = low battery, N = never
 +# BEEPSTATE 0 T L N        (default = 0)
 +#BEEPSTATE T
 +
 +# Low battery warning delay in minutes
 +# LOWBATT 02 05 07 10      (default = 02)
 +#LOWBATT 2
 +
 +# UPS Output voltage when running on batteries
 +# The permitted values depend on your model as defined by last letter ​
 +#  of FIRMWARE or APCMODEL. Some representative values are:
 +#    D 115
 +#    M 208
 +#    A 100
 +#    I 230 240 220 225     ​(default = 0 => not valid)
 +#​OUTPUTVOLTS 230
 +
 +# Self test interval in hours 336=2 weeks, 168=1 week, ON=at power on
 +# SELFTEST 336 168 ON OFF  (default = 336)
 +#SELFTEST 336
 +</​file>​
 +
 +変更した点は下記になります (conf ファイル中に書いてあるドキュメントのままですが)。
 +
 +^  項目 ​ ^  初期値 ​ ^  設定値 ​ ^^
 +^:::​^:::​^ ​ USB接続 ​ ^  シリアルケーブル ​ ^
 +|UPSCABLE| ​ smart  |  usb  |  940-0625A ​ |
 +|UPSTYPE| ​ apcsmart ​ |  usb  |  modbus ​ |
 +|DEVICE| ​ /​dev/​ttyS0 ​ |  ""​ (空欄) ​ |  /​dev/​ttyO1 ​ |
 +
 +\\
 +
 +Ubuntu の daemon が起動時に参照するファイル (/​etc/​default/​apcupsd) も変更します。
 +
 +<file conf apcupsd>
 +# Defaults for apcupsd initscript
 +
 +# Apcupsd-devel internal configuration
 +APCACCESS=/​sbin/​apcaccess
 +ISCONFIGURED=yes
 +</​file>​
 +
 +ISCONFIGURED を "​no"​ から "​yes"​ に変更します。
 +
 +\\
 +
 +===== apcupsd の起動 =====
 +
 +設定ファイルの編集ができたら、service を起動します。
 +
 +<​code>​
 +user1@plum:​~$ sudo service apcupsd start
 +Starting UPS power management: apcupsd.
 +user1@plum:​~$
 +</​code>​
 +
 +\\
 +
 +MA-E3xx の起動時にデフォルトで起動させるためには、update-rc.d コマンドで有効化します。
 +
 +<​code>​
 +user1@plum:​~$ sudo update-rc.d apcupsd enable
 +update-rc.d:​ warning: ​ start runlevel arguments (none) do not match apcupsd Default-Start values (2 3 4 5)
 +update-rc.d:​ warning: ​ stop runlevel arguments (none) do not match apcupsd Default-Stop values (0 1 6)
 + ​Enabling system startup links for /​etc/​init.d/​apcupsd ...
 + ​Removing any system startup links for /​etc/​init.d/​apcupsd ...
 +   /​etc/​rc0.d/​K80apcupsd
 +   /​etc/​rc1.d/​S41apcupsd
 +   /​etc/​rc2.d/​K59apcupsd
 +   /​etc/​rc3.d/​K59apcupsd
 +   /​etc/​rc4.d/​K59apcupsd
 +   /​etc/​rc5.d/​K59apcupsd
 +   /​etc/​rc6.d/​K80apcupsd
 + ​Adding system startup for /​etc/​init.d/​apcupsd ...
 +   /​etc/​rc0.d/​K80apcupsd -> ../​init.d/​apcupsd
 +   /​etc/​rc1.d/​S41apcupsd -> ../​init.d/​apcupsd
 +   /​etc/​rc6.d/​K80apcupsd -> ../​init.d/​apcupsd
 +   /​etc/​rc2.d/​S41apcupsd -> ../​init.d/​apcupsd
 +   /​etc/​rc3.d/​S41apcupsd -> ../​init.d/​apcupsd
 +   /​etc/​rc4.d/​S41apcupsd -> ../​init.d/​apcupsd
 +   /​etc/​rc5.d/​S41apcupsd -> ../​init.d/​apcupsd
 +user1@plum:​~$
 +</​code>​
 +
 +\\
 +
 +===== UPSの状態確認 =====
 +
 +UPS の状態を確認することができます。
 +
 +<​code>​
 +user1@plum:​~$ sudo service apcupsd status
 +APC      : 001,​036,​0846
 +DATE     : 2014-11-18 10:58:39 +0900  ​
 +HOSTNAME : plum
 +VERSION ​ : 3.14.12 (29 March 2014) debian
 +UPSNAME ​ : APCUPS
 +CABLE    : Custom Cable Smart
 +DRIVER ​  : MODBUS UPS Driver
 +UPSMODE ​ : Stand Alone
 +STARTTIME: 2014-11-18 10:51:09 +0900  ​
 +MODEL    : Smart-UPS 500
 +STATUS ​  : ONLINE ​
 +LINEV    : 103.6 Volts
 +LOADPCT ​ : 0.0 Percent
 +BCHARGE ​ : 100.0 Percent
 +TIMELEFT : 383.0 Minutes
 +MBATTCHG : 5 Percent
 +MINTIMEL : 3 Minutes
 +MAXTIME ​ : 0 Seconds
 +OUTPUTV ​ : 103.6 Volts
 +DWAKE    : 0 Seconds
 +DSHUTD ​  : 90 Seconds
 +ITEMP    : 34.6 C
 +BATTV    : 26.8 Volts
 +LINEFREQ : 50.0 Hz
 +NUMXFERS : 0
 +TONBATT ​ : 0 Seconds
 +CUMONBATT: 0 Seconds
 +XOFFBATT : N/A
 +SELFTEST : OK
 +STATFLAG : 0x05000008
 +MANDATE ​ : 2013-09-20
 +SERIALNO : AS133xxxxxxx
 +BATTDATE : 2014-09-15
 +NOMOUTV ​ : 100 Volts
 +NOMPOWER : 360 Watts
 +FIRMWARE : UPS 09.1 / 00.4
 +END APC  : 2014-11-18 10:59:38 +0900  ​
 +user1@plum:​~$ ​
 +</​code>​
  
mae3xx_tips/use_ups/start.1410487363.txt.bz2 · 最終更新: 2014/09/12 11:02 by admin