diff --git a/src/PowerLimiter.cpp b/src/PowerLimiter.cpp index 5a2a20614..4bc8d2b62 100644 --- a/src/PowerLimiter.cpp +++ b/src/PowerLimiter.cpp @@ -741,7 +741,12 @@ int32_t PowerLimiterClass::scalePowerLimit(std::shared_ptr inv // keep the currentLimit when all channels are shaded and we get the // expected AC power or less. - if (dcShadedChnls == dcTotalChnls && inverterOutputAC <= newLimit) { return currentLimitWatts; } + if (dcShadedChnls == dcTotalChnls && inverterOutputAC <= newLimit) { + MessageOutput.printf("[DPL::scalePowerLimit] all channels are producing less than expected, " + "keeping the current limit of %d W instead of %d W by \r\n", currentLimitWatts, newLimit); + + return currentLimitWatts; + } size_t dcNonShadedChnls = dcTotalChnls - dcShadedChnls; auto overScaled = static_cast((newLimit - shadedChannelACPowerSum) / dcNonShadedChnls * dcTotalChnls);