Page 1 sur 1

Problème affichage devices virtuels

Publié : 05 janv. 2017, 15:03
par jmv75013
Bonjour,

Je ne suis pas sur d'être au bon endroit mais j'ai crée 3 devices virtuels alimentés par un script Lua à partir d'un device "Teleinfo EDF USB". Cela fonctionne a peu près voir ci-après.
Le script "script_device_conso.lua"

Code : Tout sélectionner

commandArray = {}
if (devicechanged['Conso EDF'])  then
	hp, hc, x, y, usage, z = string.match(otherdevices_svalues[compteur], "(%d+%.*%d*);(%d+%.*%d*);(%d+%.*%d*);(%d+%.*%d*);(%d+%.*%d*);(%d+%.*%d*)")

	commandArray[8] = { ['UpdateDevice'] = 8 .. '|0|' .. hp }
	commandArray[9] = { ['UpdateDevice'] = 9 .. '|0|' .. hc }
	commandArray[10] = { ['UpdateDevice'] = 10 .. '|0|' .. usage }
	print('HP : ' ..hp .. ' kWh' )
	print('HC : ' ..hc .. ' kWh' )
	print('Puissance : ' ..usage .. ' W' )
end
return commandArray
Le résultat du log et celui affiché dans les devices différent (je ne parle pas des valeurs mais du format d'affichage). En effet les valeurs affichées dans les devices HP et HC sont divisées par 1000 (ce qui est effectivement les bonnes valeurs). Mais pourquoi cette différence? et comment faire pour ne pas afficher les décimales.

Merci pour votre aide

jmv

Re: Problème affichage devices virtuels

Publié : 05 janv. 2017, 15:11
par vil1driver
salut,

l'erreur de log est de ton fait, puisque c'est toi qui fais écrire kwh alors que les valeurs sont en wh ;)

le widget est avec les décimales, pas le choix
mais tu peux tester ceci

Code : Tout sélectionner

commandArray[8] = { ['UpdateDevice'] = 8 .. '|0|' .. 1000*(Math.ceil(hp/1000)) }
commandArray[9] = { ['UpdateDevice'] = 9 .. '|0|' .. 1000*(Math.ceil(hc/1000)) }

Re: Problème affichage devices virtuels

Publié : 05 janv. 2017, 16:14
par jmv75013
Merci pour ton aide.

Au dela du probleme que je mette comme unité des kwh. Ce qui m'etonnait c'est pour quoi la même valeur (hp) est affichée en kwh dans le device et en wh dans le log.

Si je comprends tes explications, le problème vient du fait que c'est le widget qui divise par 1000.

J'ai changé le type de device en Counter plutot qu'Energy et fait le hc = math.ceil(hc/1000)
dans le device HC le titre (cadre en bleu clair) affiche 61169839
et la valeur en dessous affiche bien 61170

C'est vraiment étrange (enfin pour moi...)

Re: Problème affichage devices virtuels

Publié : 05 janv. 2017, 16:22
par vil1driver
1000w = 1Kw, rien n'est divisé la !

Re: Problème affichage devices virtuels

Publié : 05 janv. 2017, 16:44
par jmv75013
si la preuve en image.

hc = 61169839 si je le divise par 1000, cela fait 61169,839 arrondi à 61170 :)