Page 1 sur 1
[LUA] mon premier code LUA .... Grand Debutant
Publié : 02 avr. 2022, 18:01
par xbu05400
Bonjour , j'essaye la programmation LUA .
Voici mes dispositifs : compteur Legrand (usage,Electric) et Panneaux (General,kWh)
mon lua :
Code : Tout sélectionner
commandArray = {}
val1,val2 = (otherdevices_svalues['Panneaux']):match("([^;]+);([^;]+)")
print("val1 = "..val1)
print("val2 = "..val2)
prod = (otherdevices_svalues['compteur Legrand'])
print("Production ="..prod)
return commandArray
Mes Questions :
1) en retour j'ai bien val1 qui me donne la valeur instantanée mais val2 ne ressemble à rien !!!!!
2) je voudrais faire un compteur virtuel qui me donne par exemple Production - Panneaux (instantané) :
Quel type de compteur virtuel créé ? et comment lui affecté une valeur ?
Re: [LUA] mon premier code LUA .... Grand Debutant
Publié : 03 avr. 2022, 16:13
par xbu05400
Je n'arrive toujours pas a trouver l'affectation d'un compteur virtuel malgres recherche !!!!
Si mon compteur est injection idx 404
quels est la bonne syntaxe ????
Code : Tout sélectionner
local idx = 404
prod = (otherdevices_svalues['compteur Legrand'])
print("Production ="..prod)
commandArray['UpdateDevice'] = idx .. '|0|' .. tostring(prod)
devicechanged['injection'] = prod string ;
otherdevices_svalues['injection'] = prod
commandArray[idx] = { ['UpdateDevice'] = idx..'|0|'..prod }
return commandArray
Modération
Publié : 03 avr. 2022, 18:04
par Keros
xbu05400, peux-tu éditer ton message précédent pour mettre ton script entre les balises code. Ceci facilitera la lecture, merci. Comment faire ? > Remonte sur ton message, clique sur le petit bouton avec un crayon en haut à droite : tu peux ainsi éditer ton message et rajouter les balises (il y a un petit bouton </> au-dessus de la zone de rédaction).
Re: [LUA] mon premier code LUA .... Grand Debutant
Publié : 04 avr. 2022, 19:08
par xbu05400
ok fait ...
Re: [LUA] mon premier code LUA .... Grand Debutant
Publié : 04 avr. 2022, 20:27
par Keros
Top, merci
Tu as quoi comme info qui s'affiche dans les logs lorsque tu essayes ton script ?
La syntaxe commandArray['UpdateDevice'] = idx .. '|0|' .. tostring(prod) me semble correcte. Cela peut dépendre également du type de widget.
Re: [LUA] mon premier code LUA .... Grand Debutant
Publié : 06 avr. 2022, 13:56
par xbu05400
J'ai réussit à faire cela (en récupérant le code sur le Wiki) :
Sauf que je récupére une valeur du compteur Legrand pour mettre dans un virtuel avec 2 valeurs .
Et autre PB : comment sont gérer les opérations , c'est des stings qui sont récupéré......
Cela serait bien pour récuperer le total journalier , hebdomadaire ...etc mais que mettre dans la 2 éme valeur du update ?????
Code : Tout sélectionner
commandArray = {}
local function update(idx,value1,value2)
local cmd = string.format("%d|0|%.2f;%.2f",idx,value1,value2)
table.insert (commandArray, { ['UpdateDevice'] = cmd } )
end
local idx_inj = 408
local prod = (otherdevices_svalues['compteur Legrand'])
print ("Production :"..prod )
update(idx_inj,prod,prod)
return commandArray
Re: [LUA] mon premier code LUA .... Grand Debutant
Publié : 06 avr. 2022, 20:55
par Keros
Généralement ce qu'il faut envoyer est similaire aux commandes API :
https://www.domoticz.com/wiki/Domoticz_ ... .2Fsensors Cela dépend de ton type de Widget.
Re: [LUA] mon premier code LUA .... Grand Debutant
Publié : 07 avr. 2022, 15:23
par xbu05400
Merci , j'ai essayer en json mais si je peux mettre la valeur instantannée , toujours rien sur le compteur journalier