Budget voiture de la nuit : annonce dans la prevision, cartes Bilan energetique (Production) et EVCS Master
This commit is contained in:
@@ -652,13 +652,37 @@ export function previsionNuit(st, maintenant = new Date()) {
|
||||
? ' Sous reserve : l historique de production de ces heures de fin de journee est incomplet (batterie souvent pleine a cette heure) ; la decision reelle est reprise ' + (hcDebut ? `a ${hcDebut}` : 'a l ouverture des heures creuses') + '.'
|
||||
: '';
|
||||
attributs.reserve_bilan = degrade ? 'forme de production minoree sur les heures de deficit' : null;
|
||||
const voiture = attributs.voiture === 'aucune'
|
||||
? 'Aucun vehicule branche.'
|
||||
: attributs.voiture === 'branchee'
|
||||
? 'Un vehicule est branche : sa charge s ajoute et sera decidee par le controleur.'
|
||||
: 'Etat du vehicule inconnu.';
|
||||
const hc = hcDebut ? `a ${hcDebut}` : 'a l ouverture des heures creuses';
|
||||
const kwh = (x) => String(x).replace('.', ',');
|
||||
// BUDGET VOITURE DE LA NUIT (30/09) : ce que la batterie peut donner sans EDF,
|
||||
// et le reglage de la nuit (sans_edf par defaut, complete sur demande). Pendant
|
||||
// la session, le budget FIGE par le controleur et ce qui a deja ete donne.
|
||||
const modeNuit = txt('input_select.victron_evcs_night_charge_mode') === 'complete' ? 'complete' : 'sans_edf';
|
||||
const fige = (txt('input_text.victron_evcs_night_budget') || '').match(/^\s*([\d.]+)\|([\d.]+)\s*$/);
|
||||
const compteur = nombre(st, 'sensor.evcs_hq2239dnt7p_total_energy');
|
||||
const budgetPublie = nombre(st, 'input_number.evcs_balance_night_vehicle_budget_kwh');
|
||||
const budgetKwh = fige ? Number(fige[1]) : budgetPublie;
|
||||
const dejaDonne = fige && compteur !== null ? Math.max(0, Math.round((compteur - Number(fige[2])) * 10) / 10) : null;
|
||||
const b = budgetKwh !== null ? kwh(Math.round(budgetKwh * 10) / 10) : null;
|
||||
const suite = modeNuit === 'complete'
|
||||
? 'puis EDF en heures creuses pour le reste (charge complete demandee)'
|
||||
: 'puis elle s arrete et attend le soleil (reglage « sans EDF »)';
|
||||
const phraseBudget = b === null ? ''
|
||||
: budgetKwh < 0.1
|
||||
? (modeNuit === 'complete'
|
||||
? 'La batterie ne peut rien donner a la voiture cette nuit : EDF la chargera en heures creuses (charge complete demandee).'
|
||||
: 'La batterie ne peut rien donner a la voiture cette nuit sans EDF : elle attendra le soleil (reglage « sans EDF »).')
|
||||
: `La voiture peut prendre environ ${b} kWh sur la batterie sans EDF, ${suite}.` +
|
||||
(dejaDonne !== null ? ` Deja ${kwh(dejaDonne)} kWh donnes.` : '');
|
||||
attributs.mode_charge_nuit = modeNuit;
|
||||
attributs.budget_voiture_kwh = budgetKwh;
|
||||
attributs.budget_voiture_fige = !!fige;
|
||||
attributs.budget_deja_donne_kwh = dejaDonne;
|
||||
const voiture = attributs.voiture === 'aucune'
|
||||
? 'Aucun vehicule branche.' + (phraseBudget ? ` S il y en a un cette nuit : ${phraseBudget.charAt(0).toLowerCase()}${phraseBudget.slice(1)}` : '')
|
||||
: attributs.voiture === 'branchee'
|
||||
? (phraseBudget ? `Voiture branchee. ${phraseBudget}` : 'Un vehicule est branche : sa charge s ajoute et sera decidee par le controleur.')
|
||||
: 'Etat du vehicule inconnu.';
|
||||
const jusqua = hcFin ? `jusqu a ${hcFin}` : 'jusqu a la fin des heures creuses';
|
||||
const plage = hcDebut && hcFin ? `de ${hcDebut} a ${hcFin}` : 'en heures creuses';
|
||||
const detail = maisonHcKwh === null ? ''
|
||||
@@ -693,7 +717,8 @@ export function previsionNuit(st, maintenant = new Date()) {
|
||||
const achatSi = maisonHcKwh !== null
|
||||
? ` Si EDF s engage ${hc}, la maison y achetera environ ${kwh(Math.round(maisonHcKwh * 10) / 10)} kWh ${jusqua}.` : '';
|
||||
const texteJour = `Il est trop tot pour la prevision de la nuit : elle se calcule le soir, sur la consommation reelle ` +
|
||||
`de la soiree, et la decision d EDF se prend ${hc}.${repere}${achatSi} Batterie a ${soc !== null ? Math.round(soc) : '?'} % maintenant.`;
|
||||
`de la soiree, et la decision d EDF se prend ${hc}.${repere}${achatSi} Batterie a ${soc !== null ? Math.round(soc) : '?'} % maintenant.` +
|
||||
(phraseBudget ? ` ${phraseBudget}` : '');
|
||||
return { etat: 'jour', attributs: { ...attributs, verdict: 'jour', statut: 'jour',
|
||||
prochaine_traversee: m ? `${m[1]} h -> ${m[2]} h` : null,
|
||||
prochaine_traversee_soc_requis_pct: m ? ndSoc : null, prochaine_traversee_kwh: m ? ndKwh : null,
|
||||
|
||||
Reference in New Issue
Block a user