From 4cd226a55883dfc55a39f82f215dbb67e8c64cc3 Mon Sep 17 00:00:00 2001 From: Jim Klimov Date: Sun, 28 Jul 2024 17:22:12 +0200 Subject: [PATCH] drivers/mge-hid.c, NEWS.adoc: try to recognize Eaton 9E model and info [#1925] Also handle "unknown 2000" assuming it is a mis-read "Eaton 9E 2000(i?)" which refused to tell libusb its vendor/product/serial strings. This may be the answer to such issues as #1925, #2380 (re-opened), #2492 Signed-off-by: Jim Klimov --- NEWS.adoc | 2 +- data/driver.list.in | 1 + drivers/mge-hid.c | 18 ++++++++++++++++-- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/NEWS.adoc b/NEWS.adoc index adc0e84c5e..8fe70d6b41 100644 --- a/NEWS.adoc +++ b/NEWS.adoc @@ -108,7 +108,7 @@ https://github.com/networkupstools/nut/milestone/11 * General suggestion from `possibly_supported()` message method for devices with VendorID=`0x06da` (Phoenixtec), seen in some models supported by MGE HID or Liebert HID, updated to suggest trying `nutdrv_qx`. [#334] - * MGE HID list of `mge_model_names[]` was extended for Eaton 5PX and 5SC + * MGE HID list of `mge_model_names[]` was extended for Eaton 9E, 5PX and 5SC series (largely guessing, feedback and PRs for adaptation to actual string values reported by devices via USB are welcome), so these devices would now report `battery.voltage` and `battery.voltage.nominal`. [#2380] diff --git a/data/driver.list.in b/data/driver.list.in index 8fb11cb768..b8f33caf43 100644 --- a/data/driver.list.in +++ b/data/driver.list.in @@ -362,6 +362,7 @@ "Eaton" "ups" "5" "5S" "USB port" "usbhid-ups" "Eaton" "ups" "5" "5SC" "USB port" "usbhid-ups" "Eaton" "ups" "5" "5P" "USB port" "usbhid-ups" +"Eaton" "ups" "5" "9E" "USB port" "usbhid-ups" "Eaton" "ups" "5" "9SX" "USB port" "usbhid-ups" "Eaton" "ups" "5" "9PX" "USB port" "usbhid-ups" "Eaton" "ups" "5" "9PX Split Phase 6/8/10 kVA" "USB port" "usbhid-ups" diff --git a/drivers/mge-hid.c b/drivers/mge-hid.c index 920c19d3db..c7c5bd6e9f 100644 --- a/drivers/mge-hid.c +++ b/drivers/mge-hid.c @@ -50,7 +50,7 @@ # endif #endif -#define MGE_HID_VERSION "MGE HID 1.47" +#define MGE_HID_VERSION "MGE HID 1.48" /* (prev. MGE Office Protection Systems, prev. MGE UPS SYSTEMS) */ /* Eaton */ @@ -131,7 +131,8 @@ typedef enum { MGE_PULSAR_M_2200, MGE_PULSAR_M_3000, MGE_PULSAR_M_3000_XL, - EATON_5P = 0x500 /* Eaton 5P / 5PX / 5SC series */ + EATON_5P = 0x500, /* Eaton 5P / 5PX / 5SC series */ + EATON_9E = 0x900 /* Eaton 9E entry-level series */ } models_type_t; /* Default to line-interactive or online (ie, not offline). @@ -489,6 +490,7 @@ static const char *mge_battery_voltage_nominal_fun(double value) case MGE_PULSAR_M: case EATON_5P: + case EATON_9E: /* Presumably per https://github.com/networkupstools/nut/issues/1925#issuecomment-1562342854 */ break; default: @@ -514,6 +516,7 @@ static const char *mge_battery_voltage_fun(double value) case MGE_EVOLUTION: case MGE_PULSAR_M: case EATON_5P: + case EATON_9E: /* Presumably per https://github.com/networkupstools/nut/issues/1925#issuecomment-1562342854 */ break; default: @@ -1144,6 +1147,17 @@ static models_name_t mge_model_names [] = { "Eaton 5SC", "2200", EATON_5P, NULL }, { "Eaton 5SC", "3000", EATON_5P, NULL }, + /* Eaton 9E entry-level series per discussions in + * https://github.com/networkupstools/nut/issues/1925 + * https://github.com/networkupstools/nut/issues/2380 + * https://github.com/networkupstools/nut/issues/2492 + */ + { "unknown", "2000", EATON_9E, "9E2000 (presumed)" }, /* https://github.com/networkupstools/nut/issues/1925#issuecomment-1609262963 */ + { "Eaton 9E", "2000", EATON_9E, "9E2000" }, + { "Eaton 9E", "2000i", EATON_9E, "9E2000i" }, + { "Eaton 9E", "3000", EATON_9E, "9E3000" }, + { "Eaton 9E", "3000i", EATON_9E, "9E3000i" }, + /* Pulsar M models */ { "PULSAR M", "2200", MGE_PULSAR_M_2200, NULL }, { "PULSAR M", "3000", MGE_PULSAR_M_3000, NULL },