How to monitor Mustek PowerMust 2012 UPS with Ubuntu Server 14

In the next tutorial I will show you how to monitor a Mustek PowerMust 2012 UPS with Ubuntu Server 14.

The UPS is connected to the server using a USB cable.

Ubuntu server details :

root@erp:/# cat /etc/lsb-release

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION="Ubuntu 14.04.1 LTS"

root@erp:/# uname -a

Linux erp 3.13.0-44-generic #73-Ubuntu SMP Tue Dec 16 00:22:43 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

If you connect the USB to the server you should see this message :

root@erp:/# dmesg

[80186.156023] usb 4-2: new low-speed USB device number 2 using uhci_hcd
[80186.330039] usb 4-2: New USB device found, idVendor=0665, idProduct=5161
[80186.330046] usb 4-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[80186.330049] usb 4-2: Product: USB to Serial
[80186.330051] usb 4-2: Manufacturer: INNO TECH
[80186.360169] hid-generic 0003:0665:5161.0003: hiddev0,hidraw2: USB HID v1.00 Device [INNO TECH USB to Serial] on usb-0000:00:1d.2-2/input0

Note the USB descriptor for later : 0665:5161

Step 1 : install nut

root@erp:/# sudo apt-get install nut nut-cgi

Add UPS config, for my UPS i used the name : must-pa-2012

root@erp:/# nano /etc/nut/ups.conf
Add the following lines :

[must-pa-2012]
driver = blazer_usb
port = auto

Start ups monitor:

#sudo upsdrvctl start

You may receive the error message below :

Can't claim USB device [0665:5161]: could not detach kernel driver from
interface 0: Operation not permitted
Driver failed to start (exit status=1)

This means that there is a problem with permissions, so we need to set the permission and then reboot.

Set permissions for UPS, remember the descriptor noted above, 0665:5161 in my case:

root@erp:/# nano /etc/udev/rules.d/10-must-pa-2012.rules
Add the line :

SYSFS{idVendor}=='0665', SYSFS{idProduct}=='5161', MODE='0666'

Edit nut.conf

root@erp:/# nano /etc/nut/nut.conf
Change MODE to standalone :

MODE=standalone

Create a user for nut :

root@erp:/# nano /etc/nut/upsd.users

[ups_admin]
password = 12345678
upsmon master

Add the ups to monitoring software :

root@erp:/# nano /etc/nut/upsmon.conf

MONITOR must-pa-2012@localhost 1 ups_admin 12345678

Try to start the ups monitoring :

root@erp:/# upsdrvctl start

Network UPS Tools - UPS driver controller 2.7.1
Network UPS Tools - Megatec/Q1 protocol USB driver 0.10 (2.7.1)
Can't chdir to /var/run/nut: No such file or directory
Driver failed to start (exit status=1)

root@erp:/# service nut-server start

* Starting NUT - power devices information server and drivers

Show UPS statisics :

root@erp:/# upsc must-pa-2012@localhost

Init SSL without certificate database
battery.charge: 33
battery.voltage: 22.50
battery.voltage.high: 26.00
battery.voltage.low: 20.80
battery.voltage.nominal: 24.0
device.type: ups
driver.name: blazer_usb
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.version: 2.7.1
driver.version.internal: 0.10
input.current.nominal: 9.0
input.frequency: 50.1
input.frequency.nominal: 50
input.voltage: 198.0
input.voltage.fault: 198.0
input.voltage.nominal: 220
output.voltage: 233.6
ups.beeper.status: enabled
ups.delay.shutdown: 30
ups.delay.start: 180
ups.load: 13
ups.productid: 5161
ups.status: OL BOOST
ups.type: offline / line interactive
ups.vendorid: 0665

UPS graphic info :

Enable CGI in Apache :

root@erp:/usr/lib/cgi-bin# a2enmod cgi

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Your MPM seems to be threaded. Selecting cgid instead of cgi.
Enabling module cgid.
To activate the new configuration, you need to run:
service apache2 restart

