[Nut-upsuser] [UPS on Serial vs. USB] USB slow to update, serial instant.

Justin Piszcz jpiszcz at lucidpixels.com
Sat Jan 27 21:40:24 CET 2007



On Sat, 27 Jan 2007, Arjen de Korte wrote:

> 
> > When I disconnect my UPS from the wall, I have to wait 15-30 seconds
> > before the USB drier 'polls' this information and tells me that the UPS is
> > on battery power (via knutclient or syslog via nut):
> >
> > ups at p34 POWER ALERT on Fri Jan 26 12:49:29 EST 2007
> >
> > With a serial connection, I would get the alerts IMMEDIATELY (0.5-1
> > seconds) after disconnecting the UPS.  My new machine does not have a
> > serial port built-in, only a serial header, and of course does not come
> > with an included cable, so I chose to use USB.
> 
> Which serial driver have you been using so far? Most serial drivers will
> poll the UPS every two seconds for status updates. So on average, you'll
> see status changes in about half that time, which equals about one second.
> So far the number of UPSes that issue alerts on line status changes is
> limited and hence we don't have that many drivers that use this feature.
> But generally speaking, what you're seeing is normal for a driver that
> uses the serial interface.
> 
> > My question is, how do I change the polling time that nut uses to poll the
> > device to match that of the serial port?
> 
> That depends on the driver you're using. If you're using the newhidups
> driver (which will be renamed usbhid-ups in the next release), there is
> probably not much you can do about this. Many USB protocols are *very*
> verbose and don't allow polling the status every two seconds. Therefore,
> the newhidups has a build in mechanism to only do a full status update
> every 30 seconds (if memory serves). If you're using another driver, you
> could try the 'pollinterval' parameter (see 'man 5 ups.conf' for a
> description after verifying that the man page of the driver does not
> mention it).
> 
> > The reason I'd like to is I am not going to see any power alerts for
> > unless there is a power outage for longer than 15-30 seconds.
> 
> Use a less verbose (serial) driver in that case. There is probably nothing
> else we can do for you right now. A driver that uses a more intelligent
> mechanism to read status changes more frequently is planned, but so far we
> have no schedule for its release (not even for an experimental/trial
> version, don't ask).
> 
> > I've checked the FAQ on this, do I have to change the 'MAXAGE' parameter
> > to force more frequent updates?
> 
> No. The MAXAGE parameter only determines when to declare a driver stale.
> If we don't hear anything from a driver for this many seconds, it is
> declared stale. This has nothing to do with the polling interval.
> 
> Best regards, Arjen
> -- 
> Eindhoven - The Netherlands
> Key fingerprint - 66 4E 03 2C 9D B5 CB 9B  7A FE 7E C1 EE 88 BC 57
> 

Thank you for the detailed explanation!

As posted by another user, this is the variable that fixes the issue:

  pollfreq = 5

Set to five second updates, works great, thanks all!

Before:

# Serial port:
#[belkin]
#        driver = belkinunv
#        port = /dev/ttyS0
#        desc = "Belkin UPS 1200 VA"

After:

# USB:
[belkin]
        driver = newhidups
        port = auto
        desc = "Belkin Universal UPS 1200 VA"
  pollfreq = 5

Justin.



More information about the Nut-upsuser mailing list