Michail Pappas wrote:
Hello all,
> [...]
Now, please bear with me, my C skills are long gone and forgotten, plus
my understanding of UPS operation is next to non-existent. In any case
though from above, I see that NUT receives the following info:

    1.546786     send_to_all: SETINFO battery.voltage "2.25"
    [...]
    5.437187     send_to_all: SETINFO battery.voltage "270.00"

I think I found 2 problems, one of them an issue and another a bug.

The issue first. According to the values above, NUT tries to autodetect
the number of battery packs. LThe battery packs detection code in
blazer.c is as follows:

static double blazer_packs(const char *ptr, char **endptr)
135{
136    const double packs[] = {
137        120, 100, 80, 60, 48, 36, 30, 24, 18, 12, 8, 6, 4, 3, 2, 1,
0.5, -1
138    };
139
140    const char    *val;
141    int        i;
142
143    val = dstate_getinfo("battery.voltage.nominal");
144
145    batt.volt.nom = strtod(val ? val : ptr, endptr);
146
147    for (i = 0; packs[i] > 0; i++) {
148
149        if (packs[i] * batt.volt.act > 1.2 * batt.volt.nom) {
150            continue;
151        }
152
153        if (packs[i] * batt.volt.act < 0.8 * batt.volt.nom) {
154            upslogx(LOG_INFO, "Can't autodetect number of battery
packs [%.0f/%.2f]", batt.volt.nom, batt.volt.act);
155            break;
156        }
157
158        batt.packs = packs[i];
159        break;
160    }
161
162    return batt.volt.nom;
163}

Like I said, the VGN has battery strings of 20 batteries each. I would
then expect for battery.packs to be equal to 120 (20 batteries * 6
plates per battery). This does not happen. batt.volt.nom is 271.4 and
the cell has a voltage of 2.25 (see above) so the detection algorithm
does not succeed when trying "120" as the packs[i] value...

I am not sure whether this is an issue or not. Or, if it is one, if the
detection algorithm can be improved.

Mea culpa, I must have made an error here: batt.packs should be the correct number 120, after the snippet above completes! So no problem/issue there.

The problem with the miscalc when runtime values are entered have something to do with the fact that voltage is calculated to be 270V, which is lower than the nominal value of 271.4V, as reported by the UPS...

It feels as though a correction is only possible by adjusting override.battery.voltage.nominal. Any ideas as to some decent values I could use?

Plus, in which source file is override.battery.voltage.nominal read from?

BR,


Michael.-

_______________________________________________
Nut-upsuser mailing list
Nut-upsuser@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/nut-upsuser

Reply via email to