Question

I have cec-client running on my raspberry pi, and I'm able to switch between active sources HDMI 1 - 4 on my Sony TV with:

echo "tx 4F 82 10 00" | cec-client -s
echo "tx 4F 82 40 00" | cec-client -s

What I haven't been able to achieve is switching back to TV as active source. Since the TV normally has ID 0.0.0.0, I would expect the following command would do the trick, but no response from TV:

echo "tx 4F 82 00 00" | cec-client -s

4 = Recorder 1 (raspi)

F = Broadcast

82 = Active Source

00 00 = ID

Has anyone successfully done this pretty basic operation?

Was it helpful?

Solution 2

On my Samsung:

echo "txn 40 9D 00 00" | cec-client -s

works fine. So, do no Broadcast!

OTHER TIPS

try this: echo "as" | cec-client -s

I like tarapitha's answer because it has an explanation.

The TV switchs back to active source if there is no other device that reports to be active (in response to a [Request Active Source] message, so this is the reason why the [Inactive Source] message works.

The only problem is that [Inactive Source] message has to be directly addressed to the TV, so the correct frame would be 40 9d 10 00, if the physical address of the active source is 1.0.0.0

eman's answer probably worked because the TV is forgiving the wrong physical address, it just performs the active source request and finds no active source so sets itself as active.

I recommend this page to understand CEC framing.

Try using : as delimiters (for those who aren't 2013; it probably have changed since then). Otherwise it sends only the first byte (according to debug messages).

I have a Sony receiver (str-dg710) and the as command didn't work for me either. Even tx 15:82:11:00 didn't work. It has to be the broadcast address (f) – tx 1f:82:11:00 finally worked. Although my rasp has its physical cec address 1.0.0.0, switching the receiver inputs manually while running cec-client showed that the first HDMI input has address 11:00 and not 10:00, thus the address in the working tx command.

what about:
echo 'tx 4f 9d 10 00' | cec-client -s -d 1

4 - the source
f - broadcast
9d - <Inactive Source> command
10 00 - physical address (ID) of currently active source = 1.0.0.0

Replace the ID with the one for currently active source.

It does NOT work on my Philips TV, but CEC standard says that "The TV may display its own internal tuner and shall send an <Active Source> with the address of the TV;...", so it may work on some other system.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top