电视机看板
2023年3月20日 · 731 字 · 2 分钟
目标:
- 回家电视自动打开,作为看板显示
- 离家电视自动关闭,节约用电,保护电视
需要解决的问题:
整活
设备准备
- Micro HDMI 转 HDMI 数据线(3m)
- 前端:电视,海信 65E55H
- 服务端:Raspberry 4B
HDMI CEC 介绍
HDMI-CEC是一种特殊的协议,用于电视与另一个设备通过HDMI电缆进行通信。该协议允许电视控制另一个设备,同时也允许该设备控制电视。2
大多数国外
现代电视实现了对这一协议的支持,但通常需要在电视的设置中启用。搜索电视型号应该可以找到这个设置的名称。至于国内嘛,呵呵。早在 2005 年,HDMI-CEC 协议就成为 HDMI 1.2a 的一部分。号称 “中国第一,世界第二” 的海信电视,也是近两年的电视才支持这一协议,但是支持的不好。
sudo apt update
sudo apt upgrade
# 安装 cec-client 软件
sudo apt install cec-utils
# 扫描 HDMI-CEC 设备
echo 'scan' | cec-client -s -d 1
注意,Raspberry 有两个 Micro HDMI 输出接口,靠近电源的接口支持 HDMI CEC 协议
opening a connection to the CEC adapter...
requesting CEC bus information ...
CEC bus information
===================
device #0: TV
address: 0.0.0.0
active source: no
vendor: Unknown
osd string: TV
CEC version: unknown
power status: standby
language: ???
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
currently active source: unknown (-1)
从输出的内容可以看出,发现一台支持 HDMI-CEC 协议通信的电视(osd string: TV
),编号(#0
),地址(0.0.0.0
)。但是还有很多字段是 Unknown
,说明这台电视对该协议支持不好。支持良好的电视/设备,扫描结果如下:
device #0: TV
address: 0.0.0.0
active source: no
vendor: Sony
osd string: TV
CEC version: 1.4
power status: standby
language: eng
device #4: Playback 1
address: 3.0.0.0
active source: no
vendor: Sony
osd string: PlayStation 4
CEC version: 1.3a
power status: standby
language: ???
HDMI CEC 使用(自动开机)
echo 'on 0.0.0.0' | cec-client -s -d 1
ADB 曲线救国,实现自动关机
adb connect [xx.xx.xx.xx]:5555
adb shell input keyevent 26
为啥不用 HDMI CEC 关机/待机,因为海信电视不支持,用 HDMI-CEC 发送待机消息,电视完全没有反应。