Peut être que mon script permettra de donner des idées : il est très simple mais permet d'avoir un meilleur décompte des W pour ce que donne le OWL. En effet, mes radiateurs, en veille, consomme des VA significatifs (33.39VA) mais seulement 2W. Sur 180 jours de chauffe ca représente plus de 130Kwh de différence !
Le cosphi (facteur de puissance) n'étant pas vu par le OWL car il n'a pas connaissance de la tension exacte.
Pour avoir dans la base de données des vrais Watts et non pas des VA j'ai donc décidé d'ajuster 1 fois par jour la valeur.
Il faut que je soustrais 801 VAh au compteur du OWL pour avoir les Wh quotidiens consommés.
Etant une bille en LUA, alors que j'utilise depuis plus de 5 ans domoticz maintenant, j'ai besoin de votre aide très simple.
En effet, je ne sais pas utiliser le 'update' device comme il faut car j'ai toujours une erreur 'attempt to perform arithmetic on a nil value (global 'p2')' dans le style, tout dépend de l'instruction que j'utilise.
Je vous mets le code, avec en commentaire tout ce que j'ai essayé et rien ne marche.
Merci d'avance !
PS : j'ajouterai une condition horaire pour cette MAJ (ca je sais faire)
Code : Tout sélectionner
commandArray = {}
local heure = os.date("%H:%M")
local cm180 = 'OWL' --nom du capteur CM180
p1, p2 = string.match(otherdevices_svalues[cm180], "(%d+.%d*);(%d+.%d*)") -- récupère les valeurs du compteur
p3 = p2 - 801
print(p3) -- ca fonctionne bien !
-- A partir là rien ne fonctionne pour mettre ce p3 qui s'affiche bien, dans ce foutu compteur OWL idx 454
--p3 = tonumber(p3)
--commandArray={['UpdateDevice']= 454 .. "|0|" .. p3}
--commandArray['UpdateDevice'] = '454|0|p3'
--commandArray[#commandArray+1]={['UpdateDevice'] = 454 ..'|0|'.. p3)} ---- mise a jour du device
--commandArray[#commandArray+1]={['UpdateDevice'] = string.format("%d|0|%d", 454, tonumber(p3))}
return commandArray