Aller au contenu

Problème Avec Json.decode En V3.6 Puis En V4


CASINOS

Messages recommandés

Autre test modifie ta ligne ==>  $module_externe = $json_devices["body"]["modules"][3]["_id"]      par   $module_externe = $json_devices["body"]["modules"][2]["_id"] et dit moi ce que sa donne ?

Lien vers le commentaire
Partager sur d’autres sites

en fait, j'ai déjà  fait le test et ça donne toujours le même probleme

 

$url_devices = "https://api.netatmo.net/api/devicelist?access_token=" .  $params['access_token'];
$resulat_device = file_get_contents($url_devices);  
$json_devices = json_decode($resulat_device,true);
$module_interne = $json_devices["body"]["devices"][0]["_id"];

 

$module_externe = $json_devices["body"]["modules"][0]["_id"];

$module_externe = $json_devices["body"]["modules"][1]["_id"];

$module_externe = $json_devices["body"]["modules"][2]["_id"];

$module_externe = $json_devices["body"]["modules"][3]["_id"];

Lien vers le commentaire
Partager sur d’autres sites

Non j'ai fait le test a chaque fois en chageant le nombre apres module, ci-dessous la version avec [1] qui ne marche pas avec le module d'origine externe que j'ai mis sur la terrasse

<?php


// Script développé par Cédric Locqueneux 
// adaptation par Zebk pour envoi data en JSON pour Fibaro HC2

$intext=$_GET['intext'];
$password="";
$username="";


$app_id = "";
$app_secret = "";

$token_url = "https://api.netatmo.net/oauth2/token";
$postdata = http_build_query(
        array(
            'grant_type' => "password",
            'client_id' => $app_id,
            'client_secret' => $app_secret,
            'username' => $username,
            'password' => $password
    )
);

$opts = array('http' =>
    array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' => $postdata
    )
);

$context  = stream_context_create($opts);
$response = file_get_contents($token_url, false, $context);

$params = null;
$params = json_decode($response, true);
$api_url = "https://api.netatmo.net/api/getuser?access_token=" . $params['access_token'];
$requete = file_get_contents($api_url);

$url_devices = "https://api.netatmo.net/api/devicelist?access_token=" .  $params['access_token'];
$resulat_device = file_get_contents($url_devices);  
$json_devices = json_decode($resulat_device,true);
$module_interne = $json_devices["body"]["devices"][0]["_id"];
$module_externe = $json_devices["body"]["modules"][1]["_id"];
    
$url_mesures_internes = "https://api.netatmo.net/api/getmeasure?access_token=" .  $params['access_token'] . "&device_id=" . $module_interne . "&scale=max&type=Temperature,CO2,Humidity,Pressure,Noise&date_end=last";
$mesures_internes = file_get_contents($url_mesures_internes);

$url_mesures_externes = "https://api.netatmo.net/api/getmeasure?access_token=" .  $params['access_token'] . "&device_id=" . $module_interne . "&module_id=" . $module_externe . "&scale=max&type=Temperature,CO2,Humidity&date_end=last";
$mesures_externes = file_get_contents($url_mesures_externes);   
    
if ($intext == "int") 
echo $mesures_internes ;
else echo $mesures_externes ;

?>
Lien vers le commentaire
Partager sur d’autres sites

Normalement sa ne devrait pas jouer sur int .... Je viens de relire l'API , on va juste demander la température :

$url_mesures_externes = "https://api.netatmo.net/api/getmeasure?access_token=" .  $params['access_token'] . "&device_id=" . $module_interne . "&module_id=" . $module_externe . "&scale=max&type=Temperature&date_end=last";
Lien vers le commentaire
Partager sur d’autres sites

effectivement, j'avais oublié de retirer le "." devant le ";" a la fin

Mais IDEM pas rien en "ext"

et si je fais la même manip en "int" je n’aie plus de valeur dans "monfichierserveur/netatmo-home-center-2.php?intext=int"

C'est un trux de fou car cela marchait avant la mise a jour en V3.6 sur Fibaro mais jamais essayé par monfichierserveur/netatmo-home-center-2.php?intext=int avant

Netatmo aurait-il changé une synthaxe ?

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...