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

Thanks :-)… That really helped. It looks like BublleUPnP is changing the port number now and then. From recent smarthings live logging the port number is different ip:C0A80080, port:C27C. So i converted this hex to decimal and used following url

I am getting the file back now. Here is the content of the file

<root xmlns="urn:schemas-upnp-org:device-1-0">
<friendlyName>Study (DLNA)</friendlyName>
<modelDescription>BubbleUPnP Google Cast DLNA renderer</modelDescription>
<modelName>BubbleUPnP Google Cast DLNA renderer</modelName>
<dlna:X_DLNADOC xmlns:dlna="urn:schemas-dlna-org:device-1-0">DMR-1.50</dlna:X_DLNADOC>

Do you still want me to try installing BubbleUPnP on a different server?

If its possible will be great just to confirm the first part of the uuid always remain the same

Hi @hobby78 I have created a beta for your chromecast audio with BubbleUPnP server, This connect works if the uuid does not change, the ip and port are updated automatically every sync.

I have program with this considerations
1.- The uuid remains all time
2.- The port and ip can be changed by the server

You must to uninstall all your speakers (from smarthings) and install them again.

send me your feedback

Just update the MediaRenderer Connect with this version

I will appreciated your donations.

1 Like

@ule. Thanks for the fix. It worked. I have made the donation . Thanks again

Hi @hobby78 , thank you, your donation is very much appreciated, I have detected the player is not updating the information, I’m working on that,

Could you share your exprerience with the Chromecast audio ?

I suggest you to use the media renderer events app, I use it to send music to my speakers from Radionomy stations, very useful.

Hi @ule ,

Fantastic app and is working great for me sending info to a VLC client!

I have however noticed a couple of errors related to the location subscription, it’s not impacting stopping it working though but thought you may want to be aware…

When triggering a routine

I get this:
java.lang.StringIndexOutOfBoundsException: String index out of range: 154 @ line 275

which relates to this line:
def bodyString = new String(parsedEvent.body.decodeBase64())

parsedEvent returns two entries (one blank)

[headers:SFRUUC8xLjEgMjAwIE9LDQpDb250ZW50LUxlbmd0aDogMg==, body:T0s=]


Thanks for looking into the player not updating information. My main usage of Media Render(connect) is for setting up Media Render Events. Let me start with a overview of my setup. When i constructed my house couple of years ago, i ran speaker cables to each room. These speaker cables are terminated with HTC multi channel amplifiers. These HTC amplifiers get audio source from a PC. I build a PC with 8 cheap USB audio cards and controlled them through JRiver media center software. This JRiver software creates DLNA Renderer for each audio card . I use their JRemote app to play different music in various zones. Then i came across your Media Renderer smart app. Using that, i play various sounds for various actions. If a garage door is opened, I configured your app to play “Garage door opened” message on kitchen and family room speakers. If mode is away and any of the door sensor is opened , it will play dog barking sound and siren sounds in various speakers. It was working good. But with my JRiver whole house setup, i can’t cast music from my phone or Google Home. I can’t play google play music, youtube from my phone to an audio zone. Then i decided to upgrade my whole house audio from audio pc with sounds cards to Google chrome cast devices. Then i realized your app will work only on DLNA and not on google cast devices. So I started simulating DLNA Renderer using BubbleUPnP software. Now i am getting benefits of google cast as well as media renderer event app benefits also.

Regarding feedback on Chromecast, I am just using Chromecast audio devices. So far, all my 8 chrome cast audio devices are stable. I am able to control them through Google Home easily. I can say “play some news in Kitchen” and “play song in family room” . It is very convenient. Also those can be controlled from smartthings thanks to your software . Out of the box support of smartthings by Google Home is one way. Google Home can talk to smartthings Hub to control things. But thanks to your app, i can control Goolge Home from Smartthings Hub. Since Google Home has an build cast functionality, that can be exposed as DLNA renderer and controlled using your app to play various sounds.

