3.0 KiB
OpenWrt UPS SNMP
Sets up NUT (Network UPS Tools) on a MikroTik 951Ui-2HnD running OpenWrt (20.0.0.26) to monitor a Tripp Lite SMART1500 UPS connected via USB.
- View UPS status in the LuCI web interface (Services → UPS)
- SNMP exposure so the UPS data is queryable from the network like the RouterOS device at 10.223.135.242
SNMP community: fsr
How it works
- NUT
usbhid-upsdriver talks to the Tripp Lite over USB upsdserves UPS data locally on127.0.0.1:3493luci-app-nutadds a UPS status page to the LuCI web UInet-snmpextend entries callupscto expose each UPS metric as an SNMP OID
This mirrors what RouterOS does natively for its connected UPS.
Deploy
./deploy.sh root@20.0.0.26
Or manually:
scp -r openwrt/etc/nut root@20.0.0.26:/etc/
scp -r openwrt/etc/snmp root@20.0.0.26:/etc/
scp openwrt/install.sh root@20.0.0.26:/tmp/ups-install.sh
ssh root@20.0.0.26 "sh /tmp/ups-install.sh"
Viewing UPS status
UPS status web page (nut-web-cgi):
http://20.0.0.26/cgi-bin/nut/upsstats.cgi
LuCI — NUT configuration only (not live status): http://20.0.0.26 → Services → NUT Server / NUT Monitor
CLI on the router:
upsc tripplite@localhost
SNMP from the network:
snmpwalk -v2c -c fsr 20.0.0.26 .1.3.6.1.4.1.8072.1.3.2
SNMP OIDs
UPS data is exposed under the NET-SNMP extend tree. Query with snmpwalk above or use
individual OIDs for polling tools (Zabbix, LibreNMS, PRTG, etc.).
| Extend name | UPS metric | Notes |
|---|---|---|
battery_charge |
battery.charge | % |
battery_runtime |
battery.runtime | seconds |
ups_load |
ups.load | % |
input_voltage |
input.voltage | V |
output_voltage |
output.voltage | V |
ups_status |
ups.status | OL=online OB=on battery LB=low battery |
battery_temp |
battery.temperature | °C (may not be reported by all units) |
battery_voltage |
battery.voltage | V |
Each OID follows the pattern:
.1.3.6.1.4.1.8072.1.3.2.3.1.2.<name-length>.<ascii-bytes-of-name>
Packages installed
| Package | Purpose |
|---|---|
nut |
Core NUT tools (upsc, upsmon) |
nut-server |
upsd daemon |
nut-driver-usbhid-ups |
USB HID driver for Tripp Lite |
luci-app-nut |
UPS status page in LuCI |
net-snmp |
Full snmpd with extend support |
Troubleshooting
UPS not found:
lsusb | grep -i tripp # Tripp Lite vendor ID is 09AE
dmesg | grep -i hid
upsc returns "connection failure":
upsdrvctl stop && upsdrvctl start && upsd
SNMP returns "No Such Object" for extend OIDs:
- Make sure
net-snmpis installed, notmini-snmpd - Confirm
/etc/snmp/snmpd.confhas theextendlines - Test the extend command directly:
upsc tripplite@localhost battery.charge
SNMP not responding at all:
- Check firewall allows UDP 161 inbound on OpenWrt
- Network → Firewall → Traffic Rules → add rule for SNMP