RELEASE Generic Media Renderer (DLNA Speakers). Cheap Sonos Alternative (Update V2)

dth_speakers
dth_voice
dth_alerts

(Ule) #889

hi.

Try to use Media Renderer Event to test, you could use to a radio station included inside the player device.


(Darc Ranger) #890

@ule,
I got the Polly service to work with DLNA Play 2.2.1. I have not tried it with 2.5 yet.
I modified line 1008.
I changed it from:
textToSpeech(message)

to:
textToSpeech(message, "Brian")

I only tested the English speakers, but it works for me.
Also change this part, impacts other smart apps that speak through DLNA Player.


(Jeffrey Ropp) #891

Hi Ule,

I followed the link and installed the Media Renderer Events app. I was not able to follow the rest of your instructions as RadioTunes doesn’t support hardware players unless you upgrade to a premium plan. I’m confused on the references to radionomy and radiotunes. How are they related as they seem to be separate services???

I played around with Talking Alarm clock last and I don’t see anything useful in the logs.

Any help would be greatly appreciated! Not ready to punt and get a SONOS yet!


(Ule) #892

HI, I think you have a Old version, RadioTunes has been removed before, Now the app use Radionomy, try to use the media renderer events to send a message or a station


(HAZ) #893

Is it possible to have “Media Renderer Events” play both, a track (or sound) followed by a TTS announcement ? similar to what you hear in airlines to get your attention before the message.

Also, after I play a track on the speaker, “Media Renderer Events” gets the list of available tracks and shows the tracks as options, but when I select any track and test smartapp the track is not played. Are there Any gotchas to make it work ?

I am using the v2 hub with a Fabriq Riff Speaker ( TTS works perfect, and sounds too ) I tried to play a track also on a Pioneer SC95 with no success.

Thanks in advance and I apologize if this has been answered before, I did try to search for an answer in the different posts.


(Ule) #894

Hi

No it´s possible to send 2 sound in 1 event with mediarenderer Events. But you could create a mixed sound and published to be played, it´s not dynamic but can be played.

The source track must to be available to be played, read about DLNA Servers

I don´t know about Pioneer SC95


(HAZ) #895

Thanks ule, I will go ahead and do that ( mix the sound and voice to play both )… about the DLNA track, the audio file is available (on a DLNA Server) to anyone in my local network, other DLNA players (SC95) can play the same files fine, including the DLNA speakers I am using with smartthings. If I, directly from the smartthings speaker, play the network file, it plays fine… but not when I launch the event with Media renderer ( even though it shows in the list of available tracks )…


(Ule) #896

Hi,

It´s necessary to see the track data to verify the audio path, send me the track data.

in mediarenderer events app add this in line 436 just before the command to see what it´s sending.

log.trace “sonos.playTrack(${state.selectedSong})”


(HAZ) #897

thanks ule, hopefully these are the logs… attempted to play track at 3:40:38 PM the other errors appeared later by themselves…

3685f868-aa9e-42d4-8f14-0c207b7e1b80 3:41:03 PM: error org.xml.sax.SAXParseException; lineNumber: 26; columnNumber: 3; The element type “CurrentTrackMetaData” must be terminated by the matching end-tag “”. @ line 267
9b9841ae-2870-4fa4-b98c-2a61b25fefc8 3:41:03 PM: error org.xml.sax.SAXParseException; lineNumber: 26; columnNumber: 3; The element type “CurrentTrackMetaData” must be terminated by the matching end-tag “”. @ line 267
08a890ac-de49-4c32-94ed-d842afc9c553 3:41:03 PM: error org.xml.sax.SAXParseException; lineNumber: 26; columnNumber: 3; The element type “CurrentTrackMetaData” must be terminated by the matching end-tag “”. @ line 267
0699709d-27da-4755-9403-398330553243 3:41:03 PM: trace Skipping event generation for sound file http://s3.amazonaws.com/smartapp-media/polly-tts/joey/136609ac8ed5669625edec52540a42f6f6e9c289.mp3?ts=1506292752709
81c26122-d02c-4dd0-97e6-c42a8f2db355 3:41:00 PM: trace MEDIARENDER RESPONSES
81c26122-d02c-4dd0-97e6-c42a8f2db355 3:41:00 PM: debug getChildDevices(false), children=4
81c26122-d02c-4dd0-97e6-c42a8f2db355 3:41:00 PM: trace MEDIARENDER RESPONSES
81c26122-d02c-4dd0-97e6-c42a8f2db355 3:41:00 PM: debug getChildDevices(false), children=4
81c26122-d02c-4dd0-97e6-c42a8f2db355 3:41:00 PM: debug getChildDevices(false), children=4
998d04fb-9177-4ff3-a7b7-fe90474d863d 3:40:38 PM: error groovy.lang.MissingMethodException: No signature of method: script1506724838452647171513.$() is applicable for argument types: (script1506724838452647171513$_takeAction_closure14) values: [script1506724838452647171513$_takeAction_closure14@57819287]
Possible solutions: is(java.lang.Object), now(), url(), run(), any(), app(java.util.Map) @ line 436
3:40:31 PM: info Waiting on events…
3:40:31 PM: info For past logs for individual things go to the My Devices section, find the device and click on the Events link on the device information page.
3:40:31 PM: info This console provides live logging of your SmartThings.


