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