Rework after review

Signed-off-by: Martin Lukas <martin.lukas@chargebyte.com>
This commit is contained in:
Martin Lukas 2024-10-28 09:22:06 +01:00
parent f90561fb26
commit b88935bd2f
2 changed files with 26 additions and 26 deletions

View File

@ -768,30 +768,30 @@ void IntegrationPluginShelly::joinMulticastGroup()
{ {
if (m_coap->joinMulticastGroup()) { if (m_coap->joinMulticastGroup()) {
qCInfo(dcShelly()) << "Joined CoIoT multicast group"; qCInfo(dcShelly()) << "Joined CoIoT multicast group";
m_multicastRetryCnt = 0; m_multicastWarningPrintCount = 0;
} else { } else {
uint retryTime = 0; uint mod = m_multicastWarningPrintCount % 120;
// FIXME: It would probably be better to monitor the network interfaces and re-join if necessary // FIXME: It would probably be better to monitor the network interfaces and re-join if necessary
if (m_multicastRetryCnt < 12) { if (m_multicastWarningPrintCount < 12) {
qCWarning(dcShelly()) << "Failed to join CoIoT multicast group. Retrying in 5 seconds..."; 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](){ if (m_multicastWarningPrintCount >= 12 && mod == 0) {
qCWarning(dcShelly()) << "Failed to join CoIoT multicast group. Retrying in 10 minutes...";
}
QTimer::singleShot(5000, m_coap, [this](){
joinMulticastGroup(); joinMulticastGroup();
}); });
m_multicastRetryCnt++; m_multicastWarningPrintCount++;
} }
} }
void IntegrationPluginShelly::onMulticastMessageReceived(const QHostAddress &source, const CoapPdu &pdu) void IntegrationPluginShelly::onMulticastMessageReceived(const QHostAddress &source, const CoapPdu &pdu)
{ {
Q_UNUSED(source) Q_UNUSED(source)
// qCDebug(dcShelly()) << "Multicast message received" << source << pdu; // qCDebug(dcShelly()) << "Multicast message received" << source << pdu;
if (pdu.reqRspCode() != 0x1e) { if (pdu.reqRspCode() != 0x1e) {
// Not a shelly CoIoT status message (ReqRsp code "0.30") // Not a shelly CoIoT status message (ReqRsp code "0.30")
return; return;
@ -1555,17 +1555,17 @@ void IntegrationPluginShelly::setupGen1(ThingSetupInfo *info)
}); });
// For testing and debugging, introspect the coap API. Allows introspecting the coap api on the device // For testing and debugging, introspect the coap API. Allows introspecting the coap api on the device
// url.clear(); // url.clear();
// url.setScheme("coap"); // url.setScheme("coap");
// url.setHost(address.toString()); // url.setHost(address.toString());
// url.setPath("/cit/d"); // url.setPath("/cit/d");
// CoapRequest coapRequest(url); // CoapRequest coapRequest(url);
// CoapReply *coapReply = m_coap->get(coapRequest); // CoapReply *coapReply = m_coap->get(coapRequest);
// qCDebug(dcShelly) << "Coap request" << url; // qCDebug(dcShelly) << "Coap request" << url;
// connect(coapReply, &CoapReply::finished, thing, [=](){ // connect(coapReply, &CoapReply::finished, thing, [=](){
// qCDebug(dcShelly) << "Coap reply" << coapReply->error() << qUtf8Printable(QJsonDocument::fromJson(coapReply->payload()).toJson()); // qCDebug(dcShelly) << "Coap reply" << coapReply->error() << qUtf8Printable(QJsonDocument::fromJson(coapReply->payload()).toJson());
// }); // });
// Handle thing settings of gateway devices // Handle thing settings of gateway devices

View File

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