2013-03-09 266 views
2

我的总体规划是能够从我的树莓派发送CEC命令来执行诸如打开/关闭电视以及连接到电视的其他设备等事情。然后,我将添加语音识别来发送这些命令......这是另一天。我已经阅读了CEC,但从我收集的内容看来,如果没有CEC USB适配器,您不能直接通过命令行发送CEC命令?我在我的pi上安装了cec-client和libCEC库,但是当我运行cec-client -l时,它不显示任何设备。通过HDMI通过命令行发送CEC命令

我的问题是,如何在没有适配器的情况下通过命令行向我的电视发送CEC命令?我错过了关于CEC的一些基本元素?

UPDATE

除了下面这里的职位是要求其中有一个我已经把我的.bashrc内打开电视/关闭一些CEC命令计算器的PI部分的链接和改变输入

https://raspberrypi.stackexchange.com/questions/5345/raspmbc-send-cec-commands-without-cec-adapter

+1

我不知道这是否是对你有用的提取,但也许这是一个起点点。 [libCEC](https://github.com/Pulse-Eight/libcec) – ManuelSchneid3r 2013-03-10 11:40:16

回答

3

最近libcec的版本将识别树莓派的硬件作为CEC适配器。
要通过命令行发送控制命令,基本上是:

echo "on 0" | cec-client -s 

将开机设备0(即电视)的更复杂的命令

+1

当前cec-client注销所有活动的CEC监听器。执行此命令后,Kodi会丢失与HDMI网络的连接。 – 2016-04-11 20:26:59

1

可以通过管道
退房CEC的客户端交互的shell命令于CEC客户端二进制

echo "on 0"  | cec-client -s # turn on the television 
echo "standby 0" | cec-client -s # turn it off (standby) 

为了完整起见,这些都是一些其他的东西,你可以做

列表连接设备

tv# cec-client -l 
libCEC version: 3.1.0, git revision: libcec-3.1.0+5-6d68d21, compiled on Fri 8 Apr 15:44:58 UTC 2016 by [email protected] on Linux 4.1.19-v7+ (armv7l), features: P8_USB, DRM, P8_detect, randr, RPi 
Found devices: 1 

device:    1 
com port:   RPI 
vendor id:   2708 
product id:   1001 
firmware version: 1 
type:    Raspberry Pi 

检查所有可用的CEC命令

tv# echo h | cec-client -s -d 1 
opening a connection to the CEC adapter... 

================================================================================ 
Available commands: 

[tx] {bytes}    transfer bytes over the CEC line. 
[txn] {bytes}    transfer bytes but don't wait for transmission ACK. 
[on] {address}   power on the device with the given logical address. 
[standby] {address}  put the device with the given address in standby mode. 
[la] {logical address} change the logical address of the CEC adapter. 
[p] {device} {port}  change the HDMI port number of the CEC adapter. 
[pa] {physical address} change the physical address of the CEC adapter. 
[as]      make the CEC adapter the active source. 
[is]      mark the CEC adapter as inactive source. 
[osd] {addr} {string}  set OSD message on the specified device. 
[ver] {addr}    get the CEC version of the specified device. 
[ven] {addr}    get the vendor ID of the specified device. 
[lang] {addr}    get the menu language of the specified device. 
[pow] {addr}    get the power status of the specified device. 
[name] {addr}    get the OSD name of the specified device. 
[poll] {addr}    poll the specified device. 
[lad]      lists active devices on the bus 
[ad] {addr}    checks whether the specified device is active. 
[at] {type}    checks whether the specified device type is active. 
[sp] {addr}    makes the specified physical address active. 
[spl] {addr}    makes the specified logical address active. 
[volup]     send a volume up command to the amp if present 
[voldown]     send a volume down command to the amp if present 
[mute]     send a mute/unmute command to the amp if present 
[self]     show the list of addresses controlled by libCEC 
[scan]     scan the CEC bus and display device info 
[mon] {1|0}    enable or disable CEC bus monitoring. 
[log] {1 - 31}   change the log level. see cectypes.h for values. 
[ping]     send a ping command to the CEC adapter. 
[bl]      to let the adapter enter the bootloader, to upgrade 
          the flash rom. 
[r]      reconnect to the CEC adapter. 
[h] or [help]    show this help. 
[q] or [quit]    to quit the CEC test client and switch off all 
          connected CEC devices. 
================================================================================ 

https://ownyourbits.com/2017/02/02/control-your-raspberry-pi-with-your-tv-remote/