PHP extraire valeur sonde de T°

Capteurs et actionneurs HTTP

PHP extraire valeur sonde de T°

Messagepar bodega » 04 Nov 2017 19:03

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
bodega
 
Messages : 4
Inscription : 04 Nov 2017

Re: PHP extraire valeur sonde de T°

Messagepar merguez07 » 04 Nov 2017 20:18

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
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 2346
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: PHP extraire valeur sonde de T°

Messagepar influman » 04 Nov 2017 23:08

"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)));
influman
 
Messages : 2324
Inscription : 30 Oct 2013

Re: PHP extraire valeur sonde de T°

Messagepar bodega » 05 Nov 2017 11:44

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....
bodega
 
Messages : 4
Inscription : 04 Nov 2017

Re: PHP extraire valeur sonde de T°

Messagepar merguez07 » 05 Nov 2017 12:00

Bonjour,

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

utilise le bouton Code pour l'intégrer dans le forum
tuto 1 -->Programmation des scripts Eedomus
tuto 2 -->SmartDevice
tuto 3 -->Le déclenchement de règles
scripts -->Météo du jour | GH Thermostat | TotalWatt | Detecfire | smartbattery
Skype Eedomus -->lien vers le skype Eedomus
merguez07
 
Messages : 2346
Inscription : 15 Sep 2017
Localisation : Le Teil en Ardèche

Re: PHP extraire valeur sonde de T°

Messagepar influman » 05 Nov 2017 13:32

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...
influman
 
Messages : 2324
Inscription : 30 Oct 2013

Re: PHP extraire valeur sonde de T°

Messagepar bodega » 05 Nov 2017 19:02

Merci je vais essayer
bodega
 
Messages : 4
Inscription : 04 Nov 2017

Re: PHP extraire valeur sonde de T°

Messagepar bodega » 13 Nov 2017 16:45

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 !
bodega
 
Messages : 4
Inscription : 04 Nov 2017


Retour vers Requêtes HTTP

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 14 invité(s)