Skip to content
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

Add missing values for ECO Mode Eaton #2620

Merged
merged 13 commits into from
Sep 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions data/cmdvartab
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,13 @@ VARDESC input.voltage.nominal "Nominal input voltage (V)"
VARDESC input.transfer.reason "Reason for last transfer to battery"
VARDESC input.transfer.low "Low voltage transfer point (V)"
VARDESC input.transfer.high "High voltage transfer point (V)"
VARDESC input.transfer.eco.low "Low voltage ECO transfer point (V)"
VARDESC input.transfer.bypass.low "Low voltage Bypass transfer point (V)"
VARDESC input.transfer.eco.high "High voltage ECO transfer point (V)"
VARDESC input.transfer.bypass.high "High voltage Bypass transfer point (V)"
VARDESC input.transfer.frequency.bypass.range "Frequency range Bypass transfer point (percent of nominal Hz)"
VARDESC input.transfer.frequency.eco.range "Frequency range ECO transfer point (percent of nominal Hz)"
VARDESC input.transfer.hysteresis "Threshold of switching protection modes, voltage transfer point (V)"
VARDESC input.transfer.low.min "smallest settable low voltage transfer point (V)"
VARDESC input.transfer.low.max "greatest settable low voltage transfer point (V)"
VARDESC input.transfer.high.min "smallest settable high voltage transfer point (V)"
Expand Down
40 changes: 40 additions & 0 deletions docs/nut-names.txt
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,20 @@ input: Incoming line/power information
transfer point (V) | 230
| input.transfer.trim.high | High voltage trimming
transfer point (V) | 240
| input.transfer.eco.low | Low voltage ECO
transfer point (V) | 218
| input.transfer.bypass.low | Low voltage Bypass
transfer point (V) | 184
| input.transfer.eco.high | High voltage ECO
transfer point (V) | 241
| input.transfer.bypass.high | High voltage Bypass
transfer point (V) | 264
| input.transfer.frequency.bypass.range | Frequency range Bypass transfer
point (percent of nominal Hz) | 10
| input.transfer.frequency.eco.range | Frequency range ECO transfer
point (percent of nominal Hz) | 5
| input.transfer.hysteresis | Threshold of switching protection modes,
voltage transfer point (V) | 10
| input.load | Load on (ePDU) input (percent
of full) | 25
| input.realpower | Current sum value of all (ePDU)
Expand All @@ -305,6 +319,32 @@ input: Incoming line/power information
sources (degrees) | 181
|=================================================================================

[NOTE]
.Input Voltage Hysteresis
======
The input voltage hysteresis concept refers to a specific behavior related
to how some UPS models can handle changes in input voltage.

When the UPS is running normally (powered by utility or generator), it
maintains a steady output voltage for your critical equipment. But what
if the input voltage "wiggles" a bit due to fluctuations or other minor
disturbances?

Rapid switching between UPS protection modes (utility power to battery
and vice versa) can stress both the UPS and its connected devices.

So, some UPS models set up thresholds: If the input voltage drops below
a certain "Low" level, the UPS won't immediately switch to battery mode.
Instead, it waits until it is sure the voltage stays consistently low
for a bit. Similarly, if the input voltage rises above another threshold
(the "High" level), the UPS won't rush back to normal mode. It waits for
stability.

By introducing hysteresis, such an UPS avoids unnecessary toggling, ensuring
smoother transitions and better protection for your sensitive and expensive
gear.
======

output: Outgoing power/inverter information
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Expand Down
11 changes: 9 additions & 2 deletions drivers/mge-hid.c
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
# endif
#endif

#define MGE_HID_VERSION "MGE HID 1.48"
#define MGE_HID_VERSION "MGE HID 1.49"

