boum a écrit : 18 mai 2022, 15:44
Alors c'est ballot, pasque dans les scripes lua_parsers, les tables globales ne sont pas disponibles (uservariables mais aussi otherdevices, otherdevices_svalue…)
Ah d'accord !... Je ne risquais pas d'y arriver...
boum a écrit : 18 mai 2022, 15:44
Plusieurs solutions :
- Tout passer en dzVents, un script avec déclencheurs timer et httpResponses. Périodiquement utiliser domoticz.openURL pour interroger le compteur, puis traiter dans l'autre partie du script et changer la variable utilisateur.
Attention, sans tricher, on ne peut déclencher un script que toutes les minutes au plus rapide.
J'élimine cette solution, car j'ai besoin d'une mise à jour toutes les cinq secondes, voire moins.
boum a écrit : 18 mai 2022, 15:44
[*]Changer un dispositif virtuel avec le poller, et utiliser un script "device" en Lua ou dzVents pour mettre à jour la variable utilisateur.
Tu peux détailler ?
boum a écrit : 18 mai 2022, 15:44
[*]Quelle est la raison d'utiliser une variable utilisateur pour stocker la valeur ? Utiliser le poller pour modifier directement un "Custom sensor". Bonus: historique (à moins que ce soit la raison de zapper le dispositif)
L'objectif est de tracer le plus précisément possible la consommation de différents postes à l'aide d'un Ecocompteur Legrand, qui a un bug d'enregistrement des consommations au delà d'environ deux mois.
Ce bug est dû à la capacité trop faible des compteurs en float32 (voir la discussion ici :
https://easydomoticz.com/forum/viewtopic.php?t=1942)
J'utilise donc uniquement les consommations instantanées (qui ne sont pas affectées par le bug), et je les stocke dans un capteur virtuel de type "Electrique (instantané + Compteur)".
Sur ce capteur, j'utilisais l'option "Energy read : computed". La consommation en kWh était calculée par Domoticz.
Problème : pour de faibles consommations, l'énergie n'était pas comptabilisée, et le compteur de kWh restait à zéro.
J'ai donc modifié le capteur en "Energy read : from device".
Dans ce cas, je dois enregistrer la consommation en comptabilisant les kWh en fonction de la temporisation de lecture des Watts instantanés.
Par exemple, pour une temporisation d'une seconde :
Consommation en kWh = [Consommation en kWh de la seconde précédente] + [consommation instantanée x 1/3600]
Voila pourquoi j'ai besoin d'une variable qui contient la consommation en kWh de la seconde précédente.
J'ai toutefois réussi à conserver le mécanisme du script lua_parser en utilisant la commande
Code : Tout sélectionner
"http://127.0.0.1:8080/json.htm?type=command¶m=updateuservariable&vname=ConsommationConsole&vtype=1&vvalue=" .. EnergiePrec + output.Puissance_Console * 1/3600
L'appel de la commande http est certainement plus lente qu'une mise à jour directe, mais ça marche

...
A moins que tu aies une idée plus élégante

?