sensor.evcs_consommation_jour_kwh : consommation du jour (sortie AC du MultiPlus), comme VRM
Delta depuis minuit de ac_in_1->ac_out + inverter->ac_out : 25,2 kWh a 17:11 le 26/09 pour ~25 dans VRM. Remise a zero -> indisponible, compteur muet -> partiel. Tests 59/59, mutation qui mord. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011uJ47NxgfpGnuuMr3f2n7Z
This commit is contained in:
@@ -473,3 +473,49 @@ export function importJour(courant, minuit) {
|
||||
return { etat: 'indisponible', attributs: { statut: 'indisponible', ...commun,
|
||||
explication: 'Compteurs d\'energie muets ou remis a zero : import du jour inconnu.' } };
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
// Consommation du jour (« Consommation Total » de VRM), 26/09/2026
|
||||
// ---------------------------------------------------------------------
|
||||
// Ce que la sortie AC du MultiPlus a delivre depuis minuit : maison ET borne
|
||||
// (la borne est cablee sur la sortie AC, comme dans VRM). Deux sources :
|
||||
// depuis le reseau (ac_in_1 -> ac_out) et depuis l'onduleur (inverter ->
|
||||
// ac_out, c'est-a-dire solaire + batterie). Verifie le 26/09 a 17:11 :
|
||||
// 0,6 + 24,6 = 25,2 kWh pour ~25 affiches par VRM a 17 h. Compteurs VE.Bus a
|
||||
// 0,1 kWh pres, sans last_reset : une valeur INFERIEURE a celle de minuit est
|
||||
// une remise a zero (redemarrage du MultiPlus), jamais une conso negative.
|
||||
export const COMPTEURS_CONSO = [
|
||||
['depuis_reseau', 'sensor.airtria_mpii_v1_energy_from_ac_in_1_to_ac_out'],
|
||||
['depuis_onduleur', 'sensor.airtria_mpii_v1_energy_from_inverter_to_ac_out'],
|
||||
];
|
||||
|
||||
export function consoJour(courant, minuit) {
|
||||
const detail = {};
|
||||
const muets = [];
|
||||
const remis = [];
|
||||
let total = 0;
|
||||
for (const [nom, id] of COMPTEURS_CONSO) {
|
||||
const d = delta(courant[id], minuit[id]);
|
||||
if (d.remis) { remis.push(nom); detail[nom] = null; continue; }
|
||||
if (d.muet) { muets.push(nom); detail[nom] = null; continue; }
|
||||
detail[nom] = Math.round(d.v * 10) / 10;
|
||||
total += d.v;
|
||||
}
|
||||
total = Math.round(total * 10) / 10;
|
||||
const commun = { detail_kwh: detail };
|
||||
if (remis.length) {
|
||||
return { etat: 'indisponible', attributs: { statut: 'indisponible', ...commun,
|
||||
explication: 'Compteur du MultiPlus remis a zero depuis minuit : consommation du jour inconnue.' } };
|
||||
}
|
||||
if (muets.length === COMPTEURS_CONSO.length) {
|
||||
return { etat: 'indisponible', attributs: { statut: 'indisponible', ...commun,
|
||||
explication: 'Compteurs de consommation muets : consommation du jour inconnue.' } };
|
||||
}
|
||||
if (muets.length) {
|
||||
return { etat: total, attributs: { statut: 'partiel', compteurs_muets: muets, ...commun,
|
||||
explication: `Consommation partielle : au moins ${total} kWh depuis minuit (compteur ${muets.join(', ')} muet).` } };
|
||||
}
|
||||
return { etat: total, attributs: { statut: 'complet', ...commun,
|
||||
explication: `${total} kWh consommes depuis minuit (maison et borne), dont ` +
|
||||
`${detail.depuis_reseau} depuis le reseau.` } };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user