Page 2 sur 2

Re: erreur de script Lua

Publié : 19 déc. 2019, 18:32
par damolc
cette fois si j ai bien suivi ta procédure et effectivement quand tu supprime les deux 00 sur les valeurs , ça fonctionne parfaitement
Merci d avoir trouver le problème
j ai chercher comment réussir a supprimer les deux 00 avec mon script mais j ai pas réussi a trouver
peux tu, encore m aider ?

Re: erreur de script Lua

Publié : 19 déc. 2019, 18:51
par denis_brasseur
On peux commencer par le début : comment est généré le fichier data.json ?

Je pense comprendre qu'il s'agit des données issues d'un compteur Linky.

Re: erreur de script Lua

Publié : 19 déc. 2019, 19:29
par damolc
oui effectivement les données sont extraites d' un Eco compteur legrand
j ai réalisé déjà un script pour extraire les données mais il ne me convient pas mais il fonctionne :

Code : Tout sélectionner

local url = 'http://192.168.1.46/data.json' -- url locale de votre écocompteur legrand
htidx = otherdevices_idx['Linky']           -- Idx P1 Compteur intellogent (électrique)
hcidx = otherdevices_idx['HC']              -- Idx Compteur
hpidx = otherdevices_idx['HP']              -- Idx Compteur

local function removeZeros(Id)
while true do
if Id:sub(1,1) == '0' then
Id = Id:sub(2)
else
break
end
end
return Id
end

----------------------------------------------
-- Fin de la partie configuration --
----------------------------------------------

commandArray={}

--import des fontions pour lire le JSON
json = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")() -- For Linux
--recuperation des mesure HP et HC sur data.json
local config=assert(io.popen("curl '"..url.."'"))
local location = removeZeros(config:read('*all'))
local trouve = string.find(location,'"conso_hp"')
local consoHP = removeZeros(string.sub(location,trouve+14,trouve +23))

local trouve = string.find(location,'"conso_hc"')
local consoHC = removeZeros(string.sub(location,trouve+14,trouve +23))
config:close()

if Debug == "YES" then
print(trouve)
print(location)
print(consoHP)
print(consoHC)
end
--import des valeurs dans les Idx
commandArray[htidx] = { ['UpdateDevice'] = htidx ..'|0|'.. consoHP .. ";" .. consoHC .. ";" .. "0" .. ";" .. "0" .. ";" .. "0" .. ";" .. "0" }
commandArray[hpidx] = { ['UpdateDevice'] = hpidx ..'|0|'.. consoHP }
commandArray[hcidx] = { ['UpdateDevice'] = hcidx ..'|0|'.. consoHC }
 
return commandArray

le problème c est que si tu te trompes d un chiffre dans " string.sub" , tu plantes Domoticz
donc je préférerai mettre un ligne un script qui choisi les nombres sans risque de plantage
Dans Ecocompteur legrand il y a l eau et le gaz qui peuvent être récupéré , avec une autre adresse HTPP : mon script avec string.match fonctionne très bien et je souhaiterais faire de même pour l Electricité

Re: erreur de script Lua

Publié : 26 déc. 2019, 16:40
par ker49
Bonjour à tous,
Moi aussi je rencontre un problème de script que je n'arrive toujours pas à résoudre malgré mes différentes recherches ici ou ailleurs :roll:
dans mon script, el ligne 4 il y a une erreur indiquée dans le log tel que:
Error: /home/pi/domoticz/scripts/lua/script_time_chauffage.lua:4: ‘)’ expected near ‘&’
j'ai ajouté supprimé une parenthèse mais malgré plusieurs tentatvies je n'arrive pas à contourner ce problème !
Voici la 4ème ligne de mon script

Code : Tout sélectionner

if ((t1 >= uservariables["Chauff-Central-Temp-Deb-Cal1-d-info"] and uservariables["Chauff-Central-Temp-Fin-Cal1-d-info"] >= t1) or (t1 >= uservariables["Chauff-Central-Temp-Deb-Cal2-d-info"] and uservariables["Chauff-Central-Temp-Fin-Cal2-d-info"] >= t1)) then
merci par avance pour vos retours
Bonne soirée et à bientôt ...

Re: erreur de script Lua

Publié : 26 déc. 2019, 18:13
par vil1driver

Re: erreur de script Lua

Publié : 26 déc. 2019, 18:43
par ker49
bonjour et merci mais comme je l'ai indiqué j'ai fait quelques recherches avant de poster ma question
Cette balise si je comprends bien correspond à supérieur ou égal mais je ne comprends pas l'erreur remontée dans le log ? ? ?

Re: erreur de script Lua

Publié : 26 déc. 2019, 19:33
par vil1driver
Si tu as compris que

Code : Tout sélectionner

   >
Devrait être La suite est plutôt implicite non ?

Re: erreur de script Lua

Publié : 27 déc. 2019, 01:07
par lmet
Salut,
Écris tes scripts dans "Réglages" => "Plus d'options" => "Événements" tu auras moins de soucis avec la syntaxe.

Re: erreur de script Lua

Publié : 27 déc. 2019, 19:00
par ker49
re bonjour et merci
en fait, j'ai trouvé "mon" erreur
Je pouvais chercher longtemps car le problème de ) était à la ligne suivante !
Encore merci et bon WE