Tout va dépendre de la robustesse que tu souhaites en fait.
Mais c’est faisable comme ci-dessous par exemple.
Mon code permet de sauvegarder dans un input_text
la date du dernier changement d’état du capteur surveillé, dans un autre input_text
son dernier état, et dans un dernier input_text
la date du dernier démarrage de HA.
La remise à zéro de la date du dernier changement d’état se fait :
- Au démarrage, si et seulement si l’état sauvegardé est différent de l’état actuel,
- Au changement d’état du capteur surveillé.
La remise à zéro de la date du dernier changement d’état ne se fait pas :
- Au démarrage, si l’état du capteur surveillé n’a pas changé
En résumé, l’entité input_text.date_dernier_evenement
contient la date du dernier changement d’état du capteur sensor.capteur_surveille
, ceci malgré un redémarrage du serveur HA qui aura pour effet de remettre à zéro la date du dernier enregistrement du capteur sensor.capteur_surveille
.
SI vous voyez des coquilles dans le code, ne pas hésiter à le dire !
##########################
# Utilisé pour les tests #
##########################
sensor:
- platform: template
sensors:
capteur_surveille: #Le capteur que l'on surveille
friendly_name: "capteur_surveille"
value_template: "toto"
device_class: timestamp
########################
#########################
# Entités accueillantes #
#########################
input_text:
date_dernier_evenement: #Contient la date du dernier changement d'état du capteur surveillé
name: date_dernier_evenement
etat_dernier_evenement: #Contient le dernier état du capteur surveillé
name: etat_dernier_evenement
date_dernier_demarrage: #Contient la date du dernier démarrage de HA
name: date_dernier_demarrage
#########################
#########################
# Automatisations #
#########################
automation:
- id: 'automatisation_mise_a_jour_de_la_date'
######################################################################################################
# Automatisation permettant de sauvegarder la date du dernier changement d'état du capteur surveillé #
# avec conservation de la date en cas de démarrage de HA si le même état #
######################################################################################################
alias: automatisation_mise_a_jour_de_la_date
trigger:
- platform: state
entity_id: sensor.capteur_surveille
- platform: homeassistant
event: start
condition:
action:
- choose:
- conditions:
- condition: template
value_template: "{{ states.sensor.capteur_surveille.last_changed != states.sensor.date_dernier_demarrage.last_changed }}"
- condition: template
value_template: "{{ states('input_text.etat_dernier_evenement') != states('sensor.capteur_surveille') }}"
sequence:
- data:
entity_id: input_text.date_dernier_evenement
value: "{{ states.sensor.capteur_surveille.last_changed }}"
service: input_text.set_value
- data:
entity_id: input_text.etat_dernier_evenement
value: "{{ states('sensor.capteur_surveille') }}"
service: input_text.set_value
######################################################################################################
- id: 'automatisation_date_du_dernier_demarrage'
###############################################################################
# Automatisation qui permet de sauvegarder la date du dernier démarrage de HA #
# utilisé comme condition pour la sauvegarde de la date du capteur surveillé #
###############################################################################
alias: automatisation_date_du_dernier_demarrage
trigger:
platform: homeassistant
event: start
condition: []
action:
- data:
entity_id: input_text.date_dernier_demarrage
value: "{{ states.sensor.capteur_surveille.last_changed }}"
service: input_text.set_value
###############################################################################