Aller au contenu

Messages recommandés

Posté(e) (modifié)

Yamaha MusicCast

large.MusicCast.png.ca8c209dff4455026432

large.Yamaha-MusicCast.jpg.c45108d8e7564

 

 

Voici un module virtuel et une scène permettant de piloter les éléments audio multiroom Yamaha MusicCast depuis la box Fibaro HC2.

 

 

large.screenshot-virtual-device-yamaha-m

 

 

Principe de fonctionnement

 

 

  • Il faut créer autant de module virtuel que d'élément MusicCast à piloter, en spécifiant l'adresse IP de chacun. Chaque VD est l'interface utilisateur qui permet de piloter un élément MusicCast et de remonter son statut.
  • Il faut créer une seule et unique scène, laquelle est utilisée par tous les modules virtuels. Cette scène peut être cachée dans l'interface car elle n'a qu'un rôle technique.
  • Une variable globale unique sera automatiquement créée pour les besoins internes des VD et de la scène, il ne faut pas y toucher.

 

Le code LUA de la scène et le fichier vfib du module virtuel sont disponibles en bas de ce tuto, ainsi que différentes icônes.

 

 

Installation

 

  • Scène :
     
    • Créer une nouvelle scène LUA, et lui donner obligatoirement le nom exact "Yamaha MusicCast" (faites un copier/coller), car ce nom est utilisé par les VD pour trouver automatiquement la scène sans devoir spécifier manuellement son ID.
       
    • Copier/coller le contenu du code LUA téléchargé dans la scène (il n'y a rien à modifier dans ce code LUA)
       
    • Choisir un nombre d'instance maximal au moins égal au nombre de VD qui seront déployés, cela permet de piloter tous les éléments MusicCast simultanément.

      large.screenshot-scene-yamaha-musiccast.
       
    • Sauvegarder la scène
       
    • En option : choisir une pièce pour cette scène, la cacher dans l'interface, et lui affecter une icône.

      large.clap_yamaha.png.8f8706d4c87106704a

 

 

 

  • Virtual Device :
     
    • Importer le fichier vfib
       
    • Donner un nom au VD et choisir une pièce
       
    • Entrer l'adresse IP de l'élément MusciCast à piloter, et le port (toujours 80)

      large.screenshot-virtual-device-yamaha-m
       
    • Sauvegarder le VD. A ce moment là, attendre au moins 10 secondes. En effet, le VD va automatiquement détecter les sources audio disponibles sur l'appareil MusicCast, et se reconfigurer tout seul afin d'ajouter les boutons correspondants.
       
    • Après les 10 secondes minimum d'attente, recharger la page (touche F5 ou bouton dédié du navigateur) afin de visualiser la nouvelle version du VD avec ses boutons dédiés aux différentes Sources Audio.
       
    • Il est fort probable que plusieurs sources audio ne vous seront jamais utiles, dans ce cas il faut simplement supprimer les boutons et enregistrer à nouveau le VD.
       
    • Changer l'icône du VD, et seulement des boutons ON et OFF. Il est inutile de changer l'icône des autres boutons, le code LUA de la Main Loop le fera tout seul.
       
    • Si nécessaire, dans l'onglet Avancé des propriétés du module, modifier le code LUA de la Main Loop afin de configurer les options suivantes :
      local zone = "main" -- main | zone2 | zone3 | zone4
      local refreshOFF = 15 -- seconds
      local refreshON  = 3  -- seconds
       
      • zone : si l'ampli home-cinéma est configuré et câblé pour gérer des zones supplémentaires
      • refreshOFF : intervalle de rafraichissement quand l'ampli est éteint
      • refreshON : intervalle de rafraichissement quand l'ampli est allumé (l'intervalle ne peut pas être inférieur à 3s).

        large.screenshot-virtual-device-yamaha-m
         
    • Recommencer toute la phase d'import pour les autres éléments MusicCast du réseau à piloter.

 

 

Screenshot

 

large.screenshot-virtual-device-yamaha-m

 

 

 

Identification des ID des Boutons

 

Comme le VD s'auto-configure avec les boutons correspondants aux entrées audio de chaque ampli MusicCast, les ID de chaque boutons peuvent être différents d'un VD à l'autre si vous avez plusieurs éléments MusicCast à piloter.

