Salut
Pour avoir tester last_updated et last_changed par rapport à une automatisation que je voulais faire je me suis aperçu que ces valeurs étaient remise à jour à chaque redémarrage de HA et ce même si l’état du sensor n’avait pas changé.
Je suppose même que si ta wallbox devient indisponible un instant qu’a la re-synchro last_updated et last_changed soit mis à jour.
Pour contourner cela j’ai créé un input_text qui stocke la valeur de last_changed quand effectivement le sensor à bien changé de valeur et je me sers de cet input_text pour faire les calculs de date et temps.
Mon automatisation qui stocke la valeur :
alias: Capteurs - Cumulus chaud
description: ""
trigger:
- platform: state
entity_id:
- sensor.msunpv_outbal
to: "400"
for:
hours: 0
minutes: 15
seconds: 0
condition: []
action:
- service: input_boolean.turn_on
data: {}
target:
entity_id: input_boolean.cumulus_hot
- service: input_text.set_value
data:
value: "{{ (as_local(states.input_boolean.cumulus_hot.last_changed)) }}"
target:
entity_id: input_text.last_chauffe_solaire_cumulus
mode: single
Le template pour l’affichage :
{% if (((as_timestamp(now()) - as_timestamp(states('input_text.last_chauffe_solaire_cumulus'))) / 3600) | round(2)) < 1 %}
Dernière chauffe complète il y'a {{((as_timestamp(now()) - as_timestamp(states('input_text.last_chauffe_solaire_cumulus'))) / 60) | round(0)}} minute(s)
{% elif (((as_timestamp(now()) - as_timestamp(states('input_text.last_chauffe_solaire_cumulus'))) / 3600) | round(2)) < 72 %}
Dernière chauffe complète il y'a {{((as_timestamp(now()) - as_timestamp(states('input_text.last_chauffe_solaire_cumulus'))) / 3600) | round(0)}} heure(s)
{% else %}
Dernière chauffe complète il y'a {{((as_timestamp(now()) - as_timestamp(states('input_text.last_chauffe_solaire_cumulus'))) / 86400) | round(0)}} jour(s)
{% endif %}
Le résultat :
Par contre ça n’explique pas ton histoire d’automatisaion qui ne fonctionne pas avec le state.