Bouton reset borne : echappatoire manuelle quand la borne se fige

Filet MANUEL complementaire a P11-bis : quand meme le second signal echoue
(borne physiquement coincee), l'appui sur input_boolean.evcs_reset_borne force
une session fraiche pour un cycle -> nettoie le collant -> retest du vehicule.
Momentane : le controleur (HA_SERVICE_CALLS) le rebascule off apres avoir agi,
il ne peut donc pas forcer un retest en boucle.

- gabarit + INPUT_PARSE (params.resetBorneRequested) + sessionFresh (OU bouton)
- helper_reset_borne_ack : turn_off si le bouton etait ON
- paquet evcs_reset_borne.yaml (SANS initial:, lecon du 06/09), reload fait
- golden 115 -> 116 : reset-borne-force-retest (session etablie + bouton ON ->
  retest + ack off). Mutation : bouton neutralise -> le scenario tombe.
Gabarit rendu contre HA : 203 champs, aucun null.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GwpFpy2aQ2rJok6tNQSbVj
This commit is contained in:
Tallagrand Thierry
2026-09-19 18:32:48 +02:00
parent a3da7f6fbc
commit 51a3660983
7 changed files with 47 additions and 4 deletions

View File

@@ -1120,6 +1120,18 @@ return [{
}
},
// Bouton reset borne (19/09/2026) : momentane. Il a deja fait son effet
// dans WINDOWS (sessionFresh forcee ce cycle) ; on le rebascule off pour
// qu'il ne force pas un retest en boucle. N'ecrit que s'il etait ON.
helper_reset_borne_ack: {
execute: !!params.resetBorneRequested,
domain: 'input_boolean',
service: 'turn_off',
data: {
entity_id: 'input_boolean.evcs_reset_borne'
}
},
helper_cloud_debt_started_at: {
execute: true,
domain: 'input_datetime',

View File

@@ -137,6 +137,7 @@
"evening_stop_time": states("input_datetime.victron_evcs_evening_stop"),
"allow_grid_hc_night": states("input_boolean.victron_evcs_allow_grid_hc_night"),
"reset_borne": states("input_boolean.evcs_reset_borne"),
"night_takeover_prev": states("input_boolean.victron_evcs_night_grid_takeover_needed"),
"night_grid_session_committed_prev": states("input_boolean.victron_evcs_night_grid_session_committed"),
"prev_surplus_state": states("input_text.victron_evcs_surplus_state"),

View File

@@ -471,6 +471,11 @@ const params = {
parseTimeToMinutes(input.day_stop_time, 20 * 60 + 30)
),
// Bouton reset borne (19/09/2026) : echappatoire MANUELLE quand la borne
// se fige (swap trop rapide, statut coince). Force une session fraiche
// pour un cycle -> nettoie le collant -> retest. Le controleur le
// rebascule off apres avoir agi (momentane).
resetBorneRequested: low(input.reset_borne || 'off') === 'on',
allowGridHcNight: low(input.allow_grid_hc_night || 'off') === 'on',
allowGridHcMidday: low(input.allow_grid_hc_midday || 'off') === 'on',

View File

@@ -431,6 +431,7 @@ const P11_FRESH_SESSION_MAX_SEC = 90;
const sessionFresh =
parsed.evcsVehicleConnected &&
(
params.resetBorneRequested || // echappatoire manuelle (bouton reset borne)
(Number.isFinite(parsed.evcsChargingTimeSec) &&
parsed.evcsChargingTimeSec <= P11_FRESH_SESSION_MAX_SEC) ||
(Number.isFinite(parsed.evcsVehicleConnectedAgeSec) &&

View File

@@ -114,6 +114,7 @@ function summarize(out) {
desiredCharging: d.desired_charging,
currentA: d.desired_current_a,
blockReason: d.block_reason || null,
resetBorneAck: calls.helper_reset_borne_ack?.execute ? calls.helper_reset_borne_ack.service : null,
takeoverNeeded: !!c.night_grid_takeover_needed,
edfOnAction: !!calls.edf_general_ok_on?.execute,
takeoverHelperService: calls.helper_night_grid_takeover_needed?.service || null,

View File

@@ -612,6 +612,29 @@ export const scenarios = [
},
},
{
id: 'reset-borne-force-retest',
label: 'Bouton reset borne ON : session pourtant etablie (charging_time 1h25 + reconnexion vieille) → retest force + ack off',
time: MORNING,
overrides: {
evcs_vehicle_connected: 'on', evcs_device_connected: 'on',
soc_percent: '60', pv_power_w: '4500', pv_power_10m_avg_w: '4200',
pv_trend_w: '100', battery_current_a: '10',
house_ac_power_w: '900', vebus_ac_out_l1_power_w: '900',
evcs_status_raw: '1',
prev_surplus_state: 'day_vehicle_full_idle',
evcs_charging_time: '1h 25m',
evcs_vehicle_connected_ts: String(MORNING_TS - 7200),
reset_borne: 'on',
},
expect: {
state: 'start_min_current',
decision: 'start',
desiredCharging: true,
resetBorneAck: 'turn_off',
},
},
// ================= FIN DE CHARGE NUIT (P8) =================
{
id: 'night-vw-pleine-transition',

File diff suppressed because one or more lines are too long