Fix spaming log

When shelly integration can't join the multicast group it
begins spaming the log each 5s. With this commit it log the joining problem each 5s for the first Minute, after that each 10min.

Signed-off-by: Martin Lukas <martin.lukas@chargebyte.com>
This commit is contained in:
Martin Lukas 2024-10-28 08:00:33 +01:00
parent 7c4af8cd2c
commit f90561fb26
2 changed files with 14 additions and 2 deletions

View File

@ -768,12 +768,23 @@ void IntegrationPluginShelly::joinMulticastGroup()
{
if (m_coap->joinMulticastGroup()) {
qCInfo(dcShelly()) << "Joined CoIoT multicast group";
m_multicastRetryCnt = 0;
} else {
qCWarning(dcShelly()) << "Failed to join CoIoT multicast group. Retrying in 5 seconds...";
uint retryTime = 0;
// FIXME: It would probably be better to monitor the network interfaces and re-join if necessary
QTimer::singleShot(5000, m_coap, [this](){
if (m_multicastRetryCnt < 12) {
qCWarning(dcShelly()) << "Failed to join CoIoT multicast group. Retrying in 5 seconds...";
retryTime = 5000;
} else {
qCWarning(dcShelly()) << "Failed to join CoIoT multicast group. Retrying in 10 minutes...";
retryTime = 600000;
}
QTimer::singleShot(retryTime, m_coap, [this](){
joinMulticastGroup();
});
m_multicastRetryCnt++;
}
}

View File

@ -94,6 +94,7 @@ private:
PluginTimer *m_reconfigureTimer = nullptr;
Coap *m_coap = nullptr;
uint m_multicastRetryCnt = 0;
QHash<Thing*, ShellyJsonRpcClient*> m_rpcClients;
};