Skip to content

Commit

Permalink
Check that all RF modules as in idle mode before sending mqtt packages
Browse files Browse the repository at this point in the history
  • Loading branch information
tbnobody committed Apr 15, 2023
1 parent b7fb294 commit de2b7ab
Show file tree
Hide file tree
Showing 5 changed files with 10 additions and 3 deletions.
5 changes: 5 additions & 0 deletions lib/Hoymiles/src/Hoymiles.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
2 changes: 2 additions & 0 deletions lib/Hoymiles/src/Hoymiles.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ class HoymilesClass {
uint32_t PollInterval();
void setPollInterval(uint32_t interval);

bool isAllRadioIdle();

private:
std::vector<std::shared_ptr<InverterAbstract>> _inverters;
std::unique_ptr<HoymilesRadio_NRF> _radioNrf;
Expand Down
2 changes: 1 addition & 1 deletion src/MqttHandleDtu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ void MqttHandleDtuClass::init()

void MqttHandleDtuClass::loop()
{
if (!MqttSettings.getConnected() || !Hoymiles.getRadioNrf()->isIdle()) {
if (!MqttSettings.getConnected() || !Hoymiles.isAllRadioIdle()) {
return;
}

Expand Down
2 changes: 1 addition & 1 deletion src/MqttHandleHass.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ void MqttHandleHassClass::publishConfig()
return;
}

if (!MqttSettings.getConnected() && Hoymiles.getRadioNrf()->isIdle()) {
if (!MqttSettings.getConnected() && Hoymiles.isAllRadioIdle()) {
return;
}

Expand Down
2 changes: 1 addition & 1 deletion src/MqttHandleInverter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ void MqttHandleInverterClass::init()

void MqttHandleInverterClass::loop()
{
if (!MqttSettings.getConnected() || !Hoymiles.getRadioNrf()->isIdle()) {
if (!MqttSettings.getConnected() || !Hoymiles.isAllRadioIdle()) {
return;
}

Expand Down

0 comments on commit de2b7ab

Please sign in to comment.