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:
@@ -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*
|
||||
|
||||
@@ -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()) }}"
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user