Chauffe-eau : Grafana « Le chauffe-eau », historisation (compteur rattrape depuis le 14/08), jour faible = aussi surplus solaire reel et securite douche de 20 h
This commit is contained in:
@@ -33,7 +33,7 @@ import { creerSchemaKm, ingererReleves, ingererNiveauSaisi, ingererJeep } from '
|
||||
import { texteRapport, envoyer, donneesNuit, texteDepuis } from './rapport-nuit.mjs';
|
||||
import { diagnosticPv, etatCellules, productionJour, chargeSolaire, bilanNuit, etatReseau, importJour, minuitLocal, COMPTEURS_IMPORT, COMPTEUR_EDF, consoJour, COMPTEURS_CONSO, projectionSoir, previsionNuit, vrmVersCourbes, nuitMaisonPrevue } from './diagnostics-agent.mjs';
|
||||
import { transitionsDansSerie } from './allers-retours.mjs';
|
||||
import { energieSur24h, COMPTEUR_CHAUFFE_EAU } from './chauffe-eau.mjs';
|
||||
import { energieSur24h, energieDepuis, COMPTEUR_CHAUFFE_EAU } from './chauffe-eau.mjs';
|
||||
|
||||
const ROOT = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..');
|
||||
const ONCE = process.argv.includes('--once');
|
||||
@@ -99,6 +99,11 @@ const MESURES = [
|
||||
'sensor.jeep_renegade_phev_odometer',
|
||||
'sensor.jeep_renegade_phev_hvbattery_charge',
|
||||
'sensor.jeep_renegade_phev_extrapolated_battery',
|
||||
// Chauffe-eau (07/10/2026) : compteur cumule, puissance observee par le
|
||||
// workflow ECS (morte jusqu'au 07/10, cf. HANDOFF), energie sur 24 h.
|
||||
'sensor.tt_chauffe_eau_pleumeur_energie_totale',
|
||||
'input_number.victron_water_heater_observed_power_w',
|
||||
'sensor.evcs_chauffe_eau_24h_kwh',
|
||||
];
|
||||
|
||||
// ---------------------------------------------------------------------
|
||||
@@ -129,6 +134,10 @@ const TRANSITIONS_SUIVIES = [
|
||||
['input_select.victron_evcs_vehicle', 'intervention','Vehicule selectionne'],
|
||||
['input_select.victron_evcs_strategy', 'intervention','Strategie'],
|
||||
['input_select.victron_evcs_night_charge_mode', 'intervention','Charge de la voiture la nuit'],
|
||||
['switch.tt_chauffe_eau_pleumeur_switch', 'chauffe_eau', 'Chauffe-eau sous tension'],
|
||||
['input_boolean.evcs_balance_ecs_nuit', 'chauffe_eau', 'Chauffe-eau en HC de nuit (jour faible)'],
|
||||
['input_text.evcs_balance_ecs_nuit_jour', 'chauffe_eau', 'Decision du jour pour le chauffe-eau'],
|
||||
['input_text.victron_water_heater_observed_regime', 'chauffe_eau', 'Regime du chauffe-eau'],
|
||||
['input_text.victron_evcs_night_budget', 'vehicule', 'Budget voiture de la nuit fige (kWh|index borne)'],
|
||||
['sensor.gx_device_ess_batterylife_state', 'ess', 'Etat BatteryLife de l ESS'],
|
||||
['input_text.victron_charge_mode', 'ess', 'Mode Auto Charge Manager'],
|
||||
@@ -2076,12 +2085,25 @@ async function publierChauffeEau24h() {
|
||||
{ headers: { Authorization: `Bearer ${HA_TOKEN}` }, signal: AbortSignal.timeout(15000) },
|
||||
);
|
||||
if (!r.ok) throw new Error(`historique HA ${r.status}`);
|
||||
const kwh = energieSur24h((await r.json())[0]);
|
||||
const serie = (await r.json())[0];
|
||||
const kwh = energieSur24h(serie);
|
||||
await publierCapteur('sensor.evcs_chauffe_eau_24h_kwh', kwh === null ? 'indisponible' : kwh, {
|
||||
friendly_name: 'EVCS — chauffe-eau sur 24 h', unit_of_measurement: 'kWh', icon: 'mdi:water-boiler',
|
||||
compteur: COMPTEUR_CHAUFFE_EAU, calcule_a: fin.toISOString(),
|
||||
});
|
||||
return 1;
|
||||
// Depuis la fin de la derniere fenetre HC de nuit (07:24 heure de Paris) :
|
||||
// securite de la douche du soir (20 h), regle « jour faible ».
|
||||
const p = new Intl.DateTimeFormat('sv-SE', { timeZone: 'Europe/Paris', year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit', hour12: false }).format(fin);
|
||||
const [jour, hm] = p.split(' ');
|
||||
const decalage = new Date(fin.toLocaleString('en-US', { timeZone: 'Europe/Paris' })).getTime() - new Date(fin.toLocaleString('en-US', { timeZone: 'UTC' })).getTime();
|
||||
let borne = Date.parse(`${jour}T07:24:00Z`) - decalage;
|
||||
if (hm < '07:24') borne -= 24 * 3600e3;
|
||||
const kwhJour = energieDepuis(serie, borne);
|
||||
await publierCapteur('sensor.evcs_chauffe_eau_jour_kwh', kwhJour === null ? 'indisponible' : kwhJour, {
|
||||
friendly_name: 'EVCS — chauffe-eau depuis 07:24', unit_of_measurement: 'kWh', icon: 'mdi:water-boiler',
|
||||
depuis: new Date(borne).toISOString(), calcule_a: fin.toISOString(),
|
||||
});
|
||||
return 2;
|
||||
}
|
||||
|
||||
async function publierImportJour(st) {
|
||||
|
||||
Reference in New Issue
Block a user