Problème affichage devices virtuels

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
jmv75013
Messages : 146
Inscription : 03 janv. 2017, 16:20

Problème affichage devices virtuels

Message 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
Pièces jointes
IMG_0506.PNG
IMG_0506.PNG (91.51 Kio) Consulté 4561 fois
IMG_0505.PNG
IMG_0505.PNG (31.99 Kio) Consulté 4561 fois
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Problème affichage devices virtuels

Message 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)) }
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
jmv75013
Messages : 146
Inscription : 03 janv. 2017, 16:20

Re: Problème affichage devices virtuels

Message 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...)
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: Problème affichage devices virtuels

Message par vil1driver »

1000w = 1Kw, rien n'est divisé la !
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
jmv75013
Messages : 146
Inscription : 03 janv. 2017, 16:20

Re: Problème affichage devices virtuels

Message par jmv75013 »

si la preuve en image.

hc = 61169839 si je le divise par 1000, cela fait 61169,839 arrondi à 61170 :)
Pièces jointes
IMG_0507.PNG
IMG_0507.PNG (29.35 Kio) Consulté 4534 fois
Répondre