Page 1 sur 1

Correction de valeur via script

Publié : 10 mai 2023, 18:50
par Skwi
Bonjour, je ne pense pas être le premier à demander mais n'ai pas réussi à trouver comment corriger des valeurs via un script.

J'ai récemment mis en place le relevé de mon index d'eau (everblu cyble) via un esp, cependant ce n'est pas toujours fiable et de temps en temps la valeur remontée ne correspond à rien (268685904 au lieu de 250448 litres, ou même une valeur négative)

Pour le moment je fais du shift+clic droit sur la mauvaise valeur pour la supprimer, mais j'aimerai que ça soit fait automatiquement. Est-il possible de supprimer une valeur via lua/dzvents?
j'aurai besoin de la valeur moyenne sur une période, pour supprimer si l'écart est trop important avec la nouvelle valeur

Merci

Re: Correction de valeur via script

Publié : 10 mai 2023, 21:07
par Keros
Je ne pense pas que ce soit possible via un script facilement. La méthode lourde serait d'aller directement travailler dans la base de données.

Est-ce que tu ne pourrais pas vérifier dans l'esp que la valeur n'est pas déconnante avant de l'envoyer dans DomoticZ ?

Re: Correction de valeur via script

Publié : 10 mai 2023, 21:16
par lost
Skwi a écrit : 10 mai 2023, 18:50 Pour le moment je fais du shift+clic droit sur la mauvaise valeur pour la supprimer, mais j'aimerai que ça soit fait automatiquement. Est-il possible de supprimer une valeur via lua/dzvents?
Il y aurait moyen... Mais cacher le senseur de base (mettre en non utilisé ou préfixer le nom d'un $), en créer un virtuel... et à partir des données du senseur de base alimenter le virtuel via un script device filtrant les valeur aberrantes...

Ou solutionner le pb de base: Pourquoi ces valeurs aberrantes?

Re: Correction de valeur via script

Publié : 11 mai 2023, 10:18
par Skwi
Je ne sais pas pourquoi il y a ces fausses valeurs, je récupère le signal sur une fréquence bien précise via un CC1101, qui est ensuite déchiffré
Tout se fait dans le cc1101.cpp + utils.cpp du git : https://github.com/psykokwak-com/everblu-meters-esp8266
et c'est un peu trop complexe pour moi pour comprendre exactement ce qui déconne

vu que je maitrise mieux le lua je pensais solutionner côté domoticz directement, mais ça ne semble pas possible facilement

je suis d'accord que ça serait plus propre de corriger à la source

Edit : et c'était pas pratique d'aller récupérer l'esp pour re-upload le code dessus, j'ai vu qu'il y avait déjà ce if pour éviter des mauvaises remontées :

Code : Tout sélectionner

meter_data.reads_counter == 0 || meter_data.liters == 0
j'ai donc modifié comme tel, je devrai être tranquille pour ~20ans vu ma conso d'eau actuelle

Code : Tout sélectionner

if (meter_data.reads_counter == 0 || meter_data.liters <= 0 || meter_data.liters > 2500000)