diff --git a/lib/Hoymiles/src/Hoymiles.cpp b/lib/Hoymiles/src/Hoymiles.cpp index 4ae3223d..3a9999ff 100644 --- a/lib/Hoymiles/src/Hoymiles.cpp +++ b/lib/Hoymiles/src/Hoymiles.cpp @@ -54,7 +54,7 @@ void HoymilesClass::loop() } } - if (iv != nullptr && iv->getRadio()->isInitialized() && iv->getRadio()->isIdle()) { + if (iv != nullptr && iv->getRadio()->isInitialized() && iv->getRadio()->isQueueEmpty()) { _messageOutput->print("Fetch inverter: "); _messageOutput->println(iv->serial(), HEX); diff --git a/lib/Hoymiles/src/HoymilesRadio.cpp b/lib/Hoymiles/src/HoymilesRadio.cpp index 117d45e9..8faf1727 100644 --- a/lib/Hoymiles/src/HoymilesRadio.cpp +++ b/lib/Hoymiles/src/HoymilesRadio.cpp @@ -69,4 +69,9 @@ bool HoymilesRadio::isInitialized() bool HoymilesRadio::isIdle() { return !_busyFlag; -} \ No newline at end of file +} + +bool HoymilesRadio::isQueueEmpty() +{ + return _commandQueue.size() == 0; +} diff --git a/lib/Hoymiles/src/HoymilesRadio.h b/lib/Hoymiles/src/HoymilesRadio.h index 056b61c3..2ee2ad25 100644 --- a/lib/Hoymiles/src/HoymilesRadio.h +++ b/lib/Hoymiles/src/HoymilesRadio.h @@ -12,6 +12,7 @@ public: virtual void setDtuSerial(uint64_t serial); bool isIdle(); + bool isQueueEmpty(); bool isInitialized(); template