diff --git a/include/PowerLimiter.h b/include/PowerLimiter.h index 2b2125276..342d6092d 100644 --- a/include/PowerLimiter.h +++ b/include/PowerLimiter.h @@ -33,6 +33,7 @@ class PowerLimiterClass { PowerMeterPending, InverterInvalid, InverterOffline, + InverterCommandsDisabled, InverterLimitPending, InverterPowerCmdPending, InverterStatsPending, diff --git a/src/PowerLimiter.cpp b/src/PowerLimiter.cpp index 16682b8d6..0304f599e 100644 --- a/src/PowerLimiter.cpp +++ b/src/PowerLimiter.cpp @@ -34,6 +34,7 @@ std::string const& PowerLimiterClass::getStatusText(PowerLimiterClass::Status st { Status::PowerMeterPending, "waiting for sufficiently recent power meter reading" }, { Status::InverterInvalid, "invalid inverter selection/configuration" }, { Status::InverterOffline, "inverter is offline (polling enabled? radio okay?)" }, + { Status::InverterCommandsDisabled, "inverter configuration prohibits sending commands" }, { Status::InverterLimitPending, "waiting for a power limit command to complete" }, { Status::InverterPowerCmdPending, "waiting for a start/stop/restart command to complete" }, { Status::InverterStatsPending, "waiting for sufficiently recent inverter data" }, @@ -124,6 +125,11 @@ void PowerLimiterClass::loop() return announceStatus(Status::InverterOffline); } + // sending commands to the inverter is disabled + if (!_inverter->getEnableCommands()) { + return announceStatus(Status::InverterCommandsDisabled); + } + // concerns active power commands (power limits) only (also from web app or MQTT) auto lastLimitCommandState = inverter->SystemConfigPara()->getLastLimitCommandSuccess(); if (CMD_PENDING == lastLimitCommandState) {