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

any plans to support the Harman Kardon?

Hi, The Harman Kardon must to works like Generic MediaRenderer, I don´t have this kind of speakers to test groups, but it must to be found with media renderer Connect.

I am. What are you having problems with? Remember, you have to add the device to WebCore the same way you would a light or a switch after you create it. Once that’s done, you can use the speaker as a voice synthesis device. If you are trying to use WebCore to play a media file for an alarm or whatnot, that is something that WebCore can’t do I’m pretty sure. However you can use WebCore to trigger a virtual switch and then use a SmartApp called Speaker Notify with Sound. This doesn’t allow you to pick any old noise you want but there are several there to choose from.

Hi ule.

Managed to get this to detect and inatall
VIERA E30 Series Speaker - panasonic TV
Denon Amp Living Room Speaker - AVR-X2300W

And with the last, I at least got the Talking Alarm Clock to work.

Great Work

However neither of these players are always switched on or in the room I would like to use this App.

Do you have plans for a Squeezebox integration. See my post May 7 2017.

Apologies for the newbie questions. I’ve tried to find like challenges in the thread but am still stuck.

I’ve installed MediaRenderer Connect app and device handler.
I searched and found my Denon AVR-1913 and Panasonic Viera ST-50. My DirecTV receivers were also indentified by the way.

I’ve installed the talking alarm clock but failed to produce any sounds from either the Viera TV or Denon receiver. The Viera’s volume was controlled successfully but neither text to speech nor sounds was produced successfully.

Similarly, when I installed Speaker Companion, no devices are found that are capable of supporting the app.

Any help would be greatly appreciated! Thanks do much for your work to make this platform useful and interesting!


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

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, "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.

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!

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

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.


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

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 )…


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})”

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
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.

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.

I apologize ule, hopefully this is the correct log, by the way , if I take that url ( 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:, trackUri:, level:, status:TRANSITIONING, station:Coke, album:, name:Coke, trackNumber:1, artist:, enqueuedUri:, uri:, 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>])
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

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.

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.


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.

1 Like

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?


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