Requete Yamaha Rx-V673

Capteurs et actionneurs HTTP

Requete Yamaha Rx-V673

Messagepar kangoo01fr » 18 Déc 2013 20:56

Bonjour à tous

J'ai un ampli Yamaha contrôlable en http
J'arrive à l'allumer et à l'éteindre avec un actionneur Http.
Par contre je ne sais pas comment récupérer son status:

Avec un soft pour générer des requêtes, si j’envoie ça:

URL: http://172.16.0.9/YamahaRemoteControl/ctrl
MÉTHODE: POST
En-têtes: <?xml version="1.0" encoding="utf-8"?>
Corps: <YAMAHA_AV cmd="GET"><Main_Zone><Basic_Status>GetParam</Basic_Status></Main_Zone></YAMAHA_AV>

J’obtiens:
Status: 200 OK
En-têtes: Content-Type: text/xml; charset="utf-8"
Content-Length: 1181
Server: AV_Receiver/3.1 (RX-V673)

Corps:<YAMAHA_AV rsp="GET" RC="0"><Main_Zone><Basic_Status><Power_Control> <Power>On</Power><Sleep>Off</Sleep></Power_Control><Volume><Lvl><Val>-400</Val><Exp>1</Exp><Unit>dB</Unit></Lvl><Mute>Off</Mute><Subwoofer_Trim><Val>0</Val><Exp>1</Exp><Unit>dB</Unit></Subwoofer_Trim></Volume><Input><Input_Sel>HDMI5</Input_Sel><Input_Sel_Item_Info><Param>HDMI5</Param><RW>RW</RW><Title>Satellite</Title><Icon><On>/YamahaRemoteControl/Icons/icon068.png</On><Off></Off></Icon><Src_Name></Src_Name><Src_Number>1</Src_Number></Input_Sel_Item_Info></Input><Surround><Program_Sel><Current><Straight>Off</Straight><Enhancer>Off</Enhancer><Sound_Program>Standard</Sound_Program></Current></Program_Sel><_3D_Cinema_DSP>Auto</_3D_Cinema_DSP></Surround><Sound_Video><Tone><Bass><Val>0</Val><Exp>1</Exp><Unit>dB</Unit></Bass><Treble><Val>0</Val><Exp>1</Exp><Unit>dB</Unit></Treble></Tone><Pure_Direct><Mode>Off</Mode></Pure_Direct><HDMI><Standby_Through_Info>On</Standby_Through_Info><Output><OUT_1>On</OUT_1></Output></HDMI><Adaptive_DRC>Auto</Adaptive_DRC><Dialogue_Adjust><Dialogue_Lift>0</Dialogue_Lift><Dialogue_Lvl>2</Dialogue_Lvl></Dialogue_Adjust></Sound_Video></Basic_Status></Main_Zone></YAMAHA_AV>

J'aimerai récupérer l'item "Power" qui peut être ON ou STANDBY.

Je sais créer un actionneur http qui envoi la requête, mais comment récupérer la réponse??
Avec un capteur http? si oui comment?

Merci de votre aide
kangoo01fr
 
Messages : 5
Inscription : 18 Déc 2013

Re: Requete Yamaha Rx-V673

Messagepar DjMomo » 20 Déc 2013 15:13

Bonjour, avec le chemin XPATH
Code : Tout sélectionner
/YAMAHA_AV/Main_Zone/Basic_Status/Power_Control/Power
pour ton capteur HTTP.

Tu peux tester ici : http://doc.eedomus.com/xpath/
Moi ? C'est Fabien
--------------------------------------------
Mon Github : http://www.github.com/DjMomo/
DjMomo
 
Messages : 1121
Inscription : 26 Sep 2012

Re: Requete Yamaha Rx-V673

Messagepar kangoo01fr » 20 Déc 2013 21:13

Salut DJ Momo

Merci pour ta contribution, mais en fait, ça ne marche pas:
Pour récupérer du Xml,, il faudrait envoyer au yamaha une requête post (possible avec un actionneur http), par contre l'actionneur, n'est pas prévu pour traiter la réponse.

Le capteur http, c'est l’inverse: il pourait traiter la réponse (avec le Xpath que tu proposes), par contre l'url ne permet pas d'envoyer une requête post, donc pas de réponse!!!

J'ai peur qu'il faille attendre que eedomus crée un capteur http qui puisse envoyer des requêtes POST.. :-(
kangoo01fr
 
Messages : 5
Inscription : 18 Déc 2013

Re: Requete Yamaha Rx-V673

Messagepar DjMomo » 20 Déc 2013 21:51

Oups, j'avais mal lu. Si tu as un serveur web chez toi, un petit script PHP fait l'affaire. Je peux te poster un exemple.

Sinon, fais une demande au support par mail...
Moi ? C'est Fabien
--------------------------------------------
Mon Github : http://www.github.com/DjMomo/
DjMomo
 
Messages : 1121
Inscription : 26 Sep 2012

Re: Requete Yamaha Rx-V673

Messagepar kangoo01fr » 23 Déc 2013 09:19

Merci DjMomo

J'ai fait une demande de support à eedomus, pour qu'ils améliorent leur capteur HTTP...

Parallèlement, je vais bricoler un raspberry pi pour voir si j'arrive a quelque chose...

Je ne suis pas contre un exemple de script php.. ;-)

Bonnes Fêtes
kangoo01fr
 
Messages : 5
Inscription : 18 Déc 2013

Re: Requete Yamaha Rx-V673

Messagepar DjMomo » 23 Déc 2013 17:31

Code : Tout sélectionner
$pUrl = "http://172.16.0.9/YamahaRemoteControl/ctrl";
$headers = array ("<?xml version="1.0" encoding="utf-8"?>");
   
// Initialisation de la connexion avec CURL.
$ch = curl_init();
   
curl_setopt($ch, CURLOPT_URL, $pUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $Params);
         
$retour_curl = curl_exec($ch);
curl_close($ch);
   
echo $retour_curl;


C'est du brut, à tester au travers d'un capteur HTTP. Ça doit te retourner le XML. Tu aurais de la doc à propos de l'API de pilotage de l'ampli par requêtes HTTP ?
Moi ? C'est Fabien
--------------------------------------------
Mon Github : http://www.github.com/DjMomo/
DjMomo
 
Messages : 1121
Inscription : 26 Sep 2012


Retour vers Requêtes HTTP

Qui est en ligne ?

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