Je reprends la suite du post concernant mes questions sur le plugin Altsonos pour Altui (http://www.touteladomotique.com/forum/viewtopic.php?f=48&t=16242&start=552#p152430)
J'ai suivi les instructions d'installation disponibles sur Github ici :https://github.com/amg0/ALTSonos
J'ai résolu la plupart de mes problèmes dont la source était une installation incomplète du cloud google (database manquante, visible dans la log de la cloud function "VeraPull" -> merci amg0)
Comme j'ai pas mal galéré pour inclure les actions en lua dans des scénarios , je mets ici ce que j'a réussi à faire :
Dans les exemples ci-dessous:
- 491 correspond Ă l'id du plugin altsonos
- 315 correspond Ă l'id du plugin altui
- RINCON_5CAAFDF5D49C01400:3291522576 correspond Ă l'id du groupe qui comprends une de mes enceintes sonos (attention, l'id du groupe et non pas l'id du player !)
- Le TTS :
- Code: Tout sélectionner
local resultCode, resultString, job, returnArguments = luup.call_action("urn:upnp-org:serviceId:altui1", "SayTTS", {newMessage = "Bonjour, Ceci est un message de test.", newVolume = 70, newGroupDevices = "RINCON_5CAAFDF5D49C01400:3291522576"}, 312)
Le réglage du volume avec newVolume ne fonctionne pas mais le sujet est abordé ici http://forum.micasaverde.com/index.php/topic,114987.msg432500/topicseen.html#msg432500 - Diminuer le volume par rapport au volume actuel :
- Code: Tout sélectionner
local resultCode, resultString, job, returnArguments = luup.call_action("urn:upnp-org:serviceId:altsonos1", "SetVolumeRelative", { groupID_playerID = "RINCON_5CAAFDF5D49C01400:3291522576", volumeDelta= "-40"} , 491)
- Dans la pratique, on a le volume souhaité. Dans ce cas, 2 solutions, la seconde provoquant une coupure momentanée du son s'il y a une lecture en cours :
- En récupérant la valeur du volume courant
- Code: Tout sélectionner
local Newvolume = 25 -- Volume souhaité
local resultCode, resultString, job, returnArguments = luup.call_action("urn:upnp-org:serviceId:altsonos1", "GetVolume", { groupID_playerID = "RINCON_5CAAFDF5D49C01400:3291522576"} , 491)
local CurrentVolume = string.gsub(string.gsub(string.gsub(pretty(returnArguments), "{LastVolume = ", ""),"}",""),'"','')
local Delta = Newvolume-CurrentVolume
local resultCode, resultString, job, returnArguments = luup.call_action("urn:upnp-org:serviceId:altsonos1", "SetVolumeRelative", { groupID_playerID = "RINCON_5CAAFDF5D49C01400:3291522576",volumeDelta=Delta} , 491)
- En baissant au maximum puis en remontant le volume:
- Code: Tout sélectionner
local Newvolume = 25 -- Volume souhaité
local resultCode, resultString, job, returnArguments = luup.call_action("urn:upnp-org:serviceId:altsonos1", "SetVolumeRelative", { groupID_playerID = "RINCON_5CAAFDF5D49C01400:3291522576",volumeDelta="-100"} , 491)
local resultCode, resultString, job, returnArguments = luup.call_action("urn:upnp-org:serviceId:altsonos1", "SetVolumeRelative", { groupID_playerID = "RINCON_5CAAFDF5D49C01400:3291522576",volumeDelta=Newvolume} , 491)
- Une action qui ferait ça directement implémenté dans le plugin ?
- Pour mettre en pause le morceau en cours de lecture :
- Code: Tout sélectionner
local resultCode, resultString, job, returnArguments = luup.call_action("urn:upnp-org:serviceId:altsonos1", "Pause", { groupID_playerID = "RINCON_5CAAFDF5D49C01400:3291522576", } , 491)
- Pour reprendre la lecture :
- Code: Tout sélectionner
local resultCode, resultString, job, returnArguments = luup.call_action("urn:upnp-org:serviceId:altsonos1", "Play", { groupID_playerID = "RINCON_5CAAFDF5D49C01400:3291522576", } , 491)
Attention, il faut qu'il y ait un morceau chargé dans la liste de lecture sinon "Play" ne fonctionne pas (j'ai cherché un moment pourquoi j'avais pas de son)
- Pour associer 2 enceintes dans un groupe :
- Code: Tout sélectionner
local resultCode, resultString, job, returnArguments = luup.call_action("urn:upnp-org:serviceId:altsonos1", "SetGroupMembers", { ["groupID_playerID "] = "RINCON_5CAAFDF5D49C01400:3291522576",playerIDs = "RINCON_5CAAFDF5D49C01400,RINCON_949F3E85D3D001400"} , 491)
Quelques questions et remarques :
- Le plugin Altsonos apparaît dans la vue "Maison", mais pas dans la vue périphérique -> Normal ? Ce n'est pas le seul plugin d'ailleurs
- Pour lire un morceau précis :
- Code: Tout sélectionner
local resultCode, resultString, job, returnArguments = luup.call_action("urn:upnp-org:serviceId:altsonos1", "AudioClip", { ["groupID_playerID "] = "RINCON_5CAAFDF5D49C01400:3291522576",urlClip = "http://192.168.1.27:8085/Annonce.mp3",Duration = 3,Volume="+20"} , 491)
- Est-il possible de faire référence à un fichier local hébergé sur un NAS comme on pouvait le faire avec le plugin Sonos (x-file-cifs) plutôt que d'utiliser une url.
- Y-a-t-il une astuce pour ne pas spécifier la durée et que le morceau soit joué en entier par défaut ? Si on ne précise pas exactement la durée, le morceau est coupé ou recommence.
- En indiquant ["groupID_playerID"] = "ALL" pour diffuser le son partout, il y a un décalage entre les enceintes.
- Pour lire un favoris Sonos :
- Code: Tout sélectionner
local resultCode, resultString, job, returnArguments = luup.call_action("urn:upnp-org:serviceId:altsonos1", "LoadFavorite", { groupID_playerID = "RINCON_5CAAFDF5D49C01400:3291522576",favID=9} , 491)
Pour récupérer l'id du favoris, je n'ai pas trouvé d'autre solution que d'inspecter la page html et de récupérer la valeur de l'attribut "data-favid". Y-a-t-il un autre moyen ?
Merci.