Utiliser le module virtuel suivant afin d'identifier facilement les ID de chaque bouton si vous souhaitez les utiliser dans vos scénarios (GEA, etc) :

 

 

 

Monitoring avec le Watchdog

 

Il faut juste spécifier l'ID correct de chaque VD (autant de lignes différentes que de VD à surveiller) :

{type = "VD", id = 0, match = {text="Total memory in use", interval=6*60}, no_match = {text="", type="ERROR"}, restart=true, notification = {"push", "email"}},

 

 

Icônes

 

large.yamaha-color.png.694018151b419eeb3large.yamaha-color-on.png.6bde028d1463balarge.yamaha-color-off.png.af3ad6e35dda4

large.yamaha-white.png.ce10ed7b51463c19dlarge.yamaha-white-on.png.5bbb28d7da7c25large.yamaha-white-off.png.9e37c920beebd

large.yamaha-aventage.png.d8cc5ebb848e4flarge.yamaha-aventage-on.png.19d07dc3284large.yamaha-aventage-off.png.eef6b42f5b

large.yamaha-WXA-50.png.2f2b6062970ec78alarge.yamaha-WXA-50-on.png.6396a1841d403large.yamaha-WXA-50-off.png.c3134ed65d81

large.yamaha-WX-010-black.png.1d942f221dlarge.yamaha-WX-010-black-on.png.52d5ed4large.yamaha-WX-010-black-off.png.8547da

large.yamaha-WX-010-white.png.2636edf9aalarge.yamaha-WX-010-white-on.png.cd62f4dlarge.yamaha-WX-010-white-off.png.65078e

 

 

 

Changelog

 

  • v1.0 : Janvier 2018
    • Version initiale
  • v1.1 : Février 2018
    • Détection automatique des icônes (il n'est plus nécessaire de spécifier manuellement les ID dans le code LUA de la Main Loop)
    • Vérification régulière de l'existence et de la validité de la variable globale contenant les paramètres du VD (au cas où l'utilisateur ferait une modification involontaire via le panneau de variables)
    • Ajout d'émoji dans les boutons
    • Corrections et optimisations mineures

 

 

Téléchargements

 

 

 

Modifié par Lazer
  • Like 4
  • Upvote 1
Posté(e)

Informations techniques complémentaires

 

Dans ce module virtuel, seule la Main Loop est autonome, c'est à dire qu'elle est capable d'interroger toute seule l'état de l'élément MusicCast afin de mettre à jour les différentes informations sur les labels du VD. La zone de debug donne aussi des informations sur les événements.
Le code LUA de chaque bouton est réduit au maximum, seulement 2 lignes. En effet, la première ligne récupère le contenu de la variable globale "Yamaha_MusicCast_Parameters", et la seconde ligne appelle la scène avec la fonction fibaro:startScene()

local p=json.decode(fibaro:getGlobalValue("Yamaha_MusicCast_Parameters"))
fibaro:startScene(p.SceneID, {{VD_Text = "Xxx"}, {action = "xxx"}, {value = "xxx"}, {VD_ID = fibaro:getSelfId()}, {VD_Button_ID = _elementID_}})

Les informations suivantes sont passées en paramètres à la scène :

  • VD_Text (optionnel) : Information textuelle qui sera affichée sur le VD afin d'effectuer un retour d'état immédiat pour l'utilisateur qui clique sur un bouton
  • action (obligatoire) : Action à effectuer, voir ci-dessous pour les actions permises
  • value (obligatoire) : Valeur liée à l'action à effectuer, voir ci-dessous pour les valeurs permises
  • VD_ID (obligatoire) : ID du virtual device qui appelle la fonction. Cela est nécessaire pour que la scène puisse mettre à jour les labels du VD, et le log (en vert) sous la tuile du VD.
  • VD_Button_ID (optionnel) : ID du bouton qui appelle la fonction. Cela est nécessaire pour que la scène puisse mettre à jour la zone de debug du bouton.

 

Actions et Valeurs :

  • power < on | standby | toggle >

    Allume ou éteint l'ampli.
     
  • playback < play | stop | pause | play_pause | previous | next >

    Lecture, Arrêt, Pause, Précédent, Suivant.
    Ne fonctionne que si la source de lecture le permet (USB, Server, etc)
     
  • input < cd | tuner | multi_ch | phono | hdmi1 | hdmi2 | hdmi3 | hdmi4 | hdmi5 | hdmi6 | hdmi7 | hdmi8 | hdmi | av1 | av2 | av3 | av4 | av5 | av6 | av7 | v_aux | aux1 | aux2 | aux | audio1 | audio2 | audio3 | audio4 | audio_cd | audio | optical1 | optical2 | optical | coaxial1 | coaxial2 | coaxial | digital1 | digital2 | digital | line1 | line2 | line3 | line_cd | analog | tv | bd_dvd | usb_dac | usb | bluetooth | server | net_radio | rhapsody | napster | pandora | siriusxm | spotify | juke | airplay | radiko | qobuz | mc_link | main_sync | none >

    Sélection de l'entrée audio.
    Selon l'élément MusicCast utilisé, seules certaine sources sont disponibles.
     
  • volume < value | up | down >

    Augmente ou diminue le volume.
    Il est possible de spécifier une valeur pour régler immédiatement le volume à la puissance désirée (attention aux oreilles, en pratique cela peut être pratique pour remettre le volume à un volume prédéfini d'ambiance, ou carrément le mettre à zéro pour remonter progressivement (réveil matin, etc)). Pour connaitre les bornes mini et maxi, regarder la zone de debug de la Main Loop au démarrage du VD.
     
  • mute < true | false >

    Coupe ou remet le son.
     
  • soundProgram < munich_a | munich_b | munich | frankfurt | stuttgart | vienna | amsterdam | usa_a | usa_b | tokyo | freiburg | royaumont | chamber | concert | village_gate | village_vanguard | warehouse_loft | cellar_club | jazz_club | roxy_theatre | bottom_line | arena | sports | action_game | roleplaying_game | game | music_video | music | recital_opera | pavilion | disco | standard | spectacle | sci-fi | adventure | drama | talk_show | tv_program | mono_movie | movie | enhanced | 2ch_stereo | 5ch_stereo | 7ch_stereo | 9ch_stereo | 11ch_stereo | stereo | surr_decoder | my_surround | target | straight | off >

    Règle de DSP.
    Les DSP ne sont disponibles que sur les amplis Home-Cinéma de la gamme Yamaha. Selon le modèle d'ampli, seuls certains DSP sont disponibles. Pour connaitre les DSP utilisables, regarder la zone de debug de la Main Loop au démarrage du VD.
     
  • dialogueLevel < value >

    Règle le niveau des voix sur l'enceinte centrale des amplis home-cinéma. Utile pour certains films ou si votre enceinte centrale est un peu faible comparée aux frontales gauche et droite.
    Les valeurs autorisées sont 0 (position normale), 1, 2, 3.
     
  • preset < value >

    Démarre la lecture d'un favori MusicCast (netradio, médiathèque locale, ...)
    La valeur doit spécifier l'index du favori (listé dans l'application mobile MusicCast)
     
  • dimmer < value >

    Règle l'intensité lumineuse du panneau LCD ou des diodes de façade, seulement pour les éléments MusicCast qui le supportent.
     
  • sleep < 0 | 30 | 60 | 90 | 120 >

    Programme de l'extinction automatique de l'ampli, en minutes. Utile pour s'endormir en musique.
     
  • link < VD_ID >

    Associe et synchronise la lecture d'un élément MusicCast avec un autre élément.
    Il faut spécifier l'ID du module virtuel qui doit être associé avec l'élément en cours.
    On peut associer autant d'éléments qu'on souhaite en rappelant plusieurs fois la commande.
     
  • unlink < VD_ID >

    Dissocie l'élément MusicCast dont l'ID du module virtuel est spécifié.

 

Avec ces informations, vous pouvez créer vos propres boutons afin d'ajouter les fonctions dont vous avez besoin, que je n'ai pas inclus de base sur le VD, afin de ne pas surcharger inutilement ce module virtuel.
Par exemple sur mon ampli home-cinéma, je me suis créé des boutons pour activer automatiquement les DSP que j'aime bien, ainsi que le contrôle du niveau des dialogues sur l'enceinte centrale (que je trouve trop bas sur certains films)

 

