-
-
Notifications
You must be signed in to change notification settings - Fork 370
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
Revise the stance on ECO/... modes in NUT standard, amend implementations #2850
Conversation
I'm sorry but as posted in #2719 (comment) |
Well, at least the driver might pick up (or not) the currently active mode if reported by device. If some button switches the mode and we see notifications, that would be fun too... |
Yep the problem in my 9E no buttons to switch to /from eco mode. |
Also was some issue when tryed to compile for unraid 7, so maybe @desertwitch can compile then I can check if current mode pickuped |
Why are there 43 commits? I know opinions differ about PRs and other stuff, but I'm in the rebase camp, and I find unrebased hard to follow |
I guess semantics wise, I wonder if this is really about "inverter". If it were just output.mode, that would seem better. As I am beginning to just barely understand, some eco modes are about not only a true bypass of out from in, but shutting down some other electronics. This is all about situations where the inverter is not running anyway. So maybe it's even "ups.mode". The next thought I have, not sure it's helpful, is there is "what modes are set to operate as able" vs "what mode is it in now". I think we are talking about "what is it in now" and not configuration. So I land on |
Naming might be addressed, the idea crossed my mind too especially as I went about looking for precedents and changing the handling of nutdrv_q voltronic (eco and eco_adv modes - the latter seems to be indeed about powering down electronics of the UPS). |
in |
Well, that highlights why the discussion in #2708 and this PR happened - different devices and vendors have different implementations and meanings for similar sounding buzzwords and technologies, which may even change over time for the same vendor, but we in NUT have to represent somehow in a vendor-agnostic data scheme, so that (ideally) the end-users would not care which UPS brand and model they have to know the physical impact of some configuration change whatever it is named today. |
I agree, just maybe we need to mark when the inverter is working or waiting to work (like in standby) or off? |
Looking at the list:
I'll check what can get dumped overboard into agreeable PRs, to make the difficult and contentious PR easier to review :) |
Maybe, at least that would be a finite amount of states/strings to report. If we know or have good reasons to assume its state. |
As for inverter on or off, and other things, I think we can begin to define a unfied semantics, but I think that should start with documentation that has a definition and that maps state from as many implementations as possible, so that we are sure it's meaningful, clean, and captures what it should. Then we can think about variables vs flags. In general I lean to anything that's a detail in a variable, so that flags are as simple as possible. It's easier to ignore a variable you don't know about than deal with unknown or split flags. "Is the inverter operating" sounds like a great first candidate. I don't think the possibility of coming up with a definition for that should deter us from having an experimental variable that simply has a vendor:buzzword state description. |
Thanks. Definitely all the merges should at least be easy to rebase out, and I think it's good to have an expectation/practice that PRs are rebased, not only dropping that, but folding in any 'make big change', 'fixup to that big change' commit sequences. |
f92d82b
to
7985ad2
Compare
Signed-off-by: DaRK AnGeL <28630321+masterwishx@users.noreply.github.com>
…ISHED !! Signed-off-by: DaRK AnGeL <28630321+masterwishx@users.noreply.github.com>
Signed-off-by: DaRK AnGeL <28630321+masterwishx@users.noreply.github.com>
Signed-off-by: DaRK AnGeL <28630321+masterwishx@users.noreply.github.com>
Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
…es.txt: move "ecomode" and "essmode" INSTCMDs into "experimental." namespace [networkupstools#2708] Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
…ble definitions to "opaque string" [networkupstools#2708] Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
@masterwishx : during a weekend revision of changes I wondered if my changes between Can you please revise the currently proposed code base in this PR about that logic (whether visually or by testing with HW) to make sure no typos snuck in - before it is too late to fix them? :) |
I will check the code later today I hope. |
Given time limits, I think moving anything eco to full experimental label immediately is good, as given the lack of broadly-shared clear semantics, it's a bug for it to have gone in. Medium term, using vendor tokens in a mode set command sounds good. In the glorious future, when all vendors publish clear specifications, we can figure out the common ground, while meeting on neutral territory. That's my hot take :-) |
…md_hidden() for commands not made known outside the driver [networkupstools#2850] Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
FWIW, tinkered a bit with further ideas, about a single command to rule this all, as mostly a skeleton, parked at https://github.com/jimklimov/nut/tree/issue-2708-instcmd
That branch needs the actual dispatching code (via In this design, the currently implemented (and hopefully not broken by this PR) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
…mental.ecomode.start.auto" [networkupstools#2708, networkupstools#2850] Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
@masterwishx : Removed mentions of Got any other last thoughts, or can this be merged when CI agrees? :) Did you have a chance to read/check that my changes to And thanks again for bearing with me (and others) over so many months, comments, and uncertainty :) |
Yes it's looks fine.
Thanks, i beleave I can finish later this draft pr and add also But all other changes seems all fine to me |
Great, thanks! Note that THIS PR does include all your commits from your draft #2697 (rebased over later |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be fine ,as tested on 9SX ,
Last function needs to 9E model like my to enter ECO mode but cant get to online back then !
…stuck in ecomode Signed-off-by: DaRK AnGeL <28630321+masterwishx@users.noreply.github.com>
Signed-off-by: DaRK AnGeL <28630321+masterwishx@users.noreply.github.com>
Signed-off-by: DaRK AnGeL <28630321+masterwishx@users.noreply.github.com>
Signed-off-by: Jim Klimov <jimklimov+nut@gmail.com>
2850 addon
Following the long discussion in #2708, we decided that vendor-defined states named by marketing buzzwords amounting to some economic/ecological mode of operation should not be exposed in
ups.status
with a sense of urgency.Instead, a new
output.inverter.mode
was introduced (with similar semantics) which drivers may eventually learn to populate with a number of standard states (line-interactive, online, bypass(?)) if we are sure we know them to be in place, as well as tokens forvendor:NAME:BUZZWORD
to report the additional information that may be or not be of interest to the end user.CC @masterwishx @gdt @desertwitch @arnaudquette-eaton : comments and practical testing would be welcome - e.g. that the state report would correlate with device state changes, that it would be still reported by upsmon, and remain reported while active (like only get reported when changing state, then disappear; and not flip-flop etc.)
I think the main review question here is about the spec, if that change feels acceptable as the compromise between different wishes in that discussion, and can be published as part of next NUT release.
Implementation, as long as it does not crash anything, may be improved later (after a release - i.e. minor flaws are not a blocker, it is experimental and constrained in practice to a couple of drivers so far)...
Closes: #2697
(Originally includes commits from that PR, but may post them rebased eventually, so linking for GitHub automatics this way)