In regards to the "auto" setting for "port" in "ups.conf", after a few
hours of online reading a number of days ago, I eventually found a post
to the effect that the "usbhid-ups" driver works in a way that "auto" is
the appropriate setting. The programmers can explain better than I as to
why that is.
I have experimented with separating these USB-attached devices, and they
are the only _external_ USB devices, to different "bus" values per
'lsusb' and that does not seem to make any difference.
In my case, 1 USB bus has 1 UPS connected and another USB bus has the
other UPS connected. No other USB devices are on those USB buses per
'lsusb'.
If USB power saving is a potential issue, then I am interested in what
Linux commands (this is a Debian Linux box) might be used to check for
that. Nothing in a 'lsusb -v' output suggesys anything.
As noted in my original post, these 2 UPS have different 'vendorid' and
I have tried calling the drivers with that value attached in the format
of "-x vendorid=XXXX", but that does not make any difference. Perhaps
the driver simply ignores that specific variable? I have not tried other
unique variables.
My own thinking on this matter is leaning in the direction of some sort
of software collision or competition since I can 'power cycle by power
switch', 'hard reset by reset switch', or 'shutdown -r 0' via CLI the
Linux box and that reboot clears the problem for a random amount of time.
Yes, the occurence of this issue is random, but it appears guaranteed to
happen within 60 minutes or so of starting up NUT after a power-up or
reboot.
For the record, I have a monitoring PC that watches 2 different UPS
devices that use 2 different drivers in NUT. That PC does not encounter
the issue that I am reporting here.
On 11/11/2021 5:26 PM, Jim Klimov wrote:
Hello,
I can at least address part of your question -- NUT per se is not
limited to monitoring one device per system. Each driver runs as a
separate process, using a separate device node to talk to USB hardware.
Can't vouch however for other variables in the equation, such as
system drivers, libusb (0.1 as supported in NUT releases so far), or
behavior of the USB hub in the chipset (can it be just overloaded by two
devices - electrically or logically? or entering some power-saving mode
and resetting all ports instead of one? are there other devices
connected to it?)
I wonder now, if using "auto" port instead of particular path like
/dev/ttyUSB<N> can cause re-discoveries of the device over time, and if
the two drivers collide then or steal devices from each other.
I believe that with at least master-branch codebase of NUT, it should
be possible and valid to specify device details like vendor and product
IDs, to auto-match a specific device per driver config instance.
Jim
On Wed, Nov 10, 2021, 07:44 Jeff Rickman <jrick...@myamigos.us
<mailto:jrick...@myamigos.us>> wrote:
** The actual problem is listed at the very bottom of this email **
** All of the lead-in data is requested per the NUT webpages **
OS:
4.19.0-17-amd64 #1 SMP Debian 4.19.194-3 (2021-07-18) x86_64 GNU/Linux
NUT version info:
nut-client 2.7.4-8 amd64 network UPS tools - clients
nut-server 2.7.4-8 amd64 network UPS tools - core system
All aspects of NUT on this Debian system were installed from
Debian-provided packages using their "apt" package tool. Even the Linux
kernel on this system is from a Debian-provided package.
2 UPS devices are in question here, but from different manufacturers
UPS Model: Cyberpower CPS CP 1500C
- CPS CP 1500C per 'upsc'
- has the LCD display and NO front panel USB-A ports
- older unit, perhaps 5 years old, batteries have been replaced once
- more data requires UP de-installation
- NUT "vendorid" of 0764
- uses the NUT "usbhid-ups" driver as show here:
Network UPS Tools - Generic HID driver 0.41 (2.7.4)
USB communication driver 0.33
Using subdriver: CyberPower HID 0.4
cps_adjust_battery_scale: battery readings will be scaled by 2/3
UPS Model: Eaton 5S 1500 LCD (from vendor's tag)
- brand new unit
- Batteries were manufactuered in April 2021 per shipping box
- NUT "vendorid" of 0463
- uses the NUT "usbhid-ups" driver as shown here:
Network UPS Tools - Generic HID driver 0.41 (2.7.4)
USB communication driver 0.33
Using subdriver: MGE HID 1.39
** THE PROBLEM **
Either UPS connected to any USB2 port on this PC will work fine without
any troule what-so-ever.
When BOTH UPS are connected to discrete USB2 ports on this PC, or any
other Linux PC where I run NUT, _EITHER_UPS_ will eventually drop out
with a "Communication Lost" message. There are no mysterious external
factors taking place like AC power outages, AC power spikes, or heavy
loads on the UPS. A 'upsc' printout of "ups.load" reads 10 or less at
all times on the Cyberpower unit; the Eaton unit has nothing plugged
into it.
A query of the "missing" UPS using "upsc" might show something like
this:
nano1 ~ # upsc es1500
Init SSL without certificate database
Error: Unknown UPS
Yes, both UPS devices have been entered into "ups.conf" as follows:
[cpups]
# ups.vendorid: 0764
driver = usbhid-ups
port = auto
desc = "CP UPS on NANO1"
[es1500]
# ups.vendorid: 0463
driver = usbhid-ups
port = auto
desc = "Eaton Ellipse Pro 1500 on NANO-1"
I have experimented with "direct calling" the "usbhid-ups" driver with
the "-x vendorid=" parameter... even though the manpages suggest not
doing that; they suggest we use "upsdrvctl" instead, but that can't
seen
to handle 2 different vendor's UPS devices with different vendorid
values both using the same driver. Even that direct calling approach
does not help as either UPS will eventually disappear with a
"Communication Lost" message on the console.
Some might be tempted to say, "Oh that UPS must be going bad." or "That
USB cable or port must be going bad.". I thought that a few YEARS AGO
when I first saw this problem occur. I can easily swap around USB2
ports, USB cables (I have a few spares), and monitoring PCs - none of
that makes any difference at all.
My only workaround hads been to separate the 2 UPS devices that both
used the NUT "usbhid-ups" driver to separate monitoring devices (low
power Atom PCs or Raspberry Pi boxes). That workaround is getting old
and I am hoping for a better solution.
I prefer to monitor my UPS devices even when the devices they protect
are powered down. In that manner I have caught signs of UPS needing
batteries replaced and odd AC power problems.
Does the NetworkUPSTools project officially support 2 physically
different UPS from 2 completely different vendors (based on NUT
reported
"vendorid") both accessing the same NUT driver on the same monitoring
device? The manpage for the "usbhid-ups" driver does not say if it does
or does not support multiple UPS devices requiring it.
--
"No one gets sick on Wednesdays." (unknown)
_______________________________________________
Nut-upsuser mailing list
Nut-upsuser@alioth-lists.debian.net
<mailto:Nut-upsuser@alioth-lists.debian.net>
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser
_______________________________________________
Nut-upsuser mailing list
Nut-upsuser@alioth-lists.debian.net
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser