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

This Smart App and device type allows you to use any DLNA Media Renderer to receive Sonos-like sound and voice notifications from SmartThings.

You must to install the MediaRenderer_Connect to find any Generic Media Renderer (Network Speaker)

The MediaRender Player is the device type needed to control each Media Renderer.

If you dont have a Media Renderer like Smart TV or Network Speaker with DLNA you can test it with Foobar2000 program installing de upnp commponent. The commponent allows you to convert the player in a Media Renderer (Verify your firewall do not block the foobar2000 port )

I have tried some Media Renderers, but is better if you give me a feedback of the models that works for you.

Tip : Please, just install one time the MediaRenderer Connect from the phone, If you have more than one Media Render and want to install in other time, select the MediaRenderer Connect from MyApps secction, do not select again from myApps instalation proccess, you going to get 2 MediaRenderer Connect.

The device can be selected like any sonos player from smarthings apps, I will improved the device to get more capabilities

Not all DLNA Players are Media Renderer, If you have an Iphone, download and use the app “Browse UPnP for ios” to verify the type of the device, the “device type” must to be urn:schemas-upnp-org:device:MediaRenderer:1

Important ! : Verify your router settings to allow UPnP, if not enabled you cant find any Media Renderer or UPnP device, example:


Delay Before Messages : Some media renderers take more time to load http files , you can increase this time if your messages cuts off or not play.

Delay Between Actions : Some media renderers crash if many actions are launched (play and resume) you can increase time between actions to avoid crashes


Control Point : Is the manager who send information to MediaRenderer to play songs, there are 2 ways to manage music list,

1) Containers: The control point send the container information , the container is created by media server commonly a Folder, Genre, Artist , Album , the media render can play all the list even the control point is closed or turned off, SmartThings Generic media renderer works fine with this kind of control points, you can use all the actions, next, back , play, volume, and so on, Its possible to play messages and continue the list, (Not all M.Renderers support containers.)

2) Control point list: The control point creates a list and send 1 song a time, the M.Render can play just the current song, the MRenderer will not play the next song if the control point is closed or turned off, SmartThings Generic MRenderer do not works fine with this kind of control points, this kind of control points detects any external action like it is next song action, then when SmartThings try to play a message the control point send immediately the next song in list, the message cuts off or even never plays because the next song start to play, you can not use smartThings controls app, like stop , next back, play because all this actions will trigger the next song in the control point list, Some control point list do not listen the external commands and do not send the next song until the end song is reached, this kind of Control Point List works fine with SmartThings Its possible to play messages and restore the song, the Control point will continue with the list until finish, but you can not use next song or previous song actions because the list is manage by control point and not in MRenderer, you can try Denon Remote App for ios who do not detect external actions and works fine in ST Media Renderer.

The SmartThings MediaRenderer do not try to replace an advance Control Point, you must use a external control point to manage and load songs to your speakers, The SmartThings MediaRenderer Goal is to play massages, tracks or containers when some events occur and continue with the original list or song managed by the control point or media server,

How do I known what kind of control point do I use ?
Control Point List = The Media Renderer not play the next song if you close the control point
Control point Containers = The Media Renderer play the next song even if you close the control point

Working Control Point
If your speakers or device support containers, you can use
Network Audio Remote IOS
Network Audio Remote Android
Buttons: Next, Previous , Stop, Play, Mute, Volume in ST device controls
Source: Media Server
Resume: Resume song from Media Server and continue List
Select song to event: It can be selected to play song or container in event

Control Point List
Denon Remote App IOS
Denon Remote App Android
Buttons: Stop, Play, Mute, Volume in ST device controls, Do not work Next and Prevoius track in ST device controls
Source: Media Server
Resume: Resume from Media Server and continue List
Select song to event: It can be selected to play song in event
Technics Music App IOS
Technics Music App Android
Buttons: Stop, Play, Mute, Volume in ST device controls, Do not work Next and Prevoius track in ST device controls
Source: Media Server
Source: Device Songs
Resume: Resume from Device Songs and continue List
Resume: Resume from Media Server but does not continue List
Select song to event: When source from Device Songs can not be selected to play song in event because the song is destroyed each time the song finish or the control point closes.
Select song to event: When source from Media Server It can be selected to play song in event

Help us to make a working Control point list
I have tried several free control points and found this listed above, they works with all dlna speakers and devices.

There are other control points but is need to pay for them, I cant buy them to try, I need your help to try others Control Points.

Please share your experience with exclusive control points to some speaker brand or some payed control points.

Help us to make a working MR list
Send the exact model device is working to update the list.
Working Speakers List (9 hardware devices, 3 sotware devices confirmed )

Latest Version 1.5.7

Source files


This is a good start on a much needed feature.
Will it support AirPlay speakers? (Could it in the future?)
What would need to happen to support Bluetooth speakers? (Maybe when hub V2 comes out with Bluetooth?)
Any way - nice work, keep us posted.

1 Like


Many Airplay speakers must support DLNA media renderer, just install this apps and search if your airplay speaker support DLNA.


Amazing! Bravo Sir! You have just given everyone the ability here to use devices that many of us commonly own to get Text To Speech notifications or alarms all around our house, without buying expensive Sonos speakers!

