遥控接收器
remote_receiver 组件让您可以接收和解码各种常见的遥控信号,例如红外或 433 MHz 射频 (RF) 信号。
该组件分为两部分:
- 遥控接收器”集线器”,定义了引脚和一些附加设置,以及…
- 单独的遥控接收器二进制传感器,当收到各自的信号时会激活。
# 示例配置条目remote_receiver: pin: GPIOXX dump: all多个遥控接收器可以在 remote_receiver 中以字典定义列表的形式配置。
-
pin (必需, 引脚):接收遥控信号的引脚。
-
dump (可选, 列表):解码并在日志中转储这些遥控代码(在 log.level=DEBUG 时)。设置为
all可转储所有可用的编解码器:-
abbwelcome:解码并转储 ABB-Welcome 代码。消息通过铜线发送。详情请参见发射器描述。
-
aeha:解码并转储 AEHA 红外代码。
-
beo4:解码并转储 B&O Beo4 红外代码。
-
byronsx:解码并转储 Byron SX 门铃射频代码。
-
canalsat:解码并转储 CanalSat 红外代码。
-
canalsatld:解码并转储 CanalSatLD 红外代码。
-
coolix:解码并转储 Coolix 红外代码。
-
dish:解码并转储 Dish 红外代码。
-
dooya:解码并转储 Dooya 射频代码。
-
drayton:解码并转储 Drayton Digistat 射频代码。
-
dyson:解码并转堆 Dyson Cool AM7 塔扇代码。
-
jvc:解码并转储 JVC 红外代码。
-
gobox:解码并转储 Go-Box 红外代码。
-
keeloq:解码并转储 KeeLoq 射频代码。
-
haier:解码并转储海尔红外代码。
-
lg:解码并转储 LG 红外代码。
-
magiquest:解码并转储 MagiQuest 魔杖红外代码。
-
midea:解码并转储美的红外代码。
-
nec:解码并转储 NEC 红外代码。
-
nexa:解码并转储 Nexa (射频) 代码。
-
panasonic:解码并转储松下红外代码。
-
pioneer:解码并转储先锋红外代码。
-
pronto:以 Pronto 格式打印遥控代码。用于使用任意协议。
-
raw:以原始格式打印所有遥控代码。也用于使用任意协议。
-
rc5:解码并转储 RC5 红外代码。
-
rc6:解码并转储 RC6 红外代码。
-
rc_switch:解码并转储 RCSwitch 射频代码。
-
roomba:解码并转储 Roomba 红外代码。
-
samsung:解码并转储三星红外代码。
-
samsung36:解码并转储 Samsung36 红外代码。
-
symphony:解码并转储 Symphony 红外代码。
-
sony:解码并转储索尼红外代码。
-
toshiba_ac:解码并转堆东芝空调红外代码。
-
mirage:解码并转储 Mirage 红外代码。
-
toto:解码并转储 Toto 红外代码。
-
-
tolerance (可选, 整数, 时间 或映射):遥控信号长度在解码过程中可以偏离的百分比或时间。默认为
25%。- type (必需, 枚举):设置容差类型。可以是
percentage或time。 - value (必需, 整数或 时间):百分比或时间值。允许的范围是
0到100%或0到4294967295us。
- type (必需, 枚举):设置容差类型。可以是
-
buffer_size (可选, 整数):用于存储遥控代码的内部缓冲区大小。在 ESP32 上默认为
10kB,在 ESP8266 上默认为1kB。 -
filter (可选, 时间):过滤任何短于此时间的脉冲。用于去除噪声信号中的毛刺。允许的范围是
0到4294967295us。默认为50us。 -
idle (可选, 时间):信号应保持稳定/不变以被视为完成的时间量。默认为
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 (可选, 整数):当启用
use_dma时,这设置了驱动程序内部 DMA 缓冲区的大小。当禁用 DMA 时,它指定了分配给组件的 RMT 内存量。RMT 内存在所有组件之间共享,应以块大小的倍数进行分配。在ESP32和ESP32-S2变体上,RMT 内存在 RX 和 TX 组件之间共享。在其他变体上,RX 和 TX 有专用的 RMT 内存。
| ESP32 变体 | 可用内存 | 块大小 |
|---|---|---|
| ESP32 | 512 符号 | 64 符号 |
| ESP32-C3 | 96 符号 | 48 符号 |
| ESP32-C5 | 96 符号 | 48 符号 |
| ESP32-C6 | 96 符号 | 48 符号 |
| ESP32-H2 | 96 符号 | 48 符号 |
| ESP32-P4 | 192 符号 | 48 符号 |
| ESP32-S2 | 256 符号 | 64 符号 |
| ESP32-S3 | 192 符号 | 48 符号 |
-
receive_symbols (可选, 整数):最大接收长度(以符号为单位)。在某些变体上,最大接收长度受限于
rmt_symbols。 -
filter_symbols (可选, 整数):过滤任何长度小于
filter_symbols符号的接收数据。用于过滤掉短促的噪声脉冲。 -
clock_resolution (可选, 整数):RMT 外设使用的时钟分辨率,单位为 Hz。默认为
1000000。 -
use_dma (可选, 布尔值):在支持 DMA 的变体上启用 DMA。如果启用,
rmt_symbols控制 DMA 缓冲区大小,可以设置为较大的值。
在微控制器将接收调制信号的罕见硬件配置中,RMT 外设支持信号解调。如果您不确定,您可能不需要这个。例如,红外遥控信号通常在到达微控制器之前由红外接收器模块 (IRM) 进行解调。
要启用信号解调,请配置信号载波频率和占空比:
-
carrier_duty_percent (可选, 整数):RMT 外设中信号解调的载波占空比,单位为 Hz。默认为
100。 -
carrier_frequency (可选, 整数):RMT 外设中信号解调的载波频率,单位为 Hz。默认为
0Hz(禁用载波解调)。
NOTE
转储的 raw 代码是脉冲宽度序列(以微秒为单位的持续时间),正值表示通脉冲(标记),负值表示断脉冲(空格)。通常您可以直接将其复制到配置或自动化中以供稍后使用。
-
on_abbwelcome (可选, 自动化):当解码到 ABB-Welcome 代码时执行的自动化。类型为 API Reference: remote_base::ABBWelcomeData 的变量
x会传递给自动化以在 lambda 中使用。 -
on_aeha (可选, 自动化):当解码到 AEHA 遥控代码时执行的自动化。类型为 API Reference: remote_base::AEHAData 的变量
x会传递给自动化以在 lambda 中使用。 -
on_beo4 (可选, 自动化):当解码到 B&O Beo4 红外遥控代码时执行的自动化。类型为 API Reference: remote_base::Beo4Data 的变量
x会传递给自动化以在 lambda 中使用。 -
on_byronsx (可选, 自动化):当解码到 Byron SX 门铃射频代码时执行的自动化。类型为 API Reference: remote_base::ByronSXData 的变量
x会传递给自动化以在 lambda 中使用。 -
on_canalsat (可选, 自动化):当解码到 CanalSat 遥控代码时执行的自动化。类型为 API Reference: remote_base::CanalSatData 的变量
x会传递给自动化以在 lambda 中使用。 -
on_canalsatld (可选, 自动化):当解码到 CanalSatLD 遥控代码时执行的自动化。类型为 API Reference: remote_base::CanalSatLDData 的变量
x会传递给自动化以在 lambda 中使用。 -
on_coolix (可选, 自动化):当解码到 Coolix 遥控代码时执行的自动化。类型为 API Reference: remote_base::CoolixData 的变量
x会传递给自动化以在 lambda 中使用。 -
on_dish (可选, 自动化):当解码到 Dish Network 遥控代码时执行的自动化。类型为 API Reference: remote_base::DishData 的变量
x会传递给自动化以在 lambda 中使用。 请注意,Dish 遥控器使用不同的载波频率 (57.6kHz),许多接收器硬件无法解码。 -
on_dooya (可选, 自动化):当解码到 Dooya 射频遥控代码时执行的自动化。类型为 API Reference: remote_base::DooyaData 的变量
x会传递给自动化以在 lambda 中使用。 -
on_drayton (可选, 自动化):当解码到 Drayton Digistat 射频代码时执行的自动化。类型为 API Reference: remote_base::DraytonData 的变量
x会传递给自动化以在 lambda 中使用。 -
on_dyson (可选, 自动化):当解码到 Dyson Cool AM07 代码时执行的自动化。类型为 API Reference: remote_base::DysonData 的变量
x会传递给自动化以在 lambda 中使用。 -
on_gobox (可选, 自动化):当解码到 Go-Box 遥控代码时执行的自动化。类型为 API Reference: remote_base::GoboxData 的变量
x会传递给自动化以在 lambda 中使用。 -
on_jvc (可选, 自动化):当解码到 JVC 遥控代码时执行的自动化。类型为 API Reference: remote_base::JVCData 的变量
x会传递给自动化以在 lambda 中使用。 -
on_keeloq (可选, 自动化):当解码到 KeeLoq 射频代码时执行的自动化。类型为 API Reference: remote_base::KeeloqData 的变量
x会传递给自动化以在 lambda 中使用。 -
on_haier (可选, 自动化):当解码到海尔遥控代码时执行的自动化。类型为 API Reference: remote_base::HaierData 的变量
x会传递给自动化以在 lambda 中使用。 -
on_lg (可选, 自动化):当解码到 LG 遥控代码时执行的自动化。类型为 API Reference: remote_base::LGData 的变量
x会传递给自动化以在 lambda 中使用。 -
on_magiquest (可选, 自动化):当解码到 MagiQuest 魔杖遥控代码时执行的自动化。类型为 API Reference: remote_base::MagiQuestData 的变量
x会传递给自动化以在 lambda 中使用。 -
on_midea (可选, 自动化):当解码到美的遥控代码时执行的自动化。类型为 API Reference: remote_base::MideaData 的变量
x会传递给自动化以在 lambda 中使用。 -
on_nec (可选, 自动化):当解码到 NEC 遥控代码时执行的自动化。类型为 API Reference: remote_base::NECData 的变量
x会传递给自动化以在 lambda 中使用。 -
on_nexa (可选, 自动化):当解码到 Nexa 射频代码时执行的自动化。类型为 API Reference: remote_base::NexaData 的变量
x会传递给自动化以在 lambda 中使用。 -
on_panasonic (可选, 自动化):当解码到松下遥控代码时执行的自动化。类型为 API Reference: remote_base::PanasonicData 的变量
x会传递给自动化以在 lambda 中使用。 -
on_pioneer (可选, 自动化):当解码到先锋遥控代码时执行的自动化。类型为 API Reference: remote_base::PioneerData 的变量
x会传递给自动化以在 lambda 中使用。 -
on_pronto (可选, 自动化):当解码到 Pronto 遥控代码时执行的自动化。类型为
std::string的变量x会传递给自动化以在 lambda 中使用。 -
on_raw (可选, 自动化):当解码到原始遥控代码时执行的自动化。类型为
std::vector<int>的变量x会传递给自动化以在 lambda 中使用。 -
on_rc5 (可选, 自动化):当解码到 RC5 遥控代码时执行的自动化。类型为 API Reference: remote_base::RC5Data 的变量
x会传递给自动化以在 lambda 中使用。 -
on_rc6 (可选, 自动化):当解码到 RC6 遥控代码时执行的自动化。类型为 API Reference: remote_base::RC6Data 的变量
x会传递给自动化以在 lambda 中使用。 -
on_rc_switch (可选, 自动化):当解码到 RCSwitch 射频代码时执行的自动化。类型为 API Reference: remote_base::RCSwitchData 的变量
x会传递给自动化以在 lambda 中使用。 -
on_roomba (可选, 自动化):当解码到 Roomba 遥控代码时执行的自动化。类型为 API Reference: remote_base::RoombaData 的变量
x会传递给自动化以在 lambda 中使用。 -
on_samsung (可选, 自动化):当解码到三星遥控代码时执行的自动化。类型为 API Reference: remote_base::SamsungData 的变量
x会传递给自动化以在 lambda 中使用。 -
on_samsung36 (可选, 自动化):当解码到 Samsung36 遥控代码时执行的自动化。类型为 API Reference: remote_base::Samsung36Data 的变量
x会传递给自动化以在 lambda 中使用。 -
on_sony (可选, 自动化):当解码到索尼遥控代码时执行的自动化。类型为 API Reference: remote_base::SonyData 的变量
x会传递给自动化以在 lambda 中使用。 -
on_symphony (可选, 自动化):当解码到 Symphony 遥控代码时执行的自动化。类型为 API Reference: remote_base::SymphonyData 的变量
x会传递给自动化以在 lambda 中使用。 -
on_toshiba_ac (可选, 自动化):当解码到东芝空调遥控代码时执行的自动化。类型为 API Reference: remote_base::ToshibaAcData 的变量
x会传递给自动化以在 lambda 中使用。 -
on_mirage (可选, 自动化):当解码到 Mirage 遥控代码时执行的自动化。类型为 API Reference: remote_base::MirageData 的变量
x会传递给自动化以在 lambda 中使用。 -
on_toto (可选, 自动化):当解码到 Toto 遥控代码时执行的自动化。类型为 API Reference: 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
对于红外遥控二进制传感器:如果您使用二进制传感器来跟踪红外遥控按钮按下,并且遇到快速按钮按下无法被检测到的问题(例如,快速的 ON→OFF 转换被错过),请考虑在您的 API 配置中设置 batch_delay: 0ms。这将立即发送状态更改而不是批量发送,确保快速转换被保留。但是,这会增加网络流量,应仅在必要时使用。
对于新项目,考虑使用带有上述 on_* 触发器的自动化而不是二进制传感器,因为它们更适合处理瞬时按钮按下事件。
# 示例配置条目binary_sensor: - platform: remote_receiver name: "松下遥控输入" panasonic: address: 0x4004 command: 0x100BCBD# 使用 batch_delay: 0 处理快速按钮按下的示例api: batch_delay: 0ms # 立即发送状态更改
remote_receiver: pin: GPIOXX dump: all
binary_sensor: - platform: remote_receiver name: "电视遥控电源" nec: address: 0x1234 command: 0x5678遥控代码选择(必须包含以下其中之一):
-
abbwelcome:在解码到具有给定数据的 ABB-Welcome 代码时触发,详情请参见发射器描述。
-
source_address (必需, 整数):要触发的源地址。
-
destination_address (必需, 整数):要触发的目标地址。
-
three_byte_address (可选, 布尔值):源地址和目标地址的长度。
false表示两个字节,true表示三个字节。默认为false。 -
retransmission (可选, 布尔值):如果消息被重传则为
true。默认为false。 -
message_type (必需, 整数):要触发的消息类型。
-
message_id (可选, 整数):要触发的随机消息 ID,详情请参见转储输出。默认为任意 ID。
-
data (可选, 0-7 字节列表):要监听的代码。通常您只需要直接从转储输出中复制此内容。默认为
[]
-
-
aeha:在解码到具有给定数据的 AEHA 遥控代码时触发。
- address (必需, 整数):要触发的地址,详情请参见转储输出。
- data (必需, 3-35 字节列表):要监听的代码,详情请参见发射器描述。通常您只需要直接从转储输出中复制此内容。
-
beo4:在解码到具有给定数据的 B&O Beo4 红外遥控代码时触发。
- source (必需, 整数):要触发的 8 位源,例如 0x00=视频, 0x01=音频,…,详情请参见转储输出。
- command (*必需, 整数):要监听的 8 位命令,例如 0x00=数字0, 0x0C=待机,…,详情请参见转储输出。
-
byronsx:在解码到具有给定数据的 Byron SX 门铃射频遥控代码时触发。
- address (必需, 整数):要触发的 8 位 ID 代码,详情请参见转储输出。
- command (可选, 整数):要监听的 4 位命令。如果省略,将匹配任何命令。
-
canalsat:在解码到具有给定数据的 CanalSat 遥控代码时触发。
-
device (必需, 整数):要触发的设备,详情请参见转储输出。
-
address (可选, 整数):要触发的地址(或子设备),详情请参见转储输出。 默认为
0。 -
command (必需, 整数):要监听的命令。
-
-
canalsatld:在解码到具有给定数据的 CanalSatLD 遥控代码时触发。
-
device (必需, 整数):要触发的设备,详情请参见转储输出。
-
address (可选, 整数):要触发的地址(或子设备),详情请参见转储输出。 默认为
0。 -
command (必需, 整数):要监听的命令。
-
-
coolix:在解码到具有给定数据的 Coolix 遥控代码时触发。可以直接指定一个 24 位代码,它将被检查是否至少匹配两个接收数据包中的一个。主要配置方案如下。
- first (必需, uint32_t):要触发的第一个 24 位 Coolix 代码,详情请参见转储输出。
- second (可选, uint32_t):要触发的第二个 24 位 Coolix 代码,详情请参见转储输出。
如果未设置,则仅触发由
first参数指定的单个非严格数据包。
-
dish:在解码到具有给定数据的 Dish Network 遥控代码时触发。 请注意,Dish 遥控器使用不同的载波频率 (57.6kHz),许多接收器硬件无法解码。
- address (可选, 整数):目标接收器的编号,介于 1 到 16 之间(含)。默认为
1。 - command (必需, 整数):要监听的 Dish 命令,介于 0 到 63 之间(含)。
- address (可选, 整数):目标接收器的编号,介于 1 到 16 之间(含)。默认为
-
dooya:在解码到具有给定数据的 Dooya 射频遥控代码时触发。
- id (必需, 整数):要触发的 24 位 ID 代码。
- channel (**必需”, 整数):要监听的 8 位通道。
- button (**必需”, 整数):要监听的 4 位按钮。
- check (**必需”, 整数):要监听的 4 位校验。包含按钮被按住的指示。
-
drayton:在解码到具有给定数据的 Drayton Digistat 射频遥控代码时触发。
- address (必需, 整数):要触发的 16 位 ID 代码,详情请参见转储输出。
- channel (**必需”, 整数):要监听的 7 位开关/通道。
- command (**必需”, 整数):要监听的 5 位命令。
-
dyson:在解码到具有给定数据的戴森 Cool AM07 红外遥控代码时触发。
- code (**必需”, 整数):要触发的 16 位代码,例如 0x1200=电源, 0x1215=风扇++,0x122a=摆动…,详情请参见转储输出。
- index (**必需”, 整数):8 位滚动索引 [0..3],每次发送时递增,详情请参见转储输出。
-
gobox:在解码到具有给定数据的 Go-Box 遥控代码时触发。
- code (**必需”, 整数):要触发的 Go-Box 代码,详情请参见转储输出。
-
jvc:在解码到具有给定数据的 JVC 遥控代码时触发。
- data (**必需”, 整数):要触发的 JVC 代码,详情请参见转储输出。
-
keeloq:在解码到具有给定数据的 KeeLoq 射频代码时触发。
- address (必需, 整数):要触发的 32 位 ID 代码,详情请参见转储输出。
- command (**必需”, 整数):要监听的 8 位开关/命令。如果省略,将匹配任何命令/按钮。
-
haier:在解码到具有给定代码的海尔遥控代码时触发。
- code (**必需”, 13 字节列表):要监听的代码,详情请参见发射器描述。通常您只需要直接从转储输出中复制此内容。
-
lg:在解码到具有给定数据的 LG 遥控代码时触发。
- data (**必需”, 整数):要触发的 LG 代码,详情请参见转储输出。
- nbits (可选, 整数):遥控代码的位数。默认为
28。
-
magiquest:在解码到具有给定魔杖 ID 的 MagiQuest 魔杖遥控代码时触发。
- wand_id (**必需”, 整数):要触发的 MagiQuest 魔杖 ID,详情请参见转储输出。
- magnitude (可选, 整数):魔杖挥舞和旋转的幅度。如果省略,将匹配魔杖的任何激活。
-
midea:在解码到具有给定代码的美的遥控代码时触发。
- code (**必需”, 5 字节列表):要监听的代码,详情请参见发射器描述。通常您只需要直接从转储输出中复制前 5 个字节。
-
nec:在解码到具有给定数据的 NEC 遥控代码时触发。
- address (必需, 整数):要触发的地址,详情请参见转储输出。
- command (**必需”, 整数):要监听的 NEC 命令。
-
nexa:在解码到具有给定数据的 Nexa 射频代码时触发。
- device (必需, 整数):要触发的 Nexa 设备代码,详情请参见转储输出。
- group (**必需”, 整数):要触发的 Nexa 组代码,详情请参见转储输出。
- state (**必需”, 整数):要触发的 Nexa 状态代码,详情请参见转储输出。
- channel (**必需”, 整数):要触发的 Nexa 通道代码,详情请参见转储输出。
- level (**必需”, 整数):要触发的 Nexa 级别代码,详情请参见转储输出。
-
panasonic:在解码到具有给定数据的松下遥控代码时触发。
- address (必需, 整数):要触发的地址,详情请参见转储输出。
- command (**必需”, 整数):命令。
-
pioneer:在解码到具有给定数据的先锋遥控代码时触发。
- rc_code_1 (**必需”, 整数):要触发的遥控代码,详情请参见转储输出。
-
pronto:在解码到具有给定代码的 Pronto 遥控代码时触发。
-
data (**必需”, 字符串):要监听的代码,详情请参见发射器描述。通常您只需要直接从转储输出中复制此内容。
-
delta (可选, 整数):此参数允许您手动指定指定的 Pronto 代码与遥控器发送的红外信号之间允许的差异。
-
-
raw:在解码到具有给定代码的原始遥控代码时触发。
- code (**必需”, 列表):要监听的代码,详情请参见发射器描述。通常您只需要直接从转储输出中复制此内容。
-
rc5:在解码到具有给定数据的 RC5 遥控代码时触发。
- address (必需, 整数):要触发的地址,详情请参见转储输出。
- command (**必需”, 整数):要监听的 RC5 命令。
-
rc6:在解码到具有给定数据的 RC6 遥控代码时触发。
- address (必需, 整数):要触发的地址,详情请参见转储输出。
- command (**必需”, 整数):要监听的 RC6 命令。
-
rc_switch_raw:在解码到具有给定数据的 RC Switch 原始遥控代码时触发。
-
code (**必需”, 字符串):要监听的遥控代码,从转储输出中复制此内容。要忽略接收数据中的某一位,请在 code 的该位置使用
x。 -
protocol (可选):要使用的 RC Switch 协议,详情请参见 RC Switch 协议。
-
-
rc_switch_type_a:在解码到具有给定数据的 RC Switch A 型遥控代码时触发。
-
group (**必需”, 字符串):组,二进制字符串。
-
device (**必需”, 字符串):组中的设备,二进制字符串。
-
state (**必需”, 布尔值):要触发的开/关状态。
-
protocol (可选):要使用的 RC Switch 协议,详情请参见 RC Switch 协议。
-
-
rc_switch_type_b:在解码到具有给定数据的 RC Switch B 型遥控代码时触发。
- address (必需, 整数):地址,整数 1 到 4。
- channel (**必需”, 整数):通道,整数 1 到 4。
- state (**必需”, 布尔值):要触发的开/关状态。
- protocol (可选):要使用的 RC Switch 协议,详情请参见 RC Switch 协议。
-
rc_switch_type_c:在解码到具有给定数据的 RC Switch C 型遥控代码时触发。
- family (**必需”, 字符串):系列。范围是
a到p。 - group (**必需”, 整数):组。范围是 1 到 4。
- device (**必需”, 整数):设备。范围是 1 到 4。
- state (**必需”, 布尔值):要触发的开/关状态。
- protocol (可选):要使用的 RC Switch 协议,详情请参见 RC Switch 协议。
- family (**必需”, 字符串):系列。范围是
-
rc_switch_type_d:在解码到具有给定数据的 RC Switch D 型遥控代码时触发。
- group (**必需”, 整数):组。范围是 1 到 4。
- device (**必需”, 整数):设备。范围是 1 到 3。
- state (**必需”, 布尔值):要触发的开/关状态。
- protocol (可选):要使用的 RC Switch 协议,详情请参见 RC Switch 协议。
-
roomba:在解码到具有给定数据的 Roomba 遥控代码时触发。
- data (**必需”, 整数):要触发的 Roomba 代码,详情请参见转储输出。
-
samsung:在解码到具有给定数据的三星遥控代码时触发。
- data (**必需”, 整数):要触发的数据,详情请参见转储输出。
- nbits (可选, 整数):遥控代码的位数。默认为
32。
-
samsung36:在解码到具有给定数据的 Samsung36 遥控代码时触发。
- address (必需, 整数):要触发的地址,详情请参见转储输出。
- command (**必需”, 整数):命令。
-
sony:在解码到具有给定数据的索尼遥控代码时触发。
- data (**必需”, 整数):要触发的索尼代码,详情请参见转储输出。
- nbits (可选, 整数):遥控代码的位数。默认为
12。
-
symphony:在解码到具有给定数据的 Symphony 遥控代码时触发。
- data (**必需”, 整数):要触发的 Symphony 代码,详情请参见转储输出。
- nbits (**必需”, 整数):遥控代码的位数。典型值:
8、12或16。
-
toshiba_ac:在解码到具有给定数据的东芝空调遥控代码时触发。
- rc_code_1 (**必需”, 整数):要触发的遥控代码,详情请参见转储输出。
- rc_code_2 (可选, 整数):要触发的遥控代码的第二部分,详情请参见转储输出。
-
mirage:在解码到具有给定代码的 Mirage 遥控代码时触发。
- code (**必需”, 14 字节列表):要监听的代码,详情请参见发射器描述。通常您只需要直接从转储输出中复制此内容。
-
toto:在解码到具有给定数据的 Toto 遥控代码时触发。
- command (**必需”, 整数):要触发的 1 字节 Toto 命令代码。范围是 0 到 0xFF。
- rc_code_1 (可选, 整数):要触发的第一个 4 位 Toto 代码(通常是命令参数)。范围是 0 到 0xF。
- rc_code_2 (可选, 整数):要触发的第二个 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 射频桥,您可以使用 GitHub 用户 wildwiz 创建的此破解绕过处理射频信号的 EFM8BB1 微控制器。 然后使用此配置作为遥控接收器/发射器集线器:
remote_receiver: pin: 4 dump: all
remote_transmitter: pin: 5 carrier_duty_percent: 100%还有一个软件”破解”可以让射频芯片将所有电压镜像到 ESP 进行解码,使硬件破解变得不必要。此软件直通模式可用于 OB38S003(白色)和 EFM8BB1(黑色)Sonoff 射频桥。然后使用此配置作为遥控接收器/发射器集线器:
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%