diff --git a/src/MqttHandleInverter.cpp b/src/MqttHandleInverter.cpp index daba917..37b16c4 100644 --- a/src/MqttHandleInverter.cpp +++ b/src/MqttHandleInverter.cpp @@ -197,9 +197,14 @@ void MqttHandleInverterClass::onMqttMessage(const espMqttClientTypes::MessagePro char* strlimit = new char[len + 1]; memcpy(strlimit, payload, len); strlimit[len] = '\0'; - uint32_t payload_val = strtol(strlimit, NULL, 10); + int32_t payload_val = strtol(strlimit, NULL, 10); delete[] strlimit; + if (payload_val < 0) { + MessageOutput.printf("MQTT payload < 0 received --> ignoring\r\n"); + return; + } + if (!strcmp(setting, TOPIC_SUB_LIMIT_PERSISTENT_RELATIVE)) { // Set inverter limit relative persistent MessageOutput.printf("Limit Persistent: %d %%\r\n", payload_val);