idowell-hid: add GoldenMate 1000VA/800W LiFePO4 (USB ID 06da:ffff)#3502
Conversation
|
Preparing a ZIP file with standard source tarball and another tarball with pre-built docs for commit 58e1791 ... |
|
Hello, thanks for the contribution, but it would not work the way it is originally posted, I think (might hijack devices not intended for this subdriver) - see also To make the PR acceptable, you would need to:
Looking forward to getting this merged (mergeable) :) |
|
✅ Build nut 2.8.5.4863-master completed (commit 1f91f12f6a by @bshor)
|
|
✅ Build nut 2.8.5.4863-master completed (commit 1f91f12f6a by @bshor) |
e98f778 to
362952e
Compare
|
Thanks for the detailed review! I've force-pushed a revision that addresses all the points:
I don't have a second |
…ther Phoenixtec devices GoldenMate 1000VA/800W LiFePO4 packs reuse the shared Phoenixtec vendor ID 0x06da:0xffff with the same -BMS- firmware and HID descriptor as the existing iDowell 0x075d:0x0300 device, so they fall back to the generic liebert-hid handler (bogus battery.runtime, etc). The 0x06da VID is shared: mge-hid claims it for AEG PROTECT NAS and liebert-hid is its default sink. Probe order is mge -> idowell -> liebert, so idowell can intercept GoldenMate before liebert provided it does not grab the other 0x06da devices. - Add a named PHOENIXTEC_VENDORID define and use it for the 0x06da:0xffff device-table entry (feeds the udev/nut-scanner parser). - Gate idowell_claim() on the device's -BMS-/Smart-Battery strings, like mge_claim() does for AEG, returning 0 for non-GoldenMate 0x06da so they fall through to liebert-hid / mge-hid. - Bump IDOWELL_HID_VERSION to 0.21 and add a NEWS.adoc entry. - List both GoldenMate variants in data/driver.list.in. Fixes: networkupstools#3501 Signed-off-by: Boris Shor <boris@bshor.com>
362952e to
0279a35
Compare
|
❌ Build nut 2.8.5.4865-master failed (commit 2e2fc643f6 by @bshor) |
|
✅ Build nut 2.8.5.4866-master completed (commit 7b439e97bc by @bshor)
|
|
✅ Build nut 2.8.5.4866-master completed (commit 7b439e97bc by @bshor) |
|
Looks great, thanks! Out of curiosity, was AI involved in this PR or is it all a manually investigated and made change? |
|
Definitely AI assisted -- Claude Code Opus. I'm overseeing it, but it's handling most of the work. |
Summary
GoldenMate ships the same
-BMS-firmware with an identical 291-byte HID descriptor across multiple USB vendor/product IDs. The075d:0300variant was already added to this subdriver in #3015. This PR adds06da:ffff(Phoenixtec VID), which was previously falling through to the generic Phoenixtec/Liebert HID subdriver.Device: GoldenMate 1000VA/800W Sinewave UPS with LiFePO4 Battery (230Wh), USB ID
06da:ffff, manufacturer string-BMS-, product stringSmart-Battery.Problem: Without this change the device matches
Phoenixtec/Liebert HID 0.41and reportsbattery.runtime = 599940seconds — a firmware placeholder value. The iDowell subdriver mappings (which were already extended for the identical075d:0300firmware) handle this device correctly.Evidence that HID descriptors are identical: Both devices report the same 291-byte report descriptor (
05 84 09 04 a1 01 ...), the same 28 HID objects, and the sameLogMax < LogMinquirks in ReportID 0x01 and 0x02.Tracked in #3501.
Changes
drivers/idowell-hid.c: add06da:ffffto the USB device tabledata/driver.list.in: split GoldenMate entry into two lines with correct model names, USB IDs, support level 2, and issue links