I have a TV which doesn't support HDMI-CEC and I've been trying to build a bridge between a Raspberry Pi and my ChromeCast so that the Raspberry Pi can pause or stop play via receiving IR from a remote control.
Using the cec-client on the Pi I can see:
pi@raspberrypi:~/libcec/build $ echo "scan" | cec-client -s -d 1
opening a connection to the CEC adapter...
requesting CEC bus information ...
ERROR: [ 12174] failed to request the physical address
CEC bus information
===================
device #1: Recorder 1
address: 2.0.0.0
active source: no
vendor: Pulse Eight
osd string: CECTester
CEC version: 1.4
power status: on
language: eng
device #4: Playback 1
address: f.f.f.f
active source: no
vendor: Unknown
osd string: Chromecast
CEC version: 1.4
power status: on
language: ???
The failure to request the physical address message is because of the ChromeCast.
So far I've made it the active source, made the Pi the active source, which all do nothing of course since the TV doesn't care, but while playing with those, I've also sent tx commands which are supposed to pause, play or stop. None of which the ChromeCast responds to.
These are some of the commands I have sent:
echo "tx 14 44 46" | cec-client -s -d 1
echo "tx 14 44 61" | cec-client -s -d 1
echo "tx 14 44 45" | cec-client -s -d 1
echo "tx 14 41 25" | cec-client -s -d 1
# etc
None of which have had any response.
Does the ChromeCast require a TV in order to respond? Is there something specific I need to do or send to get the media receiver to respond?
Edit: further research shows the Chromecast sends:
TRAFFIC: [ 47738] >> 4e:83
TRAFFIC: [ 47811] >> 4e:9f
on power up, which is a request for a physical address and the CEC version.
I'd really like to throw a $CAN10 Pi Zero and a couple of bucks of IR receiver and bridge HDMI-CEC around my TV.
txformat quoted above is wrong, the correct format is: echo "tx 14:44:44" | cec-client -s -d 1 Note the semicolons. Sigh^H^H^H^HHuzzah! - J. Longman