Depart du matin : jours de depart par vehicule (JEEP mar mer ven sam dim), plus d'urgence de depart les autres jours

This commit is contained in:
Tallagrand Thierry
2026-10-01 07:32:44 +02:00
parent eeaa7636b2
commit 677a0388d7
8 changed files with 89 additions and 6 deletions

View File

@@ -1,3 +1,18 @@
{#- Jours de depart du MATIN (01/10/2026, proprietaire) : l'heure de depart du
vehicule selectionne ne valait que l'heure, tous les jours. La JEEP part a
06:30 mar mer ven sam dim, jamais lun ni jeu : le jeudi 01/10, la marge de
30 min avant ce faux depart a ferme EDF a 06:00. Le gabarit dit si le
PROCHAIN passage de l'heure de depart tombe un jour de depart. Jours
absents ou illisibles = tous les jours (comportement d'avant). -#}
{%- set jm = ['lun', 'mar', 'mer', 'jeu', 'ven', 'sam', 'dim'] -%}
{%- set vm = {'JEEP': 'jeep', 'VW': 'vw', 'ZERO': 'zero'}.get(states('input_select.victron_evcs_vehicle'), 'vw') -%}
{%- set hm = states('input_datetime.' ~ {'vw': 'victron_evcs_departure_time', 'jeep': 'victron_evcs_departure_time_jeep', 'zero': 'victron_evcs_departure_time_zero'}[vm]) -%}
{%- set joursm = states('input_text.victron_evcs_' ~ vm ~ '_morning_departure_days') | lower -%}
{%- set dm = namespace(ok=true) -%}
{%- if hm not in ['unknown', 'unavailable', ''] and joursm not in ['unknown', 'unavailable', ''] -%}
{%- set prochain = today_at(hm) if today_at(hm) > now() else today_at(hm) + timedelta(days=1) -%}
{%- set dm.ok = jm[prochain.weekday()] in joursm.split() -%}
{%- endif -%}
{{ {
"soc_percent": states("sensor.victron_battery_soc"),
"battery_current_a": states("sensor.victron_battery_current"),
@@ -101,6 +116,7 @@
"departure_time": states("input_datetime.victron_evcs_departure_time"),
"departure_time_jeep": states("input_datetime.victron_evcs_departure_time_jeep"),
"departure_time_zero": states("input_datetime.victron_evcs_departure_time_zero"),
"departure_day_ok": "on" if dm.ok else "off",
"evcs_vehicle": states("input_select.victron_evcs_vehicle"),
"allow_grid_departure_urgent": states("input_boolean.victron_evcs_allow_grid_departure_urgent"),
"last_start_at": states("input_datetime.victron_evcs_last_start_at"),

View File

@@ -448,8 +448,12 @@ const params = {
// ZERO (moto, 28/09/2026) = victron_evcs_departure_time_zero. Heure absente
// ou illisible -> repli sur celle de la VW, comme la JEEP.
selectedVehicle: cleanText(input.evcs_vehicle, 'VW'),
departureTimeMin:
low(input.evcs_vehicle || 'vw') === 'jeep'
// Jours de depart du matin (01/10/2026) : si le prochain passage de l'heure
// ne tombe pas un jour de depart du vehicule, il n'y a PAS de depart (null) —
// aucune urgence, aucune fenetre P9. Absent = 'on' (comportement d'avant).
departureTimeMin: low(input.departure_day_ok || 'on') === 'off'
? null
: low(input.evcs_vehicle || 'vw') === 'jeep'
? parseTimeToMinutes(
input.departure_time_jeep,
parseTimeToMinutes(input.departure_time, null)