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