远程接收器
remote_receiver 组件让你接收和解码各种常见的遥控信号,例如红外
或 433 MHz 射频(RF)信号。
该组件分为两个部分:
- 远程接收器 “hub”,它定义引脚和一些附加设置,以及…
- 单独的远程接收器二进制传感器,当接收到它们的 相应信号时会被激活。
# 示例配置条目remote_receiver: pin: GPIOXX dump: all在 remote_receiver 中可以配置多个远程接收器,作为字典定义的列表。
-
pin (必选, Pin): 用于接收远程信号的引脚。
-
dump (可选, list): 解码并在日志中转储这些远程码(在 log.level=DEBUG 时)。 设置为
all可转储所有可用的编解码器:-
abbwelcome: 解码并转储 ABB-Welcome 码。消息通过铜线发送。参见 发射器描述 了解更多细节。
-
aeha: 解码并转储 AEHA 红外码。
-
beo4: 解码并转储 B&O Beo4 红外码。
-
brennenstuhl: 解码并转储 brennenstuhl RF 码。
-
byronsx: 解码并转储 Byron SX 门铃 RF 码。
-
canalsat: 解码并转储 CanalSat 红外码。
-
canalsatld: 解码并转储 CanalSatLD 红外码。
-
coolix: 解码并转储 Coolix 红外码。
-
dish: 解码并转储 Dish 红外码。
-
dooya: 解码并转储 Dooya RF 码。
-
drayton: 解码并转储 Drayton Digistat RF 码。
-
dyson: 解码并转储 Dyson Cool AM7 塔扇码。
-
jvc: 解码并转储 JVC 红外码。
-
gobox: 解码并转储 Go-Box 红外码。
-
keeloq: 解码并转储 KeeLoq RF 码。
-
haier: 解码并转储 Haier 红外码。
-
lg: 解码并转储 LG 红外码。
-
magiquest: 解码并转储 MagiQuest 魔杖红外码。
-
midea: 解码并转储 Midea 红外码。
-
nec: 解码并转储 NEC 红外码。
-
nexa: 解码并转储 Nexa(RF)码。
-
panasonic: 解码并转储 Panasonic 红外码。
-
pioneer: 解码并转储 Pioneer 红外码。
-
pronto: 以 Pronto 形式打印远程码。对于使用任意协议很有用。
-
raw: 以原始形式打印所有远程码。对于使用任意协议也很有用。
-
rc5: 解码并转储 RC5 IR 码。
-
rc6: 解码并转储 RC6 IR 码。
-
rc_switch: 解码并转储 RCSwitch RF 码。
-
roomba: 解码并转储 Roomba 红外码。
-
samsung: 解码并转储 Samsung 红外码。
-
samsung36: 解码并转储 Samsung36 红外码。
-
symphony: 解码并转储 Symphony 红外码。
-
sony: 解码并转储 Sony 红外码。
-
toshiba_ac: 解码并转储 Toshiba AC 红外码。
-
mirage: 解码并转储 Mirage 红外码。
-
toto: 解码并转储 Toto 红外码。
-
-
tolerance (可选, int, Time 或 mapping): 解码过程中远程信号长度 可以偏离的百分比或时间。默认为
25%。- type (必选, enum): 设置容差的类型。可以是
percentage或time。 - value (必选, int 或 Time): 百分比或时间值。允许范围是从
0到100%,或0到4294967295us。
- type (必选, enum): 设置容差的类型。可以是
-
buffer_size (可选, int): 用于存储远程码的内部缓冲区大小。在 ESP32 上默认为
10kB, 在 ESP8266 上为1kB。 -
filter (可选, Time): 过滤所有短于这个时间的脉冲。用于 去除噪声信号中的毛刺。允许范围是从
0到4294967295us。默认为50us。 -
idle (可选, Time): 信号保持一致/不变的时间量,超过后 被视为传输完成。默认为
10ms。允许的最大值是:ESP32和ESP32-S2变体上为65536us- 其他带有 RMT 硬件的 ESP32 变体上为
32767us - 所有其他平台(包括使用软件实现的 ESP32-C2 和 ESP32-C61)上为
4294967295us
注意:上面列出的 ESP32 RMT 值假设使用默认的
clock_resolution。如果使用了不同的clock_resolution, 则这些值按 1000000 /clock_resolution缩放。 -
id (可选, ID): 手动指定用于代码生成的 ID。当在单个设备上 配置多个接收器时很有用。
ESP32 RMT 配置变量
Section titled “ESP32 RMT 配置变量”NOTE
以下选项仅适用于带有 RMT 硬件的 ESP32 变体。它们在 ESP32-C2 和 ESP32-C61 上不可用,这两个变体使用软件实现。
- rmt_symbols (可选, int): 当启用
use_dma时,此选项设置驱动内部 DMA 缓冲区的大小。 当 DMA 禁用时,它指定分配给组件的 RMT 内存量。RMT 内存在所有组件之间共享, 应按块大小的倍数分配。在ESP32和ESP32-S2变体上,RMT 内存在 RX 和 TX 组件之间共享。在其他变体上,RX 和 TX 有独立专用的 RMT 内存。
| ESP32 变体 | 可用内存 | 块大小 |
|---|---|---|
| ESP32 | 512 symbols | 64 symbols |
| ESP32-C3 | 96 symbols | 48 symbols |
| ESP32-C5 | 96 symbols | 48 symbols |
| ESP32-C6 | 96 symbols | 48 symbols |
| ESP32-H2 | 96 symbols | 48 symbols |
| ESP32-P4 | 192 symbols | 48 symbols |
| ESP32-S2 | 256 symbols | 64 symbols |
| ESP32-S3 | 192 symbols | 48 symbols |
-
receive_symbols (可选, int): 最大接收长度(以符号为单位)。在某些变体上,最大接收 长度受限于
rmt_symbols。 -
filter_symbols (可选, int): 过滤掉所有长度(以符号为单位)小于
filter_symbols的接收数据。用于过滤掉短暂的噪声突发。 -
clock_resolution (可选, int): RMT 外设使用的时钟分辨率,单位为 Hz。默认为
1000000。 -
use_dma (可选, boolean): 在支持的变体上启用 DMA。如果启用,
rmt_symbols控制 DMA 缓冲区大小,可以设置为很大的值。
在罕见的情况下,如果硬件配置使微控制器接收调制信号,RMT 外设支持 信号解调。如果你不确定,你可能不需要它。例如,红外遥控信号 通常在到达微控制器之前就已被红外接收模块(IRM)解调。
要启用信号解调,请配置信号载波频率和占空比:
-
carrier_duty_percent (可选, int): RMT 外设中用于信号解调的载波占空比,单位 Hz。默认为
100。 -
carrier_frequency (可选, int): RMT 外设中用于信号解调的载波频率,单位 Hz。 默认为
0Hz(载波解调禁用)。
NOTE
转储的原始(raw)码是一系列脉冲宽度(以微秒为单位的持续时间),正值表示开启脉冲(mark), 负值表示关闭脉冲(space)。通常你可以直接将其复制到配置或自动化中 供以后使用。
-
on_abbwelcome (可选, Automation): 当 ABB-Welcome 码已被解码时执行的自动化。一个类型为 API 参考:remote_base::ABBWelcomeData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_aeha (可选, Automation): 当 AEHA 遥控码已被解码时执行的自动化。一个类型为 API 参考:remote_base::AEHAData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_beo4 (可选, Automation): 当 B&O Beo4 红外遥控码已被解码时执行的自动化。一个类型为 API 参考:remote_base::Beo4Data 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_brennenstuhl (可选, Automation): 当 brennenstuhl RF 码已被解码时执行的自动化。一个类型为 API 参考:remote_base::BrennenstuhlData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_byronsx (可选, Automation): 当 Byron SX 门铃 RF 码已被解码时执行的自动化。一个类型为 API 参考:remote_base::ByronSXData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_canalsat (可选, Automation): 当 CanalSat 遥控码已被解码时执行的自动化。一个类型为 API 参考:remote_base::CanalSatData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_canalsatld (可选, Automation): 当 CanalSatLD 遥控码已被解码时执行的自动化。一个类型为 API 参考:remote_base::CanalSatLDData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_coolix (可选, Automation): 当 Coolix 遥控码已被解码时执行的自动化。一个类型为 API 参考:remote_base::CoolixData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_dish (可选, Automation): 当 dish network 遥控码已被解码时执行的自动化。一个类型为 API 参考:remote_base::DishData 的变量
x被传递给自动化,供在 lambda 中使用。 请注意,Dish 遥控器使用不同的载波频率(57.6kHz),许多接收器硬件无法解码。 -
on_dooya (可选, Automation): 当 Dooya RF 遥控码已被解码时执行的自动化。一个类型为 API 参考:remote_base::DooyaData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_drayton (可选, Automation): 当 Drayton Digistat RF 码已被解码时执行的自动化。一个类型为 API 参考:remote_base::DraytonData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_dyson (可选, Automation): 当 Dyson cool AM07 码已被解码时执行的自动化。一个类型为 API 参考:remote_base::DysonData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_gobox (可选, Automation): 当 Go-Box 遥控码已被解码时执行的自动化。一个类型为 API 参考:remote_base::GoboxData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_jvc (可选, Automation): 当 JVC 遥控码已被解码时执行的自动化。一个类型为 API 参考:remote_base::JVCData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_keeloq (可选, Automation): 当 KeeLoq RF 码已被解码时执行的自动化。一个类型为 API 参考:remote_base::KeeloqData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_haier (可选, Automation): 当 Haier 遥控码已被解码时执行的自动化。一个类型为 API 参考:remote_base::HaierData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_lg (可选, Automation): 当 LG 遥控码已被解码时执行的自动化。一个类型为 API 参考:remote_base::LGData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_magiquest (可选, Automation): 当 MagiQuest 魔杖遥控码已被解码时执行的自动化。一个类型为 API 参考:remote_base::MagiQuestData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_midea (可选, Automation): 当 Midea 遥控码已被解码时执行的自动化。一个类型为 API 参考:remote_base::MideaData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_nec (可选, Automation): 当 NEC 遥控码已被解码时执行的自动化。一个类型为 API 参考:remote_base::NECData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_nexa (可选, Automation): 当 Nexa RF 码已被解码时执行的自动化。一个类型为 API 参考:remote_base::NexaData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_panasonic (可选, Automation): 当 Panasonic 遥控码已被解码时执行的自动化。一个类型为 API 参考:remote_base::PanasonicData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_pioneer (可选, Automation): 当 pioneer 遥控码已被解码时执行的自动化。一个类型为 API 参考:remote_base::PioneerData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_pronto (可选, Automation): 当 Pronto 遥控码已被解码时执行的自动化。一个类型为 API 参考:remote_base::ProntoData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_raw (可选, Automation): 当 raw(原始)遥控码已被解码时执行的自动化。一个类型为
std::vector<int>的变量x被传递给自动化,供在 lambda 中使用。 -
on_rc5 (可选, Automation): 当 RC5 遥控码已被解码时执行的自动化。一个类型为 API 参考:remote_base::RC5Data 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_rc6 (可选, Automation): 当 RC6 遥控码已被解码时执行的自动化。一个类型为 API 参考:remote_base::RC6Data 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_rc_switch (可选, Automation): 当 RCSwitch RF 码已被解码时执行的自动化。一个类型为 API 参考:remote_base::RCSwitchData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_roomba (可选, Automation): 当 Roomba 遥控码已被解码时执行的自动化。一个类型为 API 参考:remote_base::RoombaData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_samsung (可选, Automation): 当 Samsung 遥控码已被解码时执行的自动化。一个类型为 API 参考:remote_base::SamsungData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_samsung36 (可选, Automation): 当 Samsung36 遥控码已被解码时执行的自动化。一个类型为 API 参考:remote_base::Samsung36Data 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_sony (可选, Automation): 当 Sony 遥控码已被解码时执行的自动化。一个类型为 API 参考:remote_base::SonyData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_symphony (可选, Automation): 当 Symphony 遥控码已被解码时执行的自动化。一个类型为 API 参考:remote_base::SymphonyData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_toshiba_ac (可选, Automation): 当 Toshiba AC 遥控码已被解码时执行的自动化。一个类型为 API 参考:remote_base::ToshibaAcData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_mirage (可选, Automation): 当 Mirage 遥控码已被解码时执行的自动化。一个类型为 API 参考:remote_base::MirageData 的变量
x被传递给自动化,供在 lambda 中使用。 -
on_toto (可选, Automation): 当 Toto 遥控码已被解码时执行的自动化。一个类型为 API 参考:remote_base::TotoData 的变量
x被传递给自动化,供在 lambda 中使用。
# 用于解码信号的示例自动化remote_receiver: ... on_samsung: then: - if: condition: or: - lambda: 'return (x.data == 0xE0E0E01F);' # VOL+ 新型 - lambda: 'return (x.data == 0xE0E0E01F0);' # VOL+ 旧型 then: - ...二进制传感器
Section titled “二进制传感器”remote_receiver 二进制传感器让你跟踪遥控器上的按钮何时被按下。
每次收到预定义的信号时,二进制传感器会短暂变为 ON,然后立即变为 OFF。
NOTE
针对 IR 遥控二进制传感器:如果你使用二进制传感器跟踪 IR 遥控按钮按下,并且
遇到快速按键未被检测到的问题(例如,快速的 ON→OFF 转换被错过),
请考虑在你的 API 配置 中设置 batch_delay: 0ms。这将立即发送状态
变化而不是批量发送,确保快速的转换得以保留。但是,这会增加
网络流量,只应在必要时使用。
对于新项目,考虑使用带有 on_* 触发器(如上所述)的自动化
而不是二进制传感器,因为它们更适用于处理瞬时按键事件。
# 示例配置条目binary_sensor: - platform: remote_receiver name: "Panasonic Remote Input" panasonic: address: 0x4004 command: 0x100BCBD# 快速按键使用 batch_delay: 0 的示例api: batch_delay: 0ms # 立即发送状态变化
remote_receiver: pin: GPIOXX dump: all
binary_sensor: - platform: remote_receiver name: "TV Remote Power" nec: address: 0x1234 command: 0x5678-
receiver_id (可选, ID): 用于接收远程码的远程接收器。如果 配置了多个接收器,则为必选。
-
Binary Sensor 的所有其他选项。
远程码选择(必须包含下列恰好一项):
-
abbwelcome: 使用给定的数据在解码后的 ABB-Welcome 码上触发,参见 发射器描述 了解更多信息。
-
source_address (必选, int): 要触发匹配的源地址。
-
destination_address (必选, int): 要触发匹配的目标地址。
-
three_byte_address (可选, boolean): 源地址和目标地址的长度。
false表示 两个字节,true表示三个字节。默认为false。 -
retransmission (可选, boolean): 如果消息被重传则为
true。默认为false。 -
message_type (必选, int): 要触发匹配的消息类型。
-
message_id (可选, int): 要触发匹配的随机消息 ID,参见 dumper 输出了解更多信息。默认为 任何 ID。
-
data (可选, 0-7 字节列表): 要监听的码。通常你只需要直接从 dumper 输出中 复制此内容。默认为
[]。
-
-
aeha: 使用给定的数据在解码后的 AEHA 遥控码上触发。
- address (必选, int): 要触发匹配的地址,参见 dumper 输出了解更多信息。
- data (必选, 3-35 字节列表): 要监听的码,参见 发射器描述 了解更多信息。通常你只需要直接从 dumper 输出中 复制此内容。
-
beo4: 使用给定的数据在解码后的 B&O Beo4 红外遥控码上触发。
- source (必选, int): 要触发匹配的 8 位源,例如 0x00=video, 0x01=audio,…,参见 dumper 输出了解更多信息。
- command (必选, int): 要监听的 8 位命令,例如 0x00=number0, 0x0C=standby,…,参见 dumper 输出了解更多信息。
-
brennenstuhl: 使用给定的数据在解码后的 brennenstuhl RF 码上触发。
- code (必选, int): 要触发匹配的 24 位码,参见 dumper 输出了解更多信息。
-
byronsx: 使用给定的数据在解码后的 Byron SX 门铃 RF 遥控码上触发。
- address (必选, int): 要触发匹配的 8 位 ID 码,参见 dumper 输出了解更多信息。
- command (可选, int): 要监听的 4 位命令。如果省略,将匹配任何命令。
-
canalsat: 使用给定的数据在解码后的 CanalSat 遥控码上触发。
-
device (必选, int): 要触发匹配的设备,参见 dumper 输出了解更多信息。
-
address (可选, int): 要触发匹配的地址(或子设备),参见 dumper 输出了解更多信息。 默认为
0。 -
command (必选, int): 要监听的命令。
-
-
canalsatld: 使用给定的数据在解码后的 CanalSatLD 遥控码上触发。
-
device (必选, int): 要触发匹配的设备,参见 dumper 输出了解更多信息。
-
address (可选, int): 要触发匹配的地址(或子设备),参见 dumper 输出了解更多信息。 默认为
0。 -
command (必选, int): 要监听的命令。
-
-
coolix: 使用给定的数据在解码后的 Coolix 遥控码上触发。可以直接指定一个 24 位 码,它将与两个接收到的数据包中的至少一个进行匹配检查。主要的配置方案 如下。
- first (必选, uint32_t): 要触发匹配的第一个 24 位 Coolix 码,参见 dumper 输出了解更多信息。
- second (可选, uint32_t): 要触发匹配的第二个 24 位 Coolix 码,参见 dumper 输出了解更多信息。
如果未设置,则仅在
first参数指定的单个非严格数据包上触发。
-
dish: 使用给定的数据在解码后的 Dish Network 遥控码上触发。 请注意,Dish 遥控器使用不同的载波频率(57.6kHz),许多接收器硬件无法解码。
- address (可选, int): 要针对的接收器编号,范围 1 到 16(含)。默认为
1。 - command (必选, int): 要监听的 Dish 命令,范围 0 到 63(含)。
- address (可选, int): 要针对的接收器编号,范围 1 到 16(含)。默认为
-
dooya: 使用给定的数据在解码后的 Dooya RF 遥控码上触发。
- id (必选, int): 要触发匹配的 24 位 ID 码。
- channel (必选, int): 要监听的 8 位通道。
- button (必选, int): 要监听的 4 位按钮。
- check (必选, int): 要监听的 4 位校验值。包含按钮被按住的状态指示。
-
drayton: 使用给定的数据在解码后的 Drayton Digistat RF 遥控码上触发。
- address (必选, int): 要触发匹配的 16 位 ID 码,参见 dumper 输出了解更多信息。
- channel (必选, int): 要监听的 7 位开关/通道。
- command (必选, int): 要监听的 5 位命令。
-
dyson: 使用给定的数据在解码后的 dyson cool AM07 红外遥控码上触发。
- code (必选, int): 要触发匹配的 16 位码,例如 0x1200=power, 0x1215=fan++,0x122a=swing…,参见 dumper 输出了解更多信息。
- index (可选, int): 8 位滚动索引 [0..3],每次发送都会递增,参见 dumper 输出了解更多信息。
-
gobox: 使用给定的数据在解码后的 Go-Box 遥控码上触发。
- code (必选, int): 要触发匹配的 Go-Box 码,参见 dumper 输出了解更多信息。
-
jvc: 使用给定的数据在解码后的 JVC 遥控码上触发。
- data (必选, int): 要触发匹配的 JVC 码,参见 dumper 输出了解更多信息。
-
keeloq: 使用给定的数据在解码后的 KeeLoq RF 遥控码上触发。
- address (必选, int): 要触发匹配的 32 位 ID 码,参见 dumper 输出了解更多信息。
- command (可选, int): 要监听的 8 位开关/命令。如果省略,将匹配任何命令/按钮。
-
haier: 使用给定的码在 Haier 遥控码上触发。
- code (必选, 13 字节列表): 要监听的码,参见 发射器描述 了解更多信息。通常你只需要直接从 dumper 输出中复制 此内容。
-
lg: 使用给定的数据在解码后的 LG 遥控码上触发。
- data (必选, int): 要触发匹配的 LG 码,参见 dumper 输出了解更多信息。
- nbits (可选, int): 遥控码的位数。默认为
28。
-
magiquest: 使用给定的魔杖 ID 在解码后的 MagiQuest 魔杖遥控码上触发。
- wand_id (必选, int): 要触发匹配的 MagiQuest 魔杖 ID,参见 dumper 输出了解更多信息。
- magnitude (可选, int): 魔杖挥舞和旋转的幅度。如果省略,将匹配魔杖的任意 激活。
-
midea: 使用给定的码在 Midea 遥控码上触发。
- code (必选, 5 字节列表): 要监听的码,参见 发射器描述 了解更多信息。通常你只需要直接从 dumper 输出中复制 前 5 个字节。
-
nec: 使用给定的数据在解码后的 NEC 遥控码上触发。
- address (必选, int): 要触发匹配的地址,参见 dumper 输出了解更多信息。
- command (必选, int): 要监听的 NEC 命令。
-
nexa: 使用给定的数据在解码后的 Nexa RF 码上触发。
- device (必选, int): 要触发匹配的 Nexa 设备码,参见 dumper 输出了解更多信息。
- group (必选, int): 要触发匹配的 Nexa 组码,参见 dumper 输出了解更多信息。
- state (必选, int): 要触发匹配的 Nexa 状态码,参见 dumper 输出了解更多信息。
- channel (必选, int): 要触发匹配的 Nexa 通道码,参见 dumper 输出了解更多信息。
- level (必选, int): 要触发匹配的 Nexa 级别码,参见 dumper 输出了解更多信息。
-
panasonic: 使用给定的数据在解码后的 Panasonic 遥控码上触发。
- address (必选, int): 要触发匹配的地址,参见 dumper 输出了解更多信息。
- command (必选, int): 命令。
-
pioneer: 使用给定的数据在解码后的 Pioneer 遥控码上触发。
- rc_code_1 (必选, int): 要触发匹配的遥控码,参见 dumper 输出了解更多细节。
-
pronto: 使用给定的码在 Pronto 遥控码上触发。
-
data (必选, string): 要监听的码,参见 发射器描述 了解更多信息。通常你只需要直接从 dumper 输出中复制此内容。
-
delta (可选, integer): 此参数允许你手动指定 指定的 Pronto 码与遥控器实际发送的 IR 信号之间允许的差异。
-
-
raw: 使用给定的码在原始(raw)遥控码上触发。
- code (必选, list): 要监听的码,参见 发射器描述 了解更多信息。通常你只需要直接从 dumper 输出中复制此内容。
-
rc5: 使用给定的数据在解码后的 RC5 遥控码上触发。
- address (必选, int): 要触发匹配的地址,参见 dumper 输出了解更多信息。
- command (必选, int): 要监听的 RC5 命令。
-
rc6: 使用给定的数据在解码后的 RC6 遥控码上触发。
- address (必选, int): 要触发匹配的地址,参见 dumper 输出了解更多信息。
- command (必选, int): 要监听的 RC6 命令。
-
rc_switch_raw: 使用给定的数据在解码后的 RC Switch 原始遥控码上触发。
-
code (必选, string): 要监听的遥控码,从 dumper 输出中复制。要在接收数据中忽略 某一位,请在code中的相应位置使用
x。 -
protocol (可选): 要使用的 RC Switch 协议,参见 RC Switch 协议 了解 更多信息。
-
-
rc_switch_type_a: 使用给定的数据在解码后的 RC Switch A 型遥控码上触发。
- group (必选, string): 组,二进制字符串。
- device (必选, string): 组中的设备,二进制字符串。
- state (必选, boolean): 要触发匹配的开/关状态。
- protocol (可选): 要使用的 RC Switch 协议,参见 RC Switch 协议 了解 更多信息。
-
rc_switch_type_b: 使用给定的数据在解码后的 RC Switch B 型遥控码上触发。
- address (必选, int): 地址,整数 1 到 4。
- channel (必选, int): 通道,整数 1 到 4。
- state (必选, boolean): 要触发匹配的开/关状态。
- protocol (可选): 要使用的 RC Switch 协议,参见 RC Switch 协议 了解 更多信息。
-
rc_switch_type_c: 使用给定的数据在解码后的 RC Switch C 型遥控码上触发。
- family (必选, string): 系列。范围是
a到p。 - group (必选, int): 组。范围是 1 到 4。
- device (必选, int): 设备。范围是 1 到 4。
- state (必选, boolean): 要触发匹配的开/关状态。
- protocol (可选): 要使用的 RC Switch 协议,参见 RC Switch 协议 了解 更多信息。
- family (必选, string): 系列。范围是
-
rc_switch_type_d: 使用给定的数据在解码后的 RC Switch D 型遥控码上触发。
- group (必选, int): 组。范围是 1 到 4。
- device (必选, int): 设备。范围是 1 到 3。
- state (必选, boolean): 要触发匹配的开/关状态。
- protocol (可选): 要使用的 RC Switch 协议,参见 RC Switch 协议 了解 更多信息。
-
roomba: 使用给定的数据在解码后的 Roomba 遥控码上触发。
- data (必选, int): 要触发匹配的 Roomba 码,参见 dumper 输出了解更多信息。
-
samsung: 使用给定的数据在解码后的 Samsung 遥控码上触发。
- data (必选, int): 要触发匹配的数据,参见 dumper 输出了解更多信息。
- nbits (可选, int): 遥控码的位数。默认为
32。
-
samsung36: 使用给定的数据在解码后的 Samsung36 遥控码上触发。
- address (必选, int): 要触发匹配的地址,参见 dumper 输出了解更多信息。
- command (必选, int): 命令。
-
sony: 使用给定的数据在解码后的 Sony 遥控码上触发。
- data (必选, int): 要触发匹配的 Sony 码,参见 dumper 输出了解更多信息。
- nbits (可选, int): 遥控码的位数。默认为
12。
-
symphony: 使用给定的数据在解码后的 Symphony 遥控码上触发。
- data (必选, int): 要触发匹配的 Symphony 码,参见 dumper 输出了解更多信息。
- nbits (必选, int): 遥控码的位数。典型值:
8、12或16。
-
toshiba_ac: 使用给定的数据在解码后的 Toshiba AC 遥控码上触发。
- rc_code_1 (必选, int): 要触发匹配的遥控码,参见 dumper 输出了解更多细节。
- rc_code_2 (可选, int): 要触发匹配的遥控码的第二部分,参见 dumper 输出了解 更多细节。
-
mirage: 使用给定的码在 Mirage 遥控码上触发。
- code (必选, 14 字节列表): 要监听的码,参见 发射器描述 了解更多信息。通常你只需要直接从 dumper 输出中复制 此内容。
-
toto: 使用给定的数据在解码后的 Toto 遥控码上触发。
- command (必选, int): 要触发匹配的 1 字节 Toto 命令码。范围是 0 到 0xFF。
- rc_code_1 (可选, int): 要触发匹配的第一个 4 位 Toto 码(通常是一个命令参数)。范围是 0 到 0xF。
- rc_code_2 (可选, int): 要触发匹配的第二个 4 位 Toto 码(通常是一个命令参数)。范围是 0 到 0xF。
NOTE
CanalSat 和 CanalSatLD 协议使用更高的载波频率(56kHz),并且非常相似。 根据所使用的硬件,同时启用时它们可能会相互干扰。
NOTE
NEC 码:在 2021.12 版本中,位传输的顺序按照 NEC 标准从 MSB 纠正为 LSB。因此,如果配置文件来自 ESPhome 的早期版本,
转到 2021.12 或更高版本时,需要反转地址和命令位的顺序。例如,
address: 0x84ED、command: 0x13EC 分别变为 0xB721 和 0x37C8。
NOTE
一些接收器(如 TSOP38238)可能需要使用上拉电阻。你可以按如下方式启用:
remote_receiver: pin: number: GPIOXX inverted: true mode: input: true pullup: true dump: allNOTE
对于黑色 Sonoff RF 桥接器,你可以通过 这个 hack 绕过 EFM8BB1 微控制器来处理 RF 信号,该 hack 由 GitHub 用户 wildwiz 创建。然后为远程接收器/发射器 hub 使用此配置:
remote_receiver: pin: 4 dump: all
remote_transmitter: pin: 5 carrier_duty_percent: 100%还有一个软件”hack” 允许无线电芯片将所有电压镜像到 ESP 上进行解码, 使硬件 hack 变得不必要。这种软件直通模式可用于 OB38S003(白色)和 EFM8BB1(黑色)sonoff RF 桥接器。然后为远程接收器/发射器 hub 使用此配置:
remote_receiver: pin: # sonoff 和 wemos 开发板 number: GPIO3 mode: input: true pullup: false tolerance: 60% filter: 4us idle: 4ms
remote_transmitter: pin: 1 carrier_duty_percent: 100%