[Nut-upsdev] usbhid-ups using wrong value for battery voltage for Pulsar Evolution 500?

Arnaud Quette aquette.dev at gmail.com
Fri Feb 29 15:30:07 UTC 2008


2008/2/27, Arjen de Korte <nut+devel at de-korte.org>:
> > there are definitely wrong (at least fallback) declarations in mge-hid.c
>  > as an example, we should try to map the below 2nd one as a fallback
>  > since it's really the nominal *output* voltage, not the battery one:
>  >       { "battery.voltage.nominal", 0, 0, "UPS.BatterySystem.ConfigVoltage",
>  > NULL, "%.0f", HU_FLAG_STATIC, NULL },
>  >       { "battery.voltage.nominal", 0, 0, "UPS.PowerSummary.ConfigVoltage",
>  > NULL, "%s", HU_FLAG_STATIC, mge_battery_voltage_nominal },
>  >
>  > gotta fix this.
>
>
> That's a pretty bold statement you make here. On at least two different
>  MGE units (Evolution 650 (broken) and Pulsar M 2200 (good)) it actually
>  *is* reporting 'battery.voltage.nominal' and not 'output.voltage.nominal'
>  (below a summary for the Pulsar M 2200 I found in the archives):

well, I should have given more details about that (time lacking). see below

>  Path: UPS.PowerSummary.ConfigVoltage, Type: Feature, Value: 72.000000
>  Path: UPS.PowerSummary.Voltage, Type: Feature, Value: 81.000000
>  Can't find object UPS.BatterySystem.ConfigVoltage
>
>  From looking at the reported values, I'm fairly sure that these deal with
>  the *battery* voltage and not the *output* voltage (at least for this UPS
>  and possibly others too, I recall having seen reports where people
>  actually complained that NUT was reporting impossibly low
>  'output.voltage.nominal'). So I don't think there is something *broken*
>  here. What is probably *missing* is the HID path that is reporting the
>  battery on Charles' UPS, so that the driver won't have to fallback to
>  "UPS.PowerSummary.ConfigVoltage". Alternatively, if this UPS doesn't
>  report nominal or actual battery voltage, we may need to ignore these
>  values.
>
>  We may also wish to add "UPS.PowerSummary.ConfigVoltage" as a fallback
>  when "UPS.Flow.[4].ConfigVoltage" can't be found. But since it can have
>  two meanings, we can only use it as a fallback if the other paths that
>  deal with these ("UPS.BatterySystem.ConfigVoltage" and
>  "UPS.Flow.[4].ConfigVoltage" respectively) can't be found.

as you already know, Flow.[4] is the output one (and Flow.[1] the input).
Both are *always* available. Which is not the case of the battery voltage.
And when I was talking about the differences in implementation in the
various UPSs, here is an example:
- many (all) low/mid end models (Ellipse, Protection Center, Pulsar
Evolution, ...) do not report "UPS.BatterySystem.ConfigVoltage", and
maps UPS.PowerSummary.ConfigVoltage to the Flow[4]
- some (like the new Evolution and Evolution S) still do not report
the above, but report UPS.PowerSummary.{Config}Voltage with the
battery config voltage
- ...

That why I mentioned the internship project, since it exposes both all
the existing paths, and implementation in the various models and
ranges).

I'm currently in the middle of the building switch (we have most of
our new infra in another building), I'm mostly busy with
administrative and preparation for the final switch.
So I don't have the hand on many units. That should be solve by March
10 (we finally move on March 7)

Since the PowerSummary collection was created to mimic the ACPI data,
the values under this collection should all be the battery value.

@Dominique: can you confirm all this?

>  I therefor propose to add the following to 'mge-hid.c':
>
>         /* Output page */
>         { "output.voltage", 0, 0, "UPS.PowerConverter.Output.Voltage", NULL,
>  "%.1f", 0, NULL },
>         { "output.voltage.nominal", ST_FLAG_RW | ST_FLAG_STRING, 5,
>  "UPS.Flow.[4].ConfigVoltage", NULL, "%.0f", HU_FLAG_SEMI_STATIC, NULL },
>  +       { "output.voltage.nominal", 0, 0, "UPS.PowerSummary.ConfigVoltage",
>
> NULL, "%.0f", HU_FLAG_STATIC, NULL },
>
>         { "output.current", 0, 0, "UPS.PowerConverter.Output.Current", NULL,
>  "%.2f", 0, NULL },
>         { "output.powerfactor", 0, 0, "UPS.PowerConverter.Output.PowerFactor",
>  NULL, "%s", 0, mge_powerfactor_conversion },
>
>  Best regards, Arjen
>
>

Arnaud
-- 
Linux / Unix Expert R&D - MGE Office Protection Systems - http://www.mgeops.com
Network UPS Tools (NUT) Project Leader - http://www.networkupstools.org/
Debian Developer - http://people.debian.org/~aquette/
Free Software Developer - http://arnaud.quette.free.fr/



More information about the Nut-upsdev mailing list