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