现在使用的两个插件switch/broadlink.py(官方自带)、climate/xiaomi_miio.py(syssi大神的),都是一个设备初始化一个服务,然后以红外码作为传入参数进行调用。如果想调用预设的红外码,得配置成switch或script之类的entity,间接调用service发送红外码,假如要使用按键多的电视遥控器,会额外生成很多entity。另外,一个博联RM或者空调伴侣生成一个service,会让HA的service列表很长,特别加上一个script会独立生成一个servcie,会长得令人崩溃。于是乎对两个插件改造了一下。
0. 插件说明
下载地址
- https://github.com/cnk700i/ha_modified_components
目录
连带文件夹,放到{HA配置目录}/custom_components/下。
- https://github.com/cnk700i/ha_modified_components
switch/broadlink.py
- 修正开关复位的bug
- 增加显示不可用状态
- 增加配置内置红外码
- 通过服务方式调用预设内置红外码
climate/xiaomi_miio.py
- 增加配置内置红外码
- 通过服务方式调用预设内置红外码
1.环境
- Ubuntu 18.04 + HA 0.80.0
2.使用说明(0.82版)
2.1学码
- service: switch.broadlink_rm_learn_command[博联RM]
字段 | 是否必填 | 描述 |
---|---|---|
entity_id | 否 | 如果不指定,指令将发送到所有博联RM设备 |
补充
参考climate.xiaomi_miio.py的服务调用代码进行修改。
- service: climate.xiaomi_miio_learn_command[空调伴侣]
字段 | 是否必填 | 描述 |
---|---|---|
entity_id | 否 | 如果不指定,指令将发送到所有的空调伴侣设备 |
slot | 否 | 存储的槽位,默认1 |
timeout | 否 | 学习红外状态等待时间,默认10秒 |
补充
没做修改,顺带介绍。
2.2发码
- service: switch.broadlink_rm_send_command[博联RM]
字段 | 是否必填 | 描述 |
---|---|---|
entity_id | 否 | 如果不指定,指令将发送到所有的博联RM设备 |
command | 否 | 红外指令字符串 |
command_name | 否 | 内置红外指令名称,优先级高于command参数 |
1 | # 配置 configuration.yaml |
使用建议
在任意一个博联RM中定义红外码即可,其它博联RM可共用。
- service: climate.xiaomi_miio_send_command[空调伴侣]
字段 | 是否必填 | 描述 |
---|---|---|
entity_id | 否 | 如果不指定,指令将发送到所有的空调伴侣设备 |
command | 否 | 红外指令字符串,需’FE’或’01’开头 |
command_name | 否 | 内置红外指令名称,优先级高于command参数 |
1 | # 配置 configuration.yaml |
使用建议
在任意一个空调伴侣中定义红外码即可,其它空调伴侣可共用。
3.使用说明(0.92版)
2.1学码
- service: broadlink.learn[博联RM]
字段 | 是否必填 | 描述 |
---|---|---|
host | 是 | entity_id或者ip |
补充
参考climate.xiaomi_miio.py的服务调用代码进行修改。
- service: climate.xiaomi_miio_learn_command[空调伴侣]
字段 | 是否必填 | 描述 |
---|---|---|
host | 否 | entity_id或者ip,如果不指定,指令将发送到所有的空调伴侣设备 |
slot | 否 | 存储的槽位,默认30 |
timeout | 否 | 学习红外状态等待时间,默认10秒 |
补充
没做修改,顺带介绍。
2.2发码
- service: broadlink.send[博联RM]
字段 | 是否必填 | 描述 |
---|---|---|
host | 是 | entity_id或者ip |
packet | 否 | 红外指令字符串,支持多个(数组) |
command | 否 | 内置红外指令名称,支持多个(数组) |
1 | # 配置 configuration.yaml |
使用建议
在任意一个博联RM中定义红外码即可,其它博联RM可共用。
- service: climate.xiaomi_miio_send_command[空调伴侣]
字段 | 是否必填 | 描述 |
---|---|---|
host | 否 | entity_id或者ip,如果不指定,指令将发送到所有的空调伴侣设备 |
packet | 否 | 红外指令字符串,需’FE’或’01’开头,支持多个(数组) |
command | 否 | 内置红外指令名称,支持多个(数组) |
1 | # 配置 configuration.yaml |
使用建议
在任意一个空调伴侣中定义红外码即可,其它空调伴侣可共用。