Controleur : un statut charge dementi par le niveau connu du vehicule n'est pas cru (JEEP 51 % du 14/10)

This commit is contained in:
Tallagrand Thierry
2026-10-14 13:13:43 +02:00
parent 16392d92c7
commit 5cd9468b6f
8 changed files with 292 additions and 4 deletions

View File

@@ -2437,5 +2437,11 @@ batterie a 32 A et JEEP (branchee 13:01, 52 %) qui ne demarre pas. SOC 47 % a 12
- Captures d'ecran de pc-test (GNOME Wayland) : portail `org.freedesktop.portal.Screenshot` non interactif par gdbus (session DBus /run/user/1000/bus), fichier ~/Images/Screenshot.png a attendre stable avant copie, puis supprimer. `org.gnome.Shell.Screenshot` est refuse.
- **A verifier le 14/10** : nuit avec la JEEP (56 % Uconnect, budget sans EDF 3,75 kWh, depart 06:30) ; premiere session HC eventuelle avec le disjoncteur EDF 100A (fermeture seule a 01:24 ; sinon alerte edf_ne_ferme_pas) ; revue de 07:30 avec les nouveaux constats (attendu : EDF HP 19:50-20:08, 0,2 kWh) ; relais SPARK des piles (acquittement + rappel 09:00, a cabler par lui) ; alarme BMS « Defaillance interne » du 12/10 05:45 (journal VRM) ; journal Tuya de l'ancien disjoncteur (verrouillage de protection ?).
### 14/10 midi — JEEP a 51 % declaree pleine apres 1,5 min : le statut « charge » dementi par le niveau
- JEEP branchee 12:55:22 (Uconnect 51 %), demarrage solaire 12:56 (6 -> 8 A), la voiture s'interrompt 12:57:20 ; statut borne 3, energie de session AFFICHEE 0,0 kWh (la borne compte par pas de 0,1 kWh) -> Fix H la croit « pleine a l'arrivee » -> `day_vehicle_full_idle` jusqu'au debranchement.
- Correctif (accord du proprietaire, deploye 13:12) : gabarit -> `vehicle_level_pct/valid` (meme regle que le bilan : saisi depuis le branchement, 1 h de tolerance), capacite du vehicule selectionne, livre depuis la saisie ; INPUT_PARSE `vehicleLevelEstimatedPct` ; WINDOWS `vehicleKnownNotFull` (estime < 95 %) : aucun statut 3 credible ET le collant de jour est leve. Sans niveau connu : comportement historique.
- Golden 149 -> **153** (fixture REELLE `tests/golden/fixtures/jeep-1410-1257.json` : sans niveau = latch historique ; 51 % = pas cru ; collant leve ; temoin 97 % = plein), mutation « regle coupee » -> 2 echecs. Verifie en reel : 13:13:00 `start_min_current`, borne « Charge en cours », 6 A / 1,08 kW.
- ⚠️ Si la voiture refuse vraiment la charge (limite reglee dans la voiture), le controleur retentera au lieu de se mettre en veille : a surveiller. VW sans saisie de niveau : non couverte.
---
*Document mis a jour le : 14/10/2026 (~00:10) — disjoncteur EDF 100A (identifiants repris), revue (EDF absent, voiture payee par la batterie, interventions, kWh sur la puissance), piles (hysteresis + acquittement), frontal web .17 en cours ; 13/10/2026 (~06:30) — nuit du 12-13/10 : disjoncteur EDF qui n'executait pas la fermeture (alerte edf_ne_ferme_pas, envoyee a toute heure), charge HC manuelle reparee et utilisee a 40 % ; 13/10 : certificats HTTPS du .50 renouveles (via le .17) + alerte d'expiration ; 12/10 : VW payee par la batterie (temps mini + tolerance nuage bornes par le bilan), niveaux estimes par l'autonomie ; 10/10/2026 (~16:00) — conseiller relecteur de la journee (revue calculee + pistes) ; nuit : voiture qui profite d'EDF ferme pour la batterie, nuit qui prepare le soir les jours annonces faibles ; 08/10/2026 (~00:15) — jour faible : charge maximale en HC de midi (bilan 100 %, ACM plafond + solaire) ; 07/10/2026 (~22:45) — reprise de 16 h verifiee, EDF en HP a 18:03, bilan : reprise du soir et prevision recalee sur la matinee ; bilan HC de midi, reprise du soir apres coupure en pleine chauffe, mesure ECS sur 10 min ; recharge reseau HC : courant calcule (12 kVA) et consigne non tenue ; HC de midi : AUTO ne chauffe pas (BOOST), alerte v2, Jeep (contact, relecture, zone), recharge batterie bridee a 30 A par l'ACM ; jour faible = EDF les deux fenetres HC pour le chauffe-eau, alerte BOOST, Victron Mobile refait ; 1re decision jour faible en reel, mesure ECS reparee, douches 06:00/20:00, Grafana chauffe-eau, tableaux ECS ; chauffe-eau en HC de nuit les jours faibles (decision du bilan, workflow ECS sous controle du depot, VRM, V2.3 desactive) ; garde batterie reseau : voiture bridee a 6 A au lieu d'un arret ; garde-fou concierge 2 h ; allers-retours brefs de la borne retrouves dans l'historique HA (echange VW -> JEEP de 20 s), production 14,5 kWh contre 22 prevus, defaut garde batterie en mode reseau a trancher ; voiture a midi : la batterie n'est plus comptee comme du solaire (EDF automatique les jours de depart si le surplus ne couvre pas) ; nuit 05->06 : JEEP chargee sur EDF en complete (6,32 kWh), budget 0 du a la prevision, Windy/ECMWF contre VRM, a comparer ce soir ; concierge aligne sur la preuve fin de trajet ; a verifier : nuit 05->06 et mardi faible, comparaison VRM/Forecast.Solar ; JEEP identifiee aussi par sa fin de trajet, prevision de la nuit 05->06 ; identification JEEP reussie en reel, correction humaine qui prime (refus supprime), session du 04/10 coupee ; EVCS Master en quatre onglets ; Jeep lue par Uconnect et identifiee seule, capacite JEEP 10 kWh, concierge variante (a) ; releve par photo (SPARK), hass-uconnect en attente ; ecart semaine/week-end mesure (pas de profil week-end la nuit) ; nuit du budget : budget borne au plancher prudent, sans EDF = voiture bloquee meme EDF ferme (batterie seule) ; Energie : sauts corriges ; tableau Energie complete (Sud/Ouest, batterie par integration, borne ; aucun redemarrage HA) ; kilometrage des vehicules (km/kWh, capacite, releves de reference, agent cable 15/15) ; a verifier le 04/10 au matin : nuit du budget JEEP ; concierge : vehicule non confirme demande, heure de saisie ; Grafana vehicules en tableau ; Grafana vehicules : ZERO et Invite ajoutes, session 16:46 reetiquetee ZERO ; prevision SOC 10 h ~35 % ; concierge fiable : niveau note par le script, une ligne, dedoublonnage, simulation par drapeau ; agent : message incompris = question, bourse sur demande explicite (banc final 6/6) ; a verifier : nuit du samedi 03 au dimanche 04/10 (budget < besoin JEEP), cron orange-cloture lundi 05/10 apres 17:40, comparaison VRM / Forecast.Solar lundi 05/10*

