From 8b233246930de31f3816f3d967f4ac74b64f4fd2 Mon Sep 17 00:00:00 2001 From: Bernhard Kirchen Date: Tue, 27 Jun 2023 22:01:39 +0200 Subject: [PATCH] ensure only one PowerCommand and ActivePowerCommand is queued neither a PowerCommand nor an ActivePowerCommand shall be enqueued if another one is already pending. --- lib/Hoymiles/src/inverters/HM_Abstract.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/Hoymiles/src/inverters/HM_Abstract.cpp b/lib/Hoymiles/src/inverters/HM_Abstract.cpp index 097fffeb..47acfbba 100644 --- a/lib/Hoymiles/src/inverters/HM_Abstract.cpp +++ b/lib/Hoymiles/src/inverters/HM_Abstract.cpp @@ -121,6 +121,10 @@ bool HM_Abstract::sendActivePowerControlRequest(float limit, PowerLimitControlTy return false; } + if (CMD_PENDING == SystemConfigPara()->getLastLimitCommandSuccess()) { + return false; + } + if (type == PowerLimitControlType::RelativNonPersistent || type == PowerLimitControlType::RelativPersistent) { limit = min(100, limit); } @@ -147,6 +151,10 @@ bool HM_Abstract::sendPowerControlRequest(bool turnOn) return false; } + if (CMD_PENDING == PowerCommand()->getLastPowerCommandSuccess()) { + return false; + } + if (turnOn) { _powerState = 1; } else {