diff --git a/lib/Hoymiles/src/Hoymiles.cpp b/lib/Hoymiles/src/Hoymiles.cpp index 9504a50..c4641ec 100644 --- a/lib/Hoymiles/src/Hoymiles.cpp +++ b/lib/Hoymiles/src/Hoymiles.cpp @@ -205,6 +205,11 @@ HoymilesRadio_CMT* HoymilesClass::getRadioCmt() return _radioCmt.get(); } +bool HoymilesClass::isAllRadioIdle() +{ + return _radioNrf.get()->isIdle() && _radioCmt.get()->isIdle(); +} + uint32_t HoymilesClass::PollInterval() { return _pollInterval; diff --git a/lib/Hoymiles/src/Hoymiles.h b/lib/Hoymiles/src/Hoymiles.h index 663fbf1..7863183 100644 --- a/lib/Hoymiles/src/Hoymiles.h +++ b/lib/Hoymiles/src/Hoymiles.h @@ -36,6 +36,8 @@ public: uint32_t PollInterval(); void setPollInterval(uint32_t interval); + bool isAllRadioIdle(); + private: std::vector> _inverters; std::unique_ptr _radioNrf; diff --git a/src/MqttHandleDtu.cpp b/src/MqttHandleDtu.cpp index f9dfcc5..dfca234 100644 --- a/src/MqttHandleDtu.cpp +++ b/src/MqttHandleDtu.cpp @@ -16,7 +16,7 @@ void MqttHandleDtuClass::init() void MqttHandleDtuClass::loop() { - if (!MqttSettings.getConnected() || !Hoymiles.getRadioNrf()->isIdle()) { + if (!MqttSettings.getConnected() || !Hoymiles.isAllRadioIdle()) { return; } diff --git a/src/MqttHandleHass.cpp b/src/MqttHandleHass.cpp index 3f72feb..3f2c214 100644 --- a/src/MqttHandleHass.cpp +++ b/src/MqttHandleHass.cpp @@ -41,7 +41,7 @@ void MqttHandleHassClass::publishConfig() return; } - if (!MqttSettings.getConnected() && Hoymiles.getRadioNrf()->isIdle()) { + if (!MqttSettings.getConnected() && Hoymiles.isAllRadioIdle()) { return; } diff --git a/src/MqttHandleInverter.cpp b/src/MqttHandleInverter.cpp index af18ac5..ed620dc 100644 --- a/src/MqttHandleInverter.cpp +++ b/src/MqttHandleInverter.cpp @@ -36,7 +36,7 @@ void MqttHandleInverterClass::init() void MqttHandleInverterClass::loop() { - if (!MqttSettings.getConnected() || !Hoymiles.getRadioNrf()->isIdle()) { + if (!MqttSettings.getConnected() || !Hoymiles.isAllRadioIdle()) { return; }