nut icon indicating copy to clipboard operation
nut copied to clipboard

Cannot configure Tescom UPS

Open grego1981 opened this issue 7 months ago • 16 comments

Hi all!

I have replaced an APC UPS with a Tescom one on my raspberry nut server. I have ran nut-scanner and it produces the following output:

[nutdev1]
        driver = "nutdrv_atcl_usb"
        port = "auto"
        vendorid = "0001"
        productid = "0000"
        product = "MEC0003"
        bus = "001"

I tried to use the proposed config but it does not work (I'm missing something obviously) anyway I used the following config and it seems to work

[nutdev1]
driver = nutdrv_qx
override.battery.packs = 1
port = auto

But all values come up zeroed and only status is shown (OL) see below. Is there a way to get data from this UPS?

root@upssrv02:~# upsc nutdev1@localhost
Init SSL without certificate database
battery.packs: 1
battery.voltage: 0.00
device.type: ups
driver.name: nutdrv_qx
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.parameter.synchronous: no
driver.version: 2.7.4
driver.version.data: Q1 0.07
driver.version.internal: 0.28
input.frequency: 0.0
input.voltage: 0.0
input.voltage.fault: 0.0
output.voltage: 0.0
ups.beeper.status: disabled
ups.delay.shutdown: 30
ups.delay.start: 180
ups.load: 0
ups.productid: 0000
ups.status: OL
ups.temperature: 0.0
ups.type: online
ups.vendorid: 0001

Thank you and best regards to all!

grego1981 avatar May 20 '25 08:05 grego1981

Try to start the driver with a higher debug verbosity to see what strings the UPS sends back and if it spews zeroes or your driver build misinterprets something. For details see https://github.com/networkupstools/nut/wiki/Changing-NUT-daemon-debug-verbosity

With NUT v2.7.4 (note it is antique) it may be easier to stop the driver running under a service umbrella (if any), e.g. systemctl stop nut-driver and start it from command line like /lib/nut/nutdrv_qx -a nutdev1 -DDDDDD and then "Ctrl+C" it after it begins regularly looping for data updates - and post here whatever it wrote to console until then.

Consider custom-building a newer NUT version, see https://github.com/networkupstools/nut/wiki/Building-NUT-for-in%E2%80%90place-upgrades-or-non%E2%80%90disruptive-tests about testing a newly built driver and eventually replacing the existing installation if the build is better. It is possible your device talks some newer Qx dialect, support for which could have been added in the past decade since NUT v2.7.4 was released, and would convey more data via those newer queries.

jimklimov avatar May 20 '25 12:05 jimklimov

Hi! Below the output of the proposed command, it really shows zeros...

root@upssrv02:~# /lib/nut/nutdrv_qx -a nutdev1 -DDDDDD
Network UPS Tools - Generic Q* USB/Serial driver 0.28 (2.7.4)
USB communication driver 0.33
   0.000000     debug level is '6'
   0.002232     upsdrv_initups...
   0.003205     Checking device (0001/0000) (001/003)
   0.004682     - VendorID: 0001
   0.004861     - ProductID: 0000
   0.005037     - Manufacturer: unknown
   0.005195     - Product: MEC0003
   0.005367     - Serial Number: unknown
   0.005520     - Bus: 001
   0.005868     - Device release number: 0100
   0.006061     Trying to match device
   0.006221     Device matches
   0.006636     nut_usb_set_altinterface: skipped usb_set_altinterface(udev, 0)
   0.006834     send_to_all: SETINFO ups.vendorid "0001"
   0.007011     send_to_all: SETINFO ups.productid "0000"
   0.007315     send: QGS
   0.007528     read: QGS
   0.007710     qx_process_answer: short reply (input.voltage)
   0.007967     send: QGS
   0.008138     read: QGS
   0.008303     qx_process_answer: short reply (input.voltage)
   0.008462     send: QGS
   0.008525     read: QGS
   0.008672     qx_process_answer: short reply (input.voltage)
   0.008861     send: M
   0.009014     read: M
   0.009202     voltronic_qs_protocol: invalid protocol [M]
   0.009343     ups_infoval_set: failed to preprocess value [ups.firmware.aux: M]
   0.009405     send: M
   0.009462     read: M
   0.009520     voltronic_qs_protocol: invalid protocol [M]
   0.009577     ups_infoval_set: failed to preprocess value [ups.firmware.aux: M]
   0.009636     send: M
   0.009692     read: M
   0.009750     voltronic_qs_protocol: invalid protocol [M]
   0.009807     ups_infoval_set: failed to preprocess value [ups.firmware.aux: M]
   0.009865     send: M
   0.009921     read: M
   0.009981     voltronic_qs_hex_protocol: invalid protocol [M]
   0.010038     ups_infoval_set: failed to preprocess value [ups.firmware.aux: M]
   0.010097     send: M
   0.010153     read: M
   0.010212     voltronic_qs_hex_protocol: invalid protocol [M]
   0.010270     ups_infoval_set: failed to preprocess value [ups.firmware.aux: M]
   0.010328     send: M
   0.010384     read: M
   0.010442     voltronic_qs_hex_protocol: invalid protocol [M]
   0.010500     ups_infoval_set: failed to preprocess value [ups.firmware.aux: M]
   0.010559     send: QS
   0.010616     read: QS
   0.010676     qx_process_answer: short reply (input.voltage)
   0.010734     send: QS
   0.010790     read: QS
   0.010943     qx_process_answer: short reply (input.voltage)
   0.011098     send: QS
   0.011251     read: QS
   0.011405     qx_process_answer: short reply (input.voltage)
   0.011520     send: D
   0.011671     read: D
   0.011832     qx_process_answer: short reply (input.voltage)
   0.011967     send: D
   0.012024     read: D
   0.012081     qx_process_answer: short reply (input.voltage)
   0.012140     send: D
   0.012196     read: D
   0.012253     qx_process_answer: short reply (input.voltage)
   0.012309     send: Q1
   0.015401     received 47 (40)
   0.015489     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.015576      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.015638      30 30 30 0d
   0.015694     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.015774     send_to_all: SETINFO input.voltage "0.0"
   0.015869     send: ID
   0.015928     read: ID
   0.015986     bestups_preprocess_id_answer: wrong length [device.model: 3]
   0.016045     qx_process: failed to preprocess answer [device.model]
   0.016106     send_to_all: DELINFO input.voltage
   0.016165     send: Q1
   0.019088     received 47 (40)
   0.019186     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.019262      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.019320      30 30 30 0d
   0.019424     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.019602     send_to_all: SETINFO input.voltage "0.0"
   0.019787     send: ID
   0.020100     read: ID
   0.020296     bestups_preprocess_id_answer: wrong length [device.model: 3]
   0.020626     qx_process: failed to preprocess answer [device.model]
   0.020795     send_to_all: DELINFO input.voltage
   0.020970     send: Q1
   0.024104     received 47 (40)
   0.024324     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.024500      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.024678      30 30 30 0d
   0.024843     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.025042     send_to_all: SETINFO input.voltage "0.0"
   0.025224     send: ID
   0.025400     read: ID
   0.025582     bestups_preprocess_id_answer: wrong length [device.model: 3]
   0.025737     qx_process: failed to preprocess answer [device.model]
   0.025905     send_to_all: DELINFO input.voltage
   0.026090     send: Q1
   0.029245     received 47 (40)
   0.029472     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.029671      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.029842      30 30 30 0d
   0.029997     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.030185     send_to_all: SETINFO input.voltage "0.0"
   0.030355     send: QPI
   0.030518     read: QPI
   0.030688     qx_process_answer: short reply (ups.firmware.aux)
   0.030866     send_to_all: DELINFO input.voltage
   0.031023     send: Q1
   0.034258     received 47 (40)
   0.034460     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.034658      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.034817      30 30 30 0d
   0.034981     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.035168     send_to_all: SETINFO input.voltage "0.0"
   0.035338     send: QPI
   0.035519     read: QPI
   0.035675     qx_process_answer: short reply (ups.firmware.aux)
   0.035887     send_to_all: DELINFO input.voltage
   0.036071     send: Q1
   0.039097     received 47 (40)
   0.039310     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.039488      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.039685      30 30 30 0d
   0.039889     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.040085     send_to_all: SETINFO input.voltage "0.0"
   0.040263     send: QPI
   0.040419     read: QPI
   0.040596     qx_process_answer: short reply (ups.firmware.aux)
   0.040779     send_to_all: DELINFO input.voltage
   0.040938     send: Q1
   0.044101     received 47 (40)
   0.044293     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.044480      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.044641      30 30 30 0d
   0.044814     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.045009     send_to_all: SETINFO input.voltage "0.0"
   0.045204     send: I
   0.048101     received 39 (35)
   0.048293     read: (39 bytes) => 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
   0.048467      20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d
   0.048644     read: #
   0.048815     ups_infoval_set: non significant value [ups.firmware]
   0.049052     send_to_all: DELINFO input.voltage
   0.049370     send: Q1
   0.052544     received 47 (40)
   0.052735     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.052933      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.053093      30 30 30 0d
   0.053270     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.053472     send_to_all: SETINFO input.voltage "0.0"
   0.053664     send: I
   0.056241     received 39 (35)
   0.056347     read: (39 bytes) => 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
   0.056424      20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d
   0.056481     read: #
   0.056545     ups_infoval_set: non significant value [ups.firmware]
   0.056607     send_to_all: DELINFO input.voltage
   0.056667     send: Q1
   0.059542     received 47 (40)
   0.059678     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.059895      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.060069      30 30 30 0d
   0.060294     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.060533     send_to_all: SETINFO input.voltage "0.0"
   0.060611     send: I
   0.063239     received 39 (35)
   0.063321     read: (39 bytes) => 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
   0.063415      20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d
   0.063596     read: #
   0.063768     ups_infoval_set: non significant value [ups.firmware]
   0.063979     send_to_all: DELINFO input.voltage
   0.064151     send: Q1
   0.067387     received 47 (40)
   0.067571     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.067764      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.067959      30 30 30 0d
   0.068141     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.068330     send_to_all: SETINFO input.voltage "0.0"
   0.068505     send: FW?
   0.068672     read: FW?
   0.068848     qx_process_answer: short reply (ups.firmware)
   0.069036     send_to_all: DELINFO input.voltage
   0.069221     send: Q1
   0.072545     received 47 (40)
   0.072968     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.073154      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.073340      30 30 30 0d
   0.073523     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.073741     send_to_all: SETINFO input.voltage "0.0"
   0.073910     send: FW?
   0.074280     read: FW?
   0.074436     qx_process_answer: short reply (ups.firmware)
   0.074623     send_to_all: DELINFO input.voltage
   0.074721     send: Q1
   0.077545     received 47 (40)
   0.077681     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.077880      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.078060      30 30 30 0d
   0.078235     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.078432     send_to_all: SETINFO input.voltage "0.0"
   0.078602     send: FW?
   0.078783     read: FW?
   0.078967     qx_process_answer: short reply (ups.firmware)
   0.079154     send_to_all: DELINFO input.voltage
   0.079313     send: Q1
   0.082391     received 47 (40)
   0.082576     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.082742      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.082804      30 30 30 0d
   0.082861     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.082935     send_to_all: SETINFO input.voltage "0.0"
   0.082994     Using protocol: Q1 0.07
   0.083063     send_to_all: SETINFO device.type "ups"
   0.083126     send_to_all: SETINFO driver.version "2.7.4"
   0.083187     send_to_all: SETINFO driver.version.internal "0.28"
   0.083250     send_to_all: SETINFO driver.name "nutdrv_qx"
   0.083307     upsdrv_initinfo...
   0.083369     send_to_all: SETINFO driver.version.data "Q1 0.07"
   0.083431     send: Q1
   0.086387     received 47 (40)
   0.086509     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.086717      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.086901      30 30 30 0d
   0.087055     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.087253     send_to_all: SETINFO input.voltage.fault "0.0"
   0.087453     send_to_all: SETINFO output.voltage "0.0"
   0.087645     send_to_all: SETINFO ups.load "0"
   0.087889     send_to_all: SETINFO input.frequency "0.0"
   0.088077     send_to_all: SETINFO battery.voltage "0.00"
   0.088155     send_to_all: SETINFO ups.temperature "0.0"
   0.088220     update_status: OL
   0.088284     update_status: !LB
   0.088361     send_to_all: SETINFO ups.type "online"
   0.088447     update_status: !CAL
   0.088609     update_status: !FSD
   0.088775     send_to_all: SETINFO ups.beeper.status "disabled"
   0.088961     send_to_all: ADDCMD beeper.toggle
   0.089149     send_to_all: ADDCMD load.off
   0.089308     send_to_all: ADDCMD load.on
   0.089486     send_to_all: ADDCMD shutdown.return
   0.089654     send_to_all: ADDCMD shutdown.stayoff
   0.089841     send_to_all: ADDCMD shutdown.stop
   0.090009     send_to_all: ADDCMD test.battery.start
   0.090167     send_to_all: ADDCMD test.battery.start.deep
   0.090364     send_to_all: ADDCMD test.battery.start.quick
   0.090523     send_to_all: ADDCMD test.battery.stop
   0.090714     send_to_all: SETINFO ups.delay.start "180"
   0.090894     send_to_all: SETFLAGS ups.delay.start RW
   0.091048     send_to_all: ADDRANGE ups.delay.start  0 599940
   0.091115     send_to_all: SETINFO ups.delay.shutdown "30"
   0.091177     send_to_all: SETFLAGS ups.delay.shutdown RW
   0.091237     send_to_all: ADDRANGE ups.delay.shutdown  12 600
   0.091378     Battery runtime will not be calculated (runtimecal not set)
   0.091572     send_to_all: SETINFO driver.parameter.pollfreq "30"
   0.091736     upsdrv_updateinfo...
   0.091957     Quick update...
   0.092138     send: Q1
   0.095394     received 47 (40)
   0.095585     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.095775      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.095956      30 30 30 0d
   0.096110     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.096306     update_status: OL
   0.096470     update_status: !LB
   0.096660     update_status: !CAL
   0.096844     update_status: !FSD
   0.097028     send_to_all: SETINFO ups.status "OL"
   0.097212     send_to_all: DATAOK
   0.097579     dstate_init: sock /run/nut/nutdrv_qx-nutdev1 open on fd 5
   0.097752     send_to_all: SETINFO driver.parameter.pollinterval "2"
   0.097913     send_to_all: SETINFO driver.parameter.synchronous "no"
   0.098077     upsdrv_updateinfo...
   0.098230     Quick update...
   0.098378     send: Q1
   0.101387     received 47 (40)
   0.101512     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.101694      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.101790      30 30 30 0d
   0.101846     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.101909     update_status: OL
   0.101976     update_status: !LB
   0.102042     update_status: !CAL
   0.102105     update_status: !FSD
   0.439534     new connection on fd 6
   0.439748     send_to_one: SETINFO battery.packs "1"
   0.440003     send_to_one: SETFLAGS battery.packs
   0.440202     send_to_one: SETINFO battery.voltage "0.00"
   0.440378     send_to_one: SETINFO device.type "ups"
   0.440567     send_to_one: SETINFO driver.name "nutdrv_qx"
   0.440757     send_to_one: SETINFO driver.parameter.pollfreq "30"
   0.441134     send_to_one: SETINFO driver.parameter.pollinterval "2"
   0.441342     send_to_one: SETINFO driver.parameter.port "auto"
   0.441532     send_to_one: SETINFO driver.parameter.synchronous "no"
   0.441701     send_to_one: SETINFO driver.version "2.7.4"
   0.441898     send_to_one: SETINFO driver.version.data "Q1 0.07"
   0.442090     send_to_one: SETINFO driver.version.internal "0.28"
   0.442259     send_to_one: SETINFO input.frequency "0.0"
   0.442436     send_to_one: SETINFO input.voltage "0.0"
   0.442604     send_to_one: SETINFO input.voltage.fault "0.0"
   0.442779     send_to_one: SETINFO output.voltage "0.0"
   0.442950     send_to_one: SETINFO ups.beeper.status "disabled"
   0.443065     send_to_one: SETINFO ups.delay.shutdown "30"
   0.443137     send_to_one: ADDRANGE ups.delay.shutdown 12 600
   0.443207     send_to_one: SETFLAGS ups.delay.shutdown RW
   0.443275     send_to_one: SETINFO ups.delay.start "180"
   0.443344     send_to_one: ADDRANGE ups.delay.start 0 599940
   0.443414     send_to_one: SETFLAGS ups.delay.start RW
   0.443481     send_to_one: SETINFO ups.load "0"
   0.443550     send_to_one: SETINFO ups.productid "0000"
   0.443618     send_to_one: SETINFO ups.status "OL"
   0.443698     send_to_one: SETINFO ups.temperature "0.0"
   0.443794     send_to_one: SETINFO ups.type "online"
   0.443937     send_to_one: SETINFO ups.vendorid "0001"
   0.444112     send_to_one: ADDCMD beeper.toggle
   0.444278     send_to_one: ADDCMD load.off
   0.444452     send_to_one: ADDCMD load.on
   0.444616     send_to_one: ADDCMD shutdown.return
   0.444794     send_to_one: ADDCMD shutdown.stayoff
   0.444898     send_to_one: ADDCMD shutdown.stop
   0.444966     send_to_one: ADDCMD test.battery.start
   0.445035     send_to_one: ADDCMD test.battery.start.deep
   0.445103     send_to_one: ADDCMD test.battery.start.quick
   0.445176     send_to_one: ADDCMD test.battery.stop
   0.445243     send_to_one: DATAOK
   0.445310     send_to_one: DUMPDONE
   2.099820     upsdrv_updateinfo...
   2.100101     Quick update...
   2.100377     send: Q1
   2.103762     received 47 (40)
   2.104134     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   2.104429      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   2.104716      30 30 30 0d
   2.104979     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   2.105271     update_status: OL
   2.105578     update_status: !LB
   2.105866     update_status: !CAL
   2.106169     update_status: !FSD
   4.101947     upsdrv_updateinfo...
   4.102297     Quick update...
   4.102569     send: Q1
   4.106050     received 47 (40)
   4.106365     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   4.106692      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   4.106958      30 30 30 0d
   4.107440     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   4.107700     update_status: OL
   4.107826     update_status: !LB
   4.108002     update_status: !CAL
   4.108141     update_status: !FSD
   6.104056     upsdrv_updateinfo...
   6.104287     Quick update...
   6.104560     send: Q1
   6.107736     received 47 (40)
   6.108113     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   6.108441      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   6.108749      30 30 30 0d
   6.109046     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   6.109317     update_status: OL
   6.109623     update_status: !LB
   6.110166     update_status: !CAL
   6.110482     update_status: !FSD
   7.739406     send_to_one: PONG
   8.104484     upsdrv_updateinfo...
   8.104615     Quick update...
   8.104714     send: Q1
   8.107744     received 47 (40)
   8.107936     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   8.108071      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   8.108177      30 30 30 0d
   8.108280     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   8.108391     update_status: OL
   8.108522     update_status: !LB
   8.108636     update_status: !CAL
   8.108742     update_status: !FSD
  10.106636     upsdrv_updateinfo...
  10.106810     Quick update...
  10.106921     send: Q1
  10.110174     received 47 (40)
  10.110328     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
  10.110466      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
  10.110576      30 30 30 0d
  10.110673     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
  10.110787     update_status: OL
  10.110904     update_status: !LB
  10.111018     update_status: !CAL
  10.111127     update_status: !FSD
  12.108707     upsdrv_updateinfo...
  12.108860     Quick update...
  12.108978     send: Q1
  12.112162     received 47 (40)
  12.112312     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
  12.112451      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
  12.112560      30 30 30 0d
  12.112691     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
  12.112800     update_status: OL
  12.112904     update_status: !LB
  12.113006     update_status: !CAL
  12.113144     update_status: !FSD
  14.110811     upsdrv_updateinfo...
  14.110978     Quick update...
  14.111099     send: Q1
  14.114170     received 47 (40)
  14.114322     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
  14.114462      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
  14.114573      30 30 30 0d
  14.114659     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
  14.114766     update_status: OL
  14.114883     update_status: !LB
  14.115003     update_status: !CAL
  14.115108     update_status: !FSD
  15.444198     send_to_one: PONG
  16.111544     upsdrv_updateinfo...
  16.111685     Quick update...
  16.111814     send: Q1
  16.115163     received 47 (40)
  16.115340     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
  16.115477      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
  16.115583      30 30 30 0d

grego1981 avatar May 20 '25 13:05 grego1981

Hi! Below the output of the proposed command, it really shows zeros...

root@upssrv02:~# /lib/nut/nutdrv_qx -a nutdev1 -DDDDDD
Network UPS Tools - Generic Q* USB/Serial driver 0.28 (2.7.4)
USB communication driver 0.33
   0.000000     debug level is '6'
   0.002232     upsdrv_initups...
   0.003205     Checking device (0001/0000) (001/003)
   0.004682     - VendorID: 0001
   0.004861     - ProductID: 0000
   0.005037     - Manufacturer: unknown
   0.005195     - Product: MEC0003
   0.005367     - Serial Number: unknown
   0.005520     - Bus: 001
   0.005868     - Device release number: 0100
   0.006061     Trying to match device
   0.006221     Device matches
   0.006636     nut_usb_set_altinterface: skipped usb_set_altinterface(udev, 0)
   0.006834     send_to_all: SETINFO ups.vendorid "0001"
   0.007011     send_to_all: SETINFO ups.productid "0000"
   0.007315     send: QGS
   0.007528     read: QGS
   0.007710     qx_process_answer: short reply (input.voltage)
   0.007967     send: QGS
   0.008138     read: QGS
   0.008303     qx_process_answer: short reply (input.voltage)
   0.008462     send: QGS
   0.008525     read: QGS
   0.008672     qx_process_answer: short reply (input.voltage)
   0.008861     send: M
   0.009014     read: M
   0.009202     voltronic_qs_protocol: invalid protocol [M]
   0.009343     ups_infoval_set: failed to preprocess value [ups.firmware.aux: M]
   0.009405     send: M
   0.009462     read: M
   0.009520     voltronic_qs_protocol: invalid protocol [M]
   0.009577     ups_infoval_set: failed to preprocess value [ups.firmware.aux: M]
   0.009636     send: M
   0.009692     read: M
   0.009750     voltronic_qs_protocol: invalid protocol [M]
   0.009807     ups_infoval_set: failed to preprocess value [ups.firmware.aux: M]
   0.009865     send: M
   0.009921     read: M
   0.009981     voltronic_qs_hex_protocol: invalid protocol [M]
   0.010038     ups_infoval_set: failed to preprocess value [ups.firmware.aux: M]
   0.010097     send: M
   0.010153     read: M
   0.010212     voltronic_qs_hex_protocol: invalid protocol [M]
   0.010270     ups_infoval_set: failed to preprocess value [ups.firmware.aux: M]
   0.010328     send: M
   0.010384     read: M
   0.010442     voltronic_qs_hex_protocol: invalid protocol [M]
   0.010500     ups_infoval_set: failed to preprocess value [ups.firmware.aux: M]
   0.010559     send: QS
   0.010616     read: QS
   0.010676     qx_process_answer: short reply (input.voltage)
   0.010734     send: QS
   0.010790     read: QS
   0.010943     qx_process_answer: short reply (input.voltage)
   0.011098     send: QS
   0.011251     read: QS
   0.011405     qx_process_answer: short reply (input.voltage)
   0.011520     send: D
   0.011671     read: D
   0.011832     qx_process_answer: short reply (input.voltage)
   0.011967     send: D
   0.012024     read: D
   0.012081     qx_process_answer: short reply (input.voltage)
   0.012140     send: D
   0.012196     read: D
   0.012253     qx_process_answer: short reply (input.voltage)
   0.012309     send: Q1
   0.015401     received 47 (40)
   0.015489     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.015576      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.015638      30 30 30 0d
   0.015694     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.015774     send_to_all: SETINFO input.voltage "0.0"
   0.015869     send: ID
   0.015928     read: ID
   0.015986     bestups_preprocess_id_answer: wrong length [device.model: 3]
   0.016045     qx_process: failed to preprocess answer [device.model]
   0.016106     send_to_all: DELINFO input.voltage
   0.016165     send: Q1
   0.019088     received 47 (40)
   0.019186     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.019262      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.019320      30 30 30 0d
   0.019424     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.019602     send_to_all: SETINFO input.voltage "0.0"
   0.019787     send: ID
   0.020100     read: ID
   0.020296     bestups_preprocess_id_answer: wrong length [device.model: 3]
   0.020626     qx_process: failed to preprocess answer [device.model]
   0.020795     send_to_all: DELINFO input.voltage
   0.020970     send: Q1
   0.024104     received 47 (40)
   0.024324     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.024500      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.024678      30 30 30 0d
   0.024843     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.025042     send_to_all: SETINFO input.voltage "0.0"
   0.025224     send: ID
   0.025400     read: ID
   0.025582     bestups_preprocess_id_answer: wrong length [device.model: 3]
   0.025737     qx_process: failed to preprocess answer [device.model]
   0.025905     send_to_all: DELINFO input.voltage
   0.026090     send: Q1
   0.029245     received 47 (40)
   0.029472     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.029671      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.029842      30 30 30 0d
   0.029997     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.030185     send_to_all: SETINFO input.voltage "0.0"
   0.030355     send: QPI
   0.030518     read: QPI
   0.030688     qx_process_answer: short reply (ups.firmware.aux)
   0.030866     send_to_all: DELINFO input.voltage
   0.031023     send: Q1
   0.034258     received 47 (40)
   0.034460     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.034658      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.034817      30 30 30 0d
   0.034981     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.035168     send_to_all: SETINFO input.voltage "0.0"
   0.035338     send: QPI
   0.035519     read: QPI
   0.035675     qx_process_answer: short reply (ups.firmware.aux)
   0.035887     send_to_all: DELINFO input.voltage
   0.036071     send: Q1
   0.039097     received 47 (40)
   0.039310     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.039488      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.039685      30 30 30 0d
   0.039889     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.040085     send_to_all: SETINFO input.voltage "0.0"
   0.040263     send: QPI
   0.040419     read: QPI
   0.040596     qx_process_answer: short reply (ups.firmware.aux)
   0.040779     send_to_all: DELINFO input.voltage
   0.040938     send: Q1
   0.044101     received 47 (40)
   0.044293     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.044480      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.044641      30 30 30 0d
   0.044814     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.045009     send_to_all: SETINFO input.voltage "0.0"
   0.045204     send: I
   0.048101     received 39 (35)
   0.048293     read: (39 bytes) => 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
   0.048467      20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d
   0.048644     read: #
   0.048815     ups_infoval_set: non significant value [ups.firmware]
   0.049052     send_to_all: DELINFO input.voltage
   0.049370     send: Q1
   0.052544     received 47 (40)
   0.052735     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.052933      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.053093      30 30 30 0d
   0.053270     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.053472     send_to_all: SETINFO input.voltage "0.0"
   0.053664     send: I
   0.056241     received 39 (35)
   0.056347     read: (39 bytes) => 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
   0.056424      20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d
   0.056481     read: #
   0.056545     ups_infoval_set: non significant value [ups.firmware]
   0.056607     send_to_all: DELINFO input.voltage
   0.056667     send: Q1
   0.059542     received 47 (40)
   0.059678     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.059895      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.060069      30 30 30 0d
   0.060294     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.060533     send_to_all: SETINFO input.voltage "0.0"
   0.060611     send: I
   0.063239     received 39 (35)
   0.063321     read: (39 bytes) => 23 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
   0.063415      20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0d
   0.063596     read: #
   0.063768     ups_infoval_set: non significant value [ups.firmware]
   0.063979     send_to_all: DELINFO input.voltage
   0.064151     send: Q1
   0.067387     received 47 (40)
   0.067571     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.067764      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.067959      30 30 30 0d
   0.068141     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.068330     send_to_all: SETINFO input.voltage "0.0"
   0.068505     send: FW?
   0.068672     read: FW?
   0.068848     qx_process_answer: short reply (ups.firmware)
   0.069036     send_to_all: DELINFO input.voltage
   0.069221     send: Q1
   0.072545     received 47 (40)
   0.072968     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.073154      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.073340      30 30 30 0d
   0.073523     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.073741     send_to_all: SETINFO input.voltage "0.0"
   0.073910     send: FW?
   0.074280     read: FW?
   0.074436     qx_process_answer: short reply (ups.firmware)
   0.074623     send_to_all: DELINFO input.voltage
   0.074721     send: Q1
   0.077545     received 47 (40)
   0.077681     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.077880      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.078060      30 30 30 0d
   0.078235     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.078432     send_to_all: SETINFO input.voltage "0.0"
   0.078602     send: FW?
   0.078783     read: FW?
   0.078967     qx_process_answer: short reply (ups.firmware)
   0.079154     send_to_all: DELINFO input.voltage
   0.079313     send: Q1
   0.082391     received 47 (40)
   0.082576     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.082742      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.082804      30 30 30 0d
   0.082861     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.082935     send_to_all: SETINFO input.voltage "0.0"
   0.082994     Using protocol: Q1 0.07
   0.083063     send_to_all: SETINFO device.type "ups"
   0.083126     send_to_all: SETINFO driver.version "2.7.4"
   0.083187     send_to_all: SETINFO driver.version.internal "0.28"
   0.083250     send_to_all: SETINFO driver.name "nutdrv_qx"
   0.083307     upsdrv_initinfo...
   0.083369     send_to_all: SETINFO driver.version.data "Q1 0.07"
   0.083431     send: Q1
   0.086387     received 47 (40)
   0.086509     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.086717      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.086901      30 30 30 0d
   0.087055     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.087253     send_to_all: SETINFO input.voltage.fault "0.0"
   0.087453     send_to_all: SETINFO output.voltage "0.0"
   0.087645     send_to_all: SETINFO ups.load "0"
   0.087889     send_to_all: SETINFO input.frequency "0.0"
   0.088077     send_to_all: SETINFO battery.voltage "0.00"
   0.088155     send_to_all: SETINFO ups.temperature "0.0"
   0.088220     update_status: OL
   0.088284     update_status: !LB
   0.088361     send_to_all: SETINFO ups.type "online"
   0.088447     update_status: !CAL
   0.088609     update_status: !FSD
   0.088775     send_to_all: SETINFO ups.beeper.status "disabled"
   0.088961     send_to_all: ADDCMD beeper.toggle
   0.089149     send_to_all: ADDCMD load.off
   0.089308     send_to_all: ADDCMD load.on
   0.089486     send_to_all: ADDCMD shutdown.return
   0.089654     send_to_all: ADDCMD shutdown.stayoff
   0.089841     send_to_all: ADDCMD shutdown.stop
   0.090009     send_to_all: ADDCMD test.battery.start
   0.090167     send_to_all: ADDCMD test.battery.start.deep
   0.090364     send_to_all: ADDCMD test.battery.start.quick
   0.090523     send_to_all: ADDCMD test.battery.stop
   0.090714     send_to_all: SETINFO ups.delay.start "180"
   0.090894     send_to_all: SETFLAGS ups.delay.start RW
   0.091048     send_to_all: ADDRANGE ups.delay.start  0 599940
   0.091115     send_to_all: SETINFO ups.delay.shutdown "30"
   0.091177     send_to_all: SETFLAGS ups.delay.shutdown RW
   0.091237     send_to_all: ADDRANGE ups.delay.shutdown  12 600
   0.091378     Battery runtime will not be calculated (runtimecal not set)
   0.091572     send_to_all: SETINFO driver.parameter.pollfreq "30"
   0.091736     upsdrv_updateinfo...
   0.091957     Quick update...
   0.092138     send: Q1
   0.095394     received 47 (40)
   0.095585     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.095775      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.095956      30 30 30 0d
   0.096110     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.096306     update_status: OL
   0.096470     update_status: !LB
   0.096660     update_status: !CAL
   0.096844     update_status: !FSD
   0.097028     send_to_all: SETINFO ups.status "OL"
   0.097212     send_to_all: DATAOK
   0.097579     dstate_init: sock /run/nut/nutdrv_qx-nutdev1 open on fd 5
   0.097752     send_to_all: SETINFO driver.parameter.pollinterval "2"
   0.097913     send_to_all: SETINFO driver.parameter.synchronous "no"
   0.098077     upsdrv_updateinfo...
   0.098230     Quick update...
   0.098378     send: Q1
   0.101387     received 47 (40)
   0.101512     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   0.101694      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   0.101790      30 30 30 0d
   0.101846     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   0.101909     update_status: OL
   0.101976     update_status: !LB
   0.102042     update_status: !CAL
   0.102105     update_status: !FSD
   0.439534     new connection on fd 6
   0.439748     send_to_one: SETINFO battery.packs "1"
   0.440003     send_to_one: SETFLAGS battery.packs
   0.440202     send_to_one: SETINFO battery.voltage "0.00"
   0.440378     send_to_one: SETINFO device.type "ups"
   0.440567     send_to_one: SETINFO driver.name "nutdrv_qx"
   0.440757     send_to_one: SETINFO driver.parameter.pollfreq "30"
   0.441134     send_to_one: SETINFO driver.parameter.pollinterval "2"
   0.441342     send_to_one: SETINFO driver.parameter.port "auto"
   0.441532     send_to_one: SETINFO driver.parameter.synchronous "no"
   0.441701     send_to_one: SETINFO driver.version "2.7.4"
   0.441898     send_to_one: SETINFO driver.version.data "Q1 0.07"
   0.442090     send_to_one: SETINFO driver.version.internal "0.28"
   0.442259     send_to_one: SETINFO input.frequency "0.0"
   0.442436     send_to_one: SETINFO input.voltage "0.0"
   0.442604     send_to_one: SETINFO input.voltage.fault "0.0"
   0.442779     send_to_one: SETINFO output.voltage "0.0"
   0.442950     send_to_one: SETINFO ups.beeper.status "disabled"
   0.443065     send_to_one: SETINFO ups.delay.shutdown "30"
   0.443137     send_to_one: ADDRANGE ups.delay.shutdown 12 600
   0.443207     send_to_one: SETFLAGS ups.delay.shutdown RW
   0.443275     send_to_one: SETINFO ups.delay.start "180"
   0.443344     send_to_one: ADDRANGE ups.delay.start 0 599940
   0.443414     send_to_one: SETFLAGS ups.delay.start RW
   0.443481     send_to_one: SETINFO ups.load "0"
   0.443550     send_to_one: SETINFO ups.productid "0000"
   0.443618     send_to_one: SETINFO ups.status "OL"
   0.443698     send_to_one: SETINFO ups.temperature "0.0"
   0.443794     send_to_one: SETINFO ups.type "online"
   0.443937     send_to_one: SETINFO ups.vendorid "0001"
   0.444112     send_to_one: ADDCMD beeper.toggle
   0.444278     send_to_one: ADDCMD load.off
   0.444452     send_to_one: ADDCMD load.on
   0.444616     send_to_one: ADDCMD shutdown.return
   0.444794     send_to_one: ADDCMD shutdown.stayoff
   0.444898     send_to_one: ADDCMD shutdown.stop
   0.444966     send_to_one: ADDCMD test.battery.start
   0.445035     send_to_one: ADDCMD test.battery.start.deep
   0.445103     send_to_one: ADDCMD test.battery.start.quick
   0.445176     send_to_one: ADDCMD test.battery.stop
   0.445243     send_to_one: DATAOK
   0.445310     send_to_one: DUMPDONE
   2.099820     upsdrv_updateinfo...
   2.100101     Quick update...
   2.100377     send: Q1
   2.103762     received 47 (40)
   2.104134     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   2.104429      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   2.104716      30 30 30 0d
   2.104979     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   2.105271     update_status: OL
   2.105578     update_status: !LB
   2.105866     update_status: !CAL
   2.106169     update_status: !FSD
   4.101947     upsdrv_updateinfo...
   4.102297     Quick update...
   4.102569     send: Q1
   4.106050     received 47 (40)
   4.106365     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   4.106692      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   4.106958      30 30 30 0d
   4.107440     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   4.107700     update_status: OL
   4.107826     update_status: !LB
   4.108002     update_status: !CAL
   4.108141     update_status: !FSD
   6.104056     upsdrv_updateinfo...
   6.104287     Quick update...
   6.104560     send: Q1
   6.107736     received 47 (40)
   6.108113     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   6.108441      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   6.108749      30 30 30 0d
   6.109046     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   6.109317     update_status: OL
   6.109623     update_status: !LB
   6.110166     update_status: !CAL
   6.110482     update_status: !FSD
   7.739406     send_to_one: PONG
   8.104484     upsdrv_updateinfo...
   8.104615     Quick update...
   8.104714     send: Q1
   8.107744     received 47 (40)
   8.107936     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
   8.108071      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
   8.108177      30 30 30 0d
   8.108280     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
   8.108391     update_status: OL
   8.108522     update_status: !LB
   8.108636     update_status: !CAL
   8.108742     update_status: !FSD
  10.106636     upsdrv_updateinfo...
  10.106810     Quick update...
  10.106921     send: Q1
  10.110174     received 47 (40)
  10.110328     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
  10.110466      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
  10.110576      30 30 30 0d
  10.110673     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
  10.110787     update_status: OL
  10.110904     update_status: !LB
  10.111018     update_status: !CAL
  10.111127     update_status: !FSD
  12.108707     upsdrv_updateinfo...
  12.108860     Quick update...
  12.108978     send: Q1
  12.112162     received 47 (40)
  12.112312     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
  12.112451      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
  12.112560      30 30 30 0d
  12.112691     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
  12.112800     update_status: OL
  12.112904     update_status: !LB
  12.113006     update_status: !CAL
  12.113144     update_status: !FSD
  14.110811     upsdrv_updateinfo...
  14.110978     Quick update...
  14.111099     send: Q1
  14.114170     received 47 (40)
  14.114322     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
  14.114462      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
  14.114573      30 30 30 0d
  14.114659     read: (000.0 000.0 000.0 000 00.0 0.00 00.0 00000000
  14.114766     update_status: OL
  14.114883     update_status: !LB
  14.115003     update_status: !CAL
  14.115108     update_status: !FSD
  15.444198     send_to_one: PONG
  16.111544     upsdrv_updateinfo...
  16.111685     Quick update...
  16.111814     send: Q1
  16.115163     received 47 (40)
  16.115340     read: (47 bytes) => 28 30 30 30 2e 30 20 30 30 30 2e 30 20 30 30 30 2e 30
  16.115477      20 30 30 30 20 30 30 2e 30 20 30 2e 30 30 20 30 30 2e 30 20 30 30 30 30 30
  16.115583      30 30 30 0d

Do you think I should try upgrading to the latest and see?

grego1981 avatar May 20 '25 13:05 grego1981

It does really seem to be sending the zero values, I'd still try updating to the latest NUT version. There are some protocol related errors, so maybe some later change has better understanding of what's sent. You see the NUT 2.7.4 is years old at this point and there's been a ton of useful changes since that was released...

desertwitch avatar May 21 '25 05:05 desertwitch

Another point is that the newer version knows about more Megatec Qx dialects, so maybe the UPS vendor implemented another code path better. This might mean that you could have to pick through explicit protocol (and maybe subdriver) option values relevant for the driver build, to see if someone else than "Q1" has proper info.

It might in fact help to start with this on 2.7.4 too, in case the dialects it knows might already suffice...

jimklimov avatar May 21 '25 10:05 jimklimov

I have tested all protocol values to no avail.. I also try to compile the 2.8.3 version on a raspiZero2W which has a minimal raspbian OS and when running make following the article https://github.com/networkupstools/nut/wiki/Building-NUT-for-in%E2%80%90place-upgrades-or-non%E2%80%90disruptive-tests the system crashes at some point... any ideas or tested newer versions that 2.7.4 for raspiZero2W?

grego1981 avatar May 22 '25 11:05 grego1981

Do you mean the system itself crashes, during the build? A couple of things that come to mind are competition for resources (perhaps avoid or limit parallel builds, if using make -j), and overheating (address that physically with different ways of cooling, or by running the build in smaller portions and pausing it regularly e.g. by Ctrl+S / Ctrl+Q to let the heat dissipate).

I think htop can help you keep an eye on system load and temperature, where supported, in real time and on one CLI dashboard.

jimklimov avatar May 22 '25 13:05 jimklimov

Yes the system keeps crashing, I made the make with parallel threads and monitored to temperature so as to use Ctrl+S/Ctrl+Q but there is a time the sytem crashes... Is there a binary file to use for raspbian Bullseye (11)?

grego1981 avatar Jun 04 '25 05:06 grego1981

Not immediately, I think. Probably can spin up a container to create and share a build (in lieu of better approach like using OBS, at the moment), but can't make time for that today.

jimklimov avatar Jun 04 '25 07:06 jimklimov

Also, try to make without parallelization e.g. make -j 1 or no -j / -l (GNU Make limit by load average) arguments at all. That should reduce load on the raspiZero too.

Although if the stress from the build really does cause it to crash, other stresses during its "normal" work might end up doing so too. You might want to mitigate this before putting it into production anyway.

I had something like this with a larger Raspberry Pi5 in the NUT CI farm, where the first tried USB sources were not 5V/5A so the system felt under-voltaged (said so in dmesg) and sometimes reset itself not just when building but merely apt upgrade'ing or copying files.

If it is about temperature - consider a heat sink (and good thermal paste/pad). Bigger Raspberries are nowadays routinely actively cooled, not sure about zeroes.

jimklimov avatar Jun 04 '25 08:06 jimklimov

Not immediately, I think. Probably can spin up a container to create and share a build (in lieu of better approach like using OBS, at the moment), but can't make time for that today.

This would be awesome and of course I expect it on your own time, no rush, I appreciate your involvement!

grego1981 avatar Jun 04 '25 08:06 grego1981

Also, try to make without parallelization e.g. make -j 1 or no -j / -l (GNU Make limit by load average) arguments at all. That should reduce load on the raspiZero too.

Although if the stress from the build really does cause it to crash, other stresses during its "normal" work might end up doing so too. You might want to mitigate this before putting it into production anyway.

I had something like this with a larger Raspberry Pi5 in the NUT CI farm, where the first tried USB sources were not 5V/5A so the system felt under-voltaged (said so in dmesg) and sometimes reset itself not just when building but merely apt upgrade'ing or copying files.

If it is about temperature - consider a heat sink (and good thermal paste/pad). Bigger Raspberries are nowadays routinely actively cooled, not sure about zeroes.

I'll try it again, disabling all running processes this time as well!

grego1981 avatar Jun 04 '25 08:06 grego1981

Hey!

I found this thread after some digging as I'm on the same boat. RPI 2B running nut server using a Tescom UPS (slightly different model though.). I manage to bring it to a working condition using the latest compiled version (2.8.4 as 2.8.0 had some missing arguments) and using the following config. For the override values i used the screen of the UPS to take measurements. Finally for the battery.runtime being empty...well I'm still looking 😄 .

	driver = "nutdrv_qx"
	override.battery.packs = 12
	override.battery.voltage.low = 21.80
    	override.battery.voltage.high = 27.10
	override.battery.voltage.nominal = 24.00
	#default.battery.voltage.high = 27.10
	battery_voltage_reports_one_pack
	port = "auto"
	vendorid = "0001"
	productid = "0000"
	product = "MEC0003"
	bus = "001"
	idleload = 0.1 
	runtimecal = 180,100,540,50
	chargetime = 18000
	subdriver = krauler

Here is my output from upsc.

upsc tescom-home-rack
battery.charge: 100
battery.packs: 12
battery.runtime:      
battery.voltage: 27.12
battery.voltage.high: 27.10
battery.voltage.low: 21.80
battery.voltage.nominal: 24.00
device.serial:         
device.type: ups
driver.debug: 0
driver.flag.allow_killpower: 0
driver.flag.battery_voltage_reports_one_pack: enabled
driver.name: nutdrv_qx
driver.parameter.bus: 001
driver.parameter.chargetime: 18000
driver.parameter.idleload: 0.1
driver.parameter.override.battery.packs: 12
driver.parameter.override.battery.voltage.high: 27.10
driver.parameter.override.battery.voltage.low: 21.80
driver.parameter.override.battery.voltage.nominal: 24.00
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 1
driver.parameter.port: auto
driver.parameter.product: MEC0003
driver.parameter.productid: 0000
driver.parameter.runtimecal: 180,100,540,50
driver.parameter.subdriver: krauler
driver.parameter.synchronous: auto
driver.parameter.vendorid: 0001
driver.state: quiet
driver.version: 2.8.4
driver.version.data: Megatec 0.08
driver.version.internal: 0.45
driver.version.usb: libusb-1.0.26 (API: 0x01000109)
input.frequency: 49.9
input.voltage: 233.3
input.voltage.fault: 0.0
input.voltage.nominal: 0
output.voltage: 220.1
ups.beeper.status: enabled
ups.delay.shutdown: 30
ups.delay.start: 180
ups.firmware: V33
ups.load: 14
ups.productid: 0000
ups.serial:         
ups.status: OL
ups.temperature: 37.0
ups.type: online
ups.vendorid: 0001

Hope this helps anyone that might get across this kind of setup.

BR

tzalistar avatar Sep 08 '25 14:09 tzalistar

NOTE: The empty battery.runtime may be related to #3075 and presumed solved by #3076. That PR was merged - try rebuilding NUT from GitHub master branch.

jimklimov avatar Sep 08 '25 14:09 jimklimov

Ill try rebuilding from master later on. Thanks for the tip!

tzalistar avatar Sep 08 '25 15:09 tzalistar

NOTE: The empty battery.runtime may be related to #3075 and presumed solved by #3076. That PR was merged - try rebuilding NUT from GitHub master branch.

Just letting you know, that compiling from the master branch has indeed fixed the issue, many thanks for your suggestion!

tzalistar avatar Oct 01 '25 17:10 tzalistar