Niveau du vehicule : une saisie identique compte (date de saisie + ecoute de l'appel de service)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011uJ47NxgfpGnuuMr3f2n7Z
This commit is contained in:
Tallagrand Thierry
2026-09-28 14:09:10 +02:00
parent be1b12969e
commit f9cf9daa8c
4 changed files with 33 additions and 4 deletions

View File

@@ -1025,8 +1025,11 @@ fermer le contacteur a midi n'y gagnerait rien et etoufferait le solaire.
une fenetre vers minuit. Bilan 64/64, golden 123/123. Deploye 14:04.
- Agent vocal (SPARK, accord du proprietaire) : script d'ecriture limite au selecteur
`victron_evcs_vehicle` puis au niveau (jamais `target_vehicle`, helper mort ; jamais
`level_ref_kwh`). ⚠️ un niveau identique reecrit ne change pas l'etat HA -> la
reference du compteur n'est pas recalee.
`level_ref_kwh`). Saisie IDENTIQUE corrigee (14:08) : HA ne change ni l'etat ni
`last_reported` d'un input_number reecrit a l'identique (verifie) -> l'automatisation
ecoute aussi l'evenement `call_service`, recale la reference et date la saisie dans
`input_datetime.victron_evcs_vehicle_level_at`, que le gabarit lit pour la validite.
Teste en reel : 12 -> 12, reference recalee, date 14:08:41.
---
*Document mis a jour le : 28/09/2026 (~02:15) — VRM remplace Forecast.Solar (comparaison le 05/10), tenir jusqu'a la prochaine HC, prevision de nuit pour l'agent*

View File

@@ -56,6 +56,12 @@ input_datetime:
name: EVCS - Heure de départ ZERO après midi
has_date: false
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:
@@ -165,10 +171,23 @@ automation:
- 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:
@@ -177,3 +196,8 @@ automation:
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()) }}"

View File

@@ -42,7 +42,9 @@
{%- set branche = states.binary_sensor.victron_evcs_vehicle_connected -%}
{%- set niveau = states.input_number.victron_evcs_vehicle_level_pct -%}
{%- if branche is not none and niveau is not none and branche.state == 'on' -%}
{%- set vh.valide = as_timestamp(niveau.last_changed) >= as_timestamp(branche.last_changed) - 3600 -%}
{#- Date de SAISIE ecrite par l'automatisation, pas last_changed : une saisie
identique ne change pas l'etat du helper mais compte comme une saisie. -#}
{%- set vh.valide = (as_timestamp(states('input_datetime.victron_evcs_vehicle_level_at'), 0)) >= as_timestamp(branche.last_changed) - 3600 -%}
{%- endif -%}
{{ {
"ts": now().isoformat(),

File diff suppressed because one or more lines are too long