射频组件
IMPORTANT
此组件处于实验阶段。API 可能会随时更改, 而不遵循通常的破坏性变更政策。请自行承担风险。 一旦 API 被认为稳定,此警告将被移除。
ESPHome 支持用于创建射频实体的组件,这些组件提供用于 发送和接收原始 RF 信号的标准 API。射频实体在 ESPHome 中表示为无状态 组件(类似于按钮),可以发送原始时序序列,或接收时序序列 并将其作为事件转发给像 Home Assistant 这样的 API 客户端。
射频组件提供 RF 通信的基础设施,在 ESPHome 设备和 API 客户端之间建立统一的 接口。这使得无需 重新编译固件即可在运行时发送信号,使其非常适合学习和重放 RF 命令。
与同时通过共享 实体类型处理 IR 和简单 OOK-RF 的 红外组件 不同,射频组件专用于 RF 硬件,并暴露 RF 特定的元数据,例如 载波频率范围和支持的调制类型。
基础射频配置
Section titled “基础射频配置”ESPHome 中的所有射频组件都有一个平台和一个名称。该组件作为无状态 实体运行,支持操作(从 API 命令到设备传输)和事件(从设备接收到向 API 客户端广播)。
# Example radio frequency configurationradio_frequency: - platform: ... name: 433 MHz RF Transceiver id: my_rf_transceiver配置变量:
- id (可选, string): 手动指定用于代码生成的 ID。至少必须指定 id 和 name 中的一个。
- name (可选, string): 射频实体的名称。至少必须指定 id 和 name 中的一个。
NOTE
如果您为设备设置了 friendly_name,
并希望射频实体使用该名称,可以将 name: None。
-
icon (可选, icon): 手动设置在前端中为射频实体使用的图标。
-
internal (可选, boolean): 将此组件标记为内部组件。内部组件将 不会暴露给前端(如 Home Assistant)。仅指定不带
name的id将隐式地将此设置为 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 了解可用选项列表。设置为
""以移除默认实体类别。
射频组件使用原始时序序列运行,这些序列表示交替的标记(载波开启) 和间隔(载波关闭)的持续时间(以微秒为单位)。这提供了最大的灵活性,可以支持几乎 任何基于 OOK 的 RF 协议。
当射频实体支持发送能力时,它可以通过 API 发送原始时序序列。 发送参数包括:
- 原始时序数组: 交替的标记/间隔持续时间(微秒)
- 载波频率: RF 载波频率(赫兹),例如
433920000对应 433.92 MHz - 调制: 要使用的调制类型(目前仅支持 OOK)
- 重复次数: 发送信号的次数(默认为 1)
原始时序格式允许像 Home Assistant 这样的 API 客户端将特定协议的命令编码为 原始时序,并通过射频实体发送它们。
当射频实体支持接收能力时,它捕获原始时序序列并将它们 作为事件发送给 API 客户端。这实现了:
- 从现有遥控器学习 RF 命令
- 分析未知协议
- 创建基于 RF 的自动化触发器
接收是非阻塞的,可以与其他信号处理组件同时运行。
每个射频实体向 API 客户端报告硬件能力元数据:
- 频率范围: 最小和最大可调频率(赫兹)。如果两个值相等(且 非零),则硬件为固定频率。如果两者均为零,则范围未指定。
- 支持的调制类型: 硬件支持的调制类型(例如 OOK)。
- 能力: 实体是否支持发送、接收或两者都支持。
此元数据允许 Home Assistant(以及其他 API 客户端)自动发现哪些 RF 硬件是 可用的以及它支持什么,而无需在 API 客户端端进行手动配置。
| 值 | 名称 | 描述 |
|---|---|---|
0 | OOK | 开关键控(也称为幅移键控 / ASK)。载波简单地在开和关之间切换以编码数据。这是 433 MHz 和 315 MHz 遥控器最常见的调制方式。 |
未来可能会实现其他调制类型(FSK、GFSK 等)。
目前尚无平台实现。平台实现(如 CC1101 和类似 硬件)计划在后续版本中推出。
- 红外组件 — 通过共享实体类型处理 IR 和基本 OOK-RF
- 远程发射器
- 远程接收器
- API 参考:radio_frequency.h