Node-RED - Eviter d'envoyer une valeur pour éviter les fluctuations?

Hello,

Probablement à cause de mon routeur PV (qui alimente le cumulus), j’ai régulièrement des valeurs anormales qui passent de Node-RED à Jeedom (Node-RED interroge un éco-compteur).

Exemple (les PIC qui représente une seule valeur) :
image

Impossible d’exclure bêtement cette valeur car cette puissance est potentiellement normale (mon cumulus étant un 3kwh).

Dans Note-RED j’utilise un filtre pour envoyer la valeur uniquement si la nouvelle est différente de 2% de la précédente histoire de ne pas envoyer les valeurs à chaque fois dans Jeedom pour pas grand chose.

Le décors étant planté, est-ce que quelqu’un voit une belle astuce de configuration (dans Node-RED je pense) pour éviter d’envoyer ces fluctuations à Jeedom ?

Vous l’aurez compris, ce qu’il se passe c’est que les valeurs sont toujours à 0 parce que le Cumulus ne reçoit pas d’énergie puis tout à coup il reçoit une valeur positive et ça revient à 0 juste après …

J’ai réfléchi 20mn mais je vois moyennement comment faire l’histoire dans node-RED :thinking:

Voilà, si quelqu’un a envie de réfléchir avec moi :slight_smile:

Peut être avec « Moving average » qui va permettre de « lisser » ses pics.

En plus de faire un filtre sur les 2% d’écart, peux-tu en ajouter un sur la durée du pic ? Mais ça implique que si la valeur à t+1 est nulle il faille effacer la valeur à t. Pas sûr que ce soit évident.

J’ai essayé (en transmettant un tableau de valeur pour tester) mais il y a forcement une valeur de transmise puisque ça moyenne avec les valeurs d’avant : 0 0 0 100 renvoi un chiffre (33, 50 …)

C’est pas prévu dans la fonction de filtrage.

J’ai testé un truc avec un trigger qui permet d’attendre avant de transmettre et qui reset si la valeur reçue est 0. Si les valeurs arrivent chaque secondes, en attendant 2 secondes le trigger fait bien le job de reset quand il reçoit à nouveau le 0 et ne transmet donc pas la valeur « pic » qui était juste avant !

Sur le coup ça m’a paru bien … sauf que du coup ça n’enverra plus jamais la valeur 0 à Jeedom … c’est balot puisque parfois il ne chauffe plus et c’est bien normal :slight_smile:

Ah ouais difficile là je connais pas du tout cet outil. Je pense qu’il serait plus facile de faire le post-traitement dans jeedom via un scénario.

Ah je crois bien que j’ai trouvé la perle : node-red-contrib-deglitch (node) - Node-RED

ça a l’air de plutôt bien marcher en simulation en mettant une valeur de 2s :
Avec un tableau : [0,0,0,100,0,0,0,101,101,102,102,102,0,0,0,0]
J’ai en sortie : 0, 101, 102, 0
image

Il a donc bien dégagé la valeur de « pic noise » de 100

Je vais tester ça dans mon flow réel du coup

1 « J'aime »

Si il y a déjà un noeud contrib qui fait ça c’est parfait. Sinon la fonction qui fait ça c’est un filtre passe-bas.

Je me rappelle ce que qu’est un filtre passe-bas en électronique mais je vois pas bien en quoi il permettrait de retirer une valeur superflus de cette façon. Il doit y avoir des filtres passe-bas bien plus compliqué que ce à quoi je pense alors.