Mesurer la consommation d'un ballon d'eau chaude avec Lixee sans capteur dédié

Bonjour à tous,

Je voulais juste partager un moyen de mesurer la consommation d’un ballon d’eau chaude… sans avoir de capteur dédié (mais avec un Lixee sur le compteur Linky).

L’idée (inspirée d’Ecojoko) est de repérer la signature électrique du ballon d’eau chaude (ici soulignée en jaune) et de commencer à compter des watts (j’estime à 2800 W la puissance de mon cumulus) jusqu’à son arrêt.

Les bases:

  • Mon ballon démarre au passage des heures creuses EDF et ne fonctionne qu’en heures creuses.
  • Le démarage implique une augmentation brusque des VA consommés que je vais mesurer comme top départ
  • En chauffe, la consommation EDF ne peut être inférieure à 3000 VA avec une puissance de 15A (sinon, c’est qu’il est éteint), si une mesure descend en dessous, c’est que le ballon est éteint et j’arrête le compteur.
  • Si les VA descendent brusquement de 2500 VA, je considère que c’est le ballon qui vient de s’arrêter et je coupe le compteur.

Evidemment, tout ça est un peu empirique, mais permet de donner une bonne estimation à mon sens.

Le code:

Un compteur pour mesurer les brusques changement de consommation

sensor:
  - platform: statistics
    name: "Consommation Evolution Temps réel"
    entity_id: sensor.garage_lixee_zlinky_tic_fd98d205_electrical_measurement_apparent_power
    state_characteristic: change
    precision: 0

Le code NodeRED qui créé le sensor sensor.puissance_eau_chaude

Le sensor dérivé du sensor NodeRed pour le module Energy:

sensor:
  - platform: integration
    source: sensor.puissance_eau_chaude
    name: energy_eau_chaude
    unit_prefix: k
    round: 3
    method: left

Et la logique NodeRED:

On peut noter les différentes valeurs qui me servent à déclencher et arrêter le compteur.

