Bonjour à tous
J’ai actuellement un dispositif basé sous esphome qui me permet de connaitre le niveau de mon récupérateur d’eau de pluie.
Ce dispositif est composé de 10 flotteurs qui me renvoi un état binaire et me permet de connaitre le niveau. Sous ESPHome j’utilise le composant binary_sensor_map qui me permet de renvoyer le % en fonction des capteurs actifs
Ce composant n’envoie de valeur qu’en cas de modification d’un des capteurs.
Je souhaiterai envoyer l’info au moins une fois par jour (même sans changement) afin de pouvoir visualiser les données dans Grafana /influx.
Ok pour l’envoi influx et visu grafana, mais si pas de chgt => pas de valeur pour la date concernée.
Pour le moment, j’envisage de reboot l’ESP via une automatisation pour forcer le réenvoi de données tous les jour à 23h59, mais je ne trouve pas cela terrible.
Connaissez vous un autre moyen de faire ?
Merci d’avance
Salut
je dirais
update_interval: 60s
sinon potasser cela
interval
Component
This component allows you to run actions at fixed time intervals. For example if you want to toggle a switch every minute, you can use this component. Please note that it’s possible to achieve the same thing with the time.on_time trigger, but this technique is more light-weight and user-friendly.
Example configuration entry interval: - interval: 1min then: - switch.toggle: relay_1
Configuration variables:
- interval (Required, Time): The interval to execute the action with.
- then (Required, Action): The action to perform.
Timers and timeouts
While ESPHome does not provide a construction for timers, you can easily implement them by combining script
and delay
. You can have an absolute timeout or sliding timeout by using script modes single
and restart
respectively.
script: - id: hallway_light_script mode: restart # Light will be kept on during 1 minute since # the latest time the script is executed then: - light.turn_on: hallway_light - delay: 1 min - light.turn_off: hallway_light … on_…: # can be called from different wall switches - script.execute: hallway_light_script
Sometimes you’ll also need a timer which does not perform any action, that is ok too, just use a single delay
action, then in your automation check script.is_running
condition to know if your timer is going or due.
Et en utilisant force_update
?
C’est ce qui me semble le plus indiqué car ça forcera l’envoie de la valeur même si non modifiée, par contre bien prendre en compte que ça grossi la BDD de Home Assistant, du coup à combiner avec un interval d’envoi comme suggéré par @jrvrcd
EDIT : par contre, avec un interval, forcément ça veut dire décalage possible…
@Nardol
Effectivement force_update
semble convenir, en plus c’est comme le port-salut, c’est écrit dessus
force_update (Optional, boolean): If true, this option will force the frontend (usually Home Assistant) to create a state changed event when the sensor updates even if the value stayed the same. Some applications like Grafana require this when working with Home Assistant, but beware it can significantly increase the database size. Defaults to false
.
Cela étant dit il « manque » la notion d’intervalle (ie au moins une fois par jour) et ne sais si je l’applique au composant binary_sensor_map ou aux GPIO qui sont utilisés.
@jrvrcd intervalle component
me fait penser à un trigger pour automatiser une action depuis ESPHOME ((dans la section Automation & Template dans la doc d’ailleurs) et pour le coup, dans mon cas peut être remplacé par on_time
trigger pour le faire à 1 moment précis (au moins une fois /jour à 23h59) à ce moment il faudrait voir comment executer l’action d’envoyer la(les) valeurs.
update_interval
24h mérite le coup d’oeil.
En résumé merci pour vos réponses, je potasse / teste les différentes options vous redis 
Regarde du côté du filter
heartbeat
qui à mon avis se rapproche le plus de ce que tu veux pour un sensor.
1 « J'aime »
Et même exactement ce que je souhaite
.
Merci beaucoup.