Le rang du module dans sa chaine accompagne desormais chaque releve de cellules

Le proprietaire demandait si le rang dans le pack etait accessible ou si seul
le code-barres l'etait. Il l'etait depuis le debut : l'outil de releve resout
adresse <-> code-barres au demarrage mais ne l'ecrivait pas. Desormais :
- pylontech-console.mjs --suivi ecrit une colonne 'adresse' (vide en mono-module,
  jamais devinee) ;
- historise-evcs.mjs l'ingere par son NOM dans cellule.rang, enregistre PAR
  RELEVE et non dans une table figee — un recablage du LVHUB renumerote, et
  l'historique de chaque ligne doit garder le rang vrai a son instant ;
- Grafana : colonne 'Rang' dans le tableau de sante, et la liste deroulante
  des modules affiche 'rang - code-barres' quand le rang est connu.
75/75 requetes valides.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GwpFpy2aQ2rJok6tNQSbVj
This commit is contained in:
Tallagrand Thierry
2026-09-18 12:12:12 +02:00
parent 3b81038739
commit 8c35f8c2ca
4 changed files with 30 additions and 15 deletions

View File

@@ -298,7 +298,7 @@ async function main() {
`${horodateFichier()}-${tampon === 'event' ? 'evenements' : 'histo'}-distant-${bc}.csv`);
fs.mkdirSync(DOSSIER, { recursive: true });
fs.writeFileSync(f, 'heure_reelle,module,etat,courant_mA,soc,' +
Array.from({ length: 15 }, (_, i) => `c${i + 1}_mV`).join(',') + ',ecart_mV\n');
Array.from({ length: 15 }, (_, i) => `c${i + 1}_mV`).join(',') + ',ecart_mV,adresse\n');
console.log(`Module ${bc} (adresse ${ad}), tampon ${tampon} -> ${f}`);
let ecrits = 0, vides = 0, apresBascule = 0;
@@ -426,7 +426,7 @@ async function main() {
const hi = Math.max(...v), lo = Math.min(...v);
const p = puis.get(ad);
fs.appendFileSync(f, [new Date().toISOString(), codes.get(ad),
p ? p.mA : '', ...v, hi - lo].join(',') + '\n');
p ? p.mA : '', ...v, hi - lo, ad].join(',') + '\n');
console.log(`${horodate()} ${codes.get(ad).slice(-4)} haute ${hi} mV (cellule ${c.find((x) => x.mV === hi).n})` +
` basse ${lo} mV ecart ${String(hi - lo).padStart(3)} mV` +
(p ? ` ${(p.mA / 1000).toFixed(1)} A ${p.soc || ''}` : '') +
@@ -441,7 +441,7 @@ async function main() {
const v = cel.map((c) => c.mV);
const hi = Math.max(...v), lo = Math.min(...v);
fs.appendFileSync(f, [
new Date().toISOString(), cel[0].etat, cel[0].mA, ...v, hi - lo,
new Date().toISOString(), cel[0].etat, cel[0].mA, ...v, hi - lo, '',
].join(',') + '\n');
const nHi = cel.find((c) => c.mV === hi).n;
console.log(`${horodate()} ${String(cel[0].etat).padEnd(7)} ` +