diff --git a/esphome/components/packet_transport/packet_transport.cpp b/esphome/components/packet_transport/packet_transport.cpp index 3f6e60b86f8..afe5300dd55 100644 --- a/esphome/components/packet_transport/packet_transport.cpp +++ b/esphome/components/packet_transport/packet_transport.cpp @@ -221,6 +221,8 @@ void PacketTransport::setup() { } #ifdef USE_SENSOR for (auto &sensor : this->sensors_) { + // [&sensor] is safe: sensor refers to a vector element that is never modified after setup(), + // so the reference remains valid for the component's lifetime. sensor.sensor->add_on_state_callback([&sensor](float x) { sensor.parent->updated_ = true; sensor.updated = true; @@ -229,6 +231,8 @@ void PacketTransport::setup() { #endif #ifdef USE_BINARY_SENSOR for (auto &sensor : this->binary_sensors_) { + // [&sensor] is safe: sensor refers to a vector element that is never modified after setup(), + // so the reference remains valid for the component's lifetime. sensor.sensor->add_on_state_callback([&sensor](bool value) { sensor.parent->updated_ = true; sensor.updated = true;