De plus, dans vos scénarios, plutôt que de cliquer virtuellement sur les boutons des modules virtuels avec la fonction fibaro:call(id_VD, "pressButton", "id_Button") (qui nécessite de connaitre l'ID du bouton, qui peut changer en cas de réorganisation du VD), il est possible d'appeler directement la scène :

local p=json.decode(fibaro:getGlobalValue("Yamaha_MusicCast_Parameters"))
fibaro:startScene(p.SceneID, {{VD_Text = "Xxx"}, {action = "xxx"}, {value = "xxx"}, {VD_ID = fibaro:getSelfId()}})

On remarque que le code LUA est identique au contenu des boutons du VD, à l'exception de l'argument {VD_Button_ID = _elementID_} qui n'est plus nécessaire.

 

 

Documentation API

 

YXC_API_Spec_Basic_v1.1.pdf

YXC_API_Spec_Advanced.pdf

 

  • Like 1
Posté(e)

Yez, merci@Lazer. Du gros gros boulotn. Felicitations.
On change de niveau ; VD dynamique, création des boutons automatique selo' besoin. Et ben :-).
Va falloir lire ca:-)

Question subsidiaire, sans l ampli cela fonctionne aussi?

Encore merciii

Envoyé de mon Nexus 5X en utilisant Tapatalk

Posté(e)
Il y a 2 heures, pepite a dit :

Question subsidiaire, sans l ampli cela fonctionne aussi?

Non, il y a une sécurité dans la fonction init() de la main loop, si il n'arrive pas à se connecter à l'ampli, il tourne ne boucle et attend sagement sans mettre à jour aucun label, sauf le LabelDebug tout en bas du VD pour informer qu'il n'arrive pas à se connecter.

En réalité, j'ai mis en place ce mécanisme car le VD ne doit pas fonctionner tant qu'on n'arrive pas à se connecter à l'ampli. En effet, à l'initialisation, la main loop récupère un certain nombre d'informations nécessaires, par exemple les bornes mini et maxi du volume (différentes selon l'ampli) afin de calculer le pourcentage du Slider de volume, qui lui est toujours sur 0-100% dans chaque VD.

 

Bref, tu peux importer le VD, et tu verras qu'il ne se passe rien (enfin, normalement... !)

  • Like 1
Posté(e)

Teint d'ailleurs je me tâte à créer un topic dédié au Homepod dans la section des assistants vocaux du forum, les première review sont terribles (au sens premier du terme). C'est pas cette fois-ci que la pomme fera sa révolution comme ils ont su le faire avec l'iPhone.

  • Like 1
Posté(e)

J'ai lu je ne sais plus où que même dans le mcirocosme de la pomme, avec Siri, l'enceinte était limitée ;- ) mais la qualité sonore serait au RDV ;-) c'ets déjà bien pour une enceinte ;-)

 

L'ouverture de ce forum impose presque le topic dédié, mais pas sûr du nombre de sujets ;-)

Posté(e)

Mise en ligne d'une nouvelle version 1.1 dans le premier post :

  • v1.1 : Février 2018
    • Détection automatique des icônes (il n'est plus nécessaire de spécifier manuellement les ID dans le code LUA de la Main Loop)
    • Vérification régulière de l'existence et de la validité de la variable globale contenant les paramètres du VD (au cas où l'utilisateur ferait une modification involontaire via le panneau de variables)
    • Ajout d'émoji dans les boutons
    • Corrections et optimisations mineures
  • Like 2
  • 2 mois après...
Posté(e) (modifié)

Yamaha commence à annoncer ses nouveautés 2018.

Le protocole évolue, et devient MusicCast Surround.... donc comme chez Sonos, on pourra utiliser des enceintes satellites sans-fils comme enceintes surround arrière. Avantage non négligeable par rapport à Sonos, ces enceintes surrounds bénéficieront de la calibration au micro de l'ampli (réglage des niveaux, retards, etc), et du décodage des vrais sources cinéma, ce que Sonos ne sait toujours pas faire aux dernières nouvelles (limité au vieux Dolby Digital d'il y a 30 ans...).

Pour celui qui ne veut pas d'ampli et qui veut une installation 100% sans fil comme chez Sonos (enfin, faut quand même un fil électrique 230V), ça semble aussi possible, mais on perd bien sur les possibilités de l'ampli HC. Attendons d'avoir plus de détails.

 

