diff --git a/esphome/components/modbus_controller/modbus_controller.h b/esphome/components/modbus_controller/modbus_controller.h index 466598e9cd..111b0d574e 100644 --- a/esphome/components/modbus_controller/modbus_controller.h +++ b/esphome/components/modbus_controller/modbus_controller.h @@ -286,7 +286,7 @@ class ServerRegister { return std::to_string(value); case SensorValueType::FP32_R: case SensorValueType::FP32: { - // max 48: float with %.1f can be up to 41 chars (3.4e38 → 39 digits + sign + decimal + 1 digit) + null + // max 48: float with %.1f can be up to 42 chars incl. null (3.4e38 → 38 integer digits + decimal point + 1 decimal digit + optional sign) char buf[48]; snprintf(buf, sizeof(buf), "%.1f", bit_cast(static_cast(value))); return buf;