Restart Apache :

root@erp:/usr/lib/cgi-bin# service apache2 restart

* Restarting web server apache2

Access the server IP, mine is 10.10.10.250 :

http://10.10.10.250/cgi-bin/nut/upsstats.cgi


Update 18.07.2015
If you receive a message about no hosts to monitor “Error: no hosts to monitor (check hosts.conf)“, you must edit /etc/nut/hosts.conf and add the following line :

nano /etc/nut/hosts.conf

MONITOR must-pa-2012@localhost "Local UPS"

This guide works also with a SOCOMEC NET0600-PE UPS.

UPS Ubuntu

UPS Ubuntu

5 comments

Skip to comment form

    • Jacques on March 22, 2015 at 9:37 pm
    • Reply

    Hi

    I successfully implemented this code on a Raspberry Pi, version as follows:

    Linux raspberrypi 3.6.11+ #538 PREEMPT Fri Aug 30 20:42:08 BST 2013 armv6l GNU/Linux

    and am able to read my Mustek UPS status using

    upsc must-pa-2012@localhost

    But when I use dmesg it seems that the USB port is constantly being released and renewed using a new ID number every 10 seconds:


    [ 339.996365] usb 1-1.2: USB disconnect, device number 27
    [ 341.511182] usb 1-1.2: new low-speed USB device number 28 using dwc_otg
    [ 341.620658] usb 1-1.2: New USB device found, idVendor=0665, idProduct=5161
    [ 341.620690] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    [ 341.620706] usb 1-1.2: Product: USB to Serial
    [ 341.620721] usb 1-1.2: Manufacturer: INNO TECH
    [ 341.633816] hid-generic 0003:0665:5161.0019: hiddev0,hidraw0: USB HID v1.00 Device [INNO TECH USB to Serial] on usb-bcm2708_usb-1.2/input0
    [ 351.61889] usb 1-1.2: USB disconnect, device number 28
    [ 352.781604] usb 1-1.2: new low-speed USB device number 29 using dwc_otg
    [ 352.891188] usb 1-1.2: New USB device found, idVendor=0665, idProduct=5161
    [ 352.891221] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
    [ 352.891238] usb 1-1.2: Product: USB to Serial
    [ 352.891253] usb 1-1.2: Manufacturer: INNO TECH
    [ 352.905849] hid-generic 0003:0665:5161.001A: hiddev0,hidraw0: USB HID v1.00 Device [INNO TECH USB to Serial] on usb-bcm2708_usb-1.2/input0

    This would increment all the way to device number 61. I suspect this could also be causing my RPi to reboot without reason.

    Please assist

    Thank you
    Jacques

    1. Change cable / USB port first.
      Test the UPS with a normal PC connected to the USB.

        • Jacques on March 29, 2015 at 11:09 am
        • Reply

        Thank you Bogdan.

        Actually the issue was caused by the fact that the upsdrvctl was not started automatically during RPi reboot. So I added the following

        sudo upsdrvctl start

        into /etc/rc.local, now those messages only occur 6-7 times before the service is started.

        Now, after some time I get the following every 30 seconds or so, but I see this is reported in other threads on the WWW:

        USBDEVFS_CONTROL failed cmd blazer_usb rqt 33 rq 9 len 8 ret -110

        Still digging deeper to get to the bottom of this in dmesg…

        Regards
        Jacques

          • Ed on August 8, 2015 at 7:38 pm
          • Reply

          The -110 in “USBDEVFS_CONTROL failed cmd blazer_usb rqt 33 rq 9 len 8 ret -110” indicates a timeout

          I solved the problem by increasing the “pollinterval” setting in /etc/nut/ups.conf to 5 (from the default of 2) thereby allowing more time for the UPS to reply when polled.

    • alp on July 27, 2019 at 12:17 pm
    • Reply

    Works great with PowerMust 400 USB. thanks!

Leave a Reply to Bogdan Cancel reply

Your email address will not be published.

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.