For some who dont know: DLNA is the protocol that many of already have in our Android cell phones, Android Tablets, SmartTVs, Media Players, Blu-Ray, Xbox and Playstation game consoles, Raspberry Pi or Amazon Fire TV with XBMC or Kodi, Talking of millions already have DLNA. I believe the new Pure Jongo devices people were talking about on have it too. I wonder what other more affordable network speakers will work out of the box with this? Yeah thats right, its Saturday night and new code came out lol!

EDIT: So Media Render is a type of DLNA speak, so NOT all devices have it. Good example listing would be Obviously this list is just an example

I have already tested your code and it worked wonderfully for my XBMC and Kodi installations with just UPnP turned on. With my Amazon Fire TV with Kodi sideloaded, your fiber optic cable still transmits even when your TV is off! So i routed a fiber optic cable to a cheap speaker bar, which is always powered on from the wall, and my TV near the main doorway has just become a 24/7 notification or announcement system! My main TV with surround system also worked too, using fiber optic to 7.1 surround.

As for Airplay, it is not compatible with DNLA. However some devices have both protocols now a days, so maybe only newer devices or high end speakers would be applicable. Right off the bat I would recommend a $29 device that converts any old speakers to DNLA and also Airplay, because I just ordered one after verifying this code works :slight_smile:

Concerns: After one announcement, I used the audio controls within the SmartThings My App and it started playing your favorite spanish radio station, and it was not clear how to easily change or browse to a different playlist. If it was at least Music it would have been entertaining, but sadly, it was only some news haha.

I also noticed a bit of lag when a playing video goes to pause and the text to speech kicks off, and I miss my custom message if my device is not fast enough to switch, so I am looking into adding some delay or spacing before the speech starts. I wonder if with DLNA, you can check to see if a DLNA Client is idle before re-directing it to play a particular steam or is it just a forced broadcast? Also instead of a custom message, can we use a locally stored mp3 to speed up the process? I am sure I can look into it.

Anyhow just wanted to thank you once again for how wonderful the code and instructions were on github, we appreciate all the time and effort! :smiley:


Finally! with this i can support my rockis :smiley: GREAT WILL BE TESTING SOON

Just tried it, it just keeps looking for my devices and nothing is found :confused: any tip on that?? i left it searching for like 10 minutes, how much does your devices take to get discovered? ( i have 2 rockis and a smart TV, Both DLNA capable)

@Ben You guys should add this to the officially supported apps, as long as it gets working correctly :wink: looks like this has some great potential

last question…does this app requires a hub? lol i dont have any yet and will be ordering one soon depending of how some apps work :smile:

Thanks Chuck
A generic media renderer does not have a suspend mode like sonos, the app save the last playing song and if a smartthings message is fired and if the current status is PLAYING will play the saved song before the message, some times the status is not updated becouse by the mediarenderer event system, you can use poll apps to refresh the media renderer status and get the rigth status and avoid false resume, I will try to make a better resume function. The second play button is to test the media render but you can change the station url in the preferences button, if no link station is present by default is the classic station played . Its posible to replace smartthings url to custom mp3, I think whe can take the text to speach and check if the text contains an url take it and play it, before to convert the text to audio.

Updated: The new MediaRenderer Connect , now has a refresh event timer, to avoid to use external poll system.


Not all DLNA Players are Media Renderer, If yo have an Iphone use the app “Browse UPnP” to verify
if your DLNA device is media Renderer, the device type must to be urn:schemas-upnp-org:device:MediaRenderer:1


Only the smartthings hub is needed (updated to latest firmware) to works with the MediaRenderer device

1 Like

Chuck, update the mediarenderer_player file, I have fix the problem starting the stored file after an event when the device was not playing before the event

1 Like

OK, so I have a PS3, a PC with XBMC (Kodi) running, and an UBI all on right now and I’m not finding any of them. Any tips or suggestions?


my devices are media renderers, just confirmed it, but right now i dont have a hub, just the app , so i think i will have to wait for my hub (im waiting for hub v2 to order one) :frowning:

Download and use the app for iphone “browse UPnP” to search your media renderers , in some routers you must to enable UPnP properties to allow to detect the media renderers

1 Like

I had the same problem with Kodi not being discoverable, but it was just a matter some settings that had to be changed.

In Kodi, go System > Services > UPNP and enable the settings for

  • Share video and music libraries through UPNP
  • Announce library updates via UPNP

After the settings are changed try the discovery process again, works like a charm! Thanks a lot @ule

1 Like

Thanks for steps. I did find that some android devices have an issue with xbmc/kodi despite the settings to enable DLNA.

But a quick install of the free android 'UPnPlay" allowed a old Droid 3 (with factory defaults) cellphone to play DLNA notifications from Smartthings. Plugged into a cheap speaker, works great!

I have been tinkering with various devices since yesterday and still having fun :slight_smile:

Step 1, it found my Ubi and Sony Bravia TV
Step 2 figure out what cool things I can do with it

Thanks for adding this

Nice work Ule, i can’t wait to try it out with my rocki play devices once i get home tomorrow.

Please tell me if u get the rockis working :slight_smile: i have 5 and just bought them to use with smartthings, i havant tested it becaus i dont have a hub yet and someone said this app “requires” a hub :confused: