Forum eedomus
http://forum.eedomus.fr/

Requete Yamaha Rx-V673
http://forum.eedomus.fr/viewtopic.php?f=15&t=1412
Page 1 sur 1
Auteur:  kangoo01fr [ 18 Déc 2013 20:56 ]
Sujet du message:  Requete Yamaha Rx-V673

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
Auteur:  DjMomo [ 20 Déc 2013 15:13 ]
Sujet du message:  Re: Requete Yamaha Rx-V673

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/
Auteur:  kangoo01fr [ 20 Déc 2013 21:13 ]
Sujet du message:  Re: Requete Yamaha Rx-V673

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.. :-(
Auteur:  DjMomo [ 20 Déc 2013 21:51 ]
Sujet du message:  Re: Requete Yamaha Rx-V673

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...
Auteur:  kangoo01fr [ 23 Déc 2013 09:19 ]
Sujet du message:  Re: Requete Yamaha Rx-V673

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
Auteur:  DjMomo [ 23 Déc 2013 17:31 ]
Sujet du message:  Re: Requete Yamaha Rx-V673

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 ?
Page 1 sur 1 Le fuseau horaire est UTC+1 heure