I have a panasonic viera and it did no switch to the correct source.
The problem is because the STB sends the "Active Source" (command 82) to soon.
This is the log when the STB starts from standby:
eHdmiCEC: send message 04 <Image View On> eHdmiCEC: send message 82 10 00 <Active Source> eHdmiCEC: send message 8E 00 <Menu Status> eHdmiCEC: send message 44 6D <User Control Pressed> eHdmiCEC: send message 70 10 00 <System Audio Mode Request> eHdmiCEC: received message 8C <Give Device Vendor ID> eHdmiCEC: send message 87 00 00 00 <Device Vendor ID>
My TV is starting from standby while those messages arrives, but when it's ready to receive commands the TV sends:
eHdmiCEC: received message A0 00 80 45 20 00 01 <Vendor Command With ID>
I solved this problem with a dirty hack, switching to the correct source when am A0 comand arrives. I know this it's not a good solution, but it works.
--- HdmiCec.py 2015-04-26 00:18:13.014611655 +0200 +++ HdmiCec_new.py 2015-04-26 00:19:42.810609515 +0200 @@ -232,7 +232,7 @@ if not inStandby: if config.hdmicec.report_active_source.value: self.sendMessage(message.getAddress(), 'sourceactive') - elif cmd == 0x85: # request active source + elif cmd == 0x85 or cmd == 0xA0: # request active source if not inStandby: if config.hdmicec.report_active_source.value: self.sendMessage(message.getAddress(), 'sourceactive')