View File

@@ -55,6 +55,10 @@
"evcs_charging_time": states("sensor.victron_evcs_charging_time"),
"evcs_vehicle_connected_ts": as_timestamp(states.binary_sensor.victron_evcs_vehicle_connected.last_changed, 0) if states.binary_sensor.victron_evcs_vehicle_connected is not none else 0,
"evcs_session_energy_kwh": states("sensor.evcs_hq2239dnt7p_last_session_energy"),
"vehicle_level_pct": states("input_number.victron_evcs_vehicle_level_pct"),
"vehicle_level_valid": (is_state("binary_sensor.victron_evcs_vehicle_connected", "on") and as_timestamp(states('input_datetime.victron_evcs_vehicle_level_at'), 0) >= as_timestamp(states.binary_sensor.victron_evcs_vehicle_connected.last_changed, 0) - 3600) if states.binary_sensor.victron_evcs_vehicle_connected is not none else false,
"vehicle_capacity_kwh": states("input_number.victron_evcs_capacity_" ~ vm ~ "_kwh"),
"vehicle_delivered_since_level_kwh": ((states("sensor.evcs_hq2239dnt7p_total_energy") | float(0)) - (states("input_number.victron_evcs_vehicle_level_ref_kwh") | float(0))) if states("sensor.evcs_hq2239dnt7p_total_energy") | is_number else none,
"evcs_charging_switch": states("switch.victron_evcs_charging"),
"evcs_auto_start_switch": states("switch.victron_evcs_auto_start"),

View File

