WebAPI setInputSource issues for Q990D Sound Bar

Hi,
I have been working on this for a couple of weeks with no progress.

I am using the API to switch input sources for my Q990D Sound Bar, and it works well for switching to Bluetooth, Wifi, HDMI1, and Optical (“Digital”)

My TV is connected through HDMI eARC
The problem is that the API labels the HDMI eARC source as “digital”, which is the same as the optical port.

Whenever I try to switch to the HDMI eARC via the API, it just goes to the optical port (digital).

These are the available “supportedInputSources”,[“digital”,“HDMI1”,“bluetooth”,“wifi”,“HDMI2”]

None of these options set the soundbar to the HDMI eARC port.

I have noticed ONE difference, and it is the samsungvd.soundFrom. When the tv is set to optical port, the samsungvd.soundFrom value will be 1.
If I set the source to HDMI eARC, the samsungvd.soundFrom value will be set to 25

"samsungvd.soundFrom": {
                "mode": {
                    "value": 25,
                    "timestamp": "2024-10-05T00:23:15.560Z"
                },
                "detailName": {
                    "value": "External Device",
                    "timestamp": "2024-10-05T00:23:15.560Z"

I have not been able to do anything with “samsungvd.soundFrom” - I’ve tried manually changing the value from 1 to 25 and vice versa, but it does nothing.

Is there anything I can do to make the HDMI eARC source work?

Thank you

Hi, @Diegoale2000
So, if I understand correctly, when you select “HDMI eARC” through the app, and then query the device’s current status through the API, the value shown is “digital”, right?

There are several for HDMI but none says eARC, so, the manufacturer may have omitted it from the values supported on the API side.
OCF devices work a little different from the other ones in the platform here’s more info about it:

  • The phone client (ST app) uses OCF’s COAP protocol, which allows the physical device to define its resources (such as the temperature values).
  • So, these values can be written there by the device and as a result, they can be displayed by the app
  • The APIs do not work via OCF, but, the profile is the manifest of what values are available to be accessed from there.

About the capability “samsungvd.soundFrom”, as it’s a custom one, only the manufacturer knows exactly how it works but I see the command setSoundFrom receives two arguments: “mode” and “detailName” which match with the attributes available in the capability, when you send the command, are you including both values?

I know this thread is two and a half months old, but I did want to comment that when you look at the presentation for samsungvd.audioInputSource you get this curious thing:

dashboard:
  states:
    - label: '{{i18n.attributes.bluetooth.label}}'
    - label: '{{i18n.attributes.wifi3pda.label}}'
    - label: Wi-Fi
    - label: AUX
    - label: HDMI
    - label: HDMI1
    - label: HDMI2
    - label: USB
    - label: D.IN/HDMI(ARC)
    - label: Sound Share
    - label: Smart View
  actions: []
  panelItems: []
id: samsungvd.audioInputSource
version: 1

The only way I can make sense of the presentation is if the device config sets the integer idx based on the value of an attribute.

However more of interest is that the optical and ARC sources are combined into one, with the D.IN/HDMI(ARC) label. That is consistent with online documentation suggesting that both ARC and eARC are activated by selecting the D.IN source (in the eARC case automatically switching to TV eARC).

None of the above changes the basic question of how to switch to eARC via the API, but it does perhaps show why there isn’t a separate eARC source to be found.