Page 1 sur 1

Ecocompteur LEGRAND ancien modèle - lecture du fichier data.json

Publié : 06 juin 2023, 11:31
par georges54
Bonjour,
Suite à un déménagement, j'ai migré ma domoticz de Pi3 à W10 avec mise à jour dans la dernière version de domoticz (2023.1)
Depuis, je rencontre des difficultés avec la lecture des données de mon écocompteur.
Mon fichier http://x.x.x.x/data.json contient :

Code : Tout sélectionner

{
	"option_tarifaire" : 2,
	"tarif_courant" : 8,
	"isousc" : 60,
	
	"conso_base" : 0,
	"conso_hc"   : 0,
	"conso_hp"   : 0,
	"conso_hc_b" : 027395368,
	"conso_hp_b" : 027777980,
	"conso_hc_w" : 000000000,
	"conso_hp_w" : 000000000,
	"conso_hc_r" : 000000000,
       ........
Mon script de test LUA contient :

Code : Tout sélectionner

local url = 'http://x.x.x.x/data.json'         
commandArray={}
json = (loadfile "C:/Program Files (x86)/Domoticz/scripts/lua/JSON.lua")()
local config=assert(io.popen("curl '"..url.."'"))
local location = config:read('*all')
config:close()
local jsonLocation = json:decode(location)

--lecture du résultat de data.json - je cherche à lire la valeur 027395368 (ou la valeur actualisée)
local trouve = string.find(location,'conso_hc_b')
print ("ok"..trouve)

local data1=jsonLocation.conso_hc_b		
commandArray[1]={['OpenURL']='192.168.2.37/json.htm?type=command&param=udevice&idx=8&nvalue='..data1}	
return commandArray
Le script me renvoie : 44: attempt to concatenate a nil value (local 'trouve')

Question : quelle est mon erreur.
Merci d'avance pour votre aide

Re: Ecocompteur LEGRAND ancien modèle - lecture du fichier data.json

Publié : 06 juin 2023, 12:26
par Keros
Éventuellement, regarde ce tuto, il explique comment récupérer des infos d'un Json.

Sinon, c'est peut-être le Windows qui n'a pas les mêmes fonctions.

Re: Ecocompteur LEGRAND ancien modèle - lecture du fichier data.json

Publié : 06 juin 2023, 16:04
par georges54
Merci, j'ai testé ton tuto.
Il explique bien comment récupérer des chaines de caractères.
Dans mon cas, je pense qu'il s'agit de nombres (il n'y a pas de "") et j'ai toujours la même erreur ... ou alors c'est le passage sous W10.