@@ -357,6 +357,21 @@ const parsed = {
// de zero a chaque nouvelle connexion (verifie le 07/09/2026 : 0 -> 0,1 -> 0,2
// ... pendant la charge). Sert a juger la credibilite d'un statut "charged".
evcsSessionEnergyKwh: Math.max(0, num(input.evcs_session_energy_kwh, 0)),
// Niveau ESTIME du vehicule branche (14/10/2026) : niveau saisi (proprietaire,
// concierge ou Uconnect pour la JEEP) depuis ce branchement (1 h de tolerance,
// meme regle que le bilan) + energie livree depuis la saisie / capacite
// mesuree. null si niveau non valide ou capacite inconnue : aucun effet.
// Sert a refuser un statut "charged" que le niveau dement (JEEP 51 % declaree
// pleine le 14/10 a 12:57 apres 1,5 min de charge, energie de session
// affichee 0 kWh : la borne compte par pas de 0,1 kWh).
vehicleLevelEstimatedPct: (() => {
const valide = input.vehicle_level_valid === true || low(String(input.vehicle_level_valid)) === 'true';
const niveau = num(input.vehicle_level_pct, NaN);
const cap = num(input.vehicle_capacity_kwh, NaN);
const livre = Math.max(0, num(input.vehicle_delivered_since_level_kwh, 0));
if (!valide || !Number.isFinite(niveau) || !(cap > 0)) return null;
return Math.min(100, niveau + (livre / cap) * 100);
})(),
evcsChargingSwitchOn: low(input.evcs_charging_switch || 'off') === 'on',
evcsAutoStartSwitchOn: low(input.evcs_auto_start_switch || 'off') === 'on',

View File

@@ -482,8 +482,21 @@ const chargedSessionEnergyKwh = Math.max(0, parsed.evcsSessionEnergyKwh || 0);
const chargedSessionEstablished =
Number.isFinite(parsed.evcsChargingTimeSec) &&
parsed.evcsChargingTimeSec >= params.minRunMinutes * 60;
// 14/10/2026 : "energie nulle" ne prouve pas un vehicule plein a l'arrivee.
// La borne compte par pas de 0,1 kWh : la JEEP, a 51 % (Uconnect), a tire
// 1,5 min a 8 A puis s'est interrompue (12:57:20) ; statut 3, energie affichee
// 0 -> `day_vehicle_full_idle` jusqu'au debranchement. Quand le niveau ESTIME
// du vehicule est connu (saisi depuis ce branchement + livre depuis / capacite
// mesuree) et franchement sous le plein, aucun "charged" n'est credible.
// 95 % : marge d'une saisie a l'oeil (autonomie, jauge) ; sans niveau connu,
// comportement historique.
const VEHICLE_KNOWN_NOT_FULL_PCT = 95;
const vehicleKnownNotFull =
Number.isFinite(parsed.vehicleLevelEstimatedPct) &&
parsed.vehicleLevelEstimatedPct < VEHICLE_KNOWN_NOT_FULL_PCT;
const chargedCredible =
chargedSessionEnergyKwh <= 0 || chargedSessionEstablished;
!vehicleKnownNotFull &&
(chargedSessionEnergyKwh <= 0 || chargedSessionEstablished);
const evcsStatusCharged =
!sessionFresh &&
@@ -594,6 +607,9 @@ const dayVehicleFullIdle =
!isStopMode &&
!forceGridRequested &&
!forceChargeRequested &&
// 14/10/2026 : un niveau connu sous le plein leve aussi le collant deja pose
// (sinon le faux "plein" de 12:57 tenait jusqu'au debranchement).
!vehicleKnownNotFull &&
(dayVehicleFullPrev || evcsStatusCharged);
// P8 : correction du fix 04/08 (logique inversée : "|| vehicleChargeCompleted"
@@ -1346,6 +1362,7 @@ return [{
chargedSessionEnergyKwh,
chargedSessionEstablished,
chargedCredible,
vehicleKnownNotFull,
}
}
}];

View File

