USBHID-UPS(8) NUT USBHID-UPS(8) (NAME) usbhid-ups - USB/HID (SYNOPSIS) usbhid-ups -h usbhid-ups -a UPS_NAME [OPTIONS] usbhid-ups . nutupsdrv(8) . (SUPPORTED HARDWARE) usbhid-ups USB/HID NUT USB libusb . HID (HID Power Device Class) . usbhid-ups : o USB Eaton o USB MGE o USB Dell o AMETEK Powervar UPM o APC o Belkin o Cyber Power Systems o Powercom o PowerWalker o TrippLite. NUT NUT data/driver.list NUT . explore HID . : o o FreeBSD ( ) *BSD o Darwin / Mac OS X o illumos. (EXTRA ARGUMENTS) : port = string NUT. (value) USB auto . /dev/usb/hiddev0 (API) libusb . ( ). (value) port . vendor product vendorid productid serial bus / device . allow_duplicates ( !) vendorid = regex, productid = regex, vendor = regex, product = regex, serial = regex USB . ( regex(7) ) vendor/product/serial ( ) vendorid productid . lsusb(8) NUT -DD . : o -x vendor="Foo.Corporation.*" o -x vendorid="051d*" (APC) o -x product=".*(Smart|Back)-?UPS.*" bus = regex . (bus) USB . ( bus="002" bus="00[2-3]") /sys/bus/usb/devices lsusb(8) . ( USB) . device = regex . USB . ( device="001" device="00[1-2]") /sys/bus/usb/devices lsusb(8) . . busport = regex . libusb device USB -- . USB lsusb -tv . NUT ( ) NUT . allow_duplicates . ( VID:PID ) . "Resource busy" -- . (non-deterministic) ! ! . ! usb_set_altinterface = bAlternateSetting usb_set_altinterface() USB 0 () . usb_config_index, usb_hid_rep_index, usb_hid_desc_index, usb_hid_ep_in, usb_hid_ep_out (endpoint) 0 ( ). . usb_hid_desc_index wDescriptorLength ( ) lsusb . LIBUSB_DEBUG = INTEGER USB NUT NUT ( DEBUG_MIN ups.conf(5) driver.debug) LibUSB . LIBUSB_DEBUG LIBUSB_DEBUG NUT ( "export" nut.conf(5)) 4 (" ") . : o https://libusb.sourceforge.io/api-1.0/ o https://libusb.sourceforge.io/api-1.0/group__libusb__lib.html subdriver=regex USB HID ( vendorid/productid -- USB HID "phoenixtec/liebert" "mge"). --help subdriver . "TrippLite HID 0.85" ( ) -- . vendorid productid . lowbatt=num (FSD) . ( ) . . offdelay=num ( ) ( -k). ( ) CPS . ondelay . Cyber Power Systems (CPS) NUT . . ondelay=num ( ) . . ( ) CPS . offdelay . () . ondelay = -1 ups.conf . CPS . ( CPS) " ". pollfreq=num . "pollinterval" ( ups.conf(5) ) "pollfreq" . ( ) CPS . POLLFREQ upsmon(8) ( upsmon.conf(5) ). pollonly Interrupt In "pollinterval" ( ). winhid Windows HID libusb . . vendorid productid / (input/feature) (interrupt-report) . setvar/instcmd . WIN32 . interrupt_pipe_no_events_tolerance=num USB "Got 0 HID objects" -1 . (freeze) ( APC BXnnnnMI) -- . onlinedischarge_battery OL+DISCHRG / . ( CyberPower UT) OL+DISCHRG -- . onlinedischarge onlinedischarge_battery . onlinedischarge_calibration OL+DISCHRG . ( APC ) OL+DISCHRG . OFF . OFFDURATION upsmon "OFF " . onlinedischarge_log_throttle_sec=num ( ) OL+DISCHRG . ( ) . battery.charge ( ). battery.charge ( ). battery.charge . onlinedischarge_log_throttle_hovercharge=num onlinedischarge_log_throttle_sec battery.charge . "" (hovering) . battery.charge ( ) OL+DISCHRG . lbrb_log_delay_sec=num ( ) LB LB+RB. APC BXnnnnMI ( -) APC BVKnnnnM2 APC BKnnnnM2-CH ( ) " " (low battery) " " (replace battery) " " (all ok) ( ) OL+DISCHRG ( ) . ( OL ). lbrb_log_delay_without_calibrating lbrb_log_delay_sec . disable_fix_report_desc USB (/) . . . NUT NUT . powercom_sdcmd_byte_order_fallback PowerCOM HID ( .) shutdown stayoff . . . . ... powercom_sdcmd_discrete_delay ( Raptor Smart KING Pro) ( powercom) " " . ( NUT) . explore . "vendorid" . ( -DD) . maxreport HID . APC Back-UPS . interruptonly (poll) . INPUT . Powercom . interruptsize=num (interrupt pipe). Powercom . waitbeforereconnect=num . ( ) . . Eaton MGE Ellipse Max 1500 FR usbhid-ups libusb usbhid-ups (crash) ! ( ). (INSTALLATION) . configure --with-usb=yes . USB . hotplug ( libhidups libhid.usermap /etc/hotplug/usb/) udev ( nut-usbups.rules /etc/udev/rules.d/) . scripts/hotplug/README.adoc scripts/udev/README.adoc NUT . (IMPLEMENTATION) (Selecting a specific UPS) "port" ups.conf . . : [mge] driver = usbhid-ups port = auto vendorid = 0463 [tripplite] driver = usbhid-ups port = auto vendorid = 09ae ( ) : o (serial) . o bus/device/busport ( ). o allow_duplicates . USB (USB Polling and Interrupt Transfers) usbhid-ups (polling) . "pollinterval" " " "" (interrupt) . "pollfreq" "pollinterval" . USB Interrupt In HID . USB Control . OB LB HID "pollinterval" . Interrupt In "pollonly" . (KNOWN ISSUES AND BUGS) ( ::) battery.runtime (UPS reports 65535 sec (or 18:12:15) of battery.runtime capability) ( NUT ) - . () . . . (Repetitive timeout and staleness) . : usb 2-1: control timeout on ep0in usb 2-1: usbfs: USBDEVFS_CONTROL failed cmd usbhid-ups rqt 128 rq 6 len 256 ret -110 "pollinterval" ( ) . . "pollinterval" "pollfreq" . USB MGE/Eaton (0x0463) "USB HID quirk" hid-generic NUT . (FAQ) NUT . ( GRUB ) : usbhid.quirks=0x0463:0xffff:0x08 " " CPS . pollonly / pollfreq / pollinterval . EPERM: Operation not permitted (Got EPERM: Operation not permitted upon driver startup) hotplug . hotplug . (Unattended shutdowns) USB HID Power Device Class . . . upsmon -c fsd . . . (UPS cuts power too soon) Cyber Power Systems (CPS) offdelay () NUT . Cyberpower ( AC) offdelay . offdelay offdelay . battery.charge.low OK (UPS does not set battery.charge.low but says OK) Cyber Power Systems (CPS) battery.charge.low . : for i in `seq 90 -1 0`; do echo "set to $i"; \ upsrw -s battery.charge.low=$i -u * -p * cps-big; \ sleep 1; upsc cps-big battery.charge.low; echo ""; \ done CPS PR1000LCDRTXL2U [60,55,50,45,40,35,30,25,20] battery.charge.low . (HISTORY) newhidups hidups . (AUTHORS) MGE UPS SYSTEMS. Eaton o Arnaud Quette o Peter Selinger o Arjen de Korte (SEE ALSO) (The core driver) nutupsdrv(8) (Internet resources) NUT (Network UPS Tools): https://www.networkupstools.org/historic/v2.8.5 Network UPS Tools 2.8.5 06/21/2026 USBHID-UPS(8)