docs(ups): document apcupsd test results and Energy Dashboard limitations

The APC Smart-UPS C 1500 (FW 02.2, mfg 2012) does not expose ups.load or
ups.realpower over USB HID. Tested apcupsd as an alternative — it reads the
same HID descriptor and returned COMMLOST. Debian's apcupsd package also
conflicts with nut-server (mutually exclusive).

Documented that the HA NUT integration provides battery/runtime/status sensors
only, not wattage for the Energy Dashboard. Practical path is a smart plug on
the UPS output. Updated daily-ops examples (removed ups.load reference since
the variable doesn't exist on this UPS).

NUT stack fully restored after the apcupsd test cycle.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
This commit is contained in:
2026-07-30 12:02:15 -05:00
parent 4b26aca5ee
commit 48cdd81779
2 changed files with 21 additions and 8 deletions
+5 -3
View File
@@ -85,8 +85,10 @@ infrastructure, Proxmox cluster ops, and k8s control plane.
Needs physical reseat to direct motherboard USB port or cable replacement. Needs physical reseat to direct motherboard USB port or cable replacement.
Driver masked to prevent restart-loop spam. Driver masked to prevent restart-loop spam.
- [ ] **Home Assistant NUT integration:** configured and live (3 sensors: - [ ] **Home Assistant NUT integration:** configured and live (3 sensors:
battery charge, status, status data). Additional sensors populate as UPS battery charge, status, status data). This APC (FW 02.2, mfg 2012) does not
reports more variables. report `ups.load` over USB HID — confirmed via both NUT and apcupsd tests.
No wattage for Energy Dashboard; smart plug on UPS output is the practical
path. apcupsd package conflicts with nut-server (mutually exclusive).
### Console Management (ser2net telnet(rfc2217) + conman on pfv-tsys4 — LIVE) ### Console Management (ser2net telnet(rfc2217) + conman on pfv-tsys4 — LIVE)
- [x] 7 network switch/router consoles managed via ser2net + conman - [x] 7 network switch/router consoles managed via ser2net + conman
@@ -166,7 +168,7 @@ infrastructure, Proxmox cluster ops, and k8s control plane.
- **Friday maintenance:** tsys4 (PCIe NIC + RAM), tsys5 (2nd CPU candidate, NVMe, 2nd ethernet) - **Friday maintenance:** tsys4 (PCIe NIC + RAM), tsys5 (2nd CPU candidate, NVMe, 2nd ethernet)
- **PDU:** Rename outlets in powerman.conf (Friday onsite) - **PDU:** Rename outlets in powerman.conf (Friday onsite)
- **k8s deferred:** ETL tooling, HPC scheduler, vcluster policy, solar-aware scale-out - **k8s deferred:** ETL tooling, HPC scheduler, vcluster policy, solar-aware scale-out
- **UPS:** APC Smart-UPS C 1500 operational via NUT on pfv-tsys1. HA NUT integration live (battery charge, status, status data sensors). Tripp Lite blocked on HID report descriptor (USB hub/cable issue — try direct motherboard port). - **UPS:** APC Smart-UPS C 1500 operational via NUT on pfv-tsys1. HA NUT integration live (battery charge, status sensors). No ups.load over USB HID (firmware limitation, confirmed via apcupsd test). Tripp Lite blocked on HID report descriptor (USB hub/cable issue — try direct motherboard port).
## Infrastructure Summary ## Infrastructure Summary
+16 -5
View File
@@ -184,8 +184,7 @@ upsc -l pfv-tsys1
# Full variable dump for one UPS # Full variable dump for one UPS
upsc apc-smartups-c1500@pfv-tsys1 upsc apc-smartups-c1500@pfv-tsys1
# Just the live load + runtime # Battery runtime (the only runtime/charge data this UPS exposes)
upsc apc-smartups-c1500@pfv-tsys1 ups.load
upsc apc-smartups-c1500@pfv-tsys1 battery.runtime upsc apc-smartups-c1500@pfv-tsys1 battery.runtime
``` ```
@@ -194,6 +193,18 @@ upsc apc-smartups-c1500@pfv-tsys1 battery.runtime
- **No USB passthrough to the HA VM.** Keeping the UPS on the host preserves - **No USB passthrough to the HA VM.** Keeping the UPS on the host preserves
hypervisor graceful-shutdown capability and matches the `powerman/` pattern hypervisor graceful-shutdown capability and matches the `powerman/` pattern
(PDU managed on the host where the adapter physically lives). (PDU managed on the host where the adapter physically lives).
- **Per-unit power (Watts):** `usbhid-ups` reports `ups.realpower` directly on - **No `ups.load` / `ups.realpower` on this UPS (FW 02.2, mfg 2012):** The
the APC Smart-UPS C 1500. If absent, derive Watts as APC Smart-UPS C 1500 does not expose load or power data over USB HID.
`load% × VA_rating × power_factor` in HA templates. Both NUT `usbhid-ups` and `apcupsd` (USB mode, tested 2026-07-30) read the
same HID descriptor — the variable simply isn't there. This means the HA
NUT integration provides **battery/runtime/status sensors only**, not
wattage for the Energy Dashboard.
- **apcupsd test note:** Debian's `apcupsd` package conflicts with
`nut-server` (mutually exclusive). apcupsd USB mode returned `COMMLOST`
even before we could check load. The APC Smart Serial protocol (serial
cable, AP940-1524C, ~$30) DOES report load%, but this requires a serial
port on the UPS and on the host.
- **Energy Dashboard path:** A smart plug (Shelly Plug S / TP-Link Kasa,
~$15-25) on the UPS output reports real watts natively and feeds the
Energy Dashboard with zero UPS-driver hacking. The NUT sensors remain
valuable for outage detection and graceful-shutdown automations.