Jeep identifiee aussi par sa fin de trajet juste avant le branchement (soir sans charge)
This commit is contained in:
@@ -40,14 +40,19 @@ eq('helper corrompu repart a vide', JSON.parse(ajouterReleve('pas du json', { ve
|
||||
return { rowCount: 1 };
|
||||
};
|
||||
const lire = async (q, v) => {
|
||||
if (q.includes('FROM releve_km') && q.includes("source = 'uconnect'")) {
|
||||
const r = base.releves.filter(x => x.ts >= v[0] && x.ts <= v[1] && x.niveau !== null).sort((a, b) => b.ts - a.ts);
|
||||
return { rows: r.length ? [{ ts: r[0].ts, niveau_pct: r[0].niveau }] : [] };
|
||||
}
|
||||
if (q.includes('FROM releve_km')) { const r = [...base.releves].sort((a, b) => b.ts - a.ts); return { rows: r.length ? [{ km: r[0].km, ts: r[0].ts }] : [] }; }
|
||||
if (q.includes('FROM etiquette_branchement')) return { rows: base.etiquette ? [{ label: base.etiquette }] : [] };
|
||||
if (q.includes('FROM evenement')) return { rows: [{ t: base.branche }] };
|
||||
if (q.includes('FROM niveau_saisi')) return { rows: base.niveaux.filter(n => n.saisi_a >= v[0]) };
|
||||
return { rows: [] };
|
||||
};
|
||||
const journ = async () => {};
|
||||
const appels = [];
|
||||
const etiq = async (b, n) => { appels.push([b.toISOString(), n]); return 1; };
|
||||
const etiq = async (b, n, m) => { appels.push([b.toISOString(), n, m]); return 1; };
|
||||
const etat = (km, niv, maj, branchee = 'on', borne = 'on') => new Map([
|
||||
[JEEP.odometre, { state: String(km) }], [JEEP.niveau, { state: String(niv) }], [JEEP.majA, { state: maj }],
|
||||
[JEEP.branchee, { state: branchee }], ['binary_sensor.victron_evcs_vehicle_connected', { state: borne }],
|
||||
@@ -56,7 +61,7 @@ eq('helper corrompu repart a vide', JSON.parse(ajouterReleve('pas du json', { ve
|
||||
eq('jeep : premier releve + niveau au branchement', [base.releves.length, base.niveaux.length, base.niveaux[0]?.niveau], [1, 1, 46]);
|
||||
await ingererJeep(sql, lire, etat(112716, 60, '2026-10-04T11:58:39+00:00'), journ, etiq);
|
||||
eq('jeep : compteur immobile et 2e maj du branchement -> rien', [base.releves.length, base.niveaux.length], [1, 1]);
|
||||
eq('jeep : branchement identifie UNE fois, avec le niveau lu', appels, [['2026-10-04T11:28:00.000Z', 46]]);
|
||||
eq('jeep : branchement identifie UNE fois, avec le niveau lu', appels, [['2026-10-04T11:28:00.000Z', 46, 'branchee']]);
|
||||
base.branche = new Date('2026-10-05T16:00:00Z');
|
||||
await ingererJeep(sql, lire, etat(112760, 30, '2026-10-05T17:00:00+00:00'), journ);
|
||||
eq('jeep : trajet -> releve ; maj 1 h apres le branchement -> pas de niveau', [base.releves.length, base.releves[1]?.km, base.niveaux.length], [2, 112760, 1]);
|
||||
@@ -66,6 +71,18 @@ eq('helper corrompu repart a vide', JSON.parse(ajouterReleve('pas du json', { ve
|
||||
await ingererJeep(sql, lire, etat(112800, 25, '2026-10-06T16:05:00+00:00', 'on', 'off'), journ, etiq);
|
||||
eq('jeep : borne debranchee -> pas d identification', appels.length, 1);
|
||||
eq('jeep : borne debranchee -> releve oui, niveau au branchement non', [base.releves.length, base.niveaux.length], [3, 1]);
|
||||
// Arrivee (05/10) : fin de trajet a 19:05, branchement a 19:06, Jeep non branchee pour elle.
|
||||
base.branche = new Date('2026-10-07T17:06:15Z');
|
||||
await ingererJeep(sql, lire, etat(112850, 36, '2026-10-07T17:05:13+00:00', 'off', 'on'), journ, etiq);
|
||||
eq('jeep : arrivee 1 min avant le branchement -> identifiee, niveau d arrivee', appels.at(-1), ['2026-10-07T17:06:15.000Z', 36, 'arrivee']);
|
||||
await ingererJeep(sql, lire, etat(112850, 36, '2026-10-07T17:05:13+00:00', 'off', 'on'), journ, etiq);
|
||||
eq('jeep : arrivee -> une seule identification', appels.length, 2);
|
||||
base.branche = new Date('2026-10-08T17:30:00Z');
|
||||
await ingererJeep(sql, lire, etat(112900, 30, '2026-10-08T17:05:00+00:00', 'off', 'on'), journ, etiq);
|
||||
eq('jeep : arrivee 25 min avant -> pas d identification', appels.length, 2);
|
||||
base.branche = new Date('2026-10-09T17:06:00Z'); base.etiquette = 'VW';
|
||||
await ingererJeep(sql, lire, etat(112950, 40, '2026-10-09T17:05:00+00:00', 'off', 'on'), journ, etiq);
|
||||
eq('jeep : proprietaire a deja dit VW -> rien', [appels.length, base.niveaux.length], [2, 2]);
|
||||
}
|
||||
|
||||
if (process.argv.includes('--vues')) {
|
||||
|
||||
Reference in New Issue
Block a user