Bonjour la communauté,
Je cherche à créer un sensor qui « enregistre » le max Uptime de mes capteur ESPHome et ne trouve pas la solution.
J’ai un sensor ESPHome qui envoi son ‹ Uptime ›, cette valeur évolue toutes les minutes, même si configurable, je ne trouve pas pertinent d’enregistrer cette valeur systèmatiquement (déjà filtré au niveau du recorder). Je souhaiterai donc pouvoir créer un sensor (template ?) qui n’enregistre une valeur que si la nouvelle valeur de mon uptime est inférieur à la précédente (signe d’un reboot), la valeur enregistrée devant être l’uptime précédent.
Cependant je bloque sur la récupération de l’état précédent. je n’ai pas trouvé comment le récupérer…
y’a t’il d’autres solutions? Ou la seule est d’enregistrer systématiquement l’uptime et de faire un graph avec toutes les valeurs ?
Merci d’avance
Le seul moyen que je vois est de passer par le déclencheur Etat (state) afin de récupérer la valeur précédente et la comparer à la nouvelle.
Donc en condition, c’est le déclencheur Etat, ensuite une condition d’exécution de l’automatisation si la valeur précédente est supérieure à la nouvelle valeur, et enfin l’action que tu veux (généralement l’affectation (set) d’un nombre (input_number) ou d’un texte (input_text).
Voici l’automatisation avec le déclencheur et la condition, l’action est une notification :
alias: Redémarrage détecté
description: ''
trigger:
- platform: state
entity_id: input_number.max #<-- A CHANGER
condition:
- condition: template
value_template: >-
{{ (trigger.from_state.state | float) > (trigger.to_state.state | float)
}}
action:
- service: persistent_notification.create
data:
message: >-
**{{trigger.from_state.name|upper}}** *({{trigger.entity_id }})* vient
de redémarrer.
Dernière durée de fonctionnement : **{{trigger.from_state.state}}**
title: 🔄 Redémarrage détecté !
mode: single
Merci beaucoup pour le coup de main. C’est effectivement la solution. Je suis passe par le composant var pour enregistrer la valeur car je n’ai pas réussi a mettre de template dans input_text (je veux sauvegarder trigger.from_state.state). Mais sinon c’est exactement cela.
Vraiment top HA et ce forum !
C’est possible, voici un exemple :
alias: Redémarrage détecté
description: ''
trigger:
- platform: state
entity_id: input_number.max
condition:
- condition: template
value_template: >-
{{ (trigger.from_state.state | float) > (trigger.to_state.state | float)
}}
action:
- service: persistent_notification.create
data:
message: >-
**{{trigger.from_state.name|upper}}** *({{trigger.entity_id }})* vient
de redémarrer.
Dernière durée de fonctionnement : **{{trigger.from_state.state}}**
title: 🔄 Redémarrage détecté !
- service: input_text.set_value #<-- ICI
target:
entity_id: input_text.uptime
data:
value: "{{trigger.from_state.state}}" #<-- Ne pas oublier les quotes
mode: single