From fa7641f7156bfb4bc16d6f560d1235641af846ae Mon Sep 17 00:00:00 2001 From: Thomas Basler Date: Thu, 9 Nov 2023 22:30:35 +0100 Subject: [PATCH] Fix: Power not set to 0 when not reachable at EOD If the inverter polling was disabled before it got unreachable the values where not set to zero Fix: #1488 --- lib/Hoymiles/src/Hoymiles.cpp | 5 +++++ lib/Hoymiles/src/commands/RealTimeRunDataCommand.cpp | 5 ----- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/Hoymiles/src/Hoymiles.cpp b/lib/Hoymiles/src/Hoymiles.cpp index 595a096d..d138e4f1 100644 --- a/lib/Hoymiles/src/Hoymiles.cpp +++ b/lib/Hoymiles/src/Hoymiles.cpp @@ -53,6 +53,11 @@ void HoymilesClass::loop() if (iv != nullptr && iv->getRadio()->isInitialized() && iv->getRadio()->isQueueEmpty()) { + if (iv->getZeroValuesIfUnreachable() && !iv->isReachable()) { + Hoymiles.getMessageOutput()->println("Set runtime data to zero"); + iv->Statistics()->zeroRuntimeData(); + } + if (iv->getEnablePolling() || iv->getEnableCommands()) { _messageOutput->print("Fetch inverter: "); _messageOutput->println(iv->serial(), HEX); diff --git a/lib/Hoymiles/src/commands/RealTimeRunDataCommand.cpp b/lib/Hoymiles/src/commands/RealTimeRunDataCommand.cpp index e5ece409..3f0aed36 100644 --- a/lib/Hoymiles/src/commands/RealTimeRunDataCommand.cpp +++ b/lib/Hoymiles/src/commands/RealTimeRunDataCommand.cpp @@ -55,9 +55,4 @@ bool RealTimeRunDataCommand::handleResponse(InverterAbstract* inverter, fragment void RealTimeRunDataCommand::gotTimeout(InverterAbstract* inverter) { inverter->Statistics()->incrementRxFailureCount(); - - if (inverter->getZeroValuesIfUnreachable() && !inverter->isReachable()) { - Hoymiles.getMessageOutput()->println("Set runtime data to zero"); - inverter->Statistics()->zeroRuntimeData(); - } } \ No newline at end of file