/* (prev. MGE Office Protection Systems, prev. MGE UPS SYSTEMS) */
/* Eaton */
Expand Down Expand Up @@ -995,7 +995,7 @@ static usage_lkp_t mge_usage_lkp[] = {
{ "DataValid", 0xffff0099 },
{ "ToggleTimer", 0xffff009a },
{ "BypassTransferDelay", 0xffff009b },
{ "HysteresysVoltageTransfer", 0xffff009c },
{ "HysteresisVoltageTransfer", 0xffff009c },
{ "SlewRate", 0xffff009d },
/* 0xffff009e-0xffff009f => Reserved */
{ "PDU", 0xffff00a0 },
Expand Down Expand Up @@ -1404,11 +1404,18 @@ static hid_info_t mge_hid2nut[] =
{ "input.frequency.nominal", 0, 0, "UPS.Flow.[1].ConfigFrequency", NULL, "%.0f", HU_FLAG_STATIC, NULL },
/* same as "input.transfer.boost.low" */
{ "input.transfer.low", ST_FLAG_RW | ST_FLAG_STRING, 5, "UPS.PowerConverter.Output.LowVoltageTransfer", NULL, "%.0f", HU_FLAG_SEMI_STATIC, NULL },
{ "input.transfer.eco.low", ST_FLAG_RW | ST_FLAG_STRING, 5, "UPS.PowerConverter.Output.LowVoltageEcoTransfer", NULL, "%.0f", HU_FLAG_SEMI_STATIC, NULL },
{ "input.transfer.bypass.low", ST_FLAG_RW | ST_FLAG_STRING, 5, "UPS.PowerConverter.Output.LowVoltageBypassTransfer", NULL, "%.0f", HU_FLAG_SEMI_STATIC, NULL },
{ "input.transfer.boost.low", ST_FLAG_RW | ST_FLAG_STRING, 5, "UPS.PowerConverter.Output.LowVoltageBoostTransfer", NULL, "%.0f", HU_FLAG_SEMI_STATIC, NULL },
{ "input.transfer.boost.high", ST_FLAG_RW | ST_FLAG_STRING, 5, "UPS.PowerConverter.Output.HighVoltageBoostTransfer", NULL, "%.0f", HU_FLAG_SEMI_STATIC, NULL },
{ "input.transfer.trim.low", ST_FLAG_RW | ST_FLAG_STRING, 5, "UPS.PowerConverter.Output.LowVoltageBuckTransfer", NULL, "%.0f", HU_FLAG_SEMI_STATIC, NULL },
/* same as "input.transfer.trim.high" */
{ "input.transfer.high", ST_FLAG_RW | ST_FLAG_STRING, 5, "UPS.PowerConverter.Output.HighVoltageTransfer", NULL, "%.0f", HU_FLAG_SEMI_STATIC, NULL },
{ "input.transfer.eco.high", ST_FLAG_RW | ST_FLAG_STRING, 5, "UPS.PowerConverter.Output.HighVoltageEcoTransfer", NULL, "%.0f", HU_FLAG_SEMI_STATIC, NULL },
{ "input.transfer.bypass.high", ST_FLAG_RW | ST_FLAG_STRING, 5, "UPS.PowerConverter.Output.HighVoltageBypassTransfer", NULL, "%.0f", HU_FLAG_SEMI_STATIC, NULL },
{ "input.transfer.frequency.bypass.range", ST_FLAG_RW | ST_FLAG_STRING, 5, "UPS.PowerConverter.Output.FrequencyRangeBypassTransfer", NULL, "%.0f", HU_FLAG_SEMI_STATIC, NULL },
{ "input.transfer.frequency.eco.range", ST_FLAG_RW | ST_FLAG_STRING, 5, "UPS.PowerConverter.Output.FrequencyRangeEcoTransfer", NULL, "%.0f", HU_FLAG_SEMI_STATIC, NULL },
{ "input.transfer.hysteresis", ST_FLAG_RW | ST_FLAG_STRING, 5, "UPS.PowerConverter.Output.HysteresisVoltageTransfer", NULL, "%.0f", HU_FLAG_SEMI_STATIC, NULL },
{ "input.transfer.trim.high", ST_FLAG_RW | ST_FLAG_STRING, 5, "UPS.PowerConverter.Output.HighVoltageBuckTransfer", NULL, "%.0f", HU_FLAG_SEMI_STATIC, NULL },
{ "input.sensitivity", ST_FLAG_RW | ST_FLAG_STRING, 10, "UPS.PowerConverter.Output.SensitivityMode", NULL, "%s", HU_FLAG_SEMI_STATIC, mge_sensitivity_info },
{ "input.voltage.extended", ST_FLAG_RW | ST_FLAG_STRING, 5, "UPS.PowerConverter.Output.ExtendedVoltageMode", NULL, "%s", HU_FLAG_SEMI_STATIC, yes_no_info },
Expand Down
Loading