Hi @hobby78, Great into, I have not google home, but I have develop some poor’s man echo devices in the house, I use some old android devices (10 dlls in ebay) and talk with them with “OK GOOGLE” The commands are sent to smartthings app “alexa connect” and I can control my house, I can ask all questions to alexa like weather, news, jokes… and they response, I have several dlna speakers (of course) and I can command like “ok google, play jazz in kitchen” or just “ok, google play jazz” if I’m in the kitchen, becouse each android device have an id, the same with ligths, ac, switches, I can ask the door status , person status, arm the alarm , lock status , but the best ,in several languages , like “ok google , quién esta en casa” and answerd in spanish, english or any language I configure, to ask alexa is just in english but the commands are in any language, my poor’s man echo does not use the google music service, instead I use Radionomy statiosn, are free and work great with DLNA, I have added many station, jazz, love, relax, ambient, pop, christmas… This season when I arrive to home my house play christmas songs, I’m going to try to get a google home to test the device.

Rigth now I’m working in te info response of the dlna connect, I hope finish today

1 Like

Anyone able to use an iMac as the media renderer? I have an imac in a room where I would like to have the ST notification to play on the build in speaker. Anyone doing this yet? I can’t seem to find any software that will do that.

I have a Samsung R1 connected to SmartThings, but the mediarenderer won’t find the R1 on my network. Is this because I’ve already connected it to SmartThings? It finds 3 other DLNA devices on my network.

Hi @Matthew_Freestone, I don´t think so, You must to find the speaker, if you have it already installed, maybe you could not install it again, but it must be found it, when you search in MR connect, Its possible your speaker is not in DLNA mode , check the manual and verify if you need to make something to set the speaker in DLNA mode, try to use some DLNA control point to check if the speaker its visible.

Thank you very much for the quick reply, I’ll check your suggestions and get back to you.

I can’t seem to find a way to turn on or off DLNA on the speaker. The app on the phone can see DLNA devices on my network. If I already have the speaker connected to smartthings would that prevent generic media renderer from finding it?

Hi @Matthew_Freestone, Try to use a Dlna Control point to verify the speaker, if you could not find the speaker with the Control point , your speaker is not visible to DLNA, I have read the Samsung R1 supports DLNA, Some speakers have several modes like airplay, bluetooth, dlna , etc and they can switch the modes, do not use the samsung app , try to use some app that I describe in the first post.

Ok yeah, I can’t seem to get anything to find the speaker via DLNA, so it must be just in it’s own ‘app’ mode… I have no idea how to get it out of that mode though but I’ll start looking and let you know.

So the input source is set to wifi. It has 3 modes, wifi, Bluetooth, Sound Connect for TV’s (Bluetooth). it’s already in wifi mode sadly. It says DLNA ‘yes’ on supported. I’m wondering sadly if the dlna support is via it’s app. that would suck.

Hello, the new BETA version makes my speakers show as ‘Not present’ eventhough they are present and work fine with all the events.

I followed all the steps and deleted all speakers and installed the 2.0.3 app and readded the speakers.

Everything was working perfectly with the old 2.0.1 app.

Started getting this error today.

e106902c-3075-402a-94a5-42157f9e761b  5:21:23 PM: error java.lang.NullPointerException: Cannot invoke method leftShift() on null object @ line 235
e106902c-3075-402a-94a5-42157f9e761b  5:21:23 PM: error java.lang.NullPointerException: Cannot invoke method leftShift() on null object @ line 235
e106902c-3075-402a-94a5-42157f9e761b  5:21:23 PM: error java.lang.NullPointerException: Cannot invoke method leftShift() on null object @ line 235

After installing Media Renderer connect and doing discovery it finds my devices. When I select one and hit “done” it goes back to the main screen where the option to run discovery is again. From there If I hit “done” again it says “Error saving page” anyone else have this problem?