Calculer débit "instantané" depuis un total

Bonjour à tous,

La valeur de mon compteur d’eau remonte dans HA par wmbusmeters HA addon + MQTT

J’ai donc comme info le chiffre indiqué sur le compteur.

Comment pourrais-je obtenir un débit « instantané » afin de programmer des alertes comme dans l’excellent article Gestion de sa consommation d’eau

J’ai comme idée de calculer a chaque changement de la valeur « total » la différence de volume divisée par le temps séparant les deux mesures…
Mon compteur envoie une valeur toutes les 8 secondes
Toutes les trames ne sont pas décodées en fonction de la qualité du signal.
Ca parait simple mais pour un débutant comme moi cela ne l’est pas :slight_smile: (encore?)

Merci :slight_smile:

Salut,

Je n’ai jamais essayé ça ensemble, mais je verrais bien un trigger based template sensor basé sur le changement d’état de ton compteur en utilisant les variables trigger.from_state et trigger.to_state pour calculer la différence.
Il y a surement une autre façon del e faire, mais de base j’irrais vers ça si je voulais le faire.

1 « J'aime »

J’ai décidément beaucoup de mal a appréhender la philosophie de HA…
Je pourrais peut être simplifier le calcul en exécutant toutes les 20 secondes :

  • lire valeur actuelle du compteur
  • calculer difference entre ancienne valeur et nouvelle * 3 (pour avoir le debit)
  • stocker cette valeur dans un input « debit instantané »
  • remplacer l’ancienne valeur du compteur par la nouvelle
    meme si je ne sais pas comment je vais faire tout ca :sob:
    Mais en simplifiant comme ca je risque d’avoir des debits a 0 jusque parce que je n’ai pas reçu de valeurs entre les deux…

Salut,

en fait j’ai complètement oublié en répondant qu’une solution toute faite existe :slight_smile:
C’est faire un capteur de dérivée, dans les entrées.
Tu donnes ton capteur de total, et tu dis que tu veux toutes les minutes et ça le fait tout seul.

1 « J'aime »

Merci pour cette piste
J’ai mis cela en place pour l’instant…

alias: Calcul debit eau instantane
description: ""
triggers:
  - trigger: time_pattern
    seconds: "30"
  - trigger: time_pattern
    seconds: "0"
conditions: []
actions:
  - action: input_number.set_value
    target:
      entity_id: input_number.water_debit_instantane
    data:
      value: >-
        {{(states('sensor.water_total')|float -
        states('input_number.water_last_value')|float) * 2000}}
  - action: input_number.set_value
    target:
      entity_id: input_number.water_last_value
    data:
      value: "{{states('sensor.water_total')|float}}"
mode: single

Je teste des que de l’eau est tirée :slight_smile: