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.
|
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
|
- Agent vocal (SPARK, accord du proprietaire) : script d'ecriture limite au selecteur
|
||||||
`victron_evcs_vehicle` puis au niveau (jamais `target_vehicle`, helper mort ; jamais
|
`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
|
`level_ref_kwh`). Saisie IDENTIQUE corrigee (14:08) : HA ne change ni l'etat ni
|
||||||
reference du compteur n'est pas recalee.
|
`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*
|
*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
|
name: EVCS - Heure de départ ZERO après midi
|
||||||
has_date: false
|
has_date: false
|
||||||
has_time: 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:
|
input_boolean:
|
||||||
victron_evcs_allow_grid_departure_urgent:
|
victron_evcs_allow_grid_departure_urgent:
|
||||||
@@ -165,10 +171,23 @@ automation:
|
|||||||
- id: evcs_niveau_vehicule_reference
|
- id: evcs_niveau_vehicule_reference
|
||||||
alias: "EVCS — mémoriser le compteur de la borne à la saisie du niveau"
|
alias: "EVCS — mémoriser le compteur de la borne à la saisie du niveau"
|
||||||
mode: queued
|
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:
|
trigger:
|
||||||
- platform: state
|
- platform: state
|
||||||
entity_id: input_number.victron_evcs_vehicle_level_pct
|
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:
|
||||||
|
- 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
|
- condition: template
|
||||||
value_template: "{{ states('sensor.evcs_hq2239dnt7p_total_energy') | is_number }}"
|
value_template: "{{ states('sensor.evcs_hq2239dnt7p_total_energy') | is_number }}"
|
||||||
action:
|
action:
|
||||||
@@ -177,3 +196,8 @@ automation:
|
|||||||
entity_id: input_number.victron_evcs_vehicle_level_ref_kwh
|
entity_id: input_number.victron_evcs_vehicle_level_ref_kwh
|
||||||
data:
|
data:
|
||||||
value: "{{ states('sensor.evcs_hq2239dnt7p_total_energy') | float }}"
|
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 branche = states.binary_sensor.victron_evcs_vehicle_connected -%}
|
||||||
{%- set niveau = states.input_number.victron_evcs_vehicle_level_pct -%}
|
{%- set niveau = states.input_number.victron_evcs_vehicle_level_pct -%}
|
||||||
{%- if branche is not none and niveau is not none and branche.state == 'on' -%}
|
{%- 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 -%}
|
{%- endif -%}
|
||||||
{{ {
|
{{ {
|
||||||
"ts": now().isoformat(),
|
"ts": now().isoformat(),
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user