ESP-NOW 数据包传输平台
数据包传输组件 平台允许 ESPHome 节点通过通信通道直接相互通信。该平台的 ESP-NOW 实现使用 ESP-NOW 作为通信媒介。有关更多信息,请参阅 数据包传输组件 和 Espnow。
ESP-NOW 提供低延迟、低功耗的 ESP32 设备之间的无线通信,无需 Wi-Fi 连接。这使其成为电池供电传感器或 Wi-Fi 开销会影响性能的应用的理想选择。
注意: ESP-NOW 通信独立于 Wi-Fi 进行。即使禁用 Wi-Fi,设备也可以通过 ESP-NOW 进行通信,这使其适用于对功耗敏感的应用。
# 示例配置espnow: id: espnow_component
packet_transport: - platform: espnow id: transport_unicast espnow_id: espnow_component peer_address: "AA:BB:CC:DD:EE:FF" encryption: key: "0123456789abcdef0123456789abcdef" sensors: - temp_sensor
sensor: - platform: internal_temperature id: temp_sensor name: "测试温度"- espnow_id (必需, ID):用于传输的 esp-now ID。
- peer_address (可选, MAC 地址):发送数据包的目标 MAC 地址。可以是点对点通信的特定对等地址,也可以是广播地址。默认 FF:FF:FF:FF:FF:FF
- 来自 数据包传输组件 的所有其他选项
注意: 对等设备必须先在 Espnow 组件中注册,才能接收数据包。
peer_address仅控制哪些对等设备接收传输的数据;传入的数据包接受来自所有已注册对等设备的数据。
peer_address 配置决定传输模式。
广播模式(默认)
Section titled “广播模式(默认)”packet_transport: - platform: espnow sensors: - sensor_id所有将广播地址(FF:FF:FF:FF:FF:FF)注册为对等设备的设备都将接收数据包。这对于多个设备监控单个传感器源的星型拓扑结构非常有用。
警告: 使用广播模式会增加无线信道上的 ESP-NOW 流量,可能会影响范围内其他 ESP-NOW 设备的性能。尽可能使用特定的对等地址以最小化干扰。
packet_transport: - platform: espnow peer_address: "AA:BB:CC:DD:EE:FF" sensors: - sensor_id只有指定的对等设备接收数据包。这对点对点通信更高效,并减少相邻 ESP-NOW 设备的无线信道拥塞。
此示例显示两个设备通过启用加密的 ESP-NOW 交换传感器数据。
espnow: peers: - "AA:BB:CC:DD:EE:01" # 消费者 mac 地址
packet_transport: - platform: espnow peer_address: "AA:BB:CC:DD:EE:01" # 消费者 mac 地址 encryption: "MySecretKey123" sensors: - outdoor_temp
sensor: - platform: ... temperature: name: "室外温度" id: outdoor_tempespnow: peers: - "AA:BB:CC:DD:EE:00" # 提供者 mac 地址
packet_transport: - platform: espnow encryption: "MySecretKey123" providers: - name: temp-sensor # 提供者设备名称
sensor: - platform: packet_transport provider: temp-sensor id: remote_temp remote_id: outdoor_temp name: "远程室外温度"多设备集线器示例
Section titled “多设备集线器示例”此示例显示一个中央集线器从多个远程设备接收传感器数据。
espnow: peers: - "AA:BB:CC:DD:EE:01" # room-sensor-1 mac 地址 - "AA:BB:CC:DD:EE:02" # room-sensor-2 mac 地址 - "AA:BB:CC:DD:EE:03" # outdoor-sensor mac 地址
packet_transport: - platform: espnow encryption: "HubSecret123" providers: - name: room-sensor-1 - name: room-sensor-2 - name: outdoor-sensor
sensor: - platform: packet_transport provider: room-sensor-1 remote_id: temperature name: "房间 1 温度"
- platform: packet_transport provider: room-sensor-2 remote_id: temperature name: "房间 2 温度"
- platform: packet_transport provider: outdoor-sensor remote_id: temperature name: "室外温度"espnow:
packet_transport: - platform: espnow encryption: "HubSecret123" sensors: - temperature
sensor: - platform: ... temperature: id: temperature