Reputation: 81
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.
Upvotes: 6
Views: 6226
Reputation: 4634
Hardware workaround for LG TVs with WebOS not supporting CEC STANDBY: https://github.com/ALFISYS/cec_lg_off
Upvotes: 0
Reputation: 4634
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
Upvotes: 1
Reputation: 456
here some additional commands, maybe thats usefull...
Standby:
echo "standby 0" | cec-client -s -d 1
Power On:
echo "on 0" | cec-client -s -d 1
Change HDMI Source:
HDMI 1: echo "tx 4F:82:10:00" | cec-client -s -d 1
HDMI 2: echo "tx 4F:82:20:00" | cec-client -s -d 1
HDMI 3: echo "tx 4F:82:30:00" | cec-client -s -d 1
HDMI 4: echo "tx 4F:82:40:00" | cec-client -s -d 1
Upvotes: 0
Reputation: 25
Use this:
sudo apt-get update;
sudo apt-get install gcc;
sudo apt-get install autoconf;
sudo apt-get install libtool;
sudo apt-get install pkg-config;
sudo apt-get install libselinux1-dev;
sudo apt-get install liblockdev1-dev;
sudo apt-get install gawk;
sudo apt-get install g++;
sudo apt-get install c++;
sudo apt-get install libgudev-1.0-dev;
sudo apt-get install libudev-dev;
mkdir -p $HOME/distr/libcec;
wget -P $HOME/distr/libcec https://github.com/Pulse-Eight/libcec/archive/master.zip;
unzip $HOME/distr/libcec/master.zip -d $HOME/distr/libcec/;
cd $HOME/distr/libcec/libcec-master ./bootstrap;"
./configure --with-rpi-include-path=/opt/vc/include --with-rpi-lib-path=/opt/vc/lib --enable-rpi;
make;
sudo make install;
sudo apt-get install cec-utils;
Then this:
sudo apt-get update
sudo apt-get dist-upgrade
sudo rpi-update
sudo reboot
Upvotes: 0
Reputation: 11
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.
Upvotes: 1