Bonjour,
Puisque vos données semblent être issues d’un ecoCompteur Legrand, voici un bloc code qui fait la récupération du json, sa correction et met dans le log du scénario la valeur de conso_base
En commentaire dans le code, la ligne commençant par foreach permet de mettre dans le log toutes les valeurs présentes dans le json.
$devAddr = 'http://192.168.1.141/data.json';
$request_http = new com_http($devAddr);
$devResult = $request_http->exec(30);
if ($devResult === false) {
$scenario->setLog("Problème de connexion à l'ecoCompteur $devAddr");
} else {
$devResbis = utf8_encode($devResult);
$corrected = preg_replace('/\s+/', '', $devResbis);
$corrected = preg_replace('/\:000000000,/', ': 0,', $corrected);
$corrected = preg_replace('/\:0,/', ': 0,', $corrected);
$corrected = preg_replace('/\:[0]+/', ":", $corrected);
$devList = json_decode($corrected, true);
if (json_last_error() == JSON_ERROR_NONE) {
$scenario->setLog('Conso_base: ' .$devList['conso_base']);
// ou parcours et extraction de toutes les données
// foreach($devList as $name => $value) { $scenario->setLog("Name $name Value $value"); }
}
else $scenario->setLog('Json_decode error: ' .json_last_error_msg());
}
Extrait de :