SmartThings Community

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

Hmm. Not so sure if I understand ?

I have 4 devices in Bubble server.
When I open ST I can send Speak commands to Google home, my Yamaha Receiver, and also my Panasonic TV.

But the WiFi Amadeus Dab radio does not play any Speak commands.

I can Mark\Unmark Create a DLNA renderer and Create an OpenHome renderer on the Google Home check box inside bubble server, on all the other devises I can check the box: Create an OpenHome renderer.

Not so sure if they should be marked or unmarked ? and what do they do.

You can enable virtual DLNA devices in bubble server, as many has you want, but the MediaRenderer App just recognize 1 becouse Bubble server use the same ip and port for each virtual device,

If you have a real hardware DLNA media renderer, Mediarenderer app will discover them without problems.

Example .

Bubble server create a virtual DLNA Device for Google home device. tis is ok because its just 1 virtual device in BB server

I have 10 dlna speakers (pure, sonos, sony, android “private dancer app” , etc ) ok, because are not virtual in BBServer

Ah, then I understand :slight_smile: thank you

I did not know that Google Home was not a DLNA ready device, because I could send music to it from my samsung mobile, but I guess that is because it use Google music and not any DLNA service… I dunno.

But then everything should work. Can it be that some device DONT support Text to Speak at all ?
Is the Mediarender creating the text for the device to speak, or is the text sent to the device who translate the text into Voice ?

My kid have the Amadeus WiFi radio at his room, and it would be awesome if I could make it speak when there is dinner.

Hi, the text to speech must to work, it works creating a mp3 file in amazon server, and let the Mediarenderer to play it, your media renderer must to reach the file (have internet access)

Some Mediarenderers are slow and can crash if no have enough time to load the media, in Mediarenderer player device you can adjust the time, “Time Between actions” and just increase to verify if that helps

I have this installed and working a while now but never could get it to work the way I want it to.
My dlna player is a Samsung S7 loaded with kodi with music on a SD card. I have set it up that when a WeMo wall plug is turned on it plays a song and stops when the switch turns off. This works but only when I load a song to play.
The SD card is loaded with an album and I would like it to play a random song. Is there anyway to do this?

Also I just tried leaving the switch on for a period and it would only play one song and stop with the WeMo switch still on. I have loaded all the music into kodi library and can play them thru kodi.
If I load a music addon it plays continuously

if you wan to play something you must to loaded first , there are several methos in Mediarenderer device type, you can use the metod playTrack and it loads the uri of your sound and play it.

You can use some smart app to catch the event you want and start your audio.

Remember you need to use a control point to play your music and after that ST save each audio you has played , then you can use that save reference to play a track or sound.

try the [Updated] Media Renderer Events, play messages, radio stations, tracks, sounds

Dumb question but what the hell. What do you mean by"control point" and where do I find it

@ule is it possible to integrate this via github? I have tried the below info, but doesn’t work. If this is incorrect, can you please let me know what I should use?

Owner: SmartThingsUle
Name: DLNA-PLAYER
Branch: master

@ule, hello 2 questions. Could you tell me the difference between Media Renderer Connect, Connect Beta and media renderer Player? Also, I notice a delay of 5 to 7 seconds when sending message or speaking text. Is there any way to speed that up?

I have noticed this too, haven’t had time to figure it out. I did check that the delays in the app were zero.

A media Rendere takes 3-5 seconds to load and play a station with a external control point.

St needs 1-2 seconds to send the commands to media renderer

Then a common response time its 4 seconds, Some Mediarederers are so slow and can take more time.

I have notice my media Renderers take more time if they use wifi instead cable.

If you use a software Media renderer like PC or android app (Private Dancer) it takes only the time ST takes to send the command. because they have more process power .

Appreciate the response, my sound is coming from another smartthings smart app, which I think is sending a sound file from the Web.

I really don’t know enough at this point to even provide or participate in a meaningful conversation about it. I do know others using the same setup as me do not see the delay. Hence I believe it’s something local to me. I should be able to play and learn more about it this weekend.

I do appreciate this app, your work and how helpful you are to those of us still learning.

@ule, hello 2 questions. Could you tell me the difference between Media Renderer Connect, Connect Beta and media renderer Player?

Media Renderer Connect its the smartapp to find your mediarenderers, the media renderer Player its the Device Handler for each device you have

The Beta its a test for other user.

Thank you, last question, are there any settings on the DTH that I can use to speed things up? Or ones I should not use that would slow things down?

The mediaplayer its made to be generic, this must to work with most of the mediarenderes, but some M renderes are faster, if you think your devices are fast, you can reduce the time in the function

If you edit the mediarender player

in line 594 there is a function “playByMode” , you can reduce or eliminate the function delayControl(xxxxxx)

I suggest you to change the value to half and check if your MR works fine.

Not seeing a function delay control below is the start of line 594

def playByMode(uri, duration, volume,newTrack,mode) {
def playTrack = false
def restoreVolume = true
def eventTime = new Date().time
def track = device.currentState(“trackData”)?.jsonValue
def currentVolume = device.currentState(“level”)?.integerValue
def currentStatus = device.currentValue(“status”)
def currentPlayMode = device.currentValue(“playMode”)
def currentDoNotDisturb = device.currentValue(“doNotDisturb”)
def level = volume as Integer
def actionsDelayTime = actionsDelay ? (actionsDelay as Integer) * 1000 :0
def result = []
duration = duration ? (duration as Integer) : 0

Anyone have any ideas to get this working with the Samsung R1 multiroom speakers. I successfully installed the ide apps but when I go to detect in the Smartthings app the speaker never shows up. I know its possible since Samsung has their own smart app that finds it. Hopefully someone can figure something out soon.

Not sure if you followed the steps here

https://support.smartthings.com/hc/en-us/articles/205833690-Samsung-Multiroom-Speakers

R1 speaker does show up on Smartthings after, here’s mine screenshot

It doesn’t show up as a DLNA device after doing discovery process under MediaRenderer so if that’s what you mean then add to the list of looking for the answer to set it up too. Ive tried wifi and Bluetooth as source but still it is not discovered.

@ule, was hoping to get a little more assistance with the above? I did find delay control, but have no idea which one to change.