<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">Hi Jim,</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">I am afraid that the main problem is in '%.1f' in the "lookup table" when UPS returns "--.-" (string) instead of "12.3" (float):</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px; font-family: 'courier new';">root@OpenWrt:~# printf '%.1f \n' "12.3"</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px; font-family: 'courier new';">12.3</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px; font-family: 'courier new';">root@OpenWrt:~# printf '%.1f \n' "--.-"</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px; font-family: 'courier new';">ash: invalid number '--.-'</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px; font-family: 'courier new';">0.0</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">I checked source codes at https://github.com/networkupstools/nut/tree/master/drivers and a</span>ll these protocols have similar "lookup table":</p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">- nutdrv_qx_zinto.c</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">- nutdrv_qx_voltronic-qs.c</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">- nutdrv_qx_q1.c</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">- nutdrv_qx_mustek.c</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">- nutdrv_qx_megatec.c</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">- nutdrv_qx_megatec-old.c</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">- nutdrv_qx_mecer.c</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">- nutdrv_qx_hunnox.c</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">- nutdrv_qx_bestups.c</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;"><br />
</span></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"><span style="font-size: 13.3333px;">BTW - I already wrote some "basic" code in Python using PyUSB to read desired data from the UPS, but the communication with it is very very bad. </span><span style="font-size: 10pt;">Probably due to the bad the quality of the electronics in it.</span> Sometimes it returns data with missing initial characters (missing first 8 bytes) so I have to re-read the status, sometimes the communication freezes completely so I have to power-cycle the USB port.</p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>

<p style="font-size: 13.3333px;">Best regards / S pozdravem</p>

<p style="font-size: 13.3333px;"> </p>

<p style="font-size: 13.3333px;">Tomáš Thiemel</p>

<p style="font-size: 13.3333px;">thiemel@centrum.cz</p>

<p style="padding:0 0 0 0; margin:0 0 0 0;"> </p>

<p style="padding:0 0 0 0; margin:0 0 0 0;">______________________________________________________________<br />
> Od: "Jim Klimov" <jimklimov+nut@gmail.com><br />
> Komu: "Tomáš Thiemel" <thiemel@centrum.cz><br />
> Datum: 16.08.2022 12:44<br />
> Předmět: Re: [Nut-upsuser] request - nutdrv_qx_megatec.c: update/fix the code for "new" UPS<br />
></p>

<p style="padding:0 0 0 0; margin:0 0 0 0;">> CC: <nut-upsuser@alioth-lists.debian.net></p>

<div dir="auto">Ahoj,
<div dir="auto">  Just in case, did you check other subdrivers there? They all are for variants of Megatec Qx family, UPS vendors were creative with it...</div>
<div dir="auto">Jim</div>
</div>
<br />

