sudo apt install nut
lsusb
Bus 001 Device 004: ID 0781:5567 SanDisk Corp. Cruzer Blade Bus 001 Device 006: ID 0463:ffff MGE UPS Systems UPS Bus 001 Device 005: ID 0424:7800 Microchip Technology, Inc. (formerly SMSC) Bus 001 Device 003: ID 0424:2514 Microchip Technology, Inc. (formerly SMSC) USB 2.0 Hub Bus 001 Device 002: ID 0424:2514 Microchip Technology, Inc. (formerly SMSC) USB 2.0 Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Dans ce cas de figure l'onduleur est le périphérique n°6 su le bus n°1.
Bus 001 Device 006: ID 0463:ffff MGE UPS Systems UPS
ls -l /dev/bus/usb/001
total 0 crw-rw-r-- 1 root root 189, 0 Apr 1 19:29 001 crw-rw-r-- 1 root root 189, 1 Apr 1 19:29 002 crw-rw-r-- 1 root root 189, 2 Apr 1 19:29 003 crw-rw-r-- 1 root root 189, 3 Apr 1 19:29 004 crw-rw-r-- 1 root root 189, 4 Apr 1 19:29 005 crw-rw-r-- 1 root nut 189, 5 Apr 1 19:32 006
crw-rw-r– 1 root nut 189, 5 Apr 1 19:32 006
Editer le fichier /etc/nut/nut.conf pour indiquer le mode désiré :
upsd est le démon responsable de la communication avec l'onduleur. Il est lancé lorsque NUT est configuré dans le mode standalone ou netserver.
Ce fichier permet de déclarer les différents onduleurs. Exemple avec un onduleur Eaton avec driver USB :
[eaton] driver = usbhid-ups port = auto desc = "Eaton 3S 550"
Supprimer la ligne max_retry (paramètre inconnu au démarrage du service)
MAXAGE 15 LISTEN 127.0.0.1 3493 MAXCONN 1024
Ce fichier permet de configurer les accès au démon upsd. Seul les utilisateurs présents dans upsd.users seront habilités à connaître l'état de l'onduleur. Renseigner les paramètres pour l'administrateur et au moins un utilisateur de type “master”.
[admin] password = adminpass actions = SET instcmds = ALL [upsmonitor] password = userpass upsmon master
Ajouter la ligne suivante dans le fichier /etc/nut/upsmon.conf
MONITOR eaton@localhost 1 ptl userpass "master"
Modifier la ligne suivante :
SHUTDOWNCMD "sudo /sbin/shutdown -h +0"
sudo systemctl start nut-server sudo systemctl start nut-monitor sudo systemctl start nut-driver
systemctl status nut-server systemctl status nut-monitor systemctl status nut-driver
upsc eaton@localhost
Init SSL without certificate database battery.charge: 100 battery.charge.low: 20 battery.runtime: 3033 battery.type: PbAc device.mfr: EATON device.model: Eaton 3S 550 device.serial: Blank device.type: ups driver.name: usbhid-ups driver.parameter.pollfreq: 30 driver.parameter.pollinterval: 2 driver.parameter.port: auto driver.parameter.synchronous: no driver.version: 2.7.4 driver.version.data: MGE HID 1.40 driver.version.internal: 0.41 input.transfer.high: 264 input.transfer.low: 184 outlet.1.desc: PowerShare Outlet 1 outlet.1.id: 1 outlet.1.status: on outlet.1.switchable: no outlet.desc: Main Outlet outlet.id: 0 outlet.switchable: yes output.frequency.nominal: 50 output.voltage: 230.0 output.voltage.nominal: 230 ups.beeper.status: enabled ups.delay.shutdown: 20 ups.delay.start: 30 ups.firmware: 02.08.0010 ups.load: 7 ups.mfr: EATON ups.model: Eaton 3S 550 ups.power.nominal: 550 ups.productid: ffff ups.serial: Blank ups.status: OL ups.timer.shutdown: 0 ups.timer.start: 0 ups.type: offline / line interactive ups.vendorid: 0463
sudo systemctl enable nut-server sudo systemctl enable nut-monitor sudo systemctl enable nut-driver
Ajouter les paramètres suivants au fichier /etc/nut/upsmon.conf
NOTIFYCMD "/usr/local/bin/notify-on-battery.sh"
NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
Le premier paramètre donne le script à exécuter, le deuxième indique d'envoyer une notification via SYSLOG, d'afficher un message à tous les utilisateurs connectés (WALL) et d'exécuter le script (EXEC)