En parallèle, ils sortent de nouveaux modèles d'enceintes sans fil, et prochainement un caisson de basse sans fil (comme Sonos, tiens donc....)

Bref, la concurrence ça a du bon, et je suis content de voir que Yamaha investi massivement ce secteur sans fil :)

(bon par contre toujours pas de trace de Google Assistant...)


https://www.digitaltrends.com/home-theater/yamaha-musiccast-surround-av-receivers-speakers/

https://www.lesnumeriques.com/enceintes-home-cinema/deux-nouvelles-enceintes-multiroom-chez-yamaha-musiccast-20-50-n73779.html

 

 

PS : ce qu'il était déjà possible de faire avec MusicCast de base, c'était d'envoyer le son de l'ampli en miroir sur n'importe quelle enceinte de la maison... amusant pour écouter dans le salon/chambre/SDB le son du film joué dans la salle cinéma...

Plus concrètement, je m'en suis servi réellement pour lire un CD Audio (souvenez-vous, c'était un technologie inventé en 1980) dans la platine Bluray, et envoyer le son dans le salon.

 

 

Modifié par Lazer
Posté(e)

manque toujours le TTS et la possibilité de faire une recherche mais ils y arriveront un jour ils partent de plus loin.

Posté(e)

Exact.

 

Cela dit Sonos ne propose pas non plus de TTS, ni aucune marque à ma connaissance.

Le TTS reste une affaire de geeks bidouilleurs, pas certain que ça soit proposé sur un produit grand public un jour.

 

(j'exclus les assistants vocaux puisque ce n'est pas du TTS)

Posté(e)

je suis d'accord qu'aucune marque ne le propose mais c'est pourtant fait par des amateurs éclairés. Est ce le cas sur Yamaha ?

C'est une fonction importante pour moi qui justifie l'intégration à la domotique.

 

L'autre fonction du pilotage est pour la salle de cine par exemple et là l'intégration domotique du Yamaha fait très bien le job :60:

 

Ainsi je milite Sonos pour les pièces non "audiophiles" et Yam ou autre pour le ciné car il ne faut pas oublier notre bon vieux infrarouge qui fait treès bien le job dans ce cas de pilotage de salle de home cinema avec un irtrans ou autre.

Ainsi on pilote des amplis et systèmes bien plus haut de gamme que Yamaha sans ip ni api

 

Posté(e)

Yamaha peut lire un flux DLNA, donc on peut envoyer du TTS si généré par une source externe.

J'ai fait un test rapide il y a pas mal de temps, j'ai pu faire du TTS avec source DLNA en local, mais ça n'a pas fonctionné avec une URL externe (un des sites web de TTS bien connus). Alors je ne sais pas si je m'y suis mal prix ou si c'est une limitation de Yamaha de n'accepter que du flux DLNA local.

Bon moi ça me va de faire du local, mais c'est clair que la majorité préfère le cloud.

Encore que perso, je n'utilise pas du tout le TTS, donc je n'ai pas creusé plus la question, par manque d'intérêt. Peut être que je m'y remettrai ultérieurement.

 

Sonos a l'avantage d'être pionnier, d'être connu par tous, d'avoir des produits design, d'être supporté en standard par beaucoup d'appareils et applications connectés (dont les contrôleurs domotiques), d'être le premier à supporter à la fois Alexa et G Assistant (enfin, ils ont promis pour 2018), mais je suis satisfait de constater que Yamaha n'est pas en reste, malgré leur retard ils ont énormément bossé en peu de temps, au final ils proposent aussi pas mal d'options et de fonctions qui n'existent pas chez Sonos.

 

Après dans le monde des salles de cinéma privés, c'est souvent dans des villas très haut de gamme, où les propriétaires n'ont généralement pas de compétence techniques, s'appuient sur un pro, et là je crois comprendre qu'on trouve beaucoup de systèmes historiques Crestron, Control 4, etc.... je ne connais rien à ces systèmes, je ne sais pas ce qu'ils sont capables de faire, mais je ne serais pas surpris que l'infra-rouge historique soit massivement utilisé. Tu en vois peut être.

Ce qui est certain, c'est que les passionnés qu'on croise sur les forums avec leur salles privées DIY n'ont rien de tout cela, au mieux ils ont une Logitech Harmony, et certains, rares, font un peu de Z-Wave avec Jeedom ou autre.

 

PS : Là je suis à l'hôtel, sur mon téléphone je vois ce que mes dames regardent comme film en live à la maison, et le timing exact qui défile en temps réel sur le VD (enfin, à 3s près comme chacun sait, du fait de la main loop)... mine de rien, il n'y a pas beaucoup de propriétaires de salles cinéma qui ont ce niveau de domotisation.

Posté(e)

Moi, ce qui fait que je ne peux pas quitter sonos, c’est que Yamaha ne propose pas de  fonction alarme. Elle est utilisée tous les jours par toute là famille pour aller bosser/à l’école 

  • Like 1
Posté(e)

Comment dire, avoir l'info de ce que regarde sa petite famille en déplacement fait vraiment très geek :2: tu aurais du dire, avec cela je suis capable de mettre une ambiance lumineuse appropriée si je passe telle ou telle film ou musique etc ca c'est plus percutant ;)

Pour les salles de cine privées réalisées par des pros il y a en effet du C4 (pas l'explosif ;-) ) et ou du Crestron. Ce sont grâce à eux et surtout C4 que les projos et autre matos hifi ont des API de contrôle. Avant c'était du RS232 maintenant c'est de l'IP.

Cependant maintenant y compris chez les pros ils se retournent vers des solutions plus ouvertes et moins onéreuses pour faire du contrôle basique de salle de cine. La logitech ayant toujours été beaucoup utilisé même par les pros.

Voici un petit lien d'un installateur de salle de home cinema pro qui utilise du Jeedom pour un controle super basique de la salle.

https://www.mirabelle.tv/societe-tvhd-a-landonvillers-une-salle-de-cinema-a-la-maison/

  • Like 1
Posté(e)

Ca suffit messieurs, j'ai envie de passer à Yam ;-)

Bon, un peu comme @PITP2, SONOS me suffit amplement hors salle de ciné. Je mettrai du Yam certainement quand j'en serai à la salle ciné. Mais encore une fois, la concurrence a vraiment du bon ;-) Ca fait bouger et j'aime beaucoup.

 

@Lazer c'est pas très serieux l'espionnage familial ;-) Tu inventes un nouveau concept, la DOMO-PROTECTION, apr_s la VIDEO-PROTECTION ;-)

Posté(e)

Ouais c'est clair, en écrivant hier je pensais pareil, c'est un peu flippant cet espionnage. Mais bon, le vrai intérêt, ce n'est pas de d'espionner, mais bien de piloter et automatiser.

Pour l'éclairage, je pourrais faire une lumière d'ambiance, mais un film ça se regarde dans l'obscurité... Du coup ça limite la couleur de l'éclairage... Au noir !

Alors c'est très simple, la lumière descend progressivement, jusqu'à s'éteindre totalement dès que le film commence. Comme au cinéma, et ça va très bien comme ça :)

 

Merci pour les infos de l'état de l'art chez les pros du HC.

 

PS : Mirabelle TV, non mais franchement :P

  • Haha 1
Posté(e)

Je ne vais pas réagir sinon je sens que l'on va pourrir le post de @Lazer ..... et il ne faut pas provoquer une légende :P

Oups j'ai posté quand même

  • Like 2
  • Haha 1
  • 2 semaines après...
Posté(e)

Excellent cette télécommande pour Yam !

@Lazer : Une seule remarque, est ce qu'il pourrait y avoir un retour de "Power" et "Input" en variable globale pour pouvoir interagir.

Par ex, dans mon cas, je souhaiterai que dès que je met une musique sur le téléphone par "Air play", dès que la chaîne s'allume, le wallplug du caisson s'allume aussi.

Merci en tout cas, pour ce beau travail ! 

Posté(e) (modifié)

@LazerJ'ai modifié un peu la boucle du VD à la ligne 469 et ajouté les 2 variables globales "YamahaPower" et "YamahaInput" :

self:updateLabel("LabelPower", self.power)
fibaro:setGlobal("YamahaPower", self.power); -- Power
self:updateLabel("LabelInput", self.input_text)
fibaro:setGlobal("YamahaInput", self.input_text); -- Input

En espérant que ça soit la bonne solution ;)

Modifié par Vince
×
×
  • Créer...