Tento návod popisuje zprovoznění UPS PowerWalker VI 650 LCD připojené přes USB k Ubuntu serveru. Cílem je monitorovat stav UPS, napětí, zatížení, stav baterie a později případně nastavit bezpečné vypnutí serveru při výpadku napájení.
UPS byla v systému detekována jako zařízení:
ID 0665:5161 Cypress Semiconductor USB to Serial
Nakonec úspěšně fungovala přes NUT – Network UPS Tools s driverem:
nutdrv_qx
Použitý hardware
UPS:
PowerWalker VI 650 LCD
650 VA / 360 W
USB komunikace
1× 12 V 7 Ah AGM/VRLA baterie
Server:
Ubuntu Server
NUT 2.8.1
1. Ověření, že Ubuntu UPS vidí
Nejdříve připojíme UPS USB kabelem k serveru a ověříme ji příkazem:
lsusb
V mém případě byl výstup:
Bus 001 Device 006: ID 0665:5161 Cypress Semiconductor USB to Serial
To je důležité. Tato UPS se nepřihlásila jako běžné HID UPS zařízení, ale jako zařízení s Vendor ID 0665 a Product ID 5161.
Proto se nepoužil driver usbhid-ups, ale nutdrv_qx.
2. Instalace NUT
Nainstalujeme balík NUT:
sudo apt update
sudo apt install nut
Ověříme dostupné služby:
systemctl list-unit-files | grep nut
Na novějších Ubuntu instalacích se může objevit například:
nut-driver-enumerator.path
nut-client.service
nut-driver-enumerator.service
nut-driver@.service
nut-monitor.service
nut-server.service
nut-driver.target
nut.target
Důležité je, že zde není klasická služba nut-driver.service, ale šablonová služba:
nut-driver@.service
Konkrétní UPS se pak spouští například jako:
sudo systemctl restart nut-driver@powerwalker
3. Nastavení režimu NUT
Otevřeme soubor:
sudo nano /etc/nut/nut.conf
Nastavíme standalone režim:
MODE=standalone
Tento režim je vhodný, pokud UPS monitoruje přímo daný server.
4. Konfigurace UPS
Otevřeme konfigurační soubor:
sudo nano /etc/nut/ups.conf
Vložíme konfiguraci:
[powerwalker]
driver = nutdrv_qx
port = auto
vendorid = 0665
productid = 5161
desc = "PowerWalker VI 650 LCD"
Název sekce [powerwalker] je důležitý. Podle něj se pak jmenuje systemd služba:
nut-driver@powerwalker
5. První pokus o spuštění driveru
Zkusíme restartovat služby:
sudo systemctl restart nut-driver@powerwalker
sudo systemctl restart nut-server
sudo systemctl restart nut-monitor
V mém případě driver nejdříve nenaběhl. Stav služby ukázal:
systemctl status nut-driver@powerwalker --no-pager
A ruční spuštění driveru:
sudo upsdrvctl -D start powerwalker
vrátilo chybu:
libusb1: Could not open any HID devices: insufficient permissions on everything
No supported devices found. Please check your device availability with 'lsusb'
To znamená, že konfigurace už byla správně nalezena, ale NUT neměl oprávnění přistupovat k USB zařízení.
6. Oprava práv přes udev pravidlo
Nejdříve ověříme, že existuje skupina nut:
getent group nut
Poté vytvoříme udev pravidlo:
sudo nano /etc/udev/rules.d/62-nut-usbups.rules
Do souboru vložíme:
SUBSYSTEM=="usb", ATTR{idVendor}=="0665", ATTR{idProduct}=="5161", MODE="0660", GROUP="nut"
Pravidla znovu načteme:
sudo udevadm control --reload-rules
sudo udevadm trigger
Poté je vhodné fyzicky odpojit a znovu připojit USB kabel UPS.
7. Restart NUT služeb
Po přidání udev pravidla restartujeme služby:
sudo systemctl restart nut-driver-enumerator.service
sudo systemctl restart nut-driver@powerwalker
sudo systemctl restart nut-server
sudo systemctl restart nut-monitor
8. Ověření funkčnosti
Stav UPS ověříme příkazem:
upsc powerwalker@localhost
Po úspěšném zprovoznění byl výstup například:
battery.charge: 100
battery.voltage: 13.5
battery.voltage.high: 13.00
battery.voltage.low: 10.40
battery.voltage.nominal: 12.0
device.type: ups
driver.name: nutdrv_qx
driver.parameter.productid: 5161
driver.parameter.vendorid: 0665
driver.version: 2.8.1
driver.version.data: Voltronic-QS 0.09
input.voltage: 237.1
output.frequency: 50.0
output.voltage: 237.1
ups.load: 17
ups.status: OL
ups.type: offline / line interactive
Tím bylo potvrzeno, že monitoring UPS funguje.
9. Význam důležitých hodnot
ups.status: OL
OL = On Line
UPS běží ze sítě. Vše je v normálním stavu.
ups.status: OB
OB = On Battery
UPS běží z baterie. Tento stav se objeví při výpadku napájení.
battery.charge: 100
Baterie je nabitá na 100 %.
battery.voltage: 13.5
Napětí baterie. U 12V olověné AGM/VRLA baterie je hodnota kolem 13,5 V při udržovacím nabíjení normální.
input.voltage: 237.1
Aktuální vstupní napětí ze sítě.
output.voltage: 237.1
Výstupní napětí z UPS.
ups.load: 17
Zatížení UPS v procentech. U UPS s výkonem 360 W znamená 17 % orientačně asi 60 W.
10. Test přechodu na baterii
Pro sledování hodnot v reálném čase lze použít:
watch -n 1 upsc powerwalker@localhost
Poté opatrně odpojíme UPS ze zásuvky. Stav by se měl změnit z:
ups.status: OL
na:
ups.status: OB
Po opětovném připojení do sítě se stav vrátí zpět na:
ups.status: OL
11. Nastavení uživatele pro automatické vypnutí serveru
Pokud chceme, aby se Ubuntu server při nízké baterii bezpečně vypnul, nastavíme uživatele pro upsmon.
Otevřeme:
sudo nano /etc/nut/upsd.users
Přidáme:
[monuser]
password = nejake_silne_heslo
upsmon master
Poté otevřeme:
sudo nano /etc/nut/upsmon.conf
A přidáme nebo upravíme řádek:
MONITOR powerwalker@localhost 1 monuser nejake_silne_heslo master
Restartujeme služby:
sudo systemctl restart nut-server
sudo systemctl restart nut-monitor
Stav monitoru ověříme:
systemctl status nut-monitor --no-pager
12. Shrnutí funkční konfigurace
Finální /etc/nut/nut.conf:
MODE=standalone
Finální /etc/nut/ups.conf:
[powerwalker]
driver = nutdrv_qx
port = auto
vendorid = 0665
productid = 5161
desc = "PowerWalker VI 650 LCD"
Udev pravidlo /etc/udev/rules.d/62-nut-usbups.rules:
SUBSYSTEM=="usb", ATTR{idVendor}=="0665", ATTR{idProduct}=="5161", MODE="0660", GROUP="nut"
Restart po změnách:
sudo udevadm control --reload-rules
sudo udevadm trigger
sudo systemctl restart nut-driver-enumerator.service
sudo systemctl restart nut-driver@powerwalker
sudo systemctl restart nut-server
sudo systemctl restart nut-monitor
Ověření:
upsc powerwalker@localhost
Závěr
UPS PowerWalker VI 650 LCD lze v Ubuntu úspěšně monitorovat pomocí NUT. V tomto případě byla UPS detekována jako USB zařízení:
0665:5161 Cypress Semiconductor USB to Serial
Správný driver byl:
nutdrv_qx
Hlavním problémem nebyl samotný driver, ale oprávnění k USB zařízení. Po přidání udev pravidla pro skupinu nut začal monitoring fungovat správně.
Výsledkem je plně funkční čtení stavu UPS, napětí, zátěže, kapacity baterie a možnost nastavit automatické bezpečné vypnutí Ubuntu serveru při delším výpadku napájení.