红外组件
IMPORTANT
此组件为实验性功能。API 可能随时更改,不遵循正常的破坏性变更策略。使用风险自负。 一旦 API 被认为稳定,此警告将被移除。
ESPHome 支持创建红外实体的组件,提供用于发送和接收原始红外(和射频)信号的标准化 API。红外实体在 ESPHome 中表示为无状态组件(类似于按钮),可以发送原始时序序列或接收时序序列并将其作为事件转发给 Home Assistant 等 API 客户端。
红外平台为 IR/RF 通信提供基础基础设施,在 ESPHome 设备和 API 客户端之间建立统一接口。这实现了无需重新编译固件的运行时信号传输,使其非常适合学习和重放 IR/RF 命令。
基本红外配置
Section titled “基本红外配置”ESPHome 中的所有红外组件都有一个平台和一个名称。该组件作为无状态实体运行,支持动作(设备传输的 API 命令)和事件(设备接收到 API 客户端广播)。
# 示例红外配置infrared: - platform: ... name: 客厅红外发射器 id: my_ir_transmitter配置变量:
- id (可选, 字符串):手动指定用于代码生成的 ID。id 和 name 中至少必须指定一个。
- name (可选, 字符串):红外实体的名称。id 和 name 中至少必须指定一个。
NOTE
如果您为设备设置了 friendly_name,并且希望红外实体使用该名称,可以设置 name: None。
-
icon (可选, 图标):手动设置前端红外实体使用的图标。
-
internal (可选, 布尔值):将此组件标记为内部。内部组件不会暴露给前端(如 Home Assistant)。仅指定
id而不指定name会隐式将其设置为 true。 -
disabled_by_default (可选, 布尔值):如果为 true,则此实体不应添加到任何客户端的前端(通常是 Home Assistant),除非用户手动启用(通过 Home Assistant UI)。默认为
false。 -
entity_category (可选, 字符串):实体的类别。有关可用选项列表,请参阅 https://developers.home-assistant.io/docs/core/entity/#generic-properties。设置为
""可移除默认实体类别。
红外组件使用原始时序序列操作,表示交替的标记(信号开启)和空格(信号关闭)周期,以微秒为单位。这提供了最大的灵活性,几乎可以支持任何 IR 或 RF 协议。
当红外实体支持发送功能时,它可以通过 API 发送原始时序序列。传输参数包括:
- 原始时序数组:交替的标记/空格持续时间,以微秒为单位
- 载波频率:可选的载波频率,单位为 Hz(0 = 无载波调制,典型用于 RF)
- 重复次数:传输信号的次数(默认为 1)
原始时序格式允许 Home Assistant 等 API 客户端将特定协议的命令编码为原始时序,并通过红外实体发送。
当红外实体支持接收功能时,它捕获原始时序序列并将其作为事件发送给 API 客户端。这实现了:
- 从现有遥控器学习 IR/RF 命令
- 分析未知协议
- 创建万能遥控器
接收是非阻塞的,可以与其他信号处理组件并行运行。
- IR/RF 代理 - 将 ESPHome 的 remote_transmitter/remote_receiver 组件与红外 API 桥接,实现运行时信号控制