Forum eedomus
https://forum.eedomus.com/

PHP extraire valeur sonde de T°
https://forum.eedomus.com/viewtopic.php?f=15&t=6091
Page 1 sur 1
Auteur:  bodega [ 04 Nov 2017 19:03 ]
Sujet du message:  PHP extraire valeur sonde de T°

Bonsoir

J’essaye d'extraire la valeur d'une sonde de température en PHP depuis depuis l'url:

https://api.eedomus.com/get?action=peri ... ecret=XXXX

Mais impossible avec le code suivant

//Activer les erreurs
ini_set('display_errors', 1);
error_reporting(E_ALL);


// définition des variables
$api_user = 'xxx'; // a récupérer sur votre compte eedomus
$api_secret = 'xxxx'; // a récupérer sur votre compte eedomus
$id = '412775';
$val = 'last_value';


[color=#8000FF][b]// construction de l'URL de l'API
$url = "http://api.eedomus.com/get?action=periph.caract";
$url .= "&api_user=" . $api_user;
$url .= "&api_secret=" . $api_secret;
$url .= "&periph_id=" . $id;


// appel de l'API
$result = file_get_contents($url);


$resultdata = json_decode( $result, true ) ; // true transforme $result en un array
$retour = $result['body'][$val];
return $retour ;




qui a une solution ...?

merci par avance
Auteur:  merguez07 [ 04 Nov 2017 20:18 ]
Sujet du message:  Re: PHP extraire valeur sonde de T°

bonjour,

j'ai un doute. Tel que tu écris les choses tu as ton URL qui est de la forme
$url = "http://api.eedomus.com/get?action=periph.caract&api_user=" . $api_user"&api_secret=" . $api_secret "&periph_id=" . $id;

alors qu'elle devrait être de la forme
$url ="https://api.eedomus.com/get?api_user=" . $api_user . "&api_secret=" . $api_secret . "&action=periph.caract&periph_id= . $id;

L'ordre des arguments n'a peut être pas d'importance, mais dans le doute....

PS : tu as bien mis les <? en début et ?> en fin de code ?

Cordialement
Auteur:  influman [ 04 Nov 2017 23:08 ]
Sujet du message:  Re: PHP extraire valeur sonde de T°

"impossible depuis le code suivant"...

quel est le message d'erreur ?

essaye d'encoder en utf8 avant le décodage json, comme dans l'exemple ci-dessous :

$urlValue = "https://api.eedomus.com/get?action=periph.caract&periph_id=".$periphid."&api_user=".$api_user."&api_secret=".$api_secret;
$arrValue = json_decode(utf8_encode(file_get_contents($urlValue)));
Auteur:  bodega [ 05 Nov 2017 11:44 ]
Sujet du message:  Re: PHP extraire valeur sonde de T°

bonjour

J'ai essayé ça

$urlValue = 'http://api.eedomus.com/get?api_user=****&api_secret=****&action=periph.caract&periph_id=412775';
$arrValue = json_decode(utf8_encode(file_get_contents($urlValue)));



echo $arrValue->success."</p>";

affiche 1 -> pour moi OK


avec
echo $arrValue->body."</p>";

n'affiche rien !



je tourne en rond....
Auteur:  merguez07 [ 05 Nov 2017 12:00 ]
Sujet du message:  Re: PHP extraire valeur sonde de T°

Bonjour,

peux tu mettre l'intégralité de ton code

utilise le bouton Code pour l'intégrer dans le forum
Auteur:  influman [ 05 Nov 2017 13:32 ]
Sujet du message:  Re: PHP extraire valeur sonde de T°

Fait un echo arrvalue->body->last_value

Et juste au cas où, est ce le bon code api de ta temperature, a-t-elle bien une valeur ? As tu bien autorisé l'utilisation de l'api eedomus...
Auteur:  bodega [ 05 Nov 2017 19:02 ]
Sujet du message:  Re: PHP extraire valeur sonde de T°

Merci je vais essayer
Auteur:  bodega [ 13 Nov 2017 16:45 ]
Sujet du message:  Re: PHP extraire valeur sonde de T°

J'ai trouvé une solution en exploitant le ficher xml

// recupere valeur sonde sur EEDOMUS
$fichier = 'http://api.eedomus.com/get?api_user=***&api_secret=***&action=periph.caract&periph_id=423383&format=xml';

$xml = simplexml_load_file($fichier);

// affiche ficher xml
// print_r($xml);

// boucle lecteure fichier xml
foreach($xml as $body){
echo $body->last_value.'<br>';
}

$temperature=$body->last_value;

Print("$temperature")."</p>";



et là ça fonctionne !
Page 1 sur 1 Le fuseau horaire est UTC+1 heure