New Official Integration: Samsung Multiroom Audio

I’m not sure. TBH if I use the MultiRoom app to play music, and an announcement is made, then it does resume.

If I’m streaming a radio URL using WebCoRE it doesn’t. I’ve never been able to fathom why there’s a difference. So I’m not sure about switching inputs. But certainly worth a go?

Regards
Roy

By the way, I do have the commands you can send so you can switch inputs, if that helps?

"Speaker One Bluetooth"
http://SPEAKER_IP:55001/UIC?cmd=%%3Cname%%3ESetFunc%%3C/name%%3E%%3Cp%%20type=%%22str%%22%%20name=%%22function%%22%%20val=%%22bt%%22/%%3E

"tvsoundconnect"
http://SPEAKER_IP:55001/UIC?cmd=%%3Cname%%3ESetFunc%%3C/name%%3E%%3Cp%%20type=%%22str%%22%%20name=%%22function%%22%%20val=%%22soundshare%%22/%%3E

“aux” (If supported or if you have the WAM270 for example)
http://SPEAKER_IP:55001/UIC?cmd=%%3Cname%%3ESetFunc%%3C/name%%3E%%3Cp%%20type=%%22str%%22%%20name=%%22function%%22%%20val=%%22aux%%22/%%3E

"Speaker One WiFi"
http://SPEAKER_IP:55001/UIC?cmd=%%3Cname%%3ESetFunc%%3C/name%%3E%%3Cp%%20type=%%22str%%22%%20name=%%22function%%22%%20val=%%22wifi%%22/%%3E

Add a “Make Web Request” to the Piston, when you want the input to change.
Or if its easier, add virtual buttons to change the inpits using the above in Web requests

URL Value = Command line
Method Value = Get
Content Type Value = JSON

Hope this helps!

Cheers
Roy

1 Like

Gave up on Samsung developing a integration that works with the HW-MS650 soundbar. Have finished an initial (beta) version based on the Port 55001 interface. It includes Music Control, Soundbar Control, and User-defined Presets. See the thread: “{BETA} Samsung WiFi Soundbar Integration”.

I will likely work with all Samsung WiFi soundbars and probably with any single multi-room speaker. There are no mulit-room functions built in this initial version.

Dave

Note: looking above, I may need to modify the source info. Soundbars do not have soundshare as a function.

2 Likes

This is brilliant Dave!! Many thanks for sharing. It took me a little to get the Tune in but going, and yes being exact was the key :slight_smile: It lags a little but I think thats very much the way things are with these, but really liking this. I’d been using WebCoRE prior to this, but the speak text and resume really doesn’t work if I’d executed a radio URL from a virtual button, but this way it does if the commands sent to the speakers are native.

The grouping, would be a MASSIVE plus, but completely understand how complex a method that would be :frowning:

But thanks again for sharing this, love it!!

1 Like

i am now trying to integrate my Service Manager and Device Handler with Big Talker and other URL-based players. The issue is that I can not find a Play URL command for the Samsung Multiroom speaker - Although I know one exists. I do have the response to such a command (captured via wireshark on my PC):

<method>UrlPlayback</method>
<version>1.0</version
><speakerip>192.168.0.122</speakerip>
<user_identifier></user_identifier>
<response result=""ok"">
     <url>http://s3.amazonaws.com/smartapp-media/sonos/the+mail+has+arrived.mp3</url>
     <buffersize>0</buffersize>
     <seektime>0</seektime>
</response>

