Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Turn off TV using cec-client on RPI

I have RPi B+ running Raspbian connected to my LG TV via HDMI. I succefully compiled and installed cec-client and I can easly turn on TV using command echo "on 0" | cec-client -s, however when I try to turn tv off using command echo "standby 0" | cec-client -s I get this output:

opening a connection to the CEC adapter...
DEBUG:   [             316]     unregistering all CEC clients
DEBUG:   [             318]     Broadcast (F): osd name set to 'Broadcast'
DEBUG:   [             324]     InitHostCEC - vchiq_initialise succeeded
DEBUG:   [             325]     InitHostCEC - vchi_initialise succeeded
DEBUG:   [             326]     InitHostCEC - vchi_connect succeeded
DEBUG:   [             330]     logical address changed to Broadcast (f)
DEBUG:   [             333]     RegisterLogicalAddress - registering address e
DEBUG:   [             605]     logical address changed to Recorder 1 (1)
DEBUG:   [             605]     logical address changed to Free use (e)
DEBUG:   [             605]     Open - vc_cec initialised
NOTICE:  [             605]     connection opened
DEBUG:   [             607]     processor thread started
DEBUG:   [             608]     << Broadcast (F) -> TV (0): POLL
DEBUG:   [             611]     initiator 'Broadcast' is not supported by the CEC adapter. using 'Free use' instead
TRAFFIC: [             612]     << e0
DEBUG:   [             647]     >> POLL sent
DEBUG:   [             647]     TV (0): device status changed into 'present'
DEBUG:   [             647]     << requesting vendor ID of 'TV' (0)
TRAFFIC: [             647]     << e0:8c
DEBUG:   [            1858]     expected response not received (87: device vendor id)
TRAFFIC: [            1859]     << e0:8c
DEBUG:   [            3070]     expected response not received (87: device vendor id)
NOTICE:  [            3070]     registering new CEC client - v2.1.4
DEBUG:   [            3070]     detecting logical address for type 'recording device'
DEBUG:   [            3070]     trying logical address 'Recorder 1'
DEBUG:   [            3070]     << Recorder 1 (1) -> Recorder 1 (1): POLL
TRAFFIC: [            3071]     << 11
DEBUG:   [            3071]     UnregisterLogicalAddress - releasing previous logical address
DEBUG:   [            3072]     logical address changed to Broadcast (f)
DEBUG:   [            3073]     RegisterLogicalAddress - registering address 1
DEBUG:   [            3255]     logical address changed to Free use (e)
DEBUG:   [            3255]     logical address changed to Recorder 1 (1)
TRAFFIC: [            3255]     << 11
DEBUG:   [            3255]     >> POLL not sent
DEBUG:   [            3256]     using logical address 'Recorder 1'
DEBUG:   [            3256]     Recorder 1 (1): device status changed into 'handled by libCEC'
DEBUG:   [            3256]     Recorder 1 (1): power status changed from 'unknown' to 'on'
DEBUG:   [            3256]     Recorder 1 (1): vendor = Pulse Eight (001582)
DEBUG:   [            3256]     Recorder 1 (1): CEC version 1.4
DEBUG:   [            3256]     AllocateLogicalAddresses - device '0', type 'recording device', LA '1'
DEBUG:   [            3256]     Recorder 1 (1): osd name set to 'CECTester'
DEBUG:   [            3256]     Recorder 1 (1): menu language set to 'eng'
DEBUG:   [            3258]     GetPhysicalAddress - physical address = 3000
DEBUG:   [            3258]     AutodetectPhysicalAddress - autodetected physical address '3000'
DEBUG:   [            3260]     Recorder 1 (1): physical address changed from ffff to 3000
DEBUG:   [            3262]     << Recorder 1 (1) -> broadcast (F): physical adddress 3000
TRAFFIC: [            3263]     << 1f:84:30:00:01
NOTICE:  [            3415]     CEC client registered: libCEC version = 2.1.4, client version = 2.1.4, firmware version = 1, logical address(es) = Recorder 1 (1) , physical address: 3.0.0.0, host: armv6l-unknown-linux-gnueabihf, features: 'P8 USB' 'P8 USB detect' 'RPi', git revision: a560d24, compiled on: Sun Sep 14 17:49:41 UTC 2014 by pi@raspberrypi on Linux 3.12.28+ (armv6l)
DEBUG:   [            3415]     << Recorder 1 (1) -> TV (0): OSD name 'CECTester'
TRAFFIC: [            3415]     << 10:47:43:45:43:54:65:73:74:65:72
DEBUG:   [            3716]     << requesting power status of 'TV' (0)
TRAFFIC: [            3716]     << 10:8f
TRAFFIC: [            3868]     >> 01:8c
DEBUG:   [            3868]     >> TV (0) -> Recorder 1 (1): give device vendor id (8C)
DEBUG:   [            3871]     << Recorder 1 (1) -> TV (0): vendor id Pulse Eight (1582)
TRAFFIC: [            3873]     << 1f:87:00:15:82
TRAFFIC: [            4087]     >> 01:90:00
DEBUG:   [            4087]     >> TV (0) -> Recorder 1 (1): report power status (90)
DEBUG:   [            4088]     TV (0): power status changed from 'unknown' to 'on'
DEBUG:   [            4089]     expected response received (90: report power status)
DEBUG:   [            4091]     << requesting vendor ID of 'TV' (0)
TRAFFIC: [            4091]     << 10:8c
TRAFFIC: [            4323]     >> 0f:87:00:e0:91
DEBUG:   [            4323]     >> TV (0) -> Broadcast (F): device vendor id (87)
DEBUG:   [            4323]     TV (0): vendor = LG (00e091)
DEBUG:   [            4323]     << Recorder 1 (1) -> Broadcast (F): vendor id Pulse Eight (1582)
TRAFFIC: [            4323]     << 1f:87:00:15:82
DEBUG:   [            4474]     expected response received (87: device vendor id)
DEBUG:   [            4475]     replacing the command handler for device 'TV' (0)
DEBUG:   [            4478]     TV (0): CEC version 1.3a
DEBUG:   [            4479]     TV (0): menu language set to 'eng'
DEBUG:   [            4481]     Recorder 1 (1): vendor = LG (00e091)
DEBUG:   [            4485]     replacing the command handler for device 'Recorder 1' (1)
DEBUG:   [            4485]     Recorder 1 (1): CEC version 1.3a
NOTICE:  [            4487]     << putting 'TV' (0) in standby mode
TRAFFIC: [            4488]     << 10:36
DEBUG:   [            4552]     unregistering all CEC clients
NOTICE:  [            4555]     unregistering client: libCEC version = 2.1.4, client version = 2.1.4, firmware version = 1, logical address(es) = Recorder 1 (1) , physical address: 3.0.0.0, host: armv6l-unknown-linux-gnueabihf, features: 'P8 USB' 'P8 USB detect' 'RPi', git revision: a560d24, compiled on: Sun Sep 14 17:49:41 UTC 2014 by pi@raspberrypi on Linux 3.12.28+ (armv6l)
DEBUG:   [            4559]     Recorder 1 (1): power status changed from 'on' to 'unknown'
DEBUG:   [            4561]     Recorder 1 (1): vendor = Unknown (000000)
DEBUG:   [            4564]     Recorder 1 (1): CEC version unknown
DEBUG:   [            4565]     Recorder 1 (1): osd name set to 'Recorder 1'
DEBUG:   [            4567]     Recorder 1 (1): device status changed into 'unknown'
DEBUG:   [            4567]     unregistering all CEC clients
DEBUG:   [            4624]     UnregisterLogicalAddress - releasing previous logical address
DEBUG:   [            4630]     logical address changed to Broadcast (f)

And nothing happens. Also I am using CLI only, and after some time RPi put TV into blank screensaver, but I cant figure out how to do this immidiately on my command.

like image 326
user3570799 Avatar asked Sep 15 '14 12:09

user3570799


2 Answers

It seems there is nothing wrong with libCEC. However, the HDMI-CEC implementation of LG TV model might just be ignoring the standby command. You should test your Raspberry Pi with some other HDMI-CEC compliant device to check if the standby command is working properly.

like image 112
Gustavo Henrique Nihei Avatar answered Oct 01 '22 18:10

Gustavo Henrique Nihei


LG TVs (and only TVs) do not support CEC Standby command.See here. Do not know if it is libcec implementation's or it is TV's limitation

like image 43
filimonic Avatar answered Oct 01 '22 16:10

filimonic