Skip to content

Introduce NUT handling for "ECO Mode" (status, commands)ย #2495

@jimklimov

Description

@jimklimov

At the moment we do not even have a name for "ECO Mode" (as in "economic" or "ecological"; allegedly aka "High Efficiency"/"HE" or "eConversion") status in https://networkupstools.org/docs/developer-guide.chunked/new-drivers.html#_status_data while it apparently becomes a common feature (and reported state) on current devices.

Quite probably, every vendor or model series has their own definition.

By some accounts, the description of this ECO mode seems to be what was called "line-interactive" in the early days of UPSes (as opposed to "online", which kept wall and load on physically separate circuits with a battery and inverter in the middle), so powering load from the wall and switching over to battery when it goes out of range - maybe except the smart part of also waiting for 5 minutes on battery after a hiccup before switching back to wall. (Per #2254 (comment) for Riello at least)

For Eaton devices, per #430 (comment), the ECO range provides the ECO mode, which cut power on slaves outlets if power consumption on the master outlet goes below a certain threshold. This is usable in NUT, but I think I missed to document it. See

nut/drivers/mge-hid.c

Lines 1326 to 1329 in b7f7043

/* On Protection Station, the line below is the power consumption threshold
* on the master outlet used to automatically power off the slave outlets.
* Values: 10, 25 (default) or 60 VA. */
{ "outlet.power", ST_FLAG_RW | ST_FLAG_STRING, 6, "UPS.OutletSystem.Outlet.[1].ConfigApparentPower", NULL, "%s", HU_FLAG_SEMI_STATIC | HU_FLAG_ENUM, pegasus_threshold_info },
- supported values can be seen using upsrw on outlet.power.

There are few hits to git grep -wi eco drivers already, which suggest that:

  • huawei-ups2000.c, apc-mib.c and huawei-mib.c have mappings for "OL ECO" or "OB ECO"
  • delta_ups-hid.c has a hit for "on eco" (lower-cased)
  • mge-hid.c seems to have many comments about it, and "pegasus" mappings for some model series
  • socomec_jbus.c has an upsdebugx() message about it but no formal status_set()
  • tripplitesu.c has a #define ECONOMIC_MODE "ECO" macro which is not further referenced
  • nutdrv_qx_voltronic.c inconveniently handles it as an alarm (suppress alarm = "UPS is in ECO Mode."ย #2494); also of note there is a "Converter Mode" alarm that has no name either... maybe (is it boost/trim or something else?)

Another aspect raised in ML and tickets earlier is that there seems to be no way currently to manage such UPS mode through NUT. Per git grep dstate_addcmd, quite a few drivers seem to support bypass.(start|stop) commands, one for calibrate.(start|stop), and a few wordings like test.battery.(start|stop|quick...) and test.panel.* -- so there's ample similar precedent for some eco{mode?}.(start|stop) to become a thing syntax-wise.

Alternatively, as per Eaton example noted above, this might be a setting (perhaps per-outlet) rather than a device-wide command (although the comment said "seen" not "set" albeit via upsrw).

UPDATE: The coded notion of ECO concept as such (in headers, upsmon notifications, docs, C++ bindings, augeas...) is getting added by PR #2637

Metadata

Metadata

Labels

ECO/ESS/HE/ABM modesNon-trivial power supply management modes (ECO, ESS, HE, ABM etc.)EatonIncorrect or missing readingsOn some devices driver-reported values are systemically off (e.g. x10, x0.1, const+Value, etc.)NUT protocolsdocumentationimpacts-release-2.8.2Issues reported against NUT release 2.8.2 (maybe vanilla or with minor packaging tweaks)

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions