Sonos TTS, No consigo que funcione

Sonos TTS, No consigo que funcione
« en: Abril 30, 2017, 16:59:07 pm »
Buenas tardes,

Acabo de instalar el VD Sonos TTS, y no consigo echarlo a andar. configuro la ip y el puerto tal y como dice en el tutorial y nada. La musica se para pero no dice ni mu... es mas en la app de sonos me da error como que no encuentra el archivo a reproducir.

He estado viendo este tuto en ingles y el codigo de lua es diferente al que me he descargado. 

https://www.youtube.com/watch?v=bVG-NlbOM-c&feature=youtu.be

Tambien leyendo en el foro de fibaro uk comentan como que desde alguna actualizacion de sonos, el TTS ha dejado de funcionar.

https://en.community.sonos.com/music-services-and-sources-228994/google-tts-bug-version-55-6732591

A ver si alguien me puede echar una mano con esto. muchas gracias de antemano. ;)


rls46

  • ****
  • 321
    • Ver Perfil
Re:Sonos TTS, No consigo que funcione
« Respuesta #1 en: Mayo 03, 2017, 15:17:37 pm »
el TTS de google dejó de funcionar hace bastantes meses por restricciones en su API

modificaron el VD para hacerlo funcionar con voicerss.org, yo uso el VD que te adjunto, que le puse tambien unos botones para los playlist.

para hacer funcionar TTS tienes que registrarte en voicerss.org, sirve la cuenta gratis, te dará un código de api, ese codigo lo tienes que poner en el código del boton PROCESS, en esta linea

voiceRssApiKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",

sustituye las x por tu código.

Para hacer funcionar las playlist modifica

RINCON_XXXXXXXXXXXXX1400

por el de tu sonos, que puedes verlo en http://SONOS_IP:1400/status/upnp

Para lanzar un TTS desde una escena, usa este código. La variable message es el texto que se escuchará por el sonos. También modifica valor de volumen a tu gusto.

Código: [Seleccionar]
-- 408 is the Virtual Device ID
-- 28 is the Process button ID
local sid, bid = 408, 28
-- Create TTS params object
local params = {
-- TTS Message     
message = "esto es una prueba",
duration = 'auto', -- Duration: "auto", xx seconds
language = "es-es", -- Language: es-es
volume = 5 -- Volume
}
local _f = fibaro
local _x ={root="x_sonos_object",load=function(b)local c=_f:getGlobalValue(b.root)if string.len(c)>0 then local d=json.decode(c)if d and type(d)=="table"then return d else _f:debug("Unable to process data, check variable")end else _f:debug("No data found!")end end,set=function(b,e,d)local f=b:load()if f[e]then for g,h in pairs(d)do f[e][g]=h end else f[e]=d end;_f:setGlobal(b.root,json.encode(f))end,get=function(b,e)local f=b:load()if f and type(f)=="table"then for g,h in pairs(f)do if tostring(g)==tostring(e or"")then return h end end end;return nil end}
-- Make a request to the remote to process params object instantly
_x:set(tostring(sid), { tts = params })
_f:call(sid, "pressButton", bid)
fibaro:debug("ON")

Re:Sonos TTS, No consigo que funcione
« Respuesta #2 en: Mayo 07, 2017, 10:20:59 am »
Muchas gracias por la ayuda rls46. Ya lo he probado y funciona. Lo único hay un detalle que hay que he tenido que modificar en el código en las primeras lineas para que funcione el TTS y es  El ID  que se asigna al instalar la VD.se modifica por el nuestro y listo. Por lo demás perfecto.

Otra duda los botones playlist en que se basan​  para añadirlas?
En mi caso tengo 5 playlist guardadas en sonos y solo los botones playlist 2 y 3 me añaden las listas. El botón 1 no me añaden nada. Hay algo mas que influya y que deba saber?

Un saludo y gracias de nuevo.



Enviado desde mi Redmi 4X mediante Tapatalk


rls46

  • ****
  • 321
    • Ver Perfil
Re:Sonos TTS, No consigo que funcione
« Respuesta #3 en: Mayo 07, 2017, 23:39:37 pm »
Si, los id hay que poner los de cada uno.

Las playlist son las que se tienen configuradas en la app sonos, 'Listas de Sonos' lo mismo que las radios, se enumeran del 1 en adelante según la posición que se ven en la app de sonos

luego en el boton del playlist en esta linea es donde se pone que numero que quieres reproducir

Código: [Seleccionar]
list_nbr = 2
en este ejemplo es la playlist en la posición 2