ML
    • Recent
    • Categories
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    Pi as a UPS monitor

    IT Discussion
    raspberry pi ups apc eaton nut
    8
    114
    33.8k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • JaredBuschJ
      JaredBusch
      last edited by JaredBusch

      Instructions assuming a Pi3

      1. Install NOOBS to the SD Card.
      2. Boot the Pi to NOOBS
      3. Connect to wifi
      4. Once it sees internet you can choose to install a minimal version of raspbian with no GUI
      5. wait
      6. login with default creds pi/raspberry
      7. run sudo raspi-config to enable SSH and optionally set other options you want.
      8. edit the wifi config file sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
        network={
        ssid="yourssid"
        psk="ssidpassword"
        }
      9. reboot the Pi3
      10. update raspian
        1. sudo apt-get update
        2. sudo apt-get upgrade
      11. Install nut
        1. sudo apt-get install nut
      12. Edit sudo nano /etc/nut/nut.conf
        1. change MODE=standalone
      13. Edit sudo nano /etc/nut/ups.conf
      14. add a block at the end of the file.
        1. a default example
          [somenameforups]
          driver = usbhid-ups
          port = auto
          desc = "Some descriptive name for UPS"
        2. what mine is
          [jaredoffice]
          driver = usbhid-ups
          port = auto
          desc = "Jared's Desk"
      15. Test the conf file is right sudo upsdrvctl start
      16. Launch the UPS daemon sudo upsd
      17. see if it is talking sudo upsc somenameforups@localhost
        1. or my real one sudo upsc jaredoffice@localhost
      1 Reply Last reply Reply Quote 3
      • gjacobseG
        gjacobse
        last edited by

        Interesting that the last two of the last three messages seem out of order. But - great information.

        1 Reply Last reply Reply Quote 0
        • gjacobseG
          gjacobse
          last edited by gjacobse

          Well - while I don't have a Pi yet, I do happen to have a LM 17.x system running as my Pandora Music box (Pithos). It's within reach of one of the several UPS units I have (I have like nine) so I used your process and got one set up:

          sudo upsc pandora
          :
          Init SSL without certificate database
          battery.charge: 100
          battery.charge.low: 10
          battery.charge.warning: 50
          battery.date: not set
          battery.mfr.date: 2014/06/22
          battery.runtime: 3336
          battery.runtime.low: 120
          battery.type: PbAc
          battery.voltage: 13.5
          battery.voltage.nominal: 12.0
          device.mfr: APC
          device.model: Back-UPS ES 550G
          device.serial: 4B1425P54201
          device.type: ups
          driver.name: usbhid-ups
          driver.parameter.pollfreq: 30
          driver.parameter.pollinterval: 2
          driver.parameter.port: auto
          driver.version: 2.7.1
          driver.version.data: APC HID 0.95
          driver.version.internal: 0.38
          input.sensitivity: medium
          input.transfer.high: 139
          input.transfer.low: 92
          input.voltage: 125.0
          input.voltage.nominal: 120
          ups.beeper.status: enabled
          ups.delay.shutdown: 20
          ups.firmware: 904.W1 .D
          ups.firmware.aux: W1
          ups.load: 12
          ups.mfr: APC
          ups.mfr.date: 2014/06/22
          ups.model: Back-UPS ES 550G
          ups.productid: 0002
          ups.serial: 4B1425P54201
          ups.status: OL
          ups.timer.reboot: 0
          ups.timer.shutdown: -1
          ups.vendorid: 051d
          
          1 Reply Last reply Reply Quote 1
          • JaredBuschJ
            JaredBusch
            last edited by

            Today will be tinkering with notification options.

            1 Reply Last reply Reply Quote 2
            • gjacobseG
              gjacobse
              last edited by

              Just got this:

              Init SSL without certificate database
              Error: Data stale
              
              1 Reply Last reply Reply Quote 0
              • gjacobseG
                gjacobse
                last edited by

                Went back through the commands above to validation / confirmation:

                $ sudo nano /etc/nut/nut.conf
                

                no changes - the same.

                $ sudo nano /etc/nut/ups.conf
                

                no changes - the same

                 $ sudo upsdrvctl start
                Network UPS Tools - UPS driver controller 2.7.1
                Network UPS Tools - Generic HID driver 0.38 (2.7.1)
                USB communication driver 0.32
                Duplicate driver instance detected! Terminating other driver!
                Using subdriver: APC HID 0.95
                

                Okay - seems 'ok'

                $ sudo upsd
                Network UPS Tools upsd 2.7.1
                fopen /var/run/nut/upsd.pid: No such file or directory
                not listening on 127.0.0.1 port 3493
                not listening on ::1 port 3493
                no listening interface available
                
                $ sudo upsc pandora
                Init SSL without certificate database
                Error: Data stale
                

                curious.

                JaredBuschJ 1 Reply Last reply Reply Quote 0
                • JaredBuschJ
                  JaredBusch @gjacobse
                  last edited by

                  @gjacobse I do not get that. Mine has been untouched since last night.

                  pi@raspberrypi:~ $ sudo upsc jaredoffice
                  Init SSL without certificate database
                  battery.charge: 100
                  battery.charge.low: 10
                  battery.charge.warning: 50
                  battery.date: 2001/09/25
                  battery.mfr.date: 2010/12/15
                  battery.runtime: 1472
                  battery.runtime.low: 120
                  battery.type: PbAc
                  battery.voltage: 27.2
                  battery.voltage.nominal: 24.0
                  device.mfr: American Power Conversion
                  device.model: Back-UPS BR1000G
                  device.serial: 3B1051X20329
                  device.type: ups
                  driver.name: usbhid-ups
                  driver.parameter.pollfreq: 30
                  driver.parameter.pollinterval: 2
                  driver.parameter.port: auto
                  driver.version: 2.7.2
                  driver.version.data: APC HID 0.95
                  driver.version.internal: 0.38
                  input.sensitivity: medium
                  input.transfer.high: 147
                  input.transfer.low: 88
                  input.voltage: 124.0
                  input.voltage.nominal: 120
                  ups.beeper.status: enabled
                  ups.delay.shutdown: 20
                  ups.firmware: 868.L1 .D
                  ups.firmware.aux: L1
                  ups.load: 20
                  ups.mfr: American Power Conversion
                  ups.mfr.date: 2010/12/15
                  ups.model: Back-UPS BR1000G
                  ups.productid: 0002
                  ups.realpower.nominal: 600
                  ups.serial: 3B1051X20329
                  ups.status: OL
                  ups.test.result: No test initiated
                  ups.timer.reboot: 0
                  ups.timer.shutdown: -1
                  ups.vendorid: 051d
                  pi@raspberrypi:~ $
                  
                  1 Reply Last reply Reply Quote 0
                  • JaredBuschJ
                    JaredBusch
                    last edited by

                    This is what I will be following to configure reporting/alerting.
                    http://www.techrepublic.com/article/customize-ups-related-alerts-in-nut/

                    gjacobseG 1 Reply Last reply Reply Quote 1
                    • gjacobseG
                      gjacobse @JaredBusch
                      last edited by

                      @JaredBusch
                      Well push comes to Meh -okay. I restarted the box and it's polls now.

                      Won't do anything else with it for a spell to see if it retains it. It's been four days since I restarted it. Now - to reconnect to it as I had to pull the monitor off. X2Go works great,.. but only once I've signed in at the local. sure that is omething that can be changed.

                      1 Reply Last reply Reply Quote 0
                      • gjacobseG
                        gjacobse
                        last edited by

                        checking on my UPS this morning

                         ~ $ uptime
                         09:59:20 up 6 days, 18:12,  2 users,  load average: 0.19, 0.25, 0.25
                        
                         ~ $ sudo upsc pandora
                        Init SSL without certificate database
                        battery.charge: 100
                        battery.charge.low: 10
                        battery.charge.warning: 50
                        battery.date: not set
                        battery.mfr.date: 2014/06/22
                        battery.runtime: 3172
                        battery.runtime.low: 120
                        battery.type: PbAc
                        battery.voltage: 13.6
                        battery.voltage.nominal: 12.0
                        device.mfr: APC
                        device.model: Back-UPS ES 550G
                        device.serial: 4B1425P54201
                        device.type: ups
                        driver.name: usbhid-ups
                        driver.parameter.pollfreq: 30
                        driver.parameter.pollinterval: 2
                        driver.parameter.port: auto
                        driver.version: 2.7.1
                        driver.version.data: APC HID 0.95
                        driver.version.internal: 0.38
                        input.sensitivity: medium
                        input.transfer.high: 139
                        input.transfer.low: 92
                        input.voltage: 126.0
                        input.voltage.nominal: 120
                        ups.beeper.status: enabled
                        ups.delay.shutdown: 20
                        ups.firmware: 904.W1 .D
                        ups.firmware.aux: W1
                        ups.load: 13
                        ups.mfr: APC
                        ups.mfr.date: 2014/06/22
                        ups.model: Back-UPS ES 550G
                        ups.productid: 0002
                        ups.serial: 4B1425P54201
                        ups.status: OL
                        ups.timer.reboot: 0
                        ups.timer.shutdown: -1
                        ups.vendorid: 051d
                        

                        Since reboot, the monitor has been running all the time. So it may have been simply that.

                        As for having multiple UPS monitoring, I was curious what you thought about having a central display which showed the status of each UPS monitored. That way you have one display to glance at for a health check.

                        gjacobseG travisdh1T thwrT 3 Replies Last reply Reply Quote 1
                        • gjacobseG
                          gjacobse @gjacobse
                          last edited by

                          @gjacobse said in Pi as a UPS monitor:

                          checking on my UPS this morning

                          Since reboot, the monitor has been running all the time. So it may have been simply that.

                          As for having multiple UPS monitoring, I was curious what you thought about having a central display which showed the status of each UPS monitored. That way you have one display to glance at for a health check.

                          Maybe something similar to the UBNT controller software - central configuration ability.....

                          1 Reply Last reply Reply Quote 0
                          • travisdh1T
                            travisdh1 @gjacobse
                            last edited by

                            @gjacobse said in Pi as a UPS monitor:

                            checking on my UPS this morning

                             ~ $ uptime
                             09:59:20 up 6 days, 18:12,  2 users,  load average: 0.19, 0.25, 0.25
                            
                             ~ $ sudo upsc pandora
                            Init SSL without certificate database
                            battery.charge: 100
                            battery.charge.low: 10
                            battery.charge.warning: 50
                            battery.date: not set
                            battery.mfr.date: 2014/06/22
                            battery.runtime: 3172
                            battery.runtime.low: 120
                            battery.type: PbAc
                            battery.voltage: 13.6
                            battery.voltage.nominal: 12.0
                            device.mfr: APC
                            device.model: Back-UPS ES 550G
                            device.serial: 4B1425P54201
                            device.type: ups
                            driver.name: usbhid-ups
                            driver.parameter.pollfreq: 30
                            driver.parameter.pollinterval: 2
                            driver.parameter.port: auto
                            driver.version: 2.7.1
                            driver.version.data: APC HID 0.95
                            driver.version.internal: 0.38
                            input.sensitivity: medium
                            input.transfer.high: 139
                            input.transfer.low: 92
                            input.voltage: 126.0
                            input.voltage.nominal: 120
                            ups.beeper.status: enabled
                            ups.delay.shutdown: 20
                            ups.firmware: 904.W1 .D
                            ups.firmware.aux: W1
                            ups.load: 13
                            ups.mfr: APC
                            ups.mfr.date: 2014/06/22
                            ups.model: Back-UPS ES 550G
                            ups.productid: 0002
                            ups.serial: 4B1425P54201
                            ups.status: OL
                            ups.timer.reboot: 0
                            ups.timer.shutdown: -1
                            ups.vendorid: 051d
                            

                            Since reboot, the monitor has been running all the time. So it may have been simply that.

                            As for having multiple UPS monitoring, I was curious what you thought about having a central display which showed the status of each UPS monitored. That way you have one display to glance at for a health check.

                            Take the output of upsc and throw it up on a web page. Unless you want a local display, in which case it's actually more difficult.

                            1 Reply Last reply Reply Quote 0
                            • thwrT
                              thwr @gjacobse
                              last edited by

                              @gjacobse said in Pi as a UPS monitor:

                              checking on my UPS this morning

                               ~ $ uptime
                               09:59:20 up 6 days, 18:12,  2 users,  load average: 0.19, 0.25, 0.25
                              
                               ~ $ sudo upsc pandora
                              Init SSL without certificate database
                              battery.charge: 100
                              battery.charge.low: 10
                              battery.charge.warning: 50
                              battery.date: not set
                              battery.mfr.date: 2014/06/22
                              battery.runtime: 3172
                              battery.runtime.low: 120
                              battery.type: PbAc
                              battery.voltage: 13.6
                              battery.voltage.nominal: 12.0
                              device.mfr: APC
                              device.model: Back-UPS ES 550G
                              device.serial: 4B1425P54201
                              device.type: ups
                              driver.name: usbhid-ups
                              driver.parameter.pollfreq: 30
                              driver.parameter.pollinterval: 2
                              driver.parameter.port: auto
                              driver.version: 2.7.1
                              driver.version.data: APC HID 0.95
                              driver.version.internal: 0.38
                              input.sensitivity: medium
                              input.transfer.high: 139
                              input.transfer.low: 92
                              input.voltage: 126.0
                              input.voltage.nominal: 120
                              ups.beeper.status: enabled
                              ups.delay.shutdown: 20
                              ups.firmware: 904.W1 .D
                              ups.firmware.aux: W1
                              ups.load: 13
                              ups.mfr: APC
                              ups.mfr.date: 2014/06/22
                              ups.model: Back-UPS ES 550G
                              ups.productid: 0002
                              ups.serial: 4B1425P54201
                              ups.status: OL
                              ups.timer.reboot: 0
                              ups.timer.shutdown: -1
                              ups.vendorid: 051d
                              

                              Since reboot, the monitor has been running all the time. So it may have been simply that.

                              As for having multiple UPS monitoring, I was curious what you thought about having a central display which showed the status of each UPS monitored. That way you have one display to glance at for a health check.

                              AMQP / MQTT may be awesome for this at the transport layer. MQTT is an interesting protocol that let you define a "last will and testament" action in case something goes south.

                              Ansible/Puppet etc. can handle the central configuration.

                              1 Reply Last reply Reply Quote 1
                              • JaredBuschJ
                                JaredBusch
                                last edited by

                                Hey 3 months later.....

                                1 Reply Last reply Reply Quote 1
                                • JaredBuschJ
                                  JaredBusch
                                  last edited by

                                  Alright, I plugged the thing back in and got to testing.

                                  Yeah! It still communicates.

                                  pi@raspberrypi:~ $ sudo upsc jaredoffice
                                  Init SSL without certificate database
                                  battery.charge: 84
                                  battery.charge.low: 10
                                  battery.charge.warning: 50
                                  battery.date: 2001/09/25
                                  battery.mfr.date: 2010/12/15
                                  battery.runtime: 1236
                                  battery.runtime.low: 120
                                  battery.type: PbAc
                                  battery.voltage: 27.0
                                  battery.voltage.nominal: 24.0
                                  device.mfr: American Power Conversion
                                  device.model: Back-UPS BR1000G
                                  device.serial: 3B1051X20329
                                  device.type: ups
                                  driver.name: usbhid-ups
                                  driver.parameter.pollfreq: 30
                                  driver.parameter.pollinterval: 2
                                  driver.parameter.port: auto
                                  driver.version: 2.7.2
                                  driver.version.data: APC HID 0.95
                                  driver.version.internal: 0.38
                                  input.sensitivity: medium
                                  input.transfer.high: 147
                                  input.transfer.low: 88
                                  input.transfer.reason: input voltage out of range
                                  input.voltage: 124.0
                                  input.voltage.nominal: 120
                                  ups.beeper.status: enabled
                                  ups.delay.shutdown: 20
                                  ups.firmware: 868.L1 .D
                                  ups.firmware.aux: L1
                                  ups.load: 20
                                  ups.mfr: American Power Conversion
                                  ups.mfr.date: 2010/12/15
                                  ups.model: Back-UPS BR1000G
                                  ups.productid: 0002
                                  ups.realpower.nominal: 600
                                  ups.serial: 3B1051X20329
                                  ups.status: OL CHRG
                                  ups.test.result: No test initiated
                                  ups.timer.reboot: 0
                                  ups.timer.shutdown: -1
                                  ups.vendorid: 051d
                                  
                                  1 Reply Last reply Reply Quote 3
                                  • JaredBuschJ
                                    JaredBusch
                                    last edited by JaredBusch

                                    Pulled the power cord from the wall. UPS beeps, but nothing from nut.

                                    Ok back to the manual and checking the conf files.

                                    Well it would probably help if I told the thing what to monitor..
                                    /etc/nut/upsmon.conf

                                    MONITOR jaredoffice@localhost 1 upsmon demo master
                                    

                                    Oh but those details have to match /etc/nut/ups.conf and /etc/nut/upsd.users. Well I already know that my unit is called jaredoffice@localhost from ups.conf. So just edit upsd.users.

                                    pi@raspberrypi:~ $ sudo nano /etc/nut/upsd.users
                                    # put at end of file
                                    [upsmon]
                                    password = demo
                                    upsmon master
                                    

                                    Now reload the monitor

                                    pi@raspberrypi:~ $ sudo upsmon -c reload
                                    Network UPS Tools upsmon 2.7.2
                                    pi@raspberrypi:~ $
                                    

                                    Then unplug the UPS. and get nothing.

                                    look in the logs..
                                    tail/var/log/syslog

                                    Feb  1 17:05:38 raspberrypi upsmon[732]: UPS jaredoffice@localhost on battery
                                    Feb  1 17:05:38 raspberrypi rsyslogd-2007: action 'action 17' suspended, next retry is Wed Feb  1 17:06:08 2017 [try http://www.rsyslog.com/e/2007 ]
                                    Feb  1 17:05:38 raspberrypi upssched[964]: Can't open /etc/nut/upssched.conf: Permission denied
                                    Feb  1 17:05:48 raspberrypi upsmon[732]: UPS jaredoffice@localhost on line power
                                    Feb  1 17:05:48 raspberrypi upssched[967]: Can't open /etc/nut/upssched.conf: Permission denied
                                    

                                    Say to yourself, WTF did I do 3 months ago....

                                    Time to reload and start over.

                                    gjacobseG 1 Reply Last reply Reply Quote 0
                                    • gjacobseG
                                      gjacobse @JaredBusch
                                      last edited by

                                      @JaredBusch said in Pi as a UPS monitor:

                                      Pulled the power cord from the wall. UPS beeps, but nothing from nut.

                                      Ok back to the manual and checking the conf files.

                                      Well it would probably help if I told the thing what to monitor..
                                      /etc/nut/upsmon.conf

                                      MONITOR jaredoffice@localhost 1 upsmon demo master
                                      

                                      Oh but those details have to match /etc/nut/ups.conf and /etc/nut/upsd.users. Well I already know that my unit is called jaredoffice@localhost from ups.conf. So just edit upsd.users.

                                      pi@raspberrypi:~ $ sudo nano /etc/nut/upsd.users
                                      # put at end of file
                                      [upsmon]
                                      password = demo
                                      upsmon master
                                      

                                      Now reload the monitor

                                      pi@raspberrypi:~ $ sudo upsmon -c reload
                                      Network UPS Tools upsmon 2.7.2
                                      pi@raspberrypi:~ $
                                      

                                      Then unplug the UPS. and get nothing.

                                      look in the logs..
                                      tail/var/log/syslog

                                      Feb  1 17:05:38 raspberrypi upsmon[732]: UPS jaredoffice@localhost on battery
                                      Feb  1 17:05:38 raspberrypi rsyslogd-2007: action 'action 17' suspended, next retry is Wed Feb  1 17:06:08 2017 [try http://www.rsyslog.com/e/2007 ]
                                      Feb  1 17:05:38 raspberrypi upssched[964]: Can't open /etc/nut/upssched.conf: Permission denied
                                      Feb  1 17:05:48 raspberrypi upsmon[732]: UPS jaredoffice@localhost on line power
                                      Feb  1 17:05:48 raspberrypi upssched[967]: Can't open /etc/nut/upssched.conf: Permission denied
                                      

                                      Say to yourself, WTF did I do 3 months ago....

                                      Time to reload and start over.

                                      think i got the same thing, and decide the same course of action, to which I have not moved forward with. Albeit, it's not on a rPi but a desktop - premise is the same.

                                      Think we may have to create a user for the NUT system.... but again,.. can't work with it right now.

                                      1 Reply Last reply Reply Quote 0
                                      • JaredBuschJ
                                        JaredBusch
                                        last edited by JaredBusch

                                        Quick check of upsmon.conf found this, uncommented it.

                                        # RUN_AS_USER nut
                                        

                                        Rebooted Pi, unplugged UPS.

                                        Broadcast message from nut@raspberrypi (somewhere) (Wed Feb  1 17:19:04 2017):
                                        
                                        UPS jaredoffice@localhost on battery
                                        
                                        
                                        Broadcast message from nut@raspberrypi (somewhere) (Wed Feb  1 17:19:24 2017):
                                        
                                        UPS jaredoffice@localhost on line power
                                        
                                        1 Reply Last reply Reply Quote 0
                                        • JaredBuschJ
                                          JaredBusch
                                          last edited by

                                          Syslog had this though.

                                          Feb  1 17:19:04 raspberrypi upsmon[734]: UPS jaredoffice@localhost on battery
                                          Feb  1 17:19:11 raspberrypi upssched[792]: Failed to connect to parent and failed to create parent: No such file or directory
                                          Feb  1 17:19:24 raspberrypi upsmon[734]: UPS jaredoffice@localhost on line power
                                          

                                          Back to the config files we go!
                                          /etc/nut/upssched.conf

                                          # PIPEFN <filename>
                                          # This is commented out by default to make you visit this file and think
                                          # about how your system works before potentially opening a hole.
                                          

                                          FFS, but it gets better! Right below that, also commented out.

                                          # LOCKFN <filename>
                                          #
                                          # REQUIRED.  This was added after version 1.2.1.
                                          #
                                          # upssched needs to be able to create this filename in order to avoid
                                          # a race condition when two events are dispatched from upsmon at nearly
                                          # the same time.  This file will only exist briefly.  It must not be
                                          # created by any other process.
                                          #
                                          # You should put this in the same directory as PIPEFN.
                                          #
                                          

                                          So I update the config and make a directory forgetting to chown it from root /sigh...

                                          PIPEFN /etc/nut/upssched/upssched.pipe
                                          LOCKFN /etc/nut/upssched/upssched.lock
                                          1 Reply Last reply Reply Quote 0
                                          • JaredBuschJ
                                            JaredBusch
                                            last edited by JaredBusch

                                            Once it was all chowned...

                                            Feb  1 17:33:08 raspberrypi upssched[793]: Timer daemon started
                                            Feb  1 17:33:09 raspberrypi upssched[793]: New timer: onbattwarn (30 seconds)
                                            Feb  1 17:33:39 raspberrypi upssched[793]: Event: onbattwarn
                                            Feb  1 17:33:54 raspberrypi upssched[793]: Timer queue empty, exiting
                                            

                                            And output to the screen:

                                            Broadcast message from nut@raspberrypi (somewhere) (Wed Feb  1 17:33:39 2017):
                                            
                                            The UPS is currently running on battery power!
                                            
                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 6
                                            • 5 / 6
                                            • First post
                                              Last post