oui cela fonctionne bien
j’ai pu le comparer à mon propre calcul fait en sensor_template (j’avais besoin de faire des réinits réguliers) et les deux calculs sont au rendez vous!
platform: sql
queries:
- name: test
query: "SELECT sum(state) / count(*) as state FROM states WHERE entity_id = 'sensor.exemple' AND state != 'unavailable' AND datetime('now','+30 minutes') <= datetime(created) ;"
column: 'state'
J’ai remonté le code tout en haut de ma liste de sensors et ça marche maintenant.
Cela veut peut être dire qu’à un endroit dans cette liste il y a une coquille… Va falloir que je regarde ça ! (pourtant pas d’erreur quand je reste la Config).
Bonne journée à tous
Bonjour
je viens de faire le même test que vous.
Je désire faire la moyenne d’un capteur de température, sur 24h par exemple.
Ca fonctionne mais la moyenne résultante est fausse !
Je prend l’exemple suivant :
Si la valeur de température reste (stable) 1 heure à 20 degrés et 1 minute (stable) à 10 degrés, le Filter donnera 15 comme résultat (20+10)/2=15, alors qu’il devrait donner une valeur proche de 20. (2060 + 101)/61
En fait dans la plateforme Filter, il ne rentre des valeurs que lorsque son entrée change de valeur. (JE PENSE)
Alors que pour faire une vraie moyenne, il faudrait échantillonner à fréquence constante.
A moins qu’il y ait un moyen de réveiller filter !!
salut
je m’étais dit la même chose et je suis allé chercher le code de « filter », la moyenne sur fenêtre glissante.
et ce que fait la moyenne sur fenêtre glissante c’est somme(durée_de_val * Val)/durée_totale
Ce qui signifie que même si le capteur n’est pas rafraîchi, elle fait une moyenne qui a du sens.
La copie du git:
for state in self.queue:
moving_sum += (state.timestamp - start).total_seconds() * prev_state.state
start = state.timestamp
prev_state = state
new_state.state = moving_sum / self._time_window.total_seconds()
Il faudrait regarder le code des autres filtres.
Mais en tout cas pour la fenêtre glissante, cela fonctionne comme une moyenne devrait fonctionner.