Replies: 1 comment 1 reply
-
|
Hi, thanks for the feedback. To be honest, I was already working on it. I was thinking about a renamer or remapper so that variables can be moved as desired. I have to finish a few things first (I'm trying to transfer the entire frontend to React), but yes, I've had it in mind for a while. |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment


Uh oh!
There was an error while loading. Please reload this page.
-
Hi @DartSteven ,
Thank you for this project and your work on the multi-UPS version. It is very much appreciated.
I have an older Eaton Powerware 9130 2000, which I know I should upgrade soon; however it looks like the power usage being shown in the GUI doesn't correspond to the actual value. I don't want to report it as a bug, just in case I'm completely wrong here, but here's the scoop:
================================================================
With a little bit of help from Claude Code, analyzing my setup and your code, we came up with the following:
Root cause — three interrelated issues
output.realpower is not a recognized variable
In nutify/core/db/ups/models.py, the DYNAMIC_FIELDS set lists every NUT variable Nutify knows about. It includes output.voltage, output.current, output.frequency — but output.realpower is completely missing. So the value is read from upsc but silently dropped when saving to the database because no column exists for it.
calculate_realpower() only checks ups.realpower, not output.realpower
In nutify/core/db/ups/utils.py (lines 240-330), the function:
Checks for ups.realpower → your Eaton doesn't provide this variable
Since it's missing, falls back to calculating: nominal_watts × ups.load / 100
Looks for ups.realpower.nominal → also not provided by your Eaton
Falls back to a hardcoded default of 1000W (line 312)
Result: 1000 × 29 / 100 = 290W ← the wrong value you see
3. Power dashboard doesn't know about output_realpower
In nutify/core/power/power.py, the POTENTIAL_POWER_METRICS list also omits output_realpower, so even if it were stored, it wouldn't display.
The fix would need to
Add output.realpower and output.realpower.nominal to DYNAMIC_FIELDS in models.py
Update calculate_realpower() in utils.py to check output.realpower before falling back to the load-based calculation
Add output_realpower to POTENTIAL_POWER_METRICS in power.py
This is definitely worth a bug report. The core issue is that the IETF MIB reports real power under output.realpower while Nutify only looks for ups.realpower — and when it's missing, substitutes a rough estimate using a hardcoded 1000W nominal value.
================================================================
The output from upsc for my UPS is as follows:
battery.charge: 100.00
battery.current: 0.00
battery.runtime: 3300.00
battery.runtime.low: 180.00
battery.temperature: 0.00
battery.voltage: 113.00
device.mfr: Eaton
device.model: Powerware 9130 2000
device.type: ups
driver.name: snmp-ups
driver.parameter.mibs: ietf
driver.parameter.pollfreq: 15
driver.parameter.pollinterval: 3
driver.parameter.port: 192.168.79.101
driver.parameter.snmp_retries: 5
driver.parameter.snmp_timeout: 5
driver.parameter.snmp_version: v1
driver.parameter.synchronous: no
driver.version: 2.7.4
driver.version.data: ietf MIB 1.5
driver.version.internal: 0.97
input.bypass.current: 0.00
input.bypass.frequency: 60.00
input.bypass.phases: 1.00
input.bypass.realpower: 0.00
input.bypass.voltage: 240.00
input.current: 0.00
input.frequency: 60.00
input.frequency.nominal: 60.00
input.phases: 1.00
input.realpower: 0.00
input.transfer.high: 276.00
input.transfer.low: 140.00
input.voltage: 240.00
input.voltage.nominal: 240.00
output.current: 2.00
output.frequency: 59.00
output.frequency.nominal: 60.00
output.phases: 1.00
output.power.nominal: 2000.00
output.realpower: 476.00
output.realpower.nominal: 1800.00
output.voltage: 239.00
output.voltage.nominal: 240.00
ups.beeper.status: enabled
ups.firmware: INV: 1.29
ups.firmware.aux: Network Management Card V6.00 LE
ups.load: 29.00
ups.mfr: Eaton
ups.model: Powerware 9130 2000
ups.start.auto: no
ups.status: OL
ups.test.result: done and passed
ups.timer.reboot: -1
ups.timer.shutdown: -1
ups.timer.start: -1
Beta Was this translation helpful? Give feedback.
All reactions