-
-
Notifications
You must be signed in to change notification settings - Fork 359
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Clean-up or legalise: revise status_set()
values vs. the NUT standard dictionary
#2708
Comments
…further strings if we had a match; report unexpected tokens [networkupstools#415, networkupstools#2708] Signed-off-by: Jim Klimov <[email protected]>
I will give this some more thought, but condensing |
Assorted thoughts:
|
Sorry for delay.
I hope I understood the question right... |
https://eaton-powerware.ru/ess.html Some info from copilot: ESS is an innovative technology designed to significantly enhance the energy efficiency of uninterruptible power supplies (UPSs) without compromising load protection. Here are the key points about ESS: What Is ESS? |
Oh seems I didn't got the question so right. So I think HE should be renamed to ECO status. ABM no need for status as per above comments. :) |
This point is a bit harder historically. Gotta check what different drivers do, but according to notes in the document, for some time now (since before my time IIRC) the
To me, the "ECO" definition is fundamentally vague and "as vendor says", with one common feature being that it is some togglable trade-off between power overheads wasted by the UPS to do its job with different strategies, and reliability. Generally it boils down to either being hardwired for two power circuits with inverter and battery in the middle always active (marketed in the past decades as an "on-line UPS"), or hardwired for the inverter being inactive most of the time - with less waste and maybe less wear (marketed as "line-interactive"), or software-defined to have a run-time choice between whichever options the vendor gives. The "ECO" token in As such, I think the "ECO" |
Sure you right, also as i wrote befor seems only 2 enterprise models using this mode, but after merging essmode status maybe they users will use NUT :) |
The only Confusing thing with ECO I found was |
….status` flag tokens [networkupstools#2708] Signed-off-by: Jim Klimov <[email protected]>
The track record of this sort of "AI" is that it is unreliable. I would like to see a group-wide norm not to use such tools at all. |
Stepping back: why do we have tokens in ups.status at all? Just because some UPS has some feature doesn't mean it should be put in ups.status. That only makes sense for things that are broadly definned/implemented in a way which seems common across manufacturers. I'm basically saying that for now, a driver that supports something like this should just put in a variable, and people can log/process it and then eventually, if we think there is a common definition, and it is useful, it can be promoted to a flag. But interfaces once defined stick around, so I think we should very much lean to not adding things until we can write a spec modification that holds up to scrutiny. |
Sure, realiity is messier. I just meant that changing tokens around should start off with a presumption that it's bad, and then think about how things are affected.
I think from a Free Software ethics viewpoint, we need to define and then map. Parroting marketing goofiness (or sometthing that might make sense) is not responible to users. Carrying a vendor-specific mode bit without judging it so that users can get at it is fine. But we should not pretend there is a global meaning. We should not aggregate N fuzzy meanings into one flag; that is an assertion that they mean the same thing. I think it is better to decline to play the game then to give people bad information. Some UPS systems are always in standby (when power is ok). Thus the ECO flag applies to them; they simply lack the less efficient mode. So if a flag is defined to mean "in operation such that input is piped to output and no inverter is running, basicaly only usage is battery trikcle and control electronics", those UPS units should have it set. The real question is: what are we trying to define and why? Who wants to know this? How do they benefit? We should insist on coherent answers to this in a multi-vendor way before we define multi-vendor flags. Thus, I think we should remove the ECO token in ups.status, and we can add mode variables to manufacturer/model-specific drivers. |
I have now |
My UPS doesn't say ECO but it is doing the same thing. It's a Best Fortress 660 and that's the only mode it has. My point is that we should either define ECO without involving "the device manufacturer says eco", and have a flag, or we should remove it from ups.status and put in each driver a variable that only claims to mean some word that one manufacturer uses. ECO in particular is problematic as there is lots of greenwashing, and structurally it is a word everybody tries to claim. Thus, I see it as starting off with a rebuttable presumption that it is at best vague and at worst fake. This can be overcome with a good definition that does not reference 'the manufacturer uses the word eco". As for "wrong", no, without it you would not be having a report in ups.status that this mode is active or not. That is not in any way "wrong". So far, I remain skeptical that we have an adequate definition to base a flag on, and I think we should have a RFC-modifcation process (at least having text in the nut repo) before we use them. |
Also by Eaton UPS HID Path we have variable that Represent UPS Line 1869 in 077c08c
|
What do you mean "can't avoid"? nut reads from the ups and translates to nut protocol. Of course we can avoid. |
i meaned we should not avoid this but not others . why to avoid this one HID but not bypass or other? |
|
if this one backup ups its not the really same as online with eco |
I guess it's good the discussion happened sooner or later, many good points raised by both sides, and thanks for some reality check even if harsh - life hurts :) A few random thoughts from recent reading:
My commute time is over, but I think it's all I had to say right now :) Not sure I'll be online tomorrow, got a conference at dayjob... |
After reading up and giving this some more in-depth thought, I'm also overall leaning more towards @gdt 's views. I think
But then I'd argue I also really like the addition of In any case - |
CC @arnaudquette-eaton |
Probably better get a decision before codifying words in one release only to remove them in the next. |
You are accepting a premise "any thing in a HID status field should be straightforwardly mapped to nut's status field". That is precisely what is under discussion, so you can't use that premise to argue for that result -- it's circular logic. HID is just one of many ways to get UPS status. My point is that we should have an entirely different approach, defining semantics for each thing accepted into ups.status, and then map as best as we can. I think it is not only acceptable but good to decline to map other things until we have a solid argument that there are clean, widely-accepted (beyond one vendor, almost always) semantics. |
Maybe, but you're still assuming the question. What is it that we should represent? That the UPS is in some more efficient mode than it could be? Or, should we instead represent efficiency directly (probably not in status), along with a list of possible efficiencies? Or is what people care about the length of missing output voltage? Should we then just represent transfer time in milliseconds? Then people who care about some particular level can easily know they are in trouble. Again, my basic point is that something fuzzily labeled by some vendor is not really that important. What is important varies according to who cares, and we should be clear about what we are representing. |
It seems rough consensus is that just mapping any random thing a vendor calls eco into ECO is not a good idea. We have no agreement about the wisdom of representing "more efficient than it could have been" vs representing a statement about how it is operating. We have no proposals on the table for clear semantics, and no arguments it belongs in ups.status. So I think we should
|
I agree that charge/discharge are ok in status. Whether a battery is undergoing net charge or discharge is clear and well understood, and it applies to pretty much all UPS units. Perhaps the spec, if it doesn't, should say this a bit more clearly, but I don't think there is any confusion or disagreement. I think this is a great example of something that belongs. But we might also decide it doesn't belong in status, but in ups.battery_status with values one of CHARGING/DISCHARGING/FULL/NOT_CHARGING. Still, the point is that it is near-universally applicable and we can map every unit's status to it, with some degree of unavoidable mess in some cases.
Well said. |
I meaned if it in firmware / hardware made by developers of ups that represent ups status by X.PresentStatus.Used that using for all statuses should maybe used also in Eaton official software.
Yes also in this mode we have better power factor and less power we loose becouse inverter is off. Maybe you right, anyway NUT maintainer will decide. And I hope for his knowledge and experience. But I personally would like to know when my ups is online and my equipment is fully protected 100% (laser printers and HiFi audio systems need online) or only IT equipment protected for which ECO mode is enough, that is voltage / frequency from bypass is enabled and there is a 10ms delay. |
ECO vs ECOcontrol, but yes was a bit confused. Both seems economy make |
I am having a hard time understanding you. I agree it makes sense to expose information somehow but nut is trying to have a common representation for all ups units so that software/users can get status without needing to special case each manufacturer.
But is that really what is important? Is it so important that it belongs in first-class status? Why is 'better' something that should be global, vs "power consumed by UPS is < 5W"?
I think you mean 10 ms. Again, I can believe you want to know. That is totally different from "this is a globally-relevant description, with common semantics". As I said before, if you were using a UPS that was always in standby/transfer mode, you'd want to know that too. So you seem to care about "how fast is the transfer", not "does my UPS have some other mode which would be more power efficient than the mode it is in". |
I think most manufacturers use ECO (HE).
Not sure but like we have OL = online (power OK or online mode) CHRG = charging Also this mode will only have online ups that have eco mode and when enabled. If I'm only admin of ups offcourse I know what mode it has now I can also to look at ups panel.
Yep sorry 10ms. Maybe you right, I just posted my understanding the subject, but it seems that this is a matter already settled by mainteiner so as I told I hope for his experience. |
I'm seeing the points from all sides, I'm still in favor of |
So, I suppose the I guess it makes sense to also add a variable to convey the technology type (opaque string?) of whatever this device calls the "more efficient than default" capability, maybe a (comma/space-separated string?) list of such modes it supports, with some name that commands can use to switch it at run-time. Such values might be derived from marketing buzzwords, perhaps, as every technology seems unique - with some twist over the same idea or another. |
I see two reasonable paths, and the middle is too messy and should be rejected.
In all seriousness "eco" is not a thing, it's a collection of perhaps similar perhaps not things. and "more efficient than some other mode" is not a sensible definition. |
Well, effectively "not-online" is some form of "more effective than 'extremely safe'".... |
Sure, but what I'm trying to say is don't accept definitions from marketing people. We are going to end up with lots of things and messy semantics, and I think it will be painful, and devolve to everybody expecting only their device semantics, and defeating the point of abstraction. What actually matters is the current overhead power and the current protection time (length of missing power). People keep talking about modes that might be different than some other mode, and I have so far not seen a coherent story that this is of primary interest. |
The "Status data" section in
docs/new-drivers.txt
defines certain keywords that are "Possible values for status_set", stressing that "Anything else will not be recognized by the usual clients. Coordinate with the nut-upsdev list before creating something new, since there will be duplication and ugliness otherwise."In fact we do have a number of other values in code, currently:
ALARM
=> upsmon: add ALARM support #415 and introduce further handling and notifiers for ALARM status #2658, andECO
=> ecomode_addon-2 #2684 are recent additions, not standardized here yet but elaborated a lot in other parts of the code base, including C++ bindings, clients likeupsmon
and should be CGI...ALARM
is set indstate.c
since before 2007, see 5f42691 - recent PRs just added its handling inupsmon
and other parts of codeACFAIL
,BY
,COMMFAULT
,DEPLETED
,HE
,OVERHEAT
,SD
,TIP
,TEST
are not definedHE
may be renamed toECO
now that it has led in evolution across the code base; should other advanced power management technology (ESS
,ABM
) activation states also be aliased toECO
? (WDYT - @desertwitch @masterwishx ?)TEST
same asCAL
?Gotta decide what to do with the unknown names - can rename some cases, but what about others? Legalize them into the docs chapter (also concerns "ALARM" and "ECO"), and add handling in C++ bindings, augeas, clients, etc.?
Perhaps more importantly: would such legalization of keywords acceptable in
ups.status
constitute a bump of NUT protocol/API for formal versioning, as in "clients conforming to protocol N are expected to handle at least tokens X,Y,Z with ascribed meanings" (free about considering, logging or ignoring other tokens, as long as the client does not crash on them)?CC @clepple @aquette - WDYT?
The text was updated successfully, but these errors were encountered: