ESP-NOW 数据包传输平台
数据包传输组件 平台允许 ESPHome 节点通过通信通道直接相互通信。 该平台的 ESP-NOW 实现使用 ESP-NOW 作为通信介质。 有关更多信息,请参阅 数据包传输组件 和 Espnow。
ESP-NOW 提供 ESP32 设备之间的低延迟、低功耗无线通信,无需 Wi-Fi 连接。这使其非常适合电池供电的传感器或 Wi-Fi 开销会影响 性能的应用。
NOTE
ESP-NOW 通信独立于 Wi-Fi 进行。即使 Wi-Fi 被 禁用,设备也可以通过 ESP-NOW 进行通信,使其适用于对功耗敏感的应用。
# Example configuration entryespnow: 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: "Test Temperature"- espnow_id (必填, ID): 用于传输的 esp-now ID。
- peer_address (可选, MAC 地址): 要发送数据包到的 MAC 地址。这可以是特定 的对端地址用于点对点通信,也可以是广播地址。默认 FF:FF:FF:FF:FF:FF
- 还包括 数据包传输组件 的所有其他选项
NOTE
对端必须先在 Espnow 组件中注册
才能接收数据包。peer_address 仅控制哪些对端接收传输的数据;
传入数据包接受所有已注册对端的数据。
peer_address 配置决定传输模式。
广播模式(默认)
Section titled “广播模式(默认)”packet_transport: - platform: espnow sensors: - sensor_id所有将广播地址(FF:FF:FF:FF:FF:FF)注册为对端的设备都会接收数据包。
这在多个设备监控单个传感器源的中心辐射拓扑中非常有用。
WARNING
使用广播模式会增加无线电通道上的 ESP-NOW 流量,这可能会影响其他 ESP-NOW 设备的性能。尽可能使用特定的对端地址以减少干扰。
packet_transport: - platform: espnow peer_address: "AA:BB:CC:DD:EE:FF" sensors: - sensor_id只有指定的对端接收数据包。这对于点对点通信更高效,并减少 邻近 ESP-NOW 设备的无线电通道拥塞。
此示例显示两个设备通过启用了加密的 ESP-NOW 交换传感器数据。
esphome: name: temp-sensor
espnow: peers: - "AA:BB:CC:DD:EE:01" # Consumer mac address
packet_transport: - platform: espnow peer_address: "AA:BB:CC:DD:EE:01" # Consumer mac address encryption: "MySecretKey123" sensors: - outdoor_temp
sensor: - platform: ... temperature: name: "Outdoor Temperature" id: outdoor_tempespnow: peers: - "AA:BB:CC:DD:EE:00" # Provider mac address
packet_transport: - platform: espnow encryption: "MySecretKey123" providers: - name: temp-sensor # Provider device name
sensor: - platform: packet_transport provider: temp-sensor id: remote_temp remote_id: outdoor_temp name: "Remote Outdoor Temperature"NOTE
provider 字段必须与提供者设备 esphome: 块中配置的设备名称匹配;此名称包含在 packet_transport 数据中。
多设备中心示例
Section titled “多设备中心示例”此示例显示中心节点从多个远程设备接收传感器数据。
espnow: peers: - "AA:BB:CC:DD:EE:01" # room-sensor-1 mac address - "AA:BB:CC:DD:EE:02" # room-sensor-2 mac address - "AA:BB:CC:DD:EE:03" # outdoor-sensor mac address
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: "Room 1 Temperature"
- platform: packet_transport provider: room-sensor-2 remote_id: temperature name: "Room 2 Temperature"
- platform: packet_transport provider: outdoor-sensor remote_id: temperature name: "Outdoor Temperature"esphome: name: room-sensor-1 # room-sensor-2, outdoor-sensor on the other devices
espnow:
packet_transport: - platform: espnow encryption: "HubSecret123" sensors: - temperature
sensor: - platform: ... temperature: id: temperature