Deux modules atteints sur trois, et la jauge suit la cellule la plus faible

La console repond depuis Linux. L'adressage a distance fonctionne : un
branchement par pack suffit, et `soh <adresse>` donne le compteur de
sante par cellule en une seconde.

Le module 3 designe exactement les cinq cellules deduites ce matin de
son historique. Le module 1, sain en juillet, est passe de 7 a 498
evenements de surtension en six semaines ; sa cellule 12 oscille sur
691 mV quand ses douze cellules saines font 178 mV.

Ses pires ecarts sont en bas, pas en haut : 317 mV a un pretendu
2 % de charge alors que le parc etait a 3,236 V par cellule. Le BMS
croit la batterie vide parce qu'une cellule l'est. C'est tres
probablement le genou a 33 % mesure dans la courbe energie/SOC.

Correction : le champ SOH de stat n'est pas une note sur 100, le
module irreprochable affiche 0 comme le module abime.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
This commit is contained in:
Tallagrand Thierry
2026-09-05 12:05:39 +02:00
parent 021aa9f127
commit 55f981a730
6 changed files with 2406 additions and 14 deletions

View File

@@ -207,15 +207,15 @@ async function main() {
const nom = `${tampon()}-historique.txt`;
console.log(`Extraction de l'historique a partir de l'enregistrement ${depuis}.`);
console.log('Le module en garde 1798, un toutes les 30 minutes : comptez plusieurs minutes.');
let f = journal(nom, `# releve du ${horodate()} sur ${dev}\n`);
f = journal(nom, await commande(l, 'info', 8000));
for (let i = depuis; i < 1800; i += 15) {
const txt = await commande(l, `datalist history dtls ${i}`, 20000);
journal(nom, txt);
if (!/\d{2}-\d{2}-\d{2}/.test(txt)) break;
process.stdout.write(`\r enregistrement ${i}... `);
}
console.log(`\nEcrit dans ${f}`);
const f = journal(nom, `# releve du ${horodate()} sur ${dev}\n`);
journal(nom, await commande(l, 'info', 8000));
// UNE seule commande suffit : le module pagine lui-meme jusqu'au dernier
// enregistrement, `commande` tourne les pages. Boucler sur des index
// croissants relancait le meme vidage complet a chaque fois.
const txt = await commande(l, `datalist history dtls ${depuis}`, 30000);
journal(nom, txt);
const n = (txt.match(/^\d+ +\d\d-\d\d-\d\d /gm) || []).length;
console.log(`${n} enregistrements ecrits dans ${f}`);
return;
}