@@ -0,0 +1,213 @@
{
"ac_loads_max_safe_w": "9000.0",
"acin1_last_changed_ts": 1791915004.531794,
"afternoon_battery_max_discharge_a": "unknown",
"afternoon_probe_pv_avg_min_w": "1000.0",
"afternoon_probe_soc_min": "85.0",
"allow_grid_departure_urgent": "off",
"allow_grid_hc_midday": "on",
"allow_grid_hc_night": "on",
"balance_ecs_nuit": "off",
"balance_energy_to_cover_kwh": "0.0",
"balance_grid_energy_needed_kwh": "0.0",
"balance_last_run": "14/10 12:55",
"balance_night_vehicle_budget_kwh": "0.0",
"balance_required_soc": "22.0",
"balance_required_soc_prudent": "44.0",
"balance_status": "ok",
"balance_vehicle_grid_needed": "off",
"base_load_remaining_kwh": "2.2",
"batt_charge_reserve_25_40_a": "110.0",
"batt_charge_reserve_40_60_a": "70.0",
"batt_charge_reserve_60_80_a": "40.0",
"batt_charge_reserve_80_90_a": "10.0",
"batt_charge_reserve_gt90_a": "5.0",
"batt_charge_reserve_lt25_a": "150.0",
"batt_discharge_hard_25_40_a": "-15.0",
"batt_discharge_hard_40_60_a": "-30.0",
"batt_discharge_hard_60_80_a": "-50.0",
"batt_discharge_hard_80_90_a": "-80.0",
"batt_discharge_hard_gt90_a": "-100.0",
"batt_discharge_hard_lt25_a": "-8.0",
"batt_discharge_soft_25_40_a": "-5.0",
"batt_discharge_soft_40_60_a": "-15.0",
"batt_discharge_soft_60_80_a": "-20.0",
"batt_discharge_soft_80_90_a": "-40.0",
"batt_discharge_soft_gt90_a": "-50.0",
"batt_discharge_soft_lt25_a": "-3.0",
"batt_hard_tol_25_40_sec": "5.0",
"batt_hard_tol_40_60_sec": "10.0",
"batt_hard_tol_60_80_sec": "15.0",
"batt_hard_tol_80_90_sec": "20.0",
"batt_hard_tol_gt90_sec": "20.0",
"batt_hard_tol_lt25_sec": "2.0",
"batt_recovery_25_40_min": "12.0",
"batt_recovery_40_60_min": "10.0",
"batt_recovery_60_80_min": "8.0",
"batt_recovery_80_90_min": "6.0",
"batt_recovery_gt90_min": "6.0",
"batt_recovery_lt25_min": "15.0",
"batt_soft_tol_25_40_min": "2.0",
"batt_soft_tol_40_60_min": "4.0",
"batt_soft_tol_60_80_min": "6.0",
"batt_soft_tol_80_90_min": "10.0",
"batt_soft_tol_gt90_min": "12.0",
"batt_soft_tol_lt25_min": "1.0",
"battery_current_a": "168.8000030517578",
"battery_discharge_hard_a": "-25.0",
"battery_discharge_soft_a": "0.0",
"battery_full_forecast_min_kwh": "4.5",
"battery_full_soc": "90.0",
"battery_neutral_band_a": "0.0",
"battery_reserve_up_a": "8.0",
"battery_soft_breach_at": "",
"blocked_until": "2026-10-14 12:57:00",
"bms_max_charge_current_a": "250.0",
"bms_max_discharge_current_a": "250.0",
"budget_remaining_kwh": "4.57",
"charge_permission_now": "on",
"cloud_debt_kwh": "0.0",
"cloud_debt_max_kwh": "1.2",
"cloud_debt_started_at": "2026-10-14 01:25:30",
"cloud_tolerance_minutes": "20.0",
"control_latch": "on",
"controller_enabled": "on",
"current_change_cooldown_seconds": "30.0",
"current_max_auto_a": "22.0",
"current_min_a": "6.0",
"current_step_down_a": "2.0",
"current_step_up_a": "1.0",
"day_start_time": "08:30:00",
"day_stop_time": "20:15:00",
"departure_day_ok": "off",
"departure_priority_enabled": "on",
"departure_time": "08:50:00",
"departure_time_jeep": "06:30:00",
"departure_time_zero": "08:50:00",
"dvcc_max_charge_current_a": "160",
"end_of_day_soc_guard": "85.0",
"end_of_day_soc_target": "85.0",
"evcs_ac_power_w": "0.0",
"evcs_auto_start_switch": "off",
"evcs_charging_switch": "on",
"evcs_charging_time": "1m 42s",
"evcs_command_current_a": "8",
"evcs_current_a": "0.0",
"evcs_delivery_noise_ema": "0.113",
"evcs_delivery_ratio_ema": "0.866",
"evcs_device_connected": "on",
"evcs_mode_fallback": "unknown",
"evcs_mode_sensor": "Manuel",
"evcs_night_session_start_at": "",
"evcs_night_session_start_soc": "",
"evcs_no_demand_filter_eval_at": "2026-10-14 12:57:00",
"evcs_no_demand_score_ema": "0.001",
"evcs_no_demand_semantic_active": "off",
"evcs_no_demand_since_at": "2026-08-23 15:29:30",
"evcs_priority_manual_mode": "normal",
"evcs_priority_manual_override": "off",
"evcs_priority_manual_reason": "unknown",
"evcs_priority_manual_until": "2026-04-14 00:00:00",
"evcs_session_energy_kwh": "0.0",
"evcs_set_current_a": "8",
"evcs_status_raw": "3",
"evcs_total_energy_kwh": "4135.1",
"evcs_vehicle": "JEEP",
"evcs_vehicle_connected": "on",
"evcs_vehicle_connected_ts": 1791975322.950818,
"evening_battery_max_discharge_a": "-30.0",
"evening_soc_start_min": "85.0",
"evening_soc_stop_min": "80.0",
"evening_start_time": "17:00:00",
"evening_stop_time": "20:30:00",
"flexible_safety_margin_kwh": "0.9",
"force_mode_auto_revert_minutes": "120.0",
"forecast_commit_min_kwh": "10.0",
"forecast_commit_soc_floor": "35.0",
"forecast_mode_enabled": "off",
"grid_battery_hard_a": "-20.0",
"grid_battery_soft_a": "-10.0",
"grid_current_max_a": "20.0",
"grid_power_w": "0",
"grid_setpoint_idle_w": "unknown",
"grid_setpoint_w": "700",
"grid_settle_seconds": "unknown",
"grid_state": "off",
"grid_switch_last_changed_ts": 1791915004.077046,
"hard_stop_enabled": "on",
"hc_midday_start_time": "12:24:00",
"hc_midday_stop_time": "14:24:00",
"hc_night_start_time": "01:24:00",
"hc_night_stop_time": "07:24:00",
"house_ac_headroom_w": "5000.0",
"house_ac_power_prev_w": "906.0",
"house_ac_power_w": "906.0",
"house_spike_grace_minutes": "10.0",
"last_block_reason": "none",
"last_current_change_at": "2026-10-14 12:57:00",
"last_signature": "charging_step_up_battery|profile=midday_hc_or_solar|source=solar_only|chg=1|perm=1|l=1|cur=8|block=none|stop=0|prio=1|night=0|ntrg=22|nurg=0|vdf=0|vdfs=0.001",
"last_start_at": "2026-10-14 12:55:30",
"last_stop_at": "2026-10-14 05:52:30",
"midday_battery_max_discharge_a": "-40.0",
"midday_probe_pv_avg_min_w": "0.0",
"midday_soc_min": "75.0",
"min_run_minutes": "29.0",
"min_stop_minutes": "0.0",
"modules_en_service": "13.0",
"morning_battery_max_discharge_a": "-20.0",
"morning_probe_pv_avg_min_w": "1500.0",
"morning_probe_pv_trend_min_w": "-2000.0",
"morning_soc_min": "35.0",
"morning_start_time": "07:30:00",
"morning_stop_time": "11:00:00",
"mppt_operation_modes": "voltage_current_limited,voltage_current_limited,voltage_current_limited,voltage_current_limited,voltage_current_limited,mppt_active,voltage_current_limited",
"night_battery_charge_enabled": "on",
"night_battery_done_prev": "off",
"night_budget_prev": "",
"night_charge_mode": "sans_edf",
"night_grid_session_committed_prev": "off",
"night_takeover_prev": "off",
"notifications_enabled": "on",
"operating_mode_helper": "midday_hc_or_solar",
"overload_hold_seconds": "30.0",
"overload_step_down_a": "2.0",
"overload_stop_after_seconds": "120.0",
"prev_surplus_state": "charging_step_up_battery",
"probe_current_a": "6.0",
"probe_enabled": "on",
"probe_minutes": "3.0",
"probe_retry_minutes": "45.0",
"probe_started_at": "2026-03-31 00:00:00",
"projected_end_soc_after_charge": "100.0",
"pv_hold_min_w": "500.0",
"pv_power_10m_avg_w": "9812",
"pv_power_w": "9455.449483266839",
"pv_start_min_w": "700.0",
"pv_trend_w": "unknown",
"required_energy_kwh": "10.5",
"reset_borne": "off",
"soc_comfort_target": "85.0",
"soc_percent": "83.0",
"soc_start_min": "80.0",
"soc_stop_min": "29.0",
"solar_potential_grace_minutes": "12.0",
"step_down_cooldown_seconds": "60.0",
"step_up_cooldown_seconds": "30.0",
"target_current_auto_a": "8.0",
"today_remaining_kwh": "19.072",
"tomorrow_kwh": "28.778",
"vebus_ac_out_l1_current_a": "4.460000038146973",
"vebus_ac_out_l1_power_w": "906",
"vebus_ac_out_l1_voltage_v": "229.75999450683594",
"vebus_dc_current_a": "-19.0",
"vebus_dc_power_w": "-907.0",
"vebus_dc_voltage_v": "51.400001525878906",
"vebus_l1_low_battery": "off",
"vebus_l1_overload": "off",
"vebus_low_battery": "off",
"vebus_main_state": "4",
"vebus_overload": "off",
"vebus_state": "9",
"victron_acin1_available": "0",
"victron_evcs_strategy": "auto_solar_plus"
}

