Samsung Multiroom speakers

Try this repository. It is a fork of macbury’s and is working for me.

Note the change to the custom component folder structure required with later releases of HA.

I’ve tried this with my Samsung R3 speakers, but unfortunately it doesn’t work. Did anyone get this working with Samsung radiant speakers?

samsung_multi_room: Error on device update!

Traceback (most recent call last):
  File "/config/custom_components/samsung_multi_room/media_player.py", line 85, in _exec_cmd
    response = await self.session.get(url)
  File "/usr/local/lib/python3.7/site-packages/aiohttp/client.py", line 497, in _request
    await resp.start(conn)
  File "/usr/local/lib/python3.7/site-packages/aiohttp/client_reqrep.py", line 844, in start
    message, payload = await self._protocol.read()  # type: ignore  # noqa
  File "/usr/local/lib/python3.7/site-packages/aiohttp/streams.py", line 588, in read
    await self._waiter
concurrent.futures._base.CancelledError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 261, in _async_add_entity
    await entity.async_device_update(warning=False)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 375, in async_device_update
    await self.async_update()
  File "/config/custom_components/samsung_multi_room/media_player.py", line 202, in async_update
    value = await self.api.get_state()
  File "/config/custom_components/samsung_multi_room/media_player.py", line 106, in get_state
    return int(await self._exec_get('GetPowerStatus', 'powerStatus'))
  File "/config/custom_components/samsung_multi_room/media_player.py", line 95, in _exec_get
    return await self._exec_cmd('<name>{0}</name>'.format(action), key_to_extract)
  File "/config/custom_components/samsung_multi_room/media_player.py", line 92, in _exec_cmd
    return None
  File "/usr/local/lib/python3.7/site-packages/async_timeout/__init__.py", line 45, in __exit__
    self._do_exit(exc_type)
  File "/usr/local/lib/python3.7/site-packages/async_timeout/__init__.py", line 92, in _do_exit
    raise asyncio.TimeoutError
concurrent.futures._base.TimeoutError

Are you using the repository I linked to immediately above your post?

It’s working for me with Samsung MS-650 speakers.

Thanks Pete! Yes, I used that repository.
I found out that it has something to do with the ‘GetPowerStatus’ command that is missing on non-soundbar speakers:

I’ll will try to rewrite the code to fix it.

I get exactly the same error with the K650 with the dariornelas repo. Anyone else?

just released a new version with a new option:
power_options: False

Put this in your configuration and the component will not use the “GetPowerStatus” command.

1 Like

Thanks Dornelas. I’ve been using your component for some time now.

I am much appreciative of the work you have done.

Could you please explain the power options. I have an MS650 soundbar. Does the power option mean I can now power on/off the soundbar?

Thanks.

Yes, you can power on/off the soundbar.

If power_options = True (the default value)

  • Support for Turn On and Off
  • On update, if device is On, update other values (volume, mute, source, etc…), if it’s Off do nothing

If power_options = False

  • Does not support Turn On or Turn Off
  • On update, always update everything (volume, mute, source)

There’s also an experimental feature, if you play some radio (only TuneIn) it will fetch the station info/picture and update the component. (only tested on HW-MS650)

2 Likes

New with Hass and successfully using your custom component installed with HACS.

Does anyone know how to get the ID’s from the apps on Samsung TV’s, like stated in the application.py file?

APPS = {‘YouTube’: ‘111299001912’,
‘Plex’: ‘3201512006963’,
‘Prime Video’: ‘3201512006785’,
‘Universal Guide’: ‘3201710015067’,
‘Netflix’: ‘11101200001’,
‘Apple TV’: ‘3201807016597’,
‘Steam Link’: ‘3201702011851’,
etc.

For example, the ID of Disney+ app so I can add it in the py file.

@dornelas Does your version of this integration support Samsungs Harman Kardon soundbars (Q series)?

Not sure.
But it should work

Unfortunately it doesn’t seem to be working with them (at least Q80R) :frowning:

Have you tried without power options?

1 Like

Still nothing :frowning: soundbar doesn’t show up in Samsungs “Wireless Audio-Multiroom” app, so I doubt it will work with your integration

Can you test the following command?

curl ‘http://ip_address:55001/UIC?cmd=%3Cname%3EGetVolume%3C/name%3E’

Connection refused :frowning:

Hi. I’m new to home assistant but I’ve got 4 r1 speakers. I’m wondering if using this integration it’s possible for me to set up one “whole home” group of the Samsung speakers, then using homeassistant and this integration, mute any speaker I don’t want audio to come out of at any one time? This is to combat the “all or nothing” approach to speaker groups that Samsung have taken, avoiding having to use the MultiRoom app every time I want to decide where to play music.

I got it working using a different approach, you can find it here:

2 Likes

Try this custom integration:

Strixx76/samsungwam: Home Assistant Integration for Samsung Wireless Audio speakers. (github.com)

Works with my samsung multiroom speakers with browsing tunein and playback control.

I am the author of that integration, and it is finally released in a non alfa version. I have started a thread for discussions about the integration: Samsung Wireless Audio Integration. Please feel free to ask me any questions about the integration or the speakers in that thread.