Monitorer son onduleur sous Linux

ellipse750

J'ai récemment acheté un onduleur Eaton Ellipse 750. Cet onduleur est manageable par USB.

Eaton est un fabricant très important dans la distribution d'onduleurs, notamment depuis le rachat de MGE.

Ce tutoriel s'applique donc également aux onduleurs Eaton, MGE et autres.

Nous allons donc voir comment gérer son onduleur directement sous son ordinateur USB.

Network UPS Tools (NUT)

Sous Linux, et plus précisément sous Ubuntu, c'est l'application Nut qui va nous permettre de configurer et monitorer notre onduleur.

Pour installer Nut, vous devez utiliser le gestionnaire de paquets:

apt-get install nut nut-usb

Une fois installé, il faut configurer certains paramètres via les commandes suivantes (adaptées les à votre configuration):

$ sed -i 's/MODE=none/MODE=standalone/g' /etc/nut/nut.conf
$ echo '
[MGE-Ellipse750]
driver = usbhid-ups
port = auto
desc = "MGE UPS Systems"
' >> /etc/nut/ups.conf
$ sed -i 's/# LISTEN 127\.0\.0\.1 3493/LISTEN 127\.0\.0\.1/g' /etc/nut/upsd.conf
$ echo '
[jhd]
password = password
upsmon master
' >> /etc/nut/upsd.users
$ sed -i 's/# NOTIFYCMD \/usr\/local\/ups\/bin\/notifyme/NOTIFYCMD \/sbin\/upssched/g' /etc/nut/upsmon.conf
$ echo '
MONITOR [email protected] 1 jhd password master
NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
NOTIFYFLAG ONLINE SYSLOG+WALL+EXEC
' >> /etc/nut/upsmon.conf
$ sed -i 's/CMDSCRIPT \/upssched-cmd/CMDSCRIPT \/etc\/nut\/upssched-cmd/g' /etc/nut/upssched.conf
$ sed -i 's/# PIPEFN \/var\/run\/nut\/upssched\/upssched.pipe/PIPEFN \/var\/run\/nut\/upssched.pipe/g' /etc/nut/upssched.conf
$ sed -i 's/# LOCKFN \/var\/run\/nut\/upssched\/upssched.lock/LOCKFN \/var\/run\/nut\/upssched.lock/g' /etc/nut/upssched.conf
$ echo '
AT ONBATT * START-TIMER onbatt 30
AT ONLINE * CANCEL-TIMER onbatt
' >> /etc/nut/upssched.conf
$ echo '
#!/bin/sh
exit 0
' > /etc/nut/upssched-cmd
$ /etc/init.d/nut restart

Veuillez noter que pour trouver le driver de votre onduleur vous pouvez utiliser le site de Nut.

Vérifier la connection de Nut à l'onduleur

Pour vérifier que Nut soit bien connecté à votre onduleur et qu'il fonctionne parfaitement, vous pouvez exécuter la commande suivante:

upsc [email protected]

Si cette commande vous retourne quelque chose comme çà c'est qu'il y a un problème de connection:

upsmon[10773]: Poll UPS [[email protected]] failed - Driver not connected

Il faudra alors lancer le driver de Nut en mode Debug afin de diagnostiquer le problème:

/lib/nut/usbhid-ups -DDD -a MGE-Ellipse750

Ce qui retournera:

Network UPS Tools - Generic HID driver 0.34 (2.4.3)
USB communication driver 0.31
   0.000000     debug level is '3'
   0.013911     upsdrv_initups...
   0.189541     Checking device (0463/FFFF) (005/003)
   0.189705     - VendorID: 0463
   0.189741     - ProductID: ffff
   0.189767     - Manufacturer: unknown
   0.189794     - Product: unknown
   0.189819     - Serial Number: unknown
   0.189842     - Bus: 005
   0.189862     Trying to match device
   0.189906     Device matches
   0.189954     failed to claim USB device: could not claim interface 0: Operation not permitted
   0.189995     failed to detach kernel driver from USB device: could not detach kernel driver from interface 0: Operation not permitted
   0.190033     failed to claim USB device: could not claim interface 0: Operation not permitted
   0.190070     failed to detach kernel driver from USB device: could not detach kernel driver from interface 0: Operation not permitted
   0.190108     failed to claim USB device: could not claim interface 0: Operation not permitted
   0.190145     failed to detach kernel driver from USB device: could not detach kernel driver from interface 0: Operation not permitted
   0.190181     failed to claim USB device: could not claim interface 0: Operation not permitted
   0.190217     failed to detach kernel driver from USB device: could not detach kernel driver from interface 0: Operation not permitted
   0.190252     Can't claim USB device [0463:ffff]: could not detach kernel driver from interface 0: Operation not permitted

Pour plus de précision, il faut lancer la commande en utilisant le user root:

/lib/nut/usbhid-ups -DDD -u root -a MGE-Ellipse750

Ce qui retournera:

Network UPS Tools - Generic HID driver 0.34 (2.4.3)
USB communication driver 0.31
   0.000000     debug level is '3'
   0.001678     upsdrv_initups...
   0.172877     Checking device (0463/FFFF) (005/003)
   1.112408     - VendorID: 0463
   1.112464     - ProductID: ffff
   1.112489     - Manufacturer: MGE OPS SYSTEMS
   1.112516     - Product: ELLIPSE
   1.112542     - Serial Number: BDCJ3800Q
   1.112569     - Bus: 005
   1.112595     Trying to match device
   1.112647     Device matches
   1.112726     failed to claim USB device: could not claim interface 0: Device or resource busy
   1.113239     detached kernel driver from USB device...
   1.251394     HID descriptor, method 1: (9 bytes) => 09 21 00 01 21 01 22 01 03
   1.251460     HID descriptor, method 2: (9 bytes) => 09 21 00 01 21 01 22 01 03
   1.251491     HID descriptor length 769
   1.351379     Report Descriptor size = 769
   1.351456     Report Descriptor: (769 bytes) => 05 84 09 04 a1 01 09 24 a1 00 09 02 a1 00
   1.351509      55 00 65 00 85 01 75 01 95 05 15 00 25 01 05 85 09 d0 09 44 09 45 09 42 0b
(...)

On voit donc que c'est un problème de droit d'accès et de permissions. Pour résoudre le problème, il suffira de donner les droits nécessaires:

chmod 0666 /dev/bus/usb/005/003
chown :nut /dev/bus/usb/005/003

Notez que 005 correspond au Bus et 003 correspond au device de connection USB de votre onduleur.

Pour trouver le bus et le device USB, utilisez la commande "lsusb".

Leave a Reply

Your email address will not be published. Required fields are marked *