Files
EVCS/packages/victron_evcs_vehicles.yaml

257 lines
9.7 KiB
YAML
Executable File

# =====================================================
# EVCS — VÉHICULES & DÉPART (P9) — créé le 09/08/2026 (HANDOFF §21)
# Deux véhicules alternent sur la borne :
# - VW : départ tardif (input_datetime.victron_evcs_departure_time, ~08:50),
# ne publie pas franchement "charged" (statut 3 rare)
# - JEEP : départ tôt (06:30), publie "charged" franchement
# Le sélecteur dit au contrôleur QUELLE heure de départ utiliser.
# P9 : si le toggle est ON, le réseau est autorisé HORS fenêtre HC dans les
# 120 min précédant le départ pour finir la charge du véhicule
# (arrêt automatique via VDF/statut + états collants anti-rebond).
# =====================================================
# ⚠️ AUCUN `initial:` SUR LES REGLAGES MANUELS (06/09/2026).
# Dans Home Assistant, declarer `initial:` DESACTIVE la restauration d'etat :
# le helper est force a cette valeur a CHAQUE demarrage. Un reglage fait a la
# main est donc perdu au premier redemarrage, en silence.
# Constate deux fois sur le selecteur de vehicule (04/09 puis 06/09 : JEEP
# repasse a VW), et diagnostique le 06/09 en comparant avec
# `input_select.victron_evcs_strategy`, cree par l'interface donc sans
# `initial:`, qui survivait a tous les redemarrages.
# Les helpers de RUNTIME, eux, gardent leur `initial:` : ils sont reecrits par
# les workflows au cycle suivant, et repartir d'un etat connu y est voulu.
# Contrepartie assumee : sur une installation neuve, sans etat a restaurer, un
# input_select prend sa premiere option, un input_number son `min` et un
# input_datetime 00:00.
input_select:
victron_evcs_vehicle:
name: EVCS - Véhicule branché
options:
- VW
- JEEP
- ZERO
icon: mdi:car-multiple
# Budget voiture de la nuit (30/09/2026, decisions du proprietaire) :
# sans_edf = la voiture ne prend que ce que la batterie peut donner sans EDF
# (budget du bilan) ; complete = budget batterie puis EDF en HC pour le reste.
# Remis a sans_edf chaque jour a 12:00 (defaut si rien n'est dit le soir).
victron_evcs_night_charge_mode:
name: EVCS - Charge de la voiture cette nuit
options:
- sans_edf
- complete
icon: mdi:car-battery
input_datetime:
victron_evcs_departure_time_jeep:
name: EVCS - Heure départ JEEP
has_date: false
has_time: true
victron_evcs_departure_time_zero:
name: EVCS - Heure départ ZERO
has_date: false
has_time: true
# Depart APRES LE DEJEUNER, par vehicule (28/09/2026) : les jours ou il
# repart, ce qu'il n'a pas pris avant ne pourra pas l'etre en HC la nuit.
victron_evcs_jeep_midday_departure:
name: EVCS - Heure de départ JEEP après midi
has_date: false
has_time: true
victron_evcs_vw_midday_departure:
name: EVCS - Heure de départ VW après midi
has_date: false
has_time: true
victron_evcs_zero_midday_departure:
name: EVCS - Heure de départ ZERO après midi
has_date: false
has_time: true
# Depart PONCTUEL (28/09/2026) : la VW et la ZERO repartent certains
# apres-midi sans jours fixes. Saisi au branchement (tableau de bord ou agent
# vocal) : « il repart aujourd'hui a 16:00 ». Retenu seulement s'il est pour
# AUJOURD'HUI, a venir, et saisi au plus 1 h avant le branchement ou apres —
# une saisie d'hier ou d'un autre vehicule ne peut pas servir.
victron_evcs_departure_ponctuel:
name: EVCS - Départ ponctuel du véhicule branché (aujourd'hui)
has_date: true
has_time: true
# Instant de la derniere SAISIE du niveau, meme identique (ecrit par
# l'automatisation) : HA ne date pas une valeur reecrite a l'identique.
victron_evcs_vehicle_level_at:
name: EVCS - Saisie du niveau du véhicule à
has_date: true
has_time: true
input_boolean:
victron_evcs_allow_grid_departure_urgent:
name: EVCS - Réseau avant départ (P9)
icon: mdi:car-clock
# =====================================================
# VEHICULE BRANCHE A MIDI — JEEP, VW, ZERO (28/09/2026, strategie du proprietaire)
# « JEEP branchee engage le reseau en HC midi si l'analyse de production le
# justifie ». Le bilan energetique compare le besoin de la voiture a ce que le
# solaire peut lui donner AVANT son depart sans descendre la batterie sous le
# plancher « tenir jusqu'a la prochaine HC ». Aucun capteur ne donne le niveau
# de la voiture : le proprietaire le saisit (tableau de bord ou agent vocal).
# Le calendrier reste ici : le bilan ne recoit qu'un instant de depart.
# =====================================================
input_number:
victron_evcs_vehicle_level_pct:
name: EVCS - Niveau de charge du véhicule (saisi)
min: 0
max: 100
step: 1
unit_of_measurement: "%"
mode: box
icon: mdi:car-battery
# Compteur de la borne au moment de la saisie du niveau (ecrit par
# l'automatisation ci-dessous) : ce que la voiture a pris DEPUIS se deduit.
victron_evcs_vehicle_level_ref_kwh:
name: EVCS - Compteur borne à la saisie du niveau
min: 0
max: 1000000
step: 0.1
unit_of_measurement: kWh
mode: box
icon: mdi:counter
# Capacites MESUREES au compteur de la borne (charge complete depuis un
# niveau bas), pas les valeurs constructeur. VW 7,70 (15/09, MANUEL §0) ;
# JEEP 10,0 (04/10 : 46 % -> plein = 5,4 kWh, 53 % -> plein = 4,6 kWh ; 8,7 avant).
# 0 = INCONNUE :
# la regle de midi se tait pour ce vehicule plutot que de deviner.
victron_evcs_capacity_jeep_kwh:
name: EVCS - Capacité mesurée JEEP
min: 1
max: 100
step: 0.1
unit_of_measurement: kWh
mode: box
icon: mdi:car-battery
victron_evcs_capacity_vw_kwh:
name: EVCS - Capacité mesurée VW
min: 1
max: 100
step: 0.1
unit_of_measurement: kWh
mode: box
icon: mdi:car-battery
victron_evcs_capacity_zero_kwh:
name: EVCS - Capacité mesurée ZERO (0 = inconnue)
min: 0
max: 100
step: 0.1
unit_of_measurement: kWh
mode: box
icon: mdi:motorbike-electric
# Puissance que le chargeur EMBARQUE absorbe a consigne pleine (plateau
# mesure). VW 3 680 W et JEEP 3 655 W le 05/09 (MANUEL §0). 0 = inconnue :
# le bilan ne borne alors pas ce que le vehicule peut prendre avant son depart.
victron_evcs_charger_kw_jeep:
name: EVCS - Puissance de charge JEEP (mesurée)
min: 0
max: 22
step: 0.01
unit_of_measurement: kW
mode: box
icon: mdi:ev-station
victron_evcs_charger_kw_vw:
name: EVCS - Puissance de charge VW (mesurée)
min: 0
max: 22
step: 0.01
unit_of_measurement: kW
mode: box
icon: mdi:ev-station
victron_evcs_charger_kw_zero:
name: EVCS - Puissance de charge ZERO (0 = inconnue)
min: 0
max: 22
step: 0.01
unit_of_measurement: kW
mode: box
icon: mdi:ev-station
input_text:
# Jours de depart du MATIN (01/10/2026) : l'heure de depart du matin
# (victron_evcs_departure_time*) ne vaut que ces jours-la (lun mar mer jeu ven
# sam dim). Vide = tous les jours. JEEP : mar mer ven sam dim (proprietaire).
victron_evcs_jeep_morning_departure_days:
name: EVCS - Jours de départ JEEP le matin
max: 60
icon: mdi:calendar-week
victron_evcs_vw_morning_departure_days:
name: EVCS - Jours de départ VW le matin
max: 60
icon: mdi:calendar-week
victron_evcs_zero_morning_departure_days:
name: EVCS - Jours de départ ZERO le matin
max: 60
icon: mdi:calendar-week
# Budget fige par le controleur a l'ouverture de la session de nuit :
# « budget_kWh|index_compteur_borne », vide hors session. Ne pas ecrire.
victron_evcs_night_budget:
name: EVCS - Budget voiture de la nuit (fige)
max: 40
icon: mdi:battery-lock
# Jours ou la JEEP repart apres le dejeuner (lun mar mer jeu ven sam dim).
victron_evcs_jeep_midday_departure_days:
name: EVCS - Jours de départ JEEP après midi
max: 60
icon: mdi:calendar-week
victron_evcs_vw_midday_departure_days:
name: EVCS - Jours de départ VW après midi
max: 60
icon: mdi:calendar-week
victron_evcs_zero_midday_departure_days:
name: EVCS - Jours de départ ZERO après midi
max: 60
icon: mdi:calendar-week
automation:
- id: evcs_charge_nuit_retour_sans_edf
alias: "EVCS — charge de nuit : retour a « sans EDF » chaque midi"
mode: single
trigger:
- platform: time
at: "12:00:00"
action:
- service: input_select.select_option
target:
entity_id: input_select.victron_evcs_night_charge_mode
data:
option: sans_edf
- id: evcs_niveau_vehicule_reference
alias: "EVCS — mémoriser le compteur de la borne à la saisie du niveau"
mode: queued
# Le declencheur d'etat ne voit pas une saisie IDENTIQUE (HA ne change pas
# l'etat) : « elle est encore a 12 % » au branchement suivant ne recalerait
# pas la reference. On ecoute donc aussi l'appel de service lui-meme.
trigger:
- platform: state
entity_id: input_number.victron_evcs_vehicle_level_pct
- platform: event
event_type: call_service
event_data:
domain: input_number
service: set_value
condition:
- condition: template
value_template: >
{{ trigger.platform == 'state' or
'input_number.victron_evcs_vehicle_level_pct' in
((trigger.event.data.service_data or {}).get('entity_id', []) | string) }}
- condition: template
value_template: "{{ states('sensor.evcs_hq2239dnt7p_total_energy') | is_number }}"
action:
- service: input_number.set_value
target:
entity_id: input_number.victron_evcs_vehicle_level_ref_kwh
data:
value: "{{ states('sensor.evcs_hq2239dnt7p_total_energy') | float }}"
- service: input_datetime.set_datetime
target:
entity_id: input_datetime.victron_evcs_vehicle_level_at
data:
timestamp: "{{ as_timestamp(now()) }}"