IR/RF 代理
IMPORTANT
此组件为实验性组件。API 可能随时更改, 不遵循正常的破坏性更改策略。使用风险自负。 一旦 API 被认为稳定,此警告将被移除。
ESPHome 的 IR/RF 代理组件与 Home Assistant 配合使用,可扩展其远程控制功能。此组件 提供统一的 API 可访问接口,用于传输和接收红外和 RF 信号,充当 Home Assistant(或其他 API 客户端)与 ESPHome 现有的 remote_receiver 和 remote_transmitter 组件之间的桥梁。请注意,如果您 希望使用 IR/RF 代理组件,设备配置中至少需要其中一个组件。
IR/RF 代理支持运行时信号传输,无需重新编译和/或重新安装(刷写)固件, 非常适合学习和重放 IR/RF 命令、创建通用遥控器以及与 Home Assistant 的远程控制功能集成。
# 示例配置条目infrared: # IR 发射器实例 - platform: ir_rf_proxy name: IR Proxy Transmitter id: ir_proxy_tx remote_transmitter_id: ir_tx # IR 接收器实例 - platform: ir_rf_proxy name: IR Proxy Receiver id: ir_proxy_rx remote_receiver_id: ir_rx-
remote_transmitter_id (可选, ID): 用于发送信号的 remote_transmitter 组件的 ID。必须恰好指定
remote_transmitter_id或remote_receiver_id中的一个。 -
remote_receiver_id (可选, ID): 用于接收信号的 remote_receiver 组件的 ID。必须恰好指定
remote_transmitter_id或remote_receiver_id中的一个。 -
frequency (可选, 频率): 工作频率(例如
433 MHz、315 MHz、900 MHz)。对于 RF 硬件,设置为非零值。默认为0(红外)。此值用于区分 IR 和 RF 硬件类型,并传递给 Home Assistant,使其能够识别此 IR/RF 代理实例可能 支持的集成。infrared 的所有其他配置变量。
NOTE
为红外配置发射器时(frequency: 0 或未设置),请确保链接的 remote_transmitter 已将
carrier_duty_percent 设置为适当的值,通常为 30-50%。这是正确进行红外
传输所必需的。如果 carrier_duty_percent 设置为 0% 或 100% 且 frequency 未设置或设置为零,则
将发生验证错误。
IR/RF 代理组件创建可从 Home Assistant 或其他 API 客户端控制的 API 可访问实体。 每个实例可以通过指定相应的硬件组件 ID 配置为发射器或接收器。
IR/RF 代理使用原始时序发射信号,这提供了对发送到硬件的确切波形的完全远程控制。
当配置了 remote_transmitter_id 时,组件可以通过接受
微秒时序值数组
来发射 IR/RF 信号,表示交替的标记(LED 亮)和间隔(LED 灭)周期。
发射参数:
- 原始时序数组: 交替的标记/间隔持续时间(微秒)(与 remote_transmitter.transmit_raw 操作使用的相同)
- 载波频率: 可选的载波频率(Hz)(0 = 无载波调制,RF 的典型值)
- 重复次数: 信号传输次数(默认为 1)
原始时序格式允许最大的灵活性,几乎可以支持任何协议,无论 ESPHome 是否实现。 Home Assistant 集成可以将特定协议的命令编码为原始时序,并通过 IR/RF 代理组件进行传输。
当配置了 remote_receiver_id 时,IR/RF 代理捕获原始时序并将其发送给 API 客户端进行
解码或分析。这使得以下功能成为可能:
- 从现有遥控器学习 IR/RF 命令
- 分析未知协议
- 创建通用遥控器
接收是非阻塞的,允许其他监听器同时处理信号。
IR/RF 代理可以同时使用红外和 RF 硬件:
- 红外: 不要设置
frequency(或设置frequency: 0,这是默认值)并使用标准 IR LED/接收器 - RF: 将
frequency设置为与您的 RF 硬件匹配(例如,315 MHz 硬件使用315 MHz,433.92 MHz 硬件使用433 MHz)
您可以为不同目的创建单独的实例:
- 仅发射(仅指定
remote_transmitter_id) - 仅接收(仅指定
remote_receiver_id) - 上述任意的多个实例,用于不同硬件或频率。例如,单个 ESPHome 设备 可以有多个发射器 LED,每个位于不同的房间/机柜中。