<div class="gmail_quote">
<div class="gmail_attr" dir="ltr">On Tue, Aug 16, 2022, 03:46 Tomáš Thiemel via Nut-upsuser <<a href="mailto:nut-upsuser@alioth-lists.debian.net">nut-upsuser@alioth-lists.debian.net</a>> wrote:</div>
<blockquote class="gmail_quote" style="margin: 0 0 0 .8ex; border-left: 1px #ccc solid; padding-left: 1ex;">
<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><span style="font-size: 13.3333px;">Hi.</span></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><span style="font-size: 13.3333px;">I bought new UPS which is not "supported", yet.</span></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"> </p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><span style="font-size: 13.3333px;">Brand: Volt Polska</span></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><span style="font-size: 13.3333px;">Model: Micro 800</span></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><span style="font-size: 13.3333px;">have USB with Megatec protocol ("Q1<cr>")</span></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><span style="font-size: 13.3333px;">Data returned by UPS: <strong><span style="font-family: &#39;">"(242.9 242.9 242.9 000 50.0 13.3 --.- 00001001"</span></strong></span></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><span style="font-size: 13.3333px;">Problem: data returned by UPS is not handled correctly by nutdrv_qx/megatec driver, although the SW from <a href="https://www.power-software-download.com/viewpower.html">https://www.power-software-download.com/viewpower.html</a> (JAVA) works fine.</span></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"> </p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;">"ups.temperature" is defined as "%.1f" in the source code but my UPS returns "<span style="font-size: 10pt;">--.-"</span></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><span style="font-size: 13.3333px;"><br />
 </span></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><span style="font-size: 13.3333px;">Debug info:</span></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">root@patschkav-OpenWrt:~# /lib/nut/nutdrv_qx -DDDDDDDDDD -a ups -x protocol=megatec</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">Network UPS Tools - Generic Q* USB/Serial driver 0.28 (2.7.4)</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">USB communication driver 0.33</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.000000     send_to_all: SETINFO driver.parameter.port "auto"</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.006788     send_to_all: SETINFO driver.parameter.vendorid "0665"</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.008047     send_to_all: SETINFO driver.parameter.productid "5161"</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.010655     send_to_all: SETINFO driver.parameter.protocol "megatec"</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.011858     debug level is '10'</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.014225     upsdrv_initups...</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.019924     Checking device (0665/5161) (001/014)</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.036693     - VendorID: 0665</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.036788     - ProductID: 5161</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.036819     - Manufacturer: unknown</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.036850     - Product:</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.036881     - Serial Number: unknown</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.036912     - Bus: 001</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.036942     - Device release number: 0002</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.036971     Trying to match device</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.037069     Device matches</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.037178     nut_usb_set_altinterface: skipped usb_set_altinterface(udev, 0)</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.037262     send_to_all: SETINFO ups.vendorid "0665"</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.037317     send_to_all: SETINFO ups.productid "5161"</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.037361     Skipping protocol Voltronic 0.06</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.037399     Skipping protocol Voltronic-QS 0.07</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.037438     Skipping protocol Voltronic-QS-Hex 0.10</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.037477     Skipping protocol Mustek 0.07</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.037514     Skipping protocol Megatec/old 0.07</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.037551     Skipping protocol BestUPS 0.06</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.037589     Skipping protocol Mecer 0.07</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.052692     send: Q1</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.054678     read: timeout (0)</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   0.054842     qx_process_answer: short reply (input.voltage)</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   1.465747     send: Q1</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   1.494790     read [  0]: (8 bytes) => 28 32 34 30 2e 38 20 32</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   1.526803     read [  8]: (8 bytes) => 34 30 2e 38 20 32 34 30</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   1.558795     read [ 16]: (8 bytes) => 2e 38 20 30 30 30 20 35</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   1.590799     read [ 24]: (8 bytes) => 30 2e 32 20 31 33 2e 33</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   1.622797     read [ 32]: (8 bytes) => 20 2d 2d 2e 2d 20 30 30</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   1.654819     read [ 40]: (8 bytes) => 30 30 31 30 30 31 0d 00</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   1.654919     read: (240.8 240.8 240.8 000 50.2 13.3 --.- 00001001</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   1.655052     send_to_all: SETINFO input.voltage "240.8"</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   3.061834     send: I</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   3.094895     read [  0]: (8 bytes) => 31 0d 00 00 00 00 00 00</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   3.094994     read: 1</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   3.095100     qx_process_answer: short reply (ups.firmware)</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   3.095161     send_to_all: DELINFO input.voltage</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   4.506937     send: Q1</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   5.509389     read: Operation timed out (-145)</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   5.509494     qx_process_answer: short reply (input.voltage)</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   5.509541     Skipping protocol Zinto 0.06</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   5.509578     Skipping protocol Q1 0.07</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   5.509608     Device not supported!</span></font></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"><font face="courier new"><span style="font-size: 13.3333px;">   5.509638     Device not supported!</span></font></p>

<div>Can some skilled programmer fix the code in <span style="font-family: &#39;">nutdrv_qx_megatec.c</span>, please? I'm just stupid sysadmin. :-(</div>
<div>Thank you very much.</div>
<p style="padding: 0 0 0 0; margin: 0 0 0 0;"> </p>

<p style="font-size: 13.3333px;">Best regards / S pozdravem</p>

<p style="font-size: 13.3333px;"> </p>

<p style="font-size: 13.3333px;">Tomáš Thiemel</p>

<p style="font-size: 13.3333px;"><a href="mailto:thiemel@centrum.cz">thiemel@centrum.cz</a></p>

<p style="padding: 0 0 0 0; margin: 0 0 0 0;"> </p>

<div> </div>
_______________________________________________<br />
 Nut-upsuser mailing list<br />
 <a href="mailto:Nut-upsuser@alioth-lists.debian.net">Nut-upsuser@alioth-lists.debian.net</a><br />
 <a href="https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser">https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser</a></blockquote>
</div>