pfSense 2.8.1, NUT 2.8.2_5 package, EcoFlow UPS
-
I have a new EcoFLow Delta3 Plus UPS which has USB HID function. Unfortunately pfSense and the NUT package are unable to see it. I was previously using a CyberPower UPS, which worked without issue.
According to the NUT Compatibility List, The EcoFlow Delta 3 Plus is supported using the usbhid-ups driver. FreeBSD appears to be able to see the USB HID device, but isn't doing anything with it.
I tried running the driver using user=root to see if it was a USB quirk issue, but even then it doesn't seem to be detected.
Running usbconfig -v results in the following output regarding the UPS:
ugen2.2: <EcoFlow EF-UPS-DELTA 3 Plus> at usbus2, cfg=0 md=HOST spd=FULL (12Mbps ) pwr=ON (100mA) ugen2.2.0: uhid0: <EcoFlow EF-UPS-DELTA 3 Plus, class 239/2, rev 2.00/1.00, addr 2> ugen2.2.1: umodem0: <EcoFlow EF-UPS-DELTA 3 Plus, class 239/2, rev 2.00/1.00, ad dr 2> bLength = 0x0012 bDescriptorType = 0x0001 bcdUSB = 0x0200 bDeviceClass = 0x00ef <Miscellaneous device> bDeviceSubClass = 0x0002 bDeviceProtocol = 0x0001 bMaxPacketSize0 = 0x0040 idVendor = 0x3746 idProduct = 0xffff bcdDevice = 0x0100 iManufacturer = 0x0001 <EcoFlow> iProduct = 0x0002 <EF-UPS-DELTA 3 Plus> iSerialNumber = 0x0003 <*redacted*> bNumConfigurations = 0x0001Running usbconfig -d ugen2.2 show_ifdrv shows the following:
ugen2.2: <EcoFlow EF-UPS-DELTA 3 Plus> at usbus2, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA) ugen2.2.0: uhid0: <EcoFlow EF-UPS-DELTA 3 Plus, class 239/2, rev 2.00/1.00, addr 2> ugen2.2.1: umodem0: <EcoFlow EF-UPS-DELTA 3 Plus, class 239/2, rev 2.00/1.00, addr 2>If I attempt to detatch the kernel driver (uhid0) by running usbconfig -d ugen2.2 detach_kernel_driver, it results in this:
ugen2.2: <EcoFlow EF-UPS-DELTA 3 Plus> at usbus2, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA) ugen2.2.1: umodem0: <EcoFlow EF-UPS-DELTA 3 Plus, class 239/2, rev 2.00/1.00, addr 2>The ugen2.2.0: uhid0 entry disappears, but the ugen2.2.1 umodem0 entry remains.
Running nut-scanner I get:
Scanning USB bus. No start IP, skipping SNMP Scanning XML/HTTP bus. No start IP, skipping NUT bus (old connect method) Scanning NUT simulation devices. Scanning NUT bus (avahi method). Error sending Eaton <SCAN_REQUEST/> to <broadcast>, #1/3 Failed to create Avahi client: Daemon not running Error sending Eaton <SCAN_REQUEST/> to <broadcast>, #2/3 Error sending Eaton <SCAN_REQUEST/> to <broadcast>, #3/3NUT does not appear to be able to "see" the UPS.
According to the USB quirks and NUT thread, there should only be 1 "ugenX.X" line when detatching the kernel driver. Could this be the issue? Anyone have any ideas?
Running the usbhid-ups driver in debug mode shows the following for the UPS:
0.003941 [D2] Checking device 7 of 8 (3746/FFFF) 0.027853 [D2] - VendorID: 3746 0.027884 [D2] - ProductID: ffff 0.027892 [D2] - Manufacturer: EcoFlow 0.027898 [D2] - Product: EF-UPS-DELTA 3 Plus 0.027904 [D2] - Serial Number: *redacted* 0.027911 [D2] - Bus: 002 0.027916 [D2] - Bus Port: 002 0.027923 [D2] - Device: 002 0.027929 [D2] - Device release number: 0100 0.027935 [D2] Trying to match device 0.027946 [D2] match_function_subdriver (non-SHUT mode): matching a device... 0.027962 [D2] match_function_subdriver (non-SHUT mode): failed to match a subdriver to vendor and/or product ID 0.027969 [D2] Device does not match - skipping 0.031122 [D2] libusb1: No appropriate HID device found 0.031134 libusb1: Could not open any HID devices: insufficient permissions on everything 0.031142 No matching HID UPS found 0.031180 [D5] send_to_all: SETINFO driver.state "cleanup.exit" 0.031191 upsnotify: failed to notify about state 4: no notification tech defined, will not spam more about itThanks in advance!
-
@Rahzadan said in pfSense 2.8.1, NUT 2.8.2_5 package, EcoFlow UPS:
According to the NUT Compatibility List, The EcoFlow Delta 3 Plus is supported using the usbhid-ups driver.
EcoFlow is new, and I don't believe that support is present in 2.8.1. I believe support was introduced Circa 2.8.3.
-
I think you're right.
Running the following:
/usr/local/libexec/nut/usbhid-ups -DD -a ups -x productid=ffff -x vendorid=3746 -x explore=1Results in:
0.002783 [D2] Checking device 7 of 8 (3746/FFFF) 0.026637 [D2] - VendorID: 3746 0.026670 [D2] - ProductID: ffff 0.026678 [D2] - Manufacturer: EcoFlow 0.026685 [D2] - Product: EF-UPS-DELTA 3 Plus 0.026691 [D2] - Serial Number: *redacted* 0.026697 [D2] - Bus: 002 0.026703 [D2] - Bus Port: 002 0.026709 [D2] - Device: 002 0.026715 [D2] - Device release number: 0100 0.026721 [D2] Trying to match device 0.026732 [D2] match_function_subdriver (non-SHUT mode): matching a device... 0.026759 [D2] Device matches 0.026767 [D2] Reading configuration descriptor 1 of 1 0.026946 [D2] Claimed interface 0 successfully 0.032627 [D2] HID descriptor too short (expected 9, got 0) 0.032669 [D2] HID descriptor length 376 0.038631 [D2] Report Descriptor size = 376 0.038823 Using subdriver: EXPLORE HID 0.2 0.038835 [D1] 52 HID objects found 0.044654 [D1] Path: UPS.Flow.[4].ConfigActivePower, Type: Feature, ReportID: 0x01, Offset: 0, Size: 16, Value: 1024 0.050649 [D1] Path: UPS.PowerSummary.Rechargeable, Type: Feature, ReportID: 0x06, Offset: 0, Size: 8, Value: 0 0.116853 nut_libusb_get_report: No device 0.116912 [D1] Can't retrieve Report 1f: Interrupted system call 0.116952 [D1] Path: UPS.PowerSummary.iDeviceChemistry, Type: Feature, ReportID: 0x1f, Offset: 0, Size: 8 0.185846 nut_libusb_get_report: No device 0.185893 [D1] Can't retrieve Report 20: Interrupted system call 0.185908 [D1] Path: UPS.PowerSummary.iOEMInformation, Type: Feature, ReportID: 0x20, Offset: 0, Size: 8 0.191697 [D1] Path: UPS.PowerSummary.CapacityMode, Type: Feature, ReportID: 0x16, Offset: 0, Size: 8, Value: 2 0.197621 [D1] Path: UPS.PowerSummary.CapacityGranularity1, Type: Feature, ReportID: 0x10, Offset: 0, Size: 8, Value: 1 0.203642 [D1] Path: UPS.PowerSummary.CapacityGranularity2, Type: Feature, ReportID: 0x18, Offset: 0, Size: 8, Value: 1 0.209626 [D1] Path: UPS.PowerSummary.FullChargeCapacity, Type: Feature, ReportID: 0x0e, Offset: 0, Size: 8, Value: 100 0.215515 [D1] Path: UPS.PowerSummary.DesignCapacity, Type: Feature, ReportID: 0x17, Offset: 0, Size: 8, Value: 100 0.221631 [D1] Path: UPS.PowerSummary.RemainingCapacity, Type: Input, ReportID: 0x0c, Offset: 0, Size: 8, Value: 79 0.221667 [D1] Path: UPS.PowerSummary.RemainingCapacity, Type: Feature, ReportID: 0x0c, Offset: 0, Size: 8, Value: 79 0.227639 [D1] Path: UPS.PowerSummary.WarningCapacityLimit, Type: Feature, ReportID: 0x0f, Offset: 0, Size: 8, Value: 5 0.233617 [D1] Path: UPS.PowerSummary.RemainingCapacityLimit, Type: Feature, ReportID: 0x11, Offset: 0, Size: 8, Value: 15 0.239476 [D2] refresh_report_buffer: expected 3 bytes, but got 2 instead 0.239522 [D1] Path: UPS.PowerSummary.ManufacturerDate, Type: Feature, ReportID: 0x09, Offset: 0, Size: 16, Value: 0 0.245526 [D1] Path: UPS.PowerSummary.AverageTimeToFull, Type: Feature, ReportID: 0x1a, Offset: 0, Size: 16, Value: 7200 0.251527 [D1] Path: UPS.PowerSummary.AverageTimeToEmpty, Type: Input, ReportID: 0x1c, Offset: 0, Size: 16, Value: 7200 0.251563 [D1] Path: UPS.PowerSummary.AverageTimeToEmpty, Type: Feature, ReportID: 0x1c, Offset: 0, Size: 16, Value: 7200 0.257475 [D1] Path: UPS.PowerSummary.RunTimeToEmpty, Type: Input, ReportID: 0x0d, Offset: 0, Size: 16, Value: 3160 0.257513 [D1] Path: UPS.PowerSummary.RunTimeToEmpty, Type: Feature, ReportID: 0x0d, Offset: 0, Size: 16, Value: 3160 0.263624 [D1] Path: UPS.PowerSummary.RemainingTimeLimit, Type: Input, ReportID: 0x08, Offset: 0, Size: 16, Value: 120 0.263660 [D1] Path: UPS.PowerSummary.RemainingTimeLimit, Type: Feature, ReportID: 0x08, Offset: 0, Size: 16, Value: 120 0.269630 [D1] Path: UPS.PowerSummary.DelayBeforeShutdown, Type: Feature, ReportID: 0x12, Offset: 0, Size: 16, Value: -1 0.275644 [D1] Path: UPS.PowerSummary.DelayBeforeReboot, Type: Feature, ReportID: 0x13, Offset: 0, Size: 16, Value: -1 0.281546 [D1] Path: UPS.PowerSummary.ConfigVoltage, Type: Feature, ReportID: 0x0a, Offset: 0, Size: 16, Value: 13.8 0.287626 [D1] Path: UPS.PowerSummary.Voltage, Type: Input, ReportID: 0x0b, Offset: 0, Size: 16, Value: 13 0.287663 [D1] Path: UPS.PowerSummary.Voltage, Type: Feature, ReportID: 0x0b, Offset: 0, Size: 16, Value: 13 0.293638 [D1] Path: UPS.PowerSummary.AudibleAlarmControl, Type: Input, ReportID: 0x14, Offset: 0, Size: 8, Value: 2 0.293674 [D1] Path: UPS.PowerSummary.AudibleAlarmControl, Type: Feature, ReportID: 0x14, Offset: 0, Size: 8, Value: 2 0.299575 [D1] Path: UPS.PowerSummary.PresentStatus.Charging, Type: Input, ReportID: 0x07, Offset: 0, Size: 1, Value: 0 0.299611 [D1] Path: UPS.PowerSummary.PresentStatus.Charging, Type: Feature, ReportID: 0x07, Offset: 0, Size: 1, Value: 0 0.299624 [D1] Path: UPS.PowerSummary.PresentStatus.Discharging, Type: Input, ReportID: 0x07, Offset: 1, Size: 1, Value: 0 0.299636 [D1] Path: UPS.PowerSummary.PresentStatus.Discharging, Type: Feature, ReportID: 0x07, Offset: 1, Size: 1, Value: 0 0.299650 [D1] Path: UPS.PowerSummary.PresentStatus.ACPresent, Type: Input, ReportID: 0x07, Offset: 2, Size: 1, Value: 1 0.299663 [D1] Path: UPS.PowerSummary.PresentStatus.ACPresent, Type: Feature, ReportID: 0x07, Offset: 2, Size: 1, Value: 1 0.299675 [D1] Path: UPS.PowerSummary.PresentStatus.BatteryPresent, Type: Input, ReportID: 0x07, Offset: 3, Size: 1, Value: 1 0.299686 [D1] Path: UPS.PowerSummary.PresentStatus.BatteryPresent, Type: Feature, ReportID: 0x07, Offset: 3, Size: 1, Value: 1 0.299697 [D1] Path: UPS.PowerSummary.PresentStatus.BelowRemainingCapacityLimit, Type: Input, ReportID: 0x07, Offset: 4, Size: 1, Value: 0 0.299707 [D1] Path: UPS.PowerSummary.PresentStatus.BelowRemainingCapacityLimit, Type: Feature, ReportID: 0x07, Offset: 4, Size: 1, Value: 0 0.299718 [D1] Path: UPS.PowerSummary.PresentStatus.RemainingTimeLimitExpired, Type: Input, ReportID: 0x07, Offset: 5, Size: 1, Value: 0 0.299728 [D1] Path: UPS.PowerSummary.PresentStatus.RemainingTimeLimitExpired, Type: Feature, ReportID: 0x07, Offset: 5, Size: 1, Value: 0 0.299739 [D1] Path: UPS.PowerSummary.PresentStatus.NeedReplacement, Type: Input, ReportID: 0x07, Offset: 6, Size: 1, Value: 0 0.299750 [D1] Path: UPS.PowerSummary.PresentStatus.NeedReplacement, Type: Feature, ReportID: 0x07, Offset: 6, Size: 1, Value: 0 0.299761 [D1] Path: UPS.PowerSummary.PresentStatus.VoltageNotRegulated, Type: Input, ReportID: 0x07, Offset: 7, Size: 1, Value: 0 0.299771 [D1] Path: UPS.PowerSummary.PresentStatus.VoltageNotRegulated, Type: Feature, ReportID: 0x07, Offset: 7, Size: 1, Value: 0 0.299782 [D1] Path: UPS.PowerSummary.PresentStatus.FullyCharged, Type: Input, ReportID: 0x07, Offset: 8, Size: 1, Value: 0 0.299792 [D1] Path: UPS.PowerSummary.PresentStatus.FullyCharged, Type: Feature, ReportID: 0x07, Offset: 8, Size: 1, Value: 0 0.299802 [D1] Path: UPS.PowerSummary.PresentStatus.FullyDischarged, Type: Input, ReportID: 0x07, Offset: 9, Size: 1, Value: 0 0.299824 [D1] Path: UPS.PowerSummary.PresentStatus.FullyDischarged, Type: Feature, ReportID: 0x07, Offset: 9, Size: 1, Value: 0 0.299835 [D1] Path: UPS.PowerSummary.PresentStatus.ShutdownRequested, Type: Input, ReportID: 0x07, Offset: 10, Size: 1, Value: 0 0.299847 [D1] Path: UPS.PowerSummary.PresentStatus.ShutdownRequested, Type: Feature, ReportID: 0x07, Offset: 10, Size: 1, Value: 0 0.299859 [D1] Path: UPS.PowerSummary.PresentStatus.ShutdownImminent, Type: Input, ReportID: 0x07, Offset: 11, Size: 1, Value: 0 0.299869 [D1] Path: UPS.PowerSummary.PresentStatus.ShutdownImminent, Type: Feature, ReportID: 0x07, Offset: 11, Size: 1, Value: 0 0.299918 [D2] Report descriptor retrieved (Reportlen = 376) 0.299925 [D2] Found HID device 0.299950 [D1] Detected a UPS: EcoFlow/EF-UPS-DELTA 3 Plus 0.299978 [D2] find_nut_info: unknown info type: load.off.delay 0.299985 [D2] find_nut_info: unknown info type: load.on.delay 0.299991 [D2] find_nut_info: unknown info type: load.off.delay 0.300018 [D1] upsdrv_initinfo... 0.300046 [D1] upsdrv_updateinfo... 1.038253 [D2] nut_libusb_get_interrupt: Connection timed out 1.038286 [D1] Got 0 HID objects... 1.038300 [D1] Quick update... 1.038424 [D2] dstate_init: sock /var/db/nut/usbhid-ups-ecoflow open on fd 8 1.038513 [D1] Group and/or user account for this driver was customized ('root:nut') compared to built-in defaults. Fixing socket '/var/db/nut/usbhid-ups-ecoflow' ownership/access. 1.038543 [D1] WARNING: opening socket file for stat/chown failed (45), which is rather typical for Unix socket handling: Operation not supported 1.038572 [D1] Group access for this driver successfully fixed (using file name based methods) 1.038614 Running as foreground process, not saving a PID file 1.038643 [D1] Driver initialization completed, beginning regular infinite loop 1.038654 upsnotify: failed to notify about state 2: no notification tech defined, will not spam more about it 1.038665 [D1] upsdrv_updateinfo... 1.784171 [D2] nut_libusb_get_interrupt: Connection timed out 1.784205 [D1] Got 0 HID objects... 1.784219 [D1] Quick update... 3.050158 [D1] upsdrv_updateinfo... 3.790268 [D2] nut_libusb_get_interrupt: Connection timed out 3.790304 [D1] Got 0 HID objects... 3.790318 [D1] Quick update... 5.051418 [D1] upsdrv_updateinfo... 5.788164 [D2] nut_libusb_get_interrupt: Connection timed out 5.788197 [D1] Got 0 HID objects... 5.788212 [D1] Quick update... 7.064934 [D1] upsdrv_updateinfo... 7.806325 [D2] nut_libusb_get_interrupt: Connection timed out 7.806350 [D1] Got 0 HID objects... 7.806358 [D1] Quick update... 9.072269 [D1] upsdrv_updateinfo... 9.819295 [D2] nut_libusb_get_interrupt: Connection timed out 9.819332 [D1] Got 0 HID objects... 9.819347 [D1] Quick update... 11.082610 [D1] upsdrv_updateinfo... 11.833940 [D2] nut_libusb_get_interrupt: Connection timed out 11.833972 [D1] Got 0 HID objects... 11.833986 [D1] Quick update... 13.095988 [D1] upsdrv_updateinfo...I guess the fact that it does something with explore=1 means that the EcoFlow isn't implemented in 2.8.2?
Is there a way to upgrade NUT to a newer version in pfSense?
-
@Rahzadan said in pfSense 2.8.1, NUT 2.8.2_5 package, EcoFlow UPS:
Is there a way to upgrade NUT to a newer version in pfSense?
I expect it will be updated in the next pfSense release cycle.