Hi,

Am 13.02.2012 um 18:58 schrieb Arnaud Quette:
2012/2/6 thomas schorpp <[email protected]>:
Hi,

Hi Thomas,

I want the driver report the battery status from ABM charging controllers
-patch attached- :


For now, I've tracked your patch here:
https://alioth.debian.org/tracker/index.php?func=detail&aid=313541&group_id=30602&atid=411544


Thanks, but no anonymous read access, so not very useful linking on public 
lists:

"You've been redirected to this login page because you have tried accessing a page 
that was not available to you as an anonymous user."

*or the charge estimation calculator of the driver is broken:

battery.capacity.nominal: 17.00
battery.charge: 93.9
battery.runtime: 1620
battery.status.abm: FT
battery.voltage: 27.70
battery.voltage.maximum: 28.20
battery.voltage.minimum: 20.00
battery.voltage.nominal: 24.00
device.mfr: Compaq
device.model: UPS 1000 VA FW -0026
device.serial: E00230050


as mentioned in the manpage and source code, no battery.charge data is
returned from the device.
"the driver will guestimate a value based on the nominal battery
min/max and the current battery voltage."

Maybe I've found a better "guesstimation", -PATCH found cleaning up old stuff 
attached-


so it may be due to both.
It may also be a percentage of the nominal level, which may be not
reachable after some time.

We're talking about lead/acid batteries here? A lead battery not reaching its 
rated nominal after charge is usually considered to be broken,
ask Your car garage mechanic ;-)

And now it's after "some (EU warranty) time" for my batteries:

battery.capacity.nominal: 17.00
battery.charge: 98.3
battery.runtime: 2280
battery.status.abm: RS
battery.voltage: 25.90
battery.voltage.maximum: 28.20
battery.voltage.minimum: 20.00
battery.voltage.nominal: 24.00
ups.mfr: Compaq
ups.model: UPS 1000 VA FW -0026
ups.serial: E00230050

Voltage still above "nominal" in ABM resting state.

And one more, the "panel test" isn't a "panel test", it's a complete selftest 
including the controller, inverter and fan under load here.

Here's the last patch for people using NUT and still have got an upscode2 
talking UPS, who may find it useful, pls report breakage.


cheers,
Arnaud


y
tom

--- drivers/upscode2.c  2012-05-15 13:22:07.000000000 +0200
+++ drivers/upscode2.c  2012-07-18 15:39:15.000000000 +0200
@@ -32,7 +32,7 @@
  * Powerware 9305
  *
  * Also tested against
- * Compaq T1500h (Per J?nsson <[email protected]>)
+ * Compaq T1000h/T1500h (T.Schorpp, <[email protected]>, Per J?nsson 
<[email protected]>)
  * Powerware 9120 (Gorm J. Siiger <[email protected]>)
  * Fiskars PowerServer 10 (Per Larsson <[email protected]>)
  */
@@ -45,7 +45,7 @@
 #include <math.h>
#define DRIVER_NAME "UPScode II UPS driver"
-#define DRIVER_VERSION "0.88"
+#define DRIVER_VERSION "0.89abm"
/* driver description structure */
 upsdrv_info_t  upsdrv_info = {
@@ -54,7 +54,7 @@
        "H K Lygre, <[email protected]>\n" \
        "Niels Baggesen <[email protected]>\n" \
        "Niklas Edmundsson <[email protected]>",
-       DRV_EXPERIMENTAL,
+       DRV_BETA,
        { NULL }
 };
@@ -262,7 +262,7 @@
        { "STAT", t_list,   NULL, 0, 0, att },
        { "STBO", t_status, NULL, UPSC_STAT_ONBATT },
        { "STBL", t_status, NULL, UPSC_STAT_LOBATT },
-       { "STBM", t_ignore },
+       { "STBM", t_string, "battery.status.abm" },
        { "STBP", t_status, NULL, UPSC_STAT_BYPASS },
        { "STEA", t_list,   NULL, 0, 0, env },
        { "STEM", t_list,   NULL, 0, 0, env },
@@ -412,8 +412,8 @@
        { "shutdown.stop",            "UPPU", NULL },
        { "shutdown.reboot",          "UPPC", "IJHLDMGCIU" },
        { "shutdown.reboot.graceful", NULL, NULL },
-       { "test.panel.start",         "UPIS", NULL },
-       { "test.panel.stop",          NULL, NULL },
+       { "test.selftest.start",      "UPIS", NULL }, /* Spec:"UPIS(cr)INITIATE SELF 
TEST" not "panel test" */
+       { "test.selftest.stop",               NULL, NULL },
        { "test.failure.start",               NULL, NULL },
        { "test.failure.stop",                NULL, NULL },
        { "test.battery.start",               "UPBT", "1" },
@@ -1363,6 +1363,7 @@
 static float batt_charge_pct(void)
 {
        float chg=-1;
+       float batt_volt_rs = (batt_volt_nom * 26/24); /* ABM specs Vrs at 
108.333 % Vnom */
/* This is only a rough estimate of charge status while charging.
         * When on battery something like Peukert's equation should be used */
@@ -1389,9 +1390,10 @@
                chg *= (100/maxcurr);
        }
        /* Old method, assumes battery high/low-voltages provided by UPS are
-        * applicable to battery charge, but they usually aren't */
+        * applicable to battery charge, but they usually aren't, cause high is 
a UPS internal and/or battery
+        * ABSOLUTE MAXIMUM RATING, not reported as "nominal" value, the 
upscode2 spec maybe wrong. */
        else if (batt_volt_low > 0 && batt_volt_high > 0 && batt_volt > 0) {
-               if (batt_volt > batt_volt_high) {
+               if (batt_volt > batt_volt_rs) {
                        chg=100;
                }
                else if (batt_volt < batt_volt_low) {
@@ -1399,7 +1401,7 @@
                }
                else {
                        chg = (batt_volt - batt_volt_low) /
-                               (batt_volt_high - batt_volt_low);
+                               (batt_volt_rs - batt_volt_low);
                        chg*=100;
                }
        }


_______________________________________________
Nut-upsdev mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/nut-upsdev

Reply via email to