Cette page regroupe des info sur mon ampli audio-vidéo (ampli AV) ainsi que la façon de le piloter via le réseau Ethernet/Wifi de mon domicile.
I- L'ampli Yamaha RX-V677
Je possède un ampli Yamaha RX-V677 depuis quelques années maintenant (acheté le 10/06/2015 déjà !!!) et qui me donne entièrement satisfaction. J'avais profité d'une promotion sur un lot complet avec 5 enceintes Focal (2 colonnes Focus 836VW + 2 compactes B8VW + 1 enceinte centrale CC8VW). Il est capable de lire des fichiers .FLAC nativement (ce qui, en partie, avait présidé à son choix).
J'y ai rajouté un module Bluetooth TP-Link HA-100 (avec NFC que je n'ai jamais utilisé...) qui est alimenté par une prise USB de la chaîne (pas besoin de transfo) et qui a une sortie casque sur laquelle un câble RCA (1 fiche blanche et 1 rouge) va sur l'entrée de la chaîne "AUDIO2" : je peux ainsi diffuser de la musique via mon ordiphone (ou ma vieille tablette). L'entrée AUDIO1 est relié au multi lecteur de CD.
Il possède 2 zones de sortie, ce qui m'a permis de sonoriser en 2017 ma salle de bain avec des enceintes encastrables YAMAHA NS-IC800.
Le seul souci a été avec la fonction NET RADIO et le service https://yradio.vtuner.com/ qui est devenu payant (3$ par an) et qui n'est pas pratique à utiliser. Mis à part cette déconvenue (qu'on peut contourner avec le module Bluetooth), cet ampli me donne pleinement satisfaction.
Important : ce modèle d'ampli n'est pas MusicCast contrairement aux modèles plus récents à partir des séries RX-V...79. Le successeur de mon modèle, le RX-V679 est sorti en 2015 (d'où la promo sur mon ampli...). On verra que ça a une forte incidence sur le pilotage à distance (plus compliqué mais pas moins fonctionnel).
II- Pilotage à distance
A- Via l'application pour ordiphone AV Controller
Il s'agit de l'application fournit par Yamaha et consultable ici : https://fr.yamaha.com/fr/products/audio_visual/apps/av_controller/index.html. Franchement, elle est assez pratique à utiliser et remplace avantageusement la télécommande aux très nombreux boutons moins intuitive. C'est mon mode principal d'utilisation (en dehors des automatismes que je décris plus bas).
B- Les différentes API proposées par Yamaha pour piloter ses ampli
J'ai essayer de piloter cet ampli via des automatisations, ce qui m'a obligé à faire des recherches sur les commandes Internet via l'API. Il s'est avéré que Yamaha ne simplifie pas tellement la tâche car il existe 2 systèmes de pilotages différents selon les modèles :
- via des commandes API en xml pour les anciens modèles (comme le mien) avec des url du type http://adresse_IP_Ampli/YamahaRemoteControl/ctrl + des commandes en XML. Voici un exemple d'adresse qui donnera des infomations directement dans un navigateur Internet : http://192.168.1.50/YamahaRemoteControl/desc.xml
- le MusicCast avec une API REST JSon proposant des url "simples" du style http://adresse_IP_Ampli/YamahaExtendedControl/v1/system/getFeatures. Inutile d'essayer des adresses avec mon ampli : ça ne donnera strictement rien. Dommage car ce système est beaucoup plus simple que l'ancien...
Voici ci-dessous des liens vers des pages intéressantes permettant de comprendre la distinction :
- https://www.lets-talk-about.tech/2021/01/yamaha-remotely-controlled-amplifiers.html
- https://forum.jeedom.com/viewtopic.php?f=142&t=17977&sid=b025e3c98078529d41617d2a1b3a8b6f&start=40
- https://github.com/mvdwetering/yamaha_ynca
- https://github.com/christianfl/av-receiver-docs
- https://community.home-assistant.io/t/yamaha-restful-commands/235523/34
C- Via le serveur domotique Home Assistant
Cet ampli est pilotable dans Home Assistant comme je le relate dans cette page : [Home Assistant] Quelques réglages utiles.
Par contre, l'intégration Yamaha qui existe pour Home Assistant ne fonctionne pas avec mon modèle d'ampli (qui je le rappelle n'est pas MusicCast).
D- Pilotage via des lignes de commandes dans un terminal ou VSCodium
On peut envoyer des commandes "HTTP Request" via un terminal ou dans VSCodium (à condition d'avoir installer l'extension Rest Client et de travailler avec un fichier avec l'extension .http).
Exemple de commande pour allumer l'ampli ayant l'adresse IP 192.168.1.50 avec la commande curl :
curl -X POST http://192.168.1.50/YamahaRemoteControl/ctrl -d '{"post_data":"<YAMAHA_AV cmd="PUT"><System><Power_Control><Power>On</Power></Power_Control></System></YAMAHA_AV>"}'
E- Utilisation de l'application Postman
Site : https://www.postman.com/ (il est nécessaire de s'enregistrer pour l'utiliser...)
F- Utilisation de l'application Automate dans Android
Site officiel : https://llamalab.com/automate/
Pré-réglage : par défaut, l'input de ma "Zone 2" est sur l'entrée qui correspond à celle de l'adaptateur bluetooth de l'ampli (entrée AUDIO 2 que j'ai nommée "Bluetooth"). On pourrait tout à fait prévoir ce réglage dans le flow ci-dessous mais dans mon cas c'est inutile car je ne modifie pas l'entrée de cette zone.
Edit : j'ai rajouté la brique permettant de sélectionner l'entrée AUDIO2 avec la 7e brique BIS qui n'est pas sur la capture d'écran du flow ci-dessous.
- Brique "Flow beginning" : il s'agit de la 1ère brique. En cliquant dessus pour la paramétrer, on a accès à l'action intitulée en bleu "INSTALL HOME SCREEN SHORTCUT" permettant de déposer une icône de raccourci sur son écran d'accueil de l'ordiphone.
- 2e brique : "Bluetooth enabled?" qui vérifie si le bluetooth est activé ou non sur son téléphone avec option "Proceed" fixée à "Immediately".
- 3e brique reliée au NO de la brique précédente : "Bluetooth set state" réglée sur 'On".
- 4e brique relié au YES de la 2e brique : "Bluetooth device connected" qui vérifie si un adaptateur bluetooth est connecté, avec option "Proceed" fixée à "Immediately" et l'appareil (choisit via le lien bleu "PICK DEVICE") réglé sur mon adaptateur bluetooth "TP-Link_Music".
- 5e brique reliée au NO de la brique précedente : "Bluetooth device connect" qui connecte l'ordiphone à mon adaptateur bluetooth "TP-Link_Music" (en le sélectionnant comme précédemment).
- 6e brique reliée aux YES des briques 4 et 5 : "Notification show" avec "Proceed" réglé sur "Immediately" (sinon il faut cliquer sur la notification pour que se poursuive l'action") et avec un message a affiché. Cette brique n'est pas tellement utile car la notification est trop rapide (invisible). Il faudrait trouver un timer...
- 7e brique reliée au YES de la brique précédente : "HTTP request". C'est elle qui allume l'ampli et c'est celle qui m'a pris le plus de temps à paramétrer car le code xml avec les instructions à réaliser est de forme particulière (voir ici : https://gist.github.com/albulescu/544f7464724d2fe08de668ff7102d302).
Voici ses arguments :
Request url -> http://192.168.1.50/YamahaRemoteControl/ctrl
Request method -> POST
Request content type -> XML
Request content body ->{ "type": "string", "default": "<?xml version=\"1.0\" encoding=\"utf-8\"?><YAMAHA_AV cmd=\"PUT\"><Zone_2><Power_Control><Power>On</power></Power_Control></Zone_2></YAMAHA_AV>" }
- Variante pour la 7e brique en passant par un fichier xml au lieu de compléter le champ "Request content body" :
Request content body -> laisser vide
Request content path -> Download/Power_On.xml (il s'agit du chemin vers le fichier .xml pour la commande à effectuer).
Voici le contenu du fichier "Power_On.xml" :
<?xml version="1.0" encoding="utf-8"?>
<YAMAHA_AV cmd="PUT">
<System>
<Power_Control>
<Power>On</Power>
</Power_Control>
</System>
</YAMAHA_AV>
- 7e brique BIS (non présente dans le schéma ci-contre) pour sélectionner l'entrée AUDIO2 (sur laquelle est branché le module Bluetooth TP_Link_Music) pour la zone 2, du type "HTTP request". Contenu du champ "Request content body" :
{"type": "string", "default": "<?xml version=\"1.0\" encoding=\"utf-8\"?><YAMAHA_AV cmd="\PUT\"><Zone_2><Input><Input_Sel>AUDIO2</Input_Sel></Zone_2></YAMAHA_AV>"}
- 8e brique reliée au OK de la brique précédente : "App start" où on choisit dans le champ "Package", l'application audio que l'on souhaite utiliser. Pour Radio Paradise, il s'agit du package "com.eartflare.android.radioparadisewidget.gpv2" (qu'on retrouve avec RP dans la barre de recherche). J'ai coché dans les paramètres "Audio Settings" la case "Auto play on launch" permettant de lancer la lecture dès l'ouverture de l'application, ce qui fait gagner un clic.
Ce flow est téléchargeable au bas de cette page.
G- Liste des principales commandes de l'API xml
Pour avoir des l'API xml de Yamaha, voir cette page : https://github.com/flhoest/Yamaha/blob/main/yamFramework.php d'où sont tirés les exemples ci-dessous (à tester) :
Si l'on veut agir sur la zone principale, on utilisera la balise <Main_Zone>. Si l'on veut agir sur la zone 2, on remplacera avec la balise <Zone_2>.
Allumer toutes les zones (principale + zone 2) :<yamaha_av cmd="\PUT\"><system><power_control><power>On</power></power_control></system></yamaha_av>
Allumer dans la zone principale (main_zone) :<yamaha_av cmd="\PUT\"><main_zone><power_control><power>On</power></power_control></main_zone></yamaha_av>
Éteindre dans la zone principale (main_zone) :<yamaha_av cmd="\PUT\"><main_zone><power_control><power>Standby</power></power_control></main_zone></yamaha_av>
Mettre en sourdine la zone principale :<yamaha_av cmd="\PUT\"><main_zone><volume><mute>On/Off</mute></volume></main_zone></yamaha_av>
Augmenter le volume dans la zone principale :<yamaha_av cmd="\PUT\"><main_zone><volume><lvl><val>Up 5 dB</val><exp></exp><unit></unit></lvl></volume></main_zone></yamaha_av>
Diminuer le volume dans la zone principale :<yamaha_av cmd="\PUT\"><main_zone><volume><lvl><val>Down 5 dB</val><exp></exp><unit></unit></lvl></volume></main_zone></yamaha_av>
Sélectionner l'entrée AV5 :<yamaha_av cmd="\PUT\"><main_zone><input><input_sel>AV5</input_sel></input></main_zone></yamaha_av>
Sélectionner l'entrée AUDIO2 :<yamaha_av cmd="\PUT\"><main_zone><input><input_sel>AUDIO2</input_sel></input></main_zone></yamaha_av>
Sélectionner l'entrée HDMI1 :<yamaha_av cmd="\PUT\"><main_zone><input><input_sel>HDMI1</input_sel></input></main_zone></yamaha_av>
Obtenir le status de la zone principale :<yamaha_av cmd="\GET\"><main_zone><basic_status>GetParam</basic_status></main_zone></yamaha_av>
Régler le volume à 45 :<yamaha_av cmd="\PUT\"><main_zone><volume><lvl><val>-450</val><exp>1</exp><unit>dB</unit></lvl></volume></main_zone></yamaha_av>
Régler le volume à une valeur précise :<yamaha_av cmd="\PUT\"><main_zone><volume><lvl><val>!!VALUE!!</val><exp>1</exp><unit>dB</unit></lvl></volume></main_zone></yamaha_av>
Lien vers toutes les commandes API xml sous forme de tableur : http://www.awe-europe.com/documents/Control%20Docs/Yamaha/RX_73%20Spec_UK_Ireland.zip (sous Excel et avec des macros, GRRR...).
Autre source : https://www.lets-talk-about.tech/2021/01/yamaha-remotely-controlled-amplifiers.html
Action | Command |
Main power on | <YAMAHA_AV cmd=\"PUT\"><Main_Zone><Power_Control><Power>On</Power></Power_Control></Main_Zone></YAMAHA_AV> |
Main power off | <YAMAHA_AV cmd=\"PUT\"><Main_Zone><Power_Control><Power>Standby</Power></Power_Control></Main_Zone></YAMAHA_AV> |
Mute | <YAMAHA_AV cmd=\"PUT\"><Main_Zone><Volume><Mute>On/Off</Mute></Volume></Main_Zone></YAMAHA_AV> |
Volume Up | <YAMAHA_AV cmd=\"PUT\"><Main_Zone><Volume><Lvl><Val>Up 5 dB</Val><Exp></Exp><Unit></Unit></Lvl></Volume></Main_Zone></YAMAHA_AV> |
Volume Down | <YAMAHA_AV cmd=\"PUT\"><Main_Zone><Volume><Lvl><Val>Down 5 dB</Val><Exp></Exp><Unit></Unit></Lvl></Volume></Main_Zone></YAMAHA_AV> |
Input AV5 | <YAMAHA_AV cmd=\"PUT\"><Main_Zone><Input><Input_Sel>AV5</Input_Sel></Input></Main_Zone></YAMAHA_AV> |
Input Net Radio | <YAMAHA_AV cmd=\"PUT\"><Main_Zone><Input><Input_Sel>NET RADIO</Input_Sel></Input></Main_Zone></YAMAHA_AV> |
Input HDMI1 | <YAMAHA_AV cmd=\"PUT\"><Main_Zone><Input><Input_Sel>HDMI1</Input_Sel></Input></Main_Zone></YAMAHA_AV> |
Input HDMI2 | <YAMAHA_AV cmd=\"PUT\"><Main_Zone><Input><Input_Sel>HDMI2</Input_Sel></Input></Main_Zone></YAMAHA_AV> |
Input HDMI3 | <YAMAHA_AV cmd=\"PUT\"><Main_Zone><Input><Input_Sel>HDMI3</Input_Sel></Input></Main_Zone></YAMAHA_AV> |
Retrieve Status | <YAMAHA_AV cmd=\"GET\"><Main_Zone><Basic_Status>GetParam</Basic_Status></Main_Zone></YAMAHA_AV> |
Volume -45 dB | <YAMAHA_AV cmd=\"PUT\"><Main_Zone><Volume><Lvl><Val>-450</Val><Exp>1</Exp><Unit>dB</Unit></Lvl></Volume></Main_Zone></YAMAHA_AV> |
Volume -55 dB | <YAMAHA_AV cmd=\"PUT\"><Main_Zone><Volume><Lvl><Val>-550</Val><Exp>1</Exp><Unit>dB</Unit></Lvl></Volume></Main_Zone></YAMAHA_AV> |
Volume -65 dB | <YAMAHA_AV cmd=\"PUT\"><Main_Zone><Volume><Lvl><Val>-650</Val><Exp>1</Exp><Unit>dB</Unit></Lvl></Volume></Main_Zone></YAMAHA_AV> |
Zone 2 Power On | YAMAHA_AV cmd=\"PUT\"><Zone_2><Power_Control><Power>On</Power></Power_Control></Zone_2></YAMAHA_AV> |
Zone 2 Power Off | <YAMAHA_AV cmd=\"PUT\"><Zone_2><Power_Control><Power>Standby</Power></Power_Control></Zone_2></YAMAHA_AV> |
Zone 2 Input Net Radio | <YAMAHA_AV cmd=\"PUT\"><Zone_2><Input><Input_Sel>NET RADIO</Input_Sel></Input></Zone_2></YAMAHA_AV> |
Zone 2 Volume -45 dB | <YAMAHA_AV cmd=\"PUT\"><Zone_2><Volume><Lvl><Val>-450</Val><Exp>1</Exp><Unit>dB</Unit></Lvl></Volume></Zone_2></YAMAHA_AV> |
Selection Line 1 | <YAMAHA_AV cmd=\"PUT\"><NET_RADIO><List_Control><Direct_Sel>Line_1</Direct_Sel></List_Control></NET_RADIO></YAMAHA_AV> |
Selection Line 2 | <YAMAHA_AV cmd=\"PUT\"><NET_RADIO><List_Control><Direct_Sel>Line_2</Direct_Sel></List_Control></NET_RADIO></YAMAHA_AV> |
Selection Line 3 | <YAMAHA_AV cmd=\"PUT\"><NET_RADIO><List_Control><Direct_Sel>Line_3</Direct_Sel></List_Control></NET_RADIO></YAMAHA_AV> |
Selection Go Back | <YAMAHA_AV cmd=\"PUT\"><NET_RADIO><List_Control><Direct_Sel>Line_3</Direct_Sel></List_Control></NET_RADIO></YAMAHA_AV> |