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

Forum pour tous les autres objets : sondes météo, capteurs, actionneurs ...
Vous avez un besoin mais vous ne savez pas quel matériel choisir ? C'est ici.
georges54
Messages : 105
Inscription : 01 févr. 2018, 18:10

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

Message 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
Dernière modification par Keros le 06 juin 2023, 12:21, modifié 1 fois.
Raison : Ajout des balises code
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

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

Message 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.
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
georges54
Messages : 105
Inscription : 01 févr. 2018, 18:10

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

Message 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.
Répondre