I need the command that causes this to occur. Then the device handler will support:
Presets of Speaker Content Player Services,
Presets of Groups (i.e., single button group creation.
Playing URL, such as Big Talker, etc.

ANY HELP ON DEFINING THIS COMMAND WOULD BE APPRECIATED.

As an alternative: Can I use the Multi-room speakers as children to my Speakers (in the Device Handler)?

Have you seen the Generic Media Renderer (DNLA speakers) solution for a reference:

How to fix Samsung R1 and possibly other models volume creep issue

Credit to @Gutheinz for providing the URI to change the volume.

In case anyone is still having the volume drop issue here is how I got around it.

I have webcore set to use a motion trigger to make a web request to change the volume. Here is the piston example I am using for some reason Webcore truncates the URI request to make the volume change so you need to enter this into the Webcore URL request field - http://x.x.x.x:55001/UIC?cmd=SetVolume<p%20type=“dec”%20name=“Volume”%20val=“10”/>

Make sure to change x.x.x.x to the private IP of your Samsung speaker and you can change the Volume Value to whatever you would like (i.e. Val=20) seems that using the URL request volume is between 1 min and 30 max volume. 10 seems to be about 33% volume.

Hope this helps

Samsung R1 set volume piston

1 Like

dang I couldn’t get this to work, I plugged it into my piston that runs every 30sec but its not changing the volume. Any ideas?

Can you share an example of your piston and the full URI string?

I didnt change much on the URI, I tried I higher val number but didnt seem to make a difference. Also reduced the timer to 30sec while testing.
http://192.168.1.200:55001/UIC?cmd=SetVolume<p%20type=“dec”%20name=“Volume”%20val=“10”/>

Couple of things yours is is in bracket [ ] not sure why it’s showing that way and it looks like your URL string is going to webcore should be exactly like I have it only with your ip. Also I believe you need the location as I have in my example.

Yeah I dont know why it was showing a bracket there. For good measure I recreated your piston exactly. Logs dont show the web request failing but its not changing anything.

Sending internal web request to: 192.168.1.200:55001/UIC?
cmd=SetVolume<p%20type=“dec”%20name=“Volume”%20val=“10”/>
Executed virtual command httpRequest (3ms)

Are you putting http:// in front of the URL link if you don’t webcore defaults to HTTPS.

So doing a stare and compare your link is missing parts of the URI string. - http://x.x.x.x:55001/UIC?cmd=<name>SetVolume</name><p%20type="dec"%20name="Volume"%20val="12"/>

I noticed that when copy and pasting into the forum it is changing the formatting and removing pieces of the code which is probably the same problem I had when first trying to get this to work. The above should be formatted properly. I was able to get it to paste properly by clicking option for preformatted text </> and then pasting in the URI string in between the brackets.

1 Like

That was it, Thanks for your help! everything is working now. So frustrating when a simple GET request wouldnt work :stuck_out_tongue:

Cool glad you got it working, I have been dealing with this since February of this year, and have opened multiple tickets. It seems like every time support tells me its a smart app causing the problem. First time they said it was likely webcore, and last time they told me to remove big talker. I have tried multiple different smart apps and no matter what I used the volume would eventually dropped. This has been working great for me for the past few days so I am pretty excited to finally have these working as a reliable announcement source using this work around. I don’t use these for music only announcements so I am not concerned about this changing the volume during a music session.

Yes but only one speaker at a time. this is because the ECHO will only connect to one bluetooth device at a time. I was able to use my ECHO to voice control my samsung speakers (more then one) via my smartthings hub, but it was not reliable and I could only play and pause a station of music. I could not change the station.

ISSUE / CONCERN.

On completing the Add a Thing, the system automatically installs my HW-MS650 soundbar as one of these devices. The problem is, there is currently NO CONTROL of the device (and there was several weeks ago). When trying to use the Speaker Companion, I do get the log entry “debug playTrackAndResume(https://s3.amazonaws.com/smartapp-media/polly-tts/salli/this_is_a_test.mp3, 1, null)”, but also no sound.

I know - not a supported device. If that is the case, then you need to preclude installation.

Additionally, a request.

Does anyone know the port and path for the Speaker (i.e., R1) RenderingControl and AVTransport upnp services. I know that for the my soundbar, the paths are:

Port: 9197
Paths:
RenderingControlPath = "/upnp/control/RenderingControl1"
RenderingControlEvent = "/upnp/event/RenderingControl1"
AVTransportPath = "/upnp/control/AVTransport1"
AVTransportEvent = “/upnp/event/AVTransport1”

Thanks.

Dave

I don’t know the port and path, but if you can give me some guidance on how to discover port and path I could do some testing for you.

Thanks for the offer. I am able to complete normal scans and searches using my own tools. However, I believe that the ones I need are not published via discovery. You have to know about them.

Today, I downloaded a port discovery tool for my PC and have found several other possible experiments.