View File

@@ -126,6 +126,8 @@ function summarize(out) {
profile: c.profile,
sourceMode: c.source_mode,
state: d.state,
// 14/10/2026 : l'etat n'est aucun des etats "vehicule plein" (collants ou VDF).
stateNotFull: !['day_vehicle_full_idle', 'vehicle_full_or_paused', 'night_session_done_idle', 'night_recovery_done_idle', 'departure_done_idle'].includes(d.state),
decision: d.current_decision,
desiredCharging: d.desired_charging,
currentA: d.desired_current_a,

View File

@@ -56,6 +56,9 @@ const BUDGET_NUIT = { ...VEHICLE_NIGHT, ...BUDGET_NUIT_BASE };
// 12/10/2026 16:38:30 — releve reel COMPLET (entree de INPUT_PARSE, execution
// n8n 1464717) : VW en charge solaire tenue sur la batterie.
const VW_1210 = JSON.parse(readFileSync(new URL('./fixtures/vw-1210-1638.json', import.meta.url), 'utf8'));
// Releve reel du 14/10 12:57:30 (entree de INPUT_PARSE) : JEEP branchee 12:55:22, 51 % par Uconnect,
// 1,5 min de charge a 8 A puis interruption ; statut 3, energie de session affichee 0,0 kWh.
const JEEP_1410 = JSON.parse(readFileSync(new URL('./fixtures/jeep-1410-1257.json', import.meta.url), 'utf8'));
export const scenarios = [
@@ -3601,4 +3604,32 @@ export const scenarios = [
},
expect: { state: 'charging_step_up_battery', desiredCharging: true },
},
{
id: 'jeep-1410-statut-charge-sans-niveau-latche',
label: 'RELEVE 14/10 12:57:30 — statut 3, energie 0, AUCUN niveau connu : comportement historique, plein a l arrivee',
time: '2026-10-14T12:57:30+02:00',
overrides: { ...JEEP_1410, vehicle_level_valid: false },
expect: { state: 'day_vehicle_full_idle', desiredCharging: false },
},
{
id: 'jeep-1410-niveau-51-statut-charge-non-credible',
label: '14/10 12:57:30 — meme releve, niveau 51 % connu depuis le branchement : le statut 3 n est PAS cru',
time: '2026-10-14T12:57:30+02:00',
overrides: { ...JEEP_1410, vehicle_level_pct: '51.0', vehicle_level_valid: true, vehicle_capacity_kwh: '10.0', vehicle_delivered_since_level_kwh: 0.05 },
expect: { stateNotFull: true },
},
{
id: 'jeep-1410-niveau-51-leve-le-collant',
label: '14/10 12:58:34 — collant day_vehicle_full_idle deja pose, niveau 51 % saisi par Uconnect : le collant est leve',
time: '2026-10-14T12:59:00+02:00',
overrides: { ...JEEP_1410, prev_surplus_state: 'day_vehicle_full_idle', vehicle_level_pct: '51.0', vehicle_level_valid: true, vehicle_capacity_kwh: '10.0', vehicle_delivered_since_level_kwh: 0.05 },
expect: { stateNotFull: true },
},
{
id: 'jeep-1410-niveau-97-plein-cru',
label: 'temoin — niveau estime 97 % (au-dessus de 95) : le statut 3 reste cru, plein',
time: '2026-10-14T12:57:30+02:00',
overrides: { ...JEEP_1410, vehicle_level_pct: '90.0', vehicle_level_valid: true, vehicle_capacity_kwh: '10.0', vehicle_delivered_since_level_kwh: 0.7 },
expect: { state: 'day_vehicle_full_idle' },
},
];

File diff suppressed because one or more lines are too long