本文发自 http://www.binss.me/blog/home-assistant-learn-ir-command-by-aqara-ac-adapter/,转载请注明出处。
最近搬家,花了一番功夫重新部署了我的 "智能家居套件" ,由于这次是整租配有电视,因此添置了一台 Apple TV 。
那么需要使用时标准操作为:打开电视 - 打开 Apple TV - enjoy ,整个过程需要操作两个遥控器。Apple TV 可以通过 iPhone 来操作,那么电视的遥控器也是否能省去呢?
理论上,支持 HDMI-CEC 的电视是能够跟随 Apple TV 的开关机而开关机的,然而出租房配的破电视肯定是不支持的。为此,我们考虑从另外一个角度入手:模拟电视遥控发出的红外指令。
捕获指令
我的 "智能家居套件" 中一个重要组件就是 Aqara 空调伴侣。其通过模拟空调遥控的红外指令来实现对空调的控制,还提供学习、重放红外指令的功能,因此我们可以利用它来模拟电视遥控、操纵电视。
我的 Aqara 空调伴侣 已接入到 home-assistant 中,通过 xiaomi_airconditioningcompanion 插件进行控制。借助于它们,我们可以很容易地对红外指令进行捕获。
首先打开 home-assistant 主页面, Developer Tools - SERVICES ,在 Service 列表里选中 climate.xiaomi_miio_learn_command 。如果找不到,表示 xiaomi_airconditioningcompanion 插件没有正确加载,请检查 HA 配置 configuration.yaml 。
点击 CALL SERVICE 按钮,随后按下电视遥控器上要模拟的按键(我这里是开机),很快在 Notifications 栏会有小黄点,点开即可找到 FE 开头的红外码。
由于捕获可能存在误差,建议重复捕获,选择出现频率最高的红外码。
验证指令
为了验证捕获的指令是否有效,只需在 Developer Tools - SERVICES ,在 Service 列表里选中 climate.xiaomi_miio_send_command ,在 Service data 中填入 json 格式的数据即可,如:
{"command": "FE000000000000000000000000070024224B003700AA00E301C60382100413884300000000000000000101010101010001010001010000000000010000010101010542065E"}
若指令正确,则将观察到如同按下遥控器上该按键的效果。
重放指令
为了方便使用,我们将该指令做成 HA 的一个按钮,并接入到 homekit 中通过语音控制。
首先确保在 home-assistant 的配置文件 configuration.yaml 中,包含有语句:script: !include scripts.yaml
。表示 HA 会去读写 scripts.yaml 的脚本。
随后打开 home-assistant 主页面,Configuration - Script ,点击右下角的加号,按照描述输入内容,如:
点击保存后,发现其已经被记录到 scripts.yaml 中。
binss@binss-NAS:/volume1/docker/homeassistant$ cat scripts.yaml
'1576897204336':
alias: 电视机
sequence:
- data:
command: FE000000000000000000000000070024224B003700A900E501C60381100413884300000000000000000101010101010001010001010000000000010000010101010542065E
service: climate.xiaomi_miio_send_command
随后我们可以在 Overview 界面添加一个 Switch 组件:
点击该组件即可实现之前录入的开关电视机效果。
根据 HA 文档,任何 script 会被作为一个 Switch 被添加到 homekit 中,为确保生效,建议重启 HA ,随后我们就可以在 home app 中看到这个按钮:
点击即可实现电视开 / 关机,也可以通过 "Hey,Siri 打开 电视机" 来开关电视。注意,之后喊 "关闭 电视机" 是没有效果的,因为这个 Switch 为无状态按钮,触发后会复位,因此始终处于关闭状态,因此无论想打开还是关闭电视,都要喊 "打开电视机"。
至此,我们实现了一个遥控器 (iPhone),控制电视和 Apple TV 的目的。若接入 Siri ,只需呼喊 "Hey,Siri,打开电视和电视机" 即可,岂不乐乎。
1F HA新手 3 years, 8 months ago 回复
你这个空调伴侣有没有具体型号啊?听说2取消了红外学习功能,是不是不能接收分析红外信号了?
2F binss MOD 3 years, 8 months ago 回复
回复 [1F] HA新手:两三年前买的了,型号不记得了。这个是 Aqara 空调伴侣,不是米家的,我看目前应该都是支持的
3F yetone 3 years ago 回复
弱弱问一下,如何添加一个「Switch 组件」啊?
4F binss MOD 2 years, 12 months ago 回复
回复 [3F] yetone:点右下角的加号