[LUA] mon premier code LUA .... Grand Debutant

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 <\>.
xbu05400
Messages : 77
Inscription : 18 déc. 2019, 19:17

[LUA] mon premier code LUA .... Grand Debutant

Message 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 ?
Dernière modification par Keros le 02 avr. 2022, 18:20, modifié 1 fois.
Raison : Ajout des balises [code]
xbu05400
Messages : 77
Inscription : 18 déc. 2019, 19:17

Re: [LUA] mon premier code LUA .... Grand Debutant

Message 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
Dernière modification par xbu05400 le 03 avr. 2022, 18:22, modifié 1 fois.
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Modération

Message 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).
xbu05400
Messages : 77
Inscription : 18 déc. 2019, 19:17

Re: [LUA] mon premier code LUA .... Grand Debutant

Message par xbu05400 »

ok fait ...
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: [LUA] mon premier code LUA .... Grand Debutant

Message 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.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
xbu05400
Messages : 77
Inscription : 18 déc. 2019, 19:17

Re: [LUA] mon premier code LUA .... Grand Debutant

Message 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
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: [LUA] mon premier code LUA .... Grand Debutant

Message 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.
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
xbu05400
Messages : 77
Inscription : 18 déc. 2019, 19:17

Re: [LUA] mon premier code LUA .... Grand Debutant

Message par xbu05400 »

Merci , j'ai essayer en json mais si je peux mettre la valeur instantannée , toujours rien sur le compteur journalier
Répondre