(Ule) #898

The log you has send me it´s the log from mediaplayer device, and I can see the error in metadata, but what I need its the log from Mediarenderer events app, with the line you has added , I can see what its sending. remember you can launch the event of the mediarenderer events , when you press the play button in the apps list inside ST mobile app.


(HAZ) #899

I apologize ule, hopefully this is the correct log, by the way , if I take that url (http://10.0.1.1:8200/MediaItems/38.mp3) and paste it on any device in the network, the file plays fine.

22cbac97-c81a-4c8f-a422-68e41305cb87 9:12:30 PM: trace Exiting takeAction()
22cbac97-c81a-4c8f-a422-68e41305cb87 9:12:30 PM: trace sonos.playTrack([transportUri:http://10.0.1.1:8200/MediaItems/38.mp3, trackUri:http://10.0.1.1:8200/MediaItems/38.mp3, level:, status:TRANSITIONING, station:Coke, album:, name:Coke, trackNumber:1, artist:, enqueuedUri:, uri:http://10.0.1.1:8200/MediaItems/38.mp3, metaData:<?xml version="1.0" encoding="UTF-8"?>upnp:classobject.item.audioItem.musicTrack</upnp:class>song:id</song:id>song:albumid</song:albumid>song:singerid</song:singerid>dc:titleCoke</dc:title>upnp:artist</upnp:artist>upnp:album</upnp:album>http://10.0.1.1:8200/MediaItems/38.mp3])
3685f868-aa9e-42d4-8f14-0c207b7e1b80 9:12:30 PM: error groovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.lang.Integer#plus.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class java.lang.Character]
[class java.lang.String]
[class java.lang.Number] @ line 773
26f6edf3-6855-4e08-973f-b5c049f9d39e 9:12:19 PM: trace getPhrases(), state.welcomeIssue = null


(Ule) #900

Hi Haz

I think the metadata generated by your media server is not correct or is not displayed correctly in log page, I have added a function to remove the metadata if the xml have problems.

Update the Mediarenderer player , an try.


#901

I have a Fabriq Chorus speaker and am able to see if in the MediaRenderer Connect app, but I do not see it in my Things list after selecting it. Would the UPNP issue cause it to behave like this? I was under the impression the UPNP issue would not even allow me to see it in the Connect app.

Unfortunately I have a AT&T RG which doesn’t support UPNP. I would have to install a router behind it and put that router in a DMZ.

EDIT:

After refreshing, logging and and out it still would not show up. Went to bed, woke up and now it is there and all is working. Let’s hope it stays that way.


(Augusto) #902

I have created a new Mode called ‘Music’ for my smarthings location. This mode is set when I invoque a new Routine I created called ‘Party Time’.
I have also created a Media Renderer Event App that is set to trigger when Mode change occurs. The only mode selected as trigger is Mode = Music. I have configured this smartapp to play a Radionomy station. I can trigger the smartapp and it plays the station if I start it with the touch button. However if I invoque the ‘Party Time’ routine I don’t get it to trigger on the mode change.

This is what I get in the logs.

69e0137f-3294-403a-8db7-40c86693e950 5:34:58 PM: warn No event handler found for mode event 'Music’
55674919-ae50-4991-9369-e606d7c04f32 5:34:57 PM: debug updating TS
55674919-ae50-4991-9369-e606d7c04f32 5:34:57 PM: debug event from: Home, value: Music, source: LOCATION, description: Music
12fc7136-08d1-4c5c-bbd8-d6463818d961 5:34:57 PM: trace prefix():
12fc7136-08d1-4c5c-bbd8-d6463818d961 5:34:57 PM: info HH execute(true, null, null), newMode: Music

Any ideas?

thanks.
A.


(Ule) #903

Yes, an error in subscriptions, try to update the events mediarenderer app. I have fix the problem.


(ilker Aktuna) #904

Hi,

I had 3 sonos players which I use with generic media renderer. Today I added a new sonos speaker.
I changed the room of the old one from bedroom to kid room and added the new speaker to bedroom.
now I am trying to add the new speaker to ST with media renderer. However, media renderer connect app shows 2 bedroom players. It does not refresh the name of the old speaker although I have changed it on Sonos app.
how can I force the smart app to refresh the name ?

Btw, I tried adding the new speaker from graph api but it does not play/stop or change anything after adding manually.


(Joel W) #905

Is there Github integration info?


#906

Fairly new to all of this. Hope this question isn’t too basic.
Using a Jam Symphony speaker. Found and paired and I have talking Alarm working fine with weather and message.
When i go to “and play station/song” there’s nothing available. How do I populate this list?
thank you for all your hard work and again sorry if this has been addressed and I missed it.


(Devesh Batra) #907

that would help… currently i see instructions to add one SmartApp and one Device Handler… do i also need to add the other apps listed on the github site ? thanks


(Augusto) #908

Just got around to try it, subscriptions fix works fine. Txs.