遥控发射器
remote_transmitter 组件让您可以发送各种常见的遥控信号,例如红外或 433 MHz 射频 (RF) 信号。
该组件分为两部分:
- 遥控发射器”集线器”,定义了引脚和一些附加设置,以及…
- 单独的动作来发送编码的遥控信号。
NOTE
此组件在 ESP32 或其变体上表现最佳;大多数都有专用的 RMT 硬件外设,可确保准确的信号时序。ESP32-C2 和 ESP32-C61 缺少 RMT 硬件,改用软件(GPIO 位操作)实现。
# 示例配置条目remote_transmitter: pin: GPIOXX carrier_duty_percent: 50%-
pin (必需, 引脚):发送遥控信号的引脚。
-
carrier_duty_percent (可选, 整数):遥控开启时间的百分比。例如,红外协议使用载波信号调制信号。如果您使用红外 LED,请设置为
50%;对于射频应用(如 433 MHz 发射器),请设置为100%。 -
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 符号 |
-
clock_resolution (可选, 整数):RMT 外设使用的时钟分辨率,单位为 Hz。默认为
1000000。 -
non_blocking (可选, 布尔值):如果启用,任何发送将立即返回,RMT 将在后台运行。
on_complete自动化将在发送完成后触发。默认为true。 -
use_dma (可选, 布尔值):在支持 DMA 的变体上启用 DMA。如果启用,
rmt_symbols控制 DMA 缓冲区大小,可以设置为较大的值。 -
eot_level (可选, 布尔值):覆盖默认的发送结束电平。默认为
false,除非pin设置为反相或开漏。
-
on_transmit (可选, 自动化):在发送数据之前执行的自动化。如果无线电/红外硬件需要更改状态或开机,这很有用。
-
on_complete (可选, 自动化):在发送数据之后执行的自动化。如果无线电/红外硬件需要更改状态或关机,这很有用。
# 示例自动化remote_transmitter: ... on_transmit: then: - switch.turn_on: tx_enable on_complete: then: - switch.turn_off: tx_enable遥控发射器动作
Section titled “遥控发射器动作”遥控发射器支持许多动作,可用于发送遥控代码。所有支持的协议如下所列。所有动作都有这些附加的 #### 配置变量
on_...: - remote_transmitter.transmit_x: # ... repeat: times: 5 wait_time: 10ms-
repeat (可选):定义发送时代码重复的次数。默认情况下,代码仅发送一次。
-
transmitter_id (可选, ID):用于发送遥控代码的遥控发射器。默认为配置中定义的第一个。
如果您想要与 Home Assistant 中 rpi_rf 集成默认功能相同的效果,您需要将 times 设置为 10,wait_time 设置为 0s。
remote_transmitter.transmit_abbwelcome 动作
Section titled “remote_transmitter.transmit_abbwelcome 动作”此动作向对讲总线发送 ABB-Welcome 消息。 消息类型、地址、地址长度和数据在 ABB-Welcome 系统之间可能差异很大。请参考执行按门铃或开门等操作时收到的消息。
on_...: - remote_transmitter.transmit_abbwelcome: source_address: 0x1001 # 您的室内机地址 destination_address: 0x4001 # 门地址 three_byte_address: false # 您系统的地址长度 message_type: 0x0d # 解锁门,某些系统使用 0x0e data: [0xab, 0xcd, 0xef] # 消息数据,参见接收器转储-
source_address (必需, 整数):发送命令的源地址, 详情请参见收到的消息。对于室内机,地址的最后一个字节代表室内机背面拨码设置的公寓号码,以十六进制格式传输。
-
destination_address (必需, 整数):发送命令的目标地址, 详情请参见收到的消息。
-
three_byte_address (可选, 布尔值):源地址和目标地址的长度。
false表示两个字节,true表示三个字节。请检查收到的消息以了解您的系统使用哪种地址长度。例如,接收器日志中双字节地址显示为[XXXX > XXXX],三字节地址显示为[XXXXXX > XXXXXX]。默认为false。 -
retransmission (可选, 布尔值):仅当此消息之前已使用相同的
message_id发送过时才应为true。通常,如果没有收到回复,消息最多会以 1 秒的间隔重传三次。默认为false。 -
message_type (必需, 整数):消息类型,详情请参见转储输出。 最高位表示回复。
-
message_id (可选, 整数):消息 ID,详情请参见转储输出。 如果此消息不是回复或重传,则默认为随机生成的 ID。
-
data (可选, 0-7 字节列表):要发送的代码。 通常您只需要直接从转储输出中复制此内容。默认为
[] -
来自 遥控发射器动作 的所有其他选项。
NOTE
ABB-Welcome 消息通过对讲系统的两线总线发送。 需要自定义接收器和发射器电路。 更多信息
remote_transmitter.transmit_aeha 动作
Section titled “remote_transmitter.transmit_aeha 动作”此动作向遥控发射器发送 AEHA 代码。
on_...: - remote_transmitter.transmit_aeha: address: 0x1FEF data: [0x1F, 0x3E, 0x06, 0x5F]-
address (必需, 整数):发送命令的地址,详情请参见转储输出。
-
data (必需, 列表):要发送的命令,一个数据包可指定 2-35 字节的长度。
-
carrier_frequency (可选, 浮点数):设置发送信号的频率 用于红外信号。默认为
38000Hz。 -
来自 遥控发射器动作 的所有其他选项。
AEHA 指的是日本家用电器协会,这是一种被松下和许多其他公司使用的格式。
remote_transmitter.transmit_beo4 动作
Section titled “remote_transmitter.transmit_beo4 动作”此动作向遥控发射器发送 B&O Beo4 红外协议代码。
on_...: - remote_transmitter.transmit_beo4: source: '0x01' command: '0x0d'- source (必需, 整数):要发送的 8 位源,例如 0x00=视频,0x01=音频,…,详情请参见转储输出。
- command (必需, 整数):要发送的命令,例如 0x01=数字1, 0x0d=静音,…,详情请参见转储输出。
- 来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_byronsx 动作
Section titled “remote_transmitter.transmit_byronsx 动作”此动作向遥控发射器发送 Byron 门铃射频协议代码。
on_...: - remote_transmitter.transmit_byronsx: address: '0x4f' command: '0x2'- address (必需, 整数):要发送的 8 位 ID,详情请参见转储输出。
- command (必需, 整数):要发送的命令,详情请参见转储输出。
- 来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_canalsat 动作
Section titled “remote_transmitter.transmit_canalsat 动作”此动作向遥控发射器发送 CanalSat 红外遥控代码。
NOTE
CanalSat 和 CanalSatLD 协议使用较高的载波频率 (56kHz) 并且非常相似。 根据所使用的硬件,它们同时启用时可能会相互干扰。
on_...: - remote_transmitter.transmit_canalsat: device: 0x25 address: 0x00 command: 0x02-
device (必需, 整数):发送目标的设备,详情请参见转储输出。
-
address (可选, 整数):发送目标的地址(或子设备),详情请参见转储输出。 默认为
0。 -
command (必需, 整数):要发送的命令。
-
来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_canalsatld 动作
Section titled “remote_transmitter.transmit_canalsatld 动作”此动作向遥控发射器发送 CanalSatLD 红外遥控代码。
NOTE
CanalSat 和 CanalSatLD 协议使用较高的载波频率 (56kHz) 并且非常相似。 根据所使用的硬件,它们同时启用时可能会相互干扰。
on_...: - remote_transmitter.transmit_canalsatld: device: 0x25 address: 0x00 command: 0x02-
device (必需, 整数):发送目标的设备,详情请参见转储输出。
-
address (可选, 整数):发送目标的地址(或子设备),详情请参见转储输出。 默认为
0。 -
command (**必需”, 整数):要发送的命令。
-
来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_coolix 动作
Section titled “remote_transmitter.transmit_coolix 动作”此动作向遥控发射器发送一个或两个 24 位 Coolix 红外遥控代码。
on_...: - remote_transmitter.transmit_coolix: first: 0xB23FE4 second: 0xB23FE4-
first (必需, 可模板化, uint32_t):要发送的第一个 24 位 Coolix 代码; 详情请参见转储输出。
-
second (可选, 可模板化, uint32_t):要发送的第二个 24 位 Coolix 代码; 详情请参见转储输出。
-
来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_dish 动作
Section titled “remote_transmitter.transmit_dish 动作”此动作向遥控发射器发送 Dish Network 红外遥控代码。
on_...: - remote_transmitter.transmit_dish: address: 1 command: 16- address (可选, 整数):目标接收器的编号,介于 1 到 16 之间(含)。默认为
1。 - command (**必需”, 整数):要发送的命令,介于 0 到 63 之间(含)。
- 来自 遥控发射器动作 的所有其他选项。
您可以在 LIRC 项目 中找到命令列表。
remote_transmitter.transmit_dooya 动作
Section titled “remote_transmitter.transmit_dooya 动作”此动作向遥控发射器发送 Dooya 射频遥控代码。
on_...: - remote_transmitter.transmit_dooya: id: 0x001612E5 channel: 142 button: 12 check: 3-
id (**必需”, 整数):要发送的 24 位 ID。每个遥控器都有唯一的 ID。
-
channel (**必需”, 整数):要发送的 8 位通道,介于 0 到 255 之间(含)。
-
button (**必需”, 整数):要发送的 4 位按钮,介于 0 到 15 之间(含)。
-
check (**必需”, 整数):要发送的 4 位校验。包含按钮被按住的指示。 详情请参见转储输出。
-
来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_drayton 动作
Section titled “remote_transmitter.transmit_drayton 动作”此动作向遥控发射器发送 Draton Digistat 射频遥控代码。
on_...: - remote_transmitter.transmit_drayton: address: '0x6180' channel: '0x12' command: '0x02'- address (**必需”, 整数):要发送的 16 位 ID,详情请参见转储输出。
- channel (**必需”, 整数):要发送的开关/通道,介于 0 到 127 之间(含)。
- command (**必需”, 整数):要发送的命令,介于 0 到 63 之间(含)。
- 来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_dyson 动作
Section titled “remote_transmitter.transmit_dyson 动作”此动作向遥控发射器发送戴森 Cool AM07 红外协议代码。
on_...: - remote_transmitter.transmit_dyson: code: '0x1200' index: !lambda |- uint8_t idx = id(idx); id(idx) = (id(idx) + 1) & 3; return idx;- code (**必需”, 整数):要触发的 16 位代码,例如 0x1200=电源, 0x1215=风扇++, 0x122a=摆动…,详情请参见转储输出。
- index (**必需”, 整数):8 位滚动索引(范围=0..3)。
- 来自 遥控发射器动作 的所有其他选项。
NOTE
戴森设备使用滚动代码,即每个遥控按钮以伪随机方式生成 4 个不同的代码。 每次发送时,index 变量必须循环,以让 ..transmit_dyson 函数生成与上一个不同的代码。
remote_transmitter.transmit_gobox 动作
Section titled “remote_transmitter.transmit_gobox 动作”此动作通过红外发射器向 Go-Box 发送命令。
on_...: - remote_transmitter.transmit_gobox: code: 0xfa05- code (**必需”, 整数):要发送的命令。已知命令有:
-
MENU = 0xaa55,
-
RETURN = 0x22dd,
-
UP = 0x0af5,
-
LEFT = 0x8a75,
-
RIGHT = 0x48b7,
-
DOWN = 0xa25d,
-
OK = 0xc837,
-
TOGGLE = 0xb847,
-
PROFILE = 0xfa05
-
FASTER = 0xf00f,
-
SLOWER = 0xd02f,
-
LOUDER = 0xb04f,
-
SOFTER = 0xf807,
-
来自 遥控发射器动作 的所有其他选项。
-
remote_transmitter.transmit_jvc 动作
Section titled “remote_transmitter.transmit_jvc 动作”此动作向遥控发射器发送 JVC 红外遥控代码。
on_...: - remote_transmitter.transmit_jvc: data: 0x1234- data (**必需”, 整数):要发送的 JVC 代码,详情请参见转储输出。
- 来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_keeloq 动作
Section titled “remote_transmitter.transmit_keeloq 动作”此动作向遥控发射器发送 KeeLoq 射频遥控代码。
on_...: - remote_transmitter.transmit_keeloq: address: '0x57ffe7b' command: '0x02' code: '0xd19ef0a9' repeat: times: 3 wait_time: 15ms- address (**必需”, 整数):要发送的 32 位地址,详情请参见转储输出。
- command (**必需”, 整数):要发送的 4 位命令/按钮代码,详情请参见转储输出。
- code (可选, 整数):要发送的 32 位加密字段。默认为全零。
- level (可选, 布尔值):低电池电量状态位。默认为 false。
- 来自 遥控发射器动作 的所有其他选项。
- 如示例所示的重复 wait_time 为 15ms 复制了 HCS301 的重复方式。
remote_transmitter.transmit_haier 动作
Section titled “remote_transmitter.transmit_haier 动作”此动作向遥控发射器发送 104 位海尔代码。8 位校验和会自动添加。
on_...: - remote_transmitter.transmit_haier: code: [0xA6, 0xDA, 0x00, 0x00, 0x40, 0x40, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x05]- code (**必需”, 列表):要发送的 13 字节海尔代码。
- 来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_lg 动作
Section titled “remote_transmitter.transmit_lg 动作”此动作向遥控发射器发送 LG 红外遥控代码。
on_...: - remote_transmitter.transmit_lg: data: 0x20DF10EF # 开/关电源 nbits: 32- data (**必需”, 整数):要发送的 LG 代码,详情请参见转储输出。
- nbits (可选, 整数):要发送的位数。默认为
28。 - 来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_magiquest 动作
Section titled “remote_transmitter.transmit_magiquest 动作”此动作向遥控发射器发送 MagiQuest 魔杖代码。
on_...: - remote_transmitter.transmit_magiquest: wand_id: 0x01234567 magnitude: 0x080C-
wand_id (**必需”, 整数):要发送的魔杖 ID,以十六进制整数形式。详情请参见转储输出获取您的魔杖 ID。
-
magnitude (可选, 整数):魔杖应发送的挥舞和旋转幅度。详情请参见转储输出获取示例。如果省略,发送 0xFFFF(真正的魔杖从不使用此值)。
-
来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_midea 动作
Section titled “remote_transmitter.transmit_midea 动作”此动作向遥控发射器发送 40 位美的代码。8 位校验和会自动添加。
on_...: - remote_transmitter.transmit_midea: code: [0xA2, 0x08, 0xFF, 0xFF, 0xFF]
on_...: - remote_transmitter.transmit_midea: code: !lambda |- // 发送带有当前温度的 FollowMe 代码。 return {0xA4, 0x82, 0x48, 0x7F, (uint8_t)(id(temp_sensor).state + 1)};remote_transmitter.transmit_nec 动作
Section titled “remote_transmitter.transmit_nec 动作”此动作向遥控发射器发送 NEC 红外遥控代码。
NOTE
在 2021.12 版本中,根据 NEC 标准将位传输顺序从 MSB 更正为 LSB。
因此,如果配置文件来自较早版本的 ESPHome,在升级到 2021.12 或更高版本时,需要反转地址和命令位的顺序。例如,address: 0x84ED、command: 0x13EC 分别变为 0xB721 和 0x37C8。此外,ESPHome 不会自动生成奇偶校验位或将值填充到 2 字节。例如,要发送命令 0x0,您需要使用 0xFF00(0x00 是命令,0xFF 是逻辑反码)。
on_...: - remote_transmitter.transmit_nec: address: 0x1234 command: 0x78AB command_repeats: 1-
address (**必需”, 整数):要发送的 16 位地址,详情请参见转储输出。
-
command (**必需”, 整数):要发送的 16 位 NEC 命令。
-
command_repeats (可选, 整数):一次传输中命令字节发送的次数。 默认为
1。 -
来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_nexa 动作
Section titled “remote_transmitter.transmit_nexa 动作”此动作向遥控发射器发送 Nexa 射频遥控代码。
on_...: - remote_transmitter.transmit_nexa: device: 0x38DDB4A state: 1 group: 0 channel: 15 level: 0-
device (**必需”, 整数):要发送的 Nexa 设备代码,详情请参见转储输出。
-
state (**必需”, 整数):要发送的 Nexa 状态代码(0-关, 1-开, 2-调光级别),详情请参见转储输出。
-
group (**必需”, 整数):要发送的 Nexa 组代码,详情请参见转储输出。
-
channel (**必需”, 整数):要发送的 Nexa 通道代码,详情请参见转储输出。
-
level (**必需”, 整数):要发送的 Nexa 级别代码,详情请参见转储输出。
-
来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_panasonic 动作
Section titled “remote_transmitter.transmit_panasonic 动作”此动作向遥控发射器发送松下红外遥控代码。
on_...: - remote_transmitter.transmit_panasonic: address: 0x1FEF command: 0x1F3E065F- address (**必需”, 整数):发送命令的地址,详情请参见转储输出。
- command (**必需”, 整数):要发送的命令。
- 来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_pioneer 动作
Section titled “remote_transmitter.transmit_pioneer 动作”此动作向遥控发射器发送先锋红外遥控代码。
on_...: - remote_transmitter.transmit_pioneer: rc_code_1: 0xA556 rc_code_2: 0xA506 repeat: times: 2-
rc_code_1 (**必需”, 整数):要发送的遥控代码,详情请参见转储输出。
-
rc_code_2 (可选, 整数):要发送的次要遥控代码;某些代码分两部分发送。
-
请注意
repeat仍然是可选的,但是先锋设备可能需要接收给定代码多次后才会执行操作。 如果您的设备不响应此动作发送的命令,请添加此项。 -
来自 遥控发射器动作 的所有其他选项。
在此动作创建时,先锋维护其设备使用的 红外代码 列表。 如果在文档中找不到您的特定设备,请查找同一类别的设备;代码在同一类别设备中基本共享。
remote_transmitter.transmit_pronto 动作
Section titled “remote_transmitter.transmit_pronto 动作”此动作向遥控发射器发送以 Pronto 格式指定的原始代码。
on_...: - remote_transmitter.transmit_pronto: data: "0000 006D 0010 0000 0008 0020 0008 0046 000A 0020 0008 0020 0008 001E 000A 001E 000A 0046 000A 001E 0008 0020 0008 0020 0008 0046 000A 0046 000A 0046 000A 001E 000A 001E 0008 06C3"-
data (**必需”, 字符串):要发送的原始代码,指定为字符串。许多遥控 Pronto 代码可以在 http://remotecentral.com 上找到
-
来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_raw 动作
Section titled “remote_transmitter.transmit_raw 动作”此动作向遥控发射器发送原始代码。
on_...: - remote_transmitter.transmit_raw: code: [4088, -1542, 1019, -510, 513, -1019, 510, -509, 511, -510, 1020, -1020, 1022, -1019, 510, -509, 511, -510, 511, -509, 511, -510, 1020, -1019, 510, -511, 1020, -510, 512, -508, 510, -1020, 1022, -1021, 1019, -1019, 511, -510, 510, -510, 1022, -1020, 1019, -1020, 511, -511, 1018, -1022, 1020, -1019, 1021, -1019, 1020, -511, 510, -1019, 1023, -1019, 1019, -510, 512, -508, 510, -511, 512, -1019, 510, -509]-
code (**必需”, 列表):要发送的原始代码,以整数列表形式。 正数表示数字高电平信号,负数表示数字低电平信号。 数字本身编码信号应持续多长时间(以微秒为单位)。
-
carrier_frequency (可选, 浮点数):可选地设置发送信号的频率 用于红外信号。默认为
0Hz。 -
来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_rc5 动作
Section titled “remote_transmitter.transmit_rc5 动作”此动作向遥控发射器发送 RC5 红外遥控代码。
on_...: - remote_transmitter.transmit_rc5: address: 0x1F command: 0x3F- address (**必需”, 整数):要发送的地址,详情请参见转储输出。
- command (**必需”, 整数):要发送的 RC5 命令。
- 来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_rc6 动作
Section titled “remote_transmitter.transmit_rc6 动作”此动作向遥控发射器发送 RC6 红外遥控代码。
on_...: - remote_transmitter.transmit_rc6: address: 0x1F command: 0x3F- address (**必需”, 整数):要发送的地址,详情请参见转储输出。
- command (**必需”, 整数):要发送的 RC6 命令。
- 来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_rc_switch_raw 动作
Section titled “remote_transmitter.transmit_rc_switch_raw 动作”此动作向遥控发射器发送原始 RC-Switch 代码。
on_...: - remote_transmitter.transmit_rc_switch_raw: code: '001010011001111101011011' protocol: 1-
code (**必需”, 字符串):要发送的原始代码,从转储输出中复制此内容。
-
protocol (可选):要使用的 RC Switch 协议,详情请参见 RC Switch 协议。
-
来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_rc_switch_type_a 动作
Section titled “remote_transmitter.transmit_rc_switch_type_a 动作”此动作向遥控发射器发送 A 型 RC-Switch 代码。
on_...: - remote_transmitter.transmit_rc_switch_type_a: group: '01001' device: '10110' state: off protocol: 1-
group (**必需”, 字符串):发送命令的组。
-
device (**必需”, 字符串):组中发送命令的设备。
-
state (**必需”, 布尔值):要发送的开/关状态。
-
protocol (可选):要使用的 RC Switch 协议,详情请参见 RC Switch 协议。
-
来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_rc_switch_type_b 动作
Section titled “remote_transmitter.transmit_rc_switch_type_b 动作”此动作向遥控发射器发送 B 型 RC-Switch 代码。
on_...: - remote_transmitter.transmit_rc_switch_type_b: address: '0100' channel: '1011' state: off protocol: 1-
address (**必需”, 整数):发送命令的地址。
-
channel (**必需”, 整数):发送命令的通道。
-
state (**必需”, 布尔值):要发送的开/关状态。
-
protocol (可选):要使用的 RC Switch 协议,详情请参见 RC Switch 协议。
-
来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_rc_switch_type_c 动作
Section titled “remote_transmitter.transmit_rc_switch_type_c 动作”此动作向遥控发射器发送 C 型 RC-Switch 代码。
on_...: - remote_transmitter.transmit_rc_switch_type_c: family: 'C' group: 3 device: 1 state: off protocol: 1-
family (**必需”, 字符串):发送命令的系列。范围是
a到p。 -
group (**必需”, 整数):发送命令的组。范围是 1 到 4。
-
device (**必需”, 整数):发送命令的设备。范围是 1 到 4。
-
state (**必需”, 布尔值):要发送的开/关状态。
-
protocol (可选):要使用的 RC Switch 协议,详情请参见 RC Switch 协议。
-
来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_rc_switch_type_d 动作
Section titled “remote_transmitter.transmit_rc_switch_type_d 动作”此动作向遥控发射器发送 D 型 RC-Switch 代码。
on_...: - remote_transmitter.transmit_rc_switch_type_d: group: 'c' device: 1 state: off protocol: 1-
group (**必需”, 整数):发送命令的组。范围是 1 到 4。
-
device (**必需”, 整数):发送命令的设备。范围是 1 到 3。
-
state (**必需”, 布尔值):要发送的开/关状态。
-
protocol (可选):要使用的 RC Switch 协议,详情请参见 RC Switch 协议。
-
来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_roomba 动作
Section titled “remote_transmitter.transmit_roomba 动作”此动作向遥控发射器发送 Roomba 红外遥控代码。
on_...: - remote_transmitter.transmit_roomba: data: 0x88 # 清洁 repeat: times: 3 wait_time: 17ms- data (**必需”, 整数):要发送的 Roomba 代码,详情请参见转储输出。
- 来自 遥控发射器动作 的所有其他选项。
重要:
-
虽然
repeat是可选的,但是Roomba 吸尘器需要接收给定代码至少三次才会响应。 如果您的 Roomba 不响应命令,请增加此值。 -
虽然
wait_time是可选的,但 Roomba 遥控器在命令之间使用 17 ms 的等待时间。但是,看起来没有此参数也能工作。
remote_transmitter.transmit_samsung 动作
Section titled “remote_transmitter.transmit_samsung 动作”此动作向遥控发射器发送三星红外遥控代码。 它以单个数据包发送最长 64 位的代码。
on_...: - remote_transmitter.transmit_samsung: data: 0x1FEF05E4 # 48 位代码的额外示例: - remote_transmitter.transmit_samsung: data: 0xB946F50A09F6 nbits: 48- data (**必需”, 整数):要发送的数据,详情请参见转储输出。
- nbits (可选, 整数):要发送的位数。默认为
32。 - 来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_samsung36 动作
Section titled “remote_transmitter.transmit_samsung36 动作”此动作向遥控发射器发送 Samsung36 红外遥控代码。
它以两个数据包发送 address 和 command,中间以”空格”分隔。
on_...: - remote_transmitter.transmit_samsung36: address: 0x0400 command: 0x000E00FF- address (**必需”, 整数):要发送的地址,详情请参见转储输出。
- command (**必需”, 整数):要发送的 Samsung36 命令,详情请参见转储输出。
- 来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_symphony 动作
Section titled “remote_transmitter.transmit_symphony 动作”此动作向遥控发射器发送 Symphony 红外遥控代码。
它发送带有页脚间隙的恒定位时间帧。物理 Symphony 遥控器通常
发送相同的帧两次,中间间隔约 35 ms 的间隙。使用 command_repeats 控制
发送多少相同的帧;默认为 2。
on_...: - remote_transmitter.transmit_symphony: data: 0x0E88 nbits: 12 command_repeats: 2-
data (**必需”, 整数):要发送的 Symphony 代码,详情请参见转储输出。
-
nbits (**必需”, 整数):要发送的位数。典型值:
8、12或16。 -
command_repeats (可选, 整数):一次传输中发送相同帧的次数。 默认为
2以匹配典型的手持遥控器。 -
来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_sony 动作
Section titled “remote_transmitter.transmit_sony 动作”此动作向遥控发射器发送索尼红外遥控代码。
on_...: - remote_transmitter.transmit_sony: data: 0x123 nbits: 12- data (**必需”, 整数):要发送的索尼代码,详情请参见转储输出。
- nbits (可选, 整数):要发送的位数。默认为
12。 - 来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_toshiba_ac 动作
Section titled “remote_transmitter.transmit_toshiba_ac 动作”此动作向遥控发射器发送东芝空调红外遥控代码。
NOTE
此动作使用较新的东芝空调协议发送代码,可能不适用于较旧的设备。
on_...: - remote_transmitter.transmit_toshiba_ac: rc_code_1: 0xB24DBF4040BF rc_code_2: 0xD5660001003C-
rc_code_1 (**必需”, 整数):要发送的遥控代码,详情请参见转储输出。
-
rc_code_2 (可选, 整数):要发送的次要遥控代码;某些代码分两部分发送。
-
来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_mirage 动作
Section titled “remote_transmitter.transmit_mirage 动作”此动作向遥控发射器发送 112 位 Mirage 代码。8 位校验和会自动添加。
on_...: - remote_transmitter.transmit_mirage: code: [0x56, 0x77, 0x00, 0x00, 0x22, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]- code (**必需”, 列表):要发送的 14 字节 Mirage 代码。
- 来自 遥控发射器动作 的所有其他选项。
remote_transmitter.transmit_toto 动作
Section titled “remote_transmitter.transmit_toto 动作”此动作向遥控发射器发送 Toto 红外遥控代码。
on_...: - remote_transmitter.transmit_toto: command: 0xED # 设置水温和座温 rc_code_1: 0x0 # 水加热器关闭 rc_code_2: 0x0 # 座加热器关闭 # 默认以 36ms 间隔重复 3 次- command (**必需”, 整数):要发送的 1 字节 Toto 命令代码。范围是 0 到 0xFF。
- rc_code_1 (可选, 整数):要发送的第一个 4 位 Toto 代码(通常是命令参数)。范围是 0 到 0xF。
- rc_code_2 (可选, 整数):要发送的第二个 4 位 Toto 代码(通常是命令参数)。范围是 0 到 0xF。
- 来自 遥控发射器动作 的所有其他选项。
NOTE
Toto 遥控器以 36ms 的间隔重复所有代码三次。此行为默认会发生,但可以通过指定 repeat 和 wait time 配置变量来覆盖。
remote_transmitter.digital_write 动作
Section titled “remote_transmitter.digital_write 动作”此动作设置引脚的输出值。
on_...: - remote_transmitter.digital_write: value: true-
transmitter_id (可选, ID):设置引脚值的遥控发射器。默认为配置中定义的第一个。
-
value (**必需”, 布尔值):引脚的输出值。
RC Switch 协议
Section titled “RC Switch 协议”所有 RC Switch protocol 设置都有这些设置:
-
如果值是整数,则使用具有给定编号的内置协议定义。
-
或者给出键值映射,则有这些设置:
-
pulse_length (**必需”, 整数):协议的脉冲长度 - 一个脉冲应持续的微秒数。
-
sync (可选):同步头的高/低脉冲数,默认为
[1, 31] -
zero (可选):零位的高/低脉冲数,默认为
[1, 3] -
one (可选):一位的高/低脉冲数,默认为
[3, 1] -
inverted (可选, 布尔值):此协议是否反相。默认为
false。
-
Lambda 调用
Section titled “Lambda 调用”动作也可以从 lambda 调用。.transmit() 调用可以通过以下示例填充原始时序或特定协议的编码数据。
.transmit():返回一个可填充数据并发送的调用。
// 示例 - 发送原始时序auto call = id(my_transmitter).transmit();auto *data = call.get_data();for (int32_t i = 0; i < 4; i++) { data->item(600, 600);}uint8_t bytes[] = {0x12, 0x34, 0x56, 0x78};for (uint8_t byte : bytes) { for (int32_t i = 7; i >= 0; i--) { if (byte & (1 << i)) { data->item(400, 200); } else { data->item(200, 400); } }}call.set_send_times(3);call.set_send_wait(2000);call.perform();// 示例 - 使用 Pioneer 协议发送auto call = id(my_transmitter).transmit();esphome::remote_base::PioneerData data = {0xA556, 0xA506};esphome::remote_base::PioneerProtocol().encode(call.get_data(), data);call.set_send_times(2);call.perform();