Aller au contenu

Messages recommandés

Posté(e)

Bonjour, j'ai un problème avec le code json de mon poêle Palazzetti.

 

Je récupère bien les valeurs de la premiere partie, par exemple "RSP": "OK", mais pas celles après "All Data": à  cause de l'espace entre All et Data.

 

J'ai donc une erreur lua sur cette ligne: 

local responseitem1 = respdecode.All Data.SETP;

Y a t'il une solution pour contourner ce problème ?

 

Ci-dessous mon code de test :

-- Test json

local resp = '{	"Info": { "RSP": "OK", "TS": "2016-05-12 00:40:17"	},	"All Data": { "MBTYPE":	 0,	"MAC": "78:25:44:XX:XX:XX",	"MOD": 307,	"VER": 45, "FWDATE": "2015-12-10", "STOVE_DATETIME": "2016-05-12 00:40:47",	"STOVE_WDAY": 4, "STATUS":	0, "SETP": 20.0, "PUMP_RATE": 0, "PELLET_QTUSED": 17, "FAN_FAN1V": 0, "FAN_FAN1RPM": 0,	"FAN_FAN2LEVEL": 2, "FAN_FAN2V": 0, "POWER": 2, "FEEDER": 0.0, "DP_TARGET": 0, "DP_PRESS": 21, "IN_I01": 1, "IN_I02": 0, "IN_I03": 1, "IN_I04":	 1, "OUT_O01": 0, "OUT_O02": 0, "OUT_O03": 0, "OUT_O04": 0,	"OUT_O05": 0, "OUT_O06": 0, "OUT_O07": 0, "TMP_ROOM_WATER": 21.2, "TMP_PELLET_BACKW": 22.5, "TMP_EXHAUST": 22.0, "TMP_CC": 0.0, "TMP_ROOM_IDRO": 0.0 }}';

local respdecode = json.decode(resp);

local responseitem = respdecode.Info.RSP;
fibaro:debug(responseitem);


local responseitem1 = respdecode.All Data.SETP;
fibaro:debug(responseitem1);

Merci d'avance aux pros du Lua.

Posté(e)

Salut,

 

Je n'ai jamais été confronté à  cela, mais naturellement j'aurais tenté ca

local responseitem1 = respdecode.All\ Data.SETP;

ou en lua l'"espace" avec les chaines s'ecrit \b

Posté(e)

Salut pepite, je viens de tester et j'ai toujours une erreur

[ERROR] 09:44:08: line 13: unexpected symbol near '\'
Posté(e)

Salut @Lazer, j'ai toujours une erreur

[ERROR] 10:46:22: line 13: '' expected near '['
Posté(e)

:13: Cool ça marche. Merci pour le lien et votre aide.

 

J'ai fait ça :

local responseitem1 = respdecode[ 'All Data' ].SETP;
  • Upvote 2
×
×
  • Créer...