A noter la bizarrerie de mon gate + cron qui vise à changer la consommation en Watts en flip-flop entre 2799W et 2801W toutes les minutes, le but est de faire varier la valeur pour forcer une mise à jour toutes les minutes du compteur energy dérivé. Sinon, le compteur n’est mis à jour qu’une seule fois en fin de chauffage (voir post suivant ici: Mesurer la consommation d'un ballon d'eau chaude avec Lixee sans capteur dédié - #4 par FillR2)

Et voici le résultat:

1 « J'aime »

Salut,

L’idée n’est pas mauvaise. Par contre ça t’interdit de programmer autre chose pendant les heures creuses ?

  • Genre machine à laver + lave vaisselle si > 2500W, tu comptes ça comme le chauffe-eau pendant les HC
  • Et pendant la période de comptage du chauffe eau, tu comptes tout ce qui se déclenche en même temps

Excellente remarque, sur mon exemple, le lave-vaisselle a tourné dans les zones soulignées en rouge:

Et comme la consommation est moins élevée, mes filtres nodeRED ne l’ont pas intégré :slight_smile:

De fait, j’ai mis des filtres avec des valeurs minimum et maximum et de même, je ne compte que 2800W (2799W/2801W) que je paramètre en valeurs fixes pour la consommation pour le ballon, je n’utilise par la consommation du Lixee.

Il faudra peut-être apporter des corrections à l’utilisation, et de toutes façon, s’il y a quelques erreurs, ce n’est pas très grave, il n’y a pas de facturation derrière. :slight_smile:

1 « J'aime »

Pour le cron qui varier en flip-flop la consommation toute les minutes, le but est d’éviter la marche d’escalier (rond rouge) pour avoir une consommation régulière (rond bleu)

@FillR2 je suis intéressé pour savoir la consommation moi aussi de mon chauffe eau, lorsque je crée le sensor je ne le retrouve pas dans HA :

template:
  - sensor:  
     
      - platform: statistics
        name: "Consommation Evolution Temps réel"
        entity_id: sensor.0x00158d000638e18c_papp
        state_characteristic: change
        precision: 0

Je ne comprend pas tout de ton nodered, tu l’utilise pour d’autres choses aussi ? J’aimerais juste savoir la consommation quand je dépasse 10A (soit 2400W le mien).

Quelle partie je peux enlever ?

Merci

@jrvrcd il y’a une différence avec sa config qui utilise platform : statistics ?

Mon flux est un peu compliqué, je ne l’ai pas créé en 5 minutes…

Je pense aussi qu’il manque ça à mon explication, j’ai un sensor qui mesure la variation de consommation. L’idée est que mesurer une consommation supérieure à 10A ne veut rien dire, je vais mesurer lorsque la consommation EVOLUE d’un coup de 2500VA, ce qui veut dire que mon ballon s’est mis en route.

Pour ça j’ai créé un sensor qui mesure la variation de consommation:

sensor:
  - platform: statistics
    name: "Consommation Evolution Temps réel"
    entity_id: sensor.garage_lixee_zlinky_tic_apparent_power
    state_characteristic: change
    precision: 0
    sampling_size: 20

En jaune, j’ai noté les 3 instants où cette situation arrive, c’est les 3 moments où mon ballon s’est mis en route:

C’est ce que je teste ici > 2500VA et < à 3500VA, c’est mon ballon qui vient démarrer !

Et là j’ai ajouté en rouge la variation négative (inverse) quand il s’arrête:

Le jaune donne donc le top départ et le rouge le top de fin, entre les 2, mon ballon consomme 2800 watts qu’il faut mesurer.

C’est la période que j’ai mise en vert ici:

Ce qu’on peut vérifier par rapport à la consommation:

C’est pour ça que je créé un sensor Puissance Eau Chaude que je mets à 2800 (watts) au top départ et que je remets à 0 (watts) au top de fin.

C’est comme si j’avais créé un sensor de type prise connectée qui mesure la consommation en temps réel d’un équipement.

Comme la méthode est empirique, j’ajoute des contrôles supplémentaires au départ, par exemple pour éliminer quand c’est une machine à laver ou un radiateur qui démarre.

Et je fait la procédure inverse pour le top de fin:

Pour terminer, toute cette partie là (cron/gate) et à éliminer pour commencer, c’est un bricolo pas très propre qui a pour but de faire varier la consommation entre 2799 et 2801 watts toutes les minutes, pour obliger le sensor à faire la mise à jour toutes les minutes plutôt qu’en une seule fois à la période de fin, je donnerai des explications plus complètes si tu en as besoin plus tard (ici: Mesurer la consommation d'un ballon d'eau chaude avec Lixee sans capteur dédié - #4 par FillR2)

Pour intégrer tout ça dans le dashboard Energy, j’ajoute un sensor qui me cumule toute ça:

sensor:
  - platform: integration
    source: sensor.puissance_eau_chaude
    name: energy_eau_chaude
    unit_prefix: k
    round: 3
    method: left

Que j’intègre dans le dashboard ‹ Energy ›:

image

Et voilà:

Effectivement a faire 10 choses a la fois…
ne concideres pas ma reponse

@FillR2 Merci pour toutes tes explications, est-ce que tu pourrais me montrer les valeurs que tu mets dans tes gates ? Je les découvre avec ton node et c’est pas très clair dans ma tête.

Pareil pour ajouter un appareil à la partie Energy, je ne trouve nul part les options pour ajouter une entité ou même modifier la partie energie :thinking:

image

Pour ‹ Energy ›, ça n’est pas très intuitif, c’est dans ‹ Paramètres › => ‹ Tableaux de bord ›

Hello
Je viens de découvrir ton topic et j’essaye du coup de mettre en place la même chose chez moi :slight_smile:

Je ne suis pas du tout familier avec node red et je me retrouve coincer sur un point tout bête (pour l’instant) qui est de trouver la fonction que tu a nommé : Gate
Je ne l’ai pas dans mon node red, c’est une fonction a importer ?

Merci ! :slight_smile:

Bonjour @FillR2,
merci pour ce post intéressant, que j’ai louper. Heuresement @Alejandro l’a fait remonter :wink:

N’utilisant pas NodeRED, pense tu que c’est possible de convertir le flow NodeRED en automatisation HA ?

Oui, je l’ai importé ici: node-red-contrib-simple-gate (node) - Node-RED

Dans l’absolu, l’organigramme est là et il n’y a rien qu’on ne sache faire avec des conditions et des booléens à mon avis, mais bon sans la visu graphique, ça me paraît usine à gaz.

Peut-être l’occasion de se mettre à NodeReD, ça ouvre des tas de possibilités d’automatisations complexes tout en restant nocode…

Suivi Consommation Ballon d’eau chaude:

A titre d’exemple de ce qu’on peut faire avec NodeRed une fois qu’on y a goûté:

Bonjour @FillR2

J’utilise ton node depuis quelques mois et il est top.

Je viens de rajouter un module pour contrôler mon contacteur HP/HC.

J’aimerais mettre dans les conditions du lancement uniquement si le module est activé.

J’ai du mal à utiliser les gates etc… Comment rajouter une condition pour lancer le scénario uniquement lorsque mon switch (switch.chauffe-eau) par exemple est « Activé » ?

Merci :slight_smile:

1 « J'aime »

A vue de nez il faut ajouter un test comme ça juste avant le « Open Gate »:

@FillR2

Je dois ajouter autre chose à la gate qaprès ?

Le node va avoir 2 sorties suivant la condition testée:

  • Vrai
  • Faux

Il faut que ne connecter que le VRAI (True):
image

Une idée pour voir les infos en debug ?

J’ai mis 2 sortie debug mais je ne vois rien, décidément j’ai vraiment du mal avec

Les conditions de déclenchement ne sont peut-être pas réunies, essaye avec des nodes de type Inject

image