Merge PR #85: Clean up network device discovery replies due to mechanism update
commit
844fa67714
|
|
@ -48,7 +48,9 @@ void IntegrationPluginAlphaInnotec::discoverThings(ThingDiscoveryInfo *info)
|
||||||
}
|
}
|
||||||
|
|
||||||
NetworkDeviceDiscoveryReply *discoveryReply = hardwareManager()->networkDeviceDiscovery()->discover();
|
NetworkDeviceDiscoveryReply *discoveryReply = hardwareManager()->networkDeviceDiscovery()->discover();
|
||||||
|
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, discoveryReply, &NetworkDeviceDiscoveryReply::deleteLater);
|
||||||
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){
|
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){
|
||||||
|
|
||||||
foreach (const NetworkDeviceInfo &networkDeviceInfo, discoveryReply->networkDeviceInfos()) {
|
foreach (const NetworkDeviceInfo &networkDeviceInfo, discoveryReply->networkDeviceInfos()) {
|
||||||
|
|
||||||
qCDebug(dcAlphaInnotec()) << "Found" << networkDeviceInfo;
|
qCDebug(dcAlphaInnotec()) << "Found" << networkDeviceInfo;
|
||||||
|
|
|
||||||
|
|
@ -45,27 +45,9 @@ void HuaweiFusionSolarDiscovery::startDiscovery()
|
||||||
{
|
{
|
||||||
qCInfo(dcHuawei()) << "Discovery: Start searching for Huawei FusionSolar SmartDongle in the network...";
|
qCInfo(dcHuawei()) << "Discovery: Start searching for Huawei FusionSolar SmartDongle in the network...";
|
||||||
NetworkDeviceDiscoveryReply *discoveryReply = m_networkDeviceDiscovery->discover();
|
NetworkDeviceDiscoveryReply *discoveryReply = m_networkDeviceDiscovery->discover();
|
||||||
|
|
||||||
// Check any already discovered infos..
|
|
||||||
foreach (const NetworkDeviceInfo &networkDeviceInfo, discoveryReply->networkDeviceInfos()) {
|
|
||||||
checkNetworkDevice(networkDeviceInfo);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Immedialty check any new device gets discovered
|
|
||||||
connect(discoveryReply, &NetworkDeviceDiscoveryReply::networkDeviceInfoAdded, this, &HuaweiFusionSolarDiscovery::checkNetworkDevice);
|
connect(discoveryReply, &NetworkDeviceDiscoveryReply::networkDeviceInfoAdded, this, &HuaweiFusionSolarDiscovery::checkNetworkDevice);
|
||||||
|
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, discoveryReply, &NetworkDeviceDiscoveryReply::deleteLater);
|
||||||
// Check what might be left on finished
|
|
||||||
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){
|
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){
|
||||||
qCDebug(dcHuawei()) << "Discovery: Network discovery finished. Found" << discoveryReply->networkDeviceInfos().count() << "network devices";
|
|
||||||
m_networkDeviceInfos = discoveryReply->networkDeviceInfos();
|
|
||||||
qCDebug(dcHuawei()) << "Discovery: Network discovery finished. Start finishing discovery...";
|
|
||||||
// Send a report request to nework device info not sent already...
|
|
||||||
foreach (const NetworkDeviceInfo &networkDeviceInfo, m_networkDeviceInfos) {
|
|
||||||
if (!m_verifiedNetworkDeviceInfos.contains(networkDeviceInfo)) {
|
|
||||||
checkNetworkDevice(networkDeviceInfo);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Finish with some delay so the last added network device information objects still can be checked.
|
// Finish with some delay so the last added network device information objects still can be checked.
|
||||||
QTimer::singleShot(3000, this, [this](){
|
QTimer::singleShot(3000, this, [this](){
|
||||||
qCDebug(dcHuawei()) << "Discovery: Grace period timer triggered.";
|
qCDebug(dcHuawei()) << "Discovery: Grace period timer triggered.";
|
||||||
|
|
@ -81,17 +63,12 @@ NetworkDeviceInfos HuaweiFusionSolarDiscovery::discoveryResults() const
|
||||||
|
|
||||||
void HuaweiFusionSolarDiscovery::checkNetworkDevice(const NetworkDeviceInfo &networkDeviceInfo)
|
void HuaweiFusionSolarDiscovery::checkNetworkDevice(const NetworkDeviceInfo &networkDeviceInfo)
|
||||||
{
|
{
|
||||||
if (m_verifiedNetworkDeviceInfos.contains(networkDeviceInfo))
|
|
||||||
return;
|
|
||||||
|
|
||||||
// The dongle must have a huawei registered mac address
|
// The dongle must have a huawei registered mac address
|
||||||
if (!networkDeviceInfo.macAddressManufacturer().toLower().contains("huawei"))
|
if (!networkDeviceInfo.macAddressManufacturer().toLower().contains("huawei"))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
HuaweiFusionSolar *connection = new HuaweiFusionSolar(networkDeviceInfo.address(), m_port, m_modbusAddress, this);
|
HuaweiFusionSolar *connection = new HuaweiFusionSolar(networkDeviceInfo.address(), m_port, m_modbusAddress, this);
|
||||||
m_connections.append(connection);
|
m_connections.append(connection);
|
||||||
m_verifiedNetworkDeviceInfos.append(networkDeviceInfo);
|
|
||||||
|
|
||||||
connect(connection, &HuaweiFusionSolar::reachableChanged, this, [=](bool reachable){
|
connect(connection, &HuaweiFusionSolar::reachableChanged, this, [=](bool reachable){
|
||||||
if (!reachable) {
|
if (!reachable) {
|
||||||
// Disconnected ... done with this connection
|
// Disconnected ... done with this connection
|
||||||
|
|
|
||||||
|
|
@ -56,12 +56,7 @@ private:
|
||||||
quint16 m_modbusAddress;
|
quint16 m_modbusAddress;
|
||||||
|
|
||||||
QDateTime m_startDateTime;
|
QDateTime m_startDateTime;
|
||||||
|
|
||||||
NetworkDeviceInfos m_networkDeviceInfos;
|
|
||||||
NetworkDeviceInfos m_verifiedNetworkDeviceInfos;
|
|
||||||
|
|
||||||
QList<HuaweiFusionSolar *> m_connections;
|
QList<HuaweiFusionSolar *> m_connections;
|
||||||
|
|
||||||
NetworkDeviceInfos m_discoveryResults;
|
NetworkDeviceInfos m_discoveryResults;
|
||||||
|
|
||||||
void checkNetworkDevice(const NetworkDeviceInfo &networkDeviceInfo);
|
void checkNetworkDevice(const NetworkDeviceInfo &networkDeviceInfo);
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,7 @@ void IntegrationPluginIdm::discoverThings(ThingDiscoveryInfo *info)
|
||||||
|
|
||||||
qCDebug(dcIdm()) << "Discovering network...";
|
qCDebug(dcIdm()) << "Discovering network...";
|
||||||
NetworkDeviceDiscoveryReply *discoveryReply = hardwareManager()->networkDeviceDiscovery()->discover();
|
NetworkDeviceDiscoveryReply *discoveryReply = hardwareManager()->networkDeviceDiscovery()->discover();
|
||||||
|
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, discoveryReply, &NetworkDeviceDiscoveryReply::deleteLater);
|
||||||
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){
|
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){
|
||||||
ThingDescriptors descriptors;
|
ThingDescriptors descriptors;
|
||||||
qCDebug(dcIdm()) << "Discovery finished. Found" << discoveryReply->networkDeviceInfos().count() << "devices";
|
qCDebug(dcIdm()) << "Discovery finished. Found" << discoveryReply->networkDeviceInfos().count() << "devices";
|
||||||
|
|
|
||||||
|
|
@ -45,15 +45,11 @@ void KostalDiscovery::startDiscovery()
|
||||||
qCInfo(dcKostal()) << "Discovery: Start searching for Kostal inverters in the network...";
|
qCInfo(dcKostal()) << "Discovery: Start searching for Kostal inverters in the network...";
|
||||||
NetworkDeviceDiscoveryReply *discoveryReply = m_networkDeviceDiscovery->discover();
|
NetworkDeviceDiscoveryReply *discoveryReply = m_networkDeviceDiscovery->discover();
|
||||||
|
|
||||||
// Check any already discovered infos..
|
|
||||||
// FIXME: this is not required any more once each discovery request receives it's own object getting the added signal for every info
|
|
||||||
foreach (const NetworkDeviceInfo &networkDeviceInfo, discoveryReply->networkDeviceInfos())
|
|
||||||
checkNetworkDevice(networkDeviceInfo);
|
|
||||||
|
|
||||||
// Imedialty check any new device gets discovered
|
// Imedialty check any new device gets discovered
|
||||||
connect(discoveryReply, &NetworkDeviceDiscoveryReply::networkDeviceInfoAdded, this, &KostalDiscovery::checkNetworkDevice);
|
connect(discoveryReply, &NetworkDeviceDiscoveryReply::networkDeviceInfoAdded, this, &KostalDiscovery::checkNetworkDevice);
|
||||||
|
|
||||||
// Check what might be left on finished
|
// Check what might be left on finished
|
||||||
|
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, discoveryReply, &NetworkDeviceDiscoveryReply::deleteLater);
|
||||||
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){
|
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){
|
||||||
qCDebug(dcKostal()) << "Discovery: Network discovery finished. Found" << discoveryReply->networkDeviceInfos().count() << "network devices";
|
qCDebug(dcKostal()) << "Discovery: Network discovery finished. Found" << discoveryReply->networkDeviceInfos().count() << "network devices";
|
||||||
m_networkDeviceInfos = discoveryReply->networkDeviceInfos();
|
m_networkDeviceInfos = discoveryReply->networkDeviceInfos();
|
||||||
|
|
|
||||||
|
|
@ -116,6 +116,7 @@ void IntegrationPluginModbusCommander::discoverThings(ThingDiscoveryInfo *info)
|
||||||
}
|
}
|
||||||
|
|
||||||
NetworkDeviceDiscoveryReply *discoveryReply = hardwareManager()->networkDeviceDiscovery()->discover();
|
NetworkDeviceDiscoveryReply *discoveryReply = hardwareManager()->networkDeviceDiscovery()->discover();
|
||||||
|
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, discoveryReply, &NetworkDeviceDiscoveryReply::deleteLater);
|
||||||
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){
|
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){
|
||||||
ThingDescriptors descriptors;
|
ThingDescriptors descriptors;
|
||||||
qCDebug(dcModbusCommander()) << "Discovery finished. Found" << discoveryReply->networkDeviceInfos().count() << "devices";
|
qCDebug(dcModbusCommander()) << "Discovery finished. Found" << discoveryReply->networkDeviceInfos().count() << "devices";
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,7 @@ void IntegrationPluginMTec::discoverThings(ThingDiscoveryInfo *info)
|
||||||
|
|
||||||
// Perform a network device discovery and filter for "go-eCharger" hosts
|
// Perform a network device discovery and filter for "go-eCharger" hosts
|
||||||
NetworkDeviceDiscoveryReply *discoveryReply = hardwareManager()->networkDeviceDiscovery()->discover();
|
NetworkDeviceDiscoveryReply *discoveryReply = hardwareManager()->networkDeviceDiscovery()->discover();
|
||||||
|
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, discoveryReply, &NetworkDeviceDiscoveryReply::deleteLater);
|
||||||
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){
|
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){
|
||||||
foreach (const NetworkDeviceInfo &networkDeviceInfo, discoveryReply->networkDeviceInfos()) {
|
foreach (const NetworkDeviceInfo &networkDeviceInfo, discoveryReply->networkDeviceInfos()) {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,7 @@ void IntegrationPluginStiebelEltron::discoverThings(ThingDiscoveryInfo *info) {
|
||||||
}
|
}
|
||||||
|
|
||||||
NetworkDeviceDiscoveryReply *discoveryReply = hardwareManager()->networkDeviceDiscovery()->discover();
|
NetworkDeviceDiscoveryReply *discoveryReply = hardwareManager()->networkDeviceDiscovery()->discover();
|
||||||
|
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, discoveryReply, &NetworkDeviceDiscoveryReply::deleteLater);
|
||||||
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=]() {
|
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=]() {
|
||||||
foreach (const NetworkDeviceInfo &networkDeviceInfo, discoveryReply->networkDeviceInfos()) {
|
foreach (const NetworkDeviceInfo &networkDeviceInfo, discoveryReply->networkDeviceInfos()) {
|
||||||
qCDebug(dcStiebelEltron()) << "Found" << networkDeviceInfo;
|
qCDebug(dcStiebelEltron()) << "Found" << networkDeviceInfo;
|
||||||
|
|
|
||||||
|
|
@ -136,6 +136,7 @@ void IntegrationPluginSunSpec::discoverThings(ThingDiscoveryInfo *info)
|
||||||
}
|
}
|
||||||
|
|
||||||
NetworkDeviceDiscoveryReply *discoveryReply = hardwareManager()->networkDeviceDiscovery()->discover();
|
NetworkDeviceDiscoveryReply *discoveryReply = hardwareManager()->networkDeviceDiscovery()->discover();
|
||||||
|
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, discoveryReply, &NetworkDeviceDiscoveryReply::deleteLater);
|
||||||
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){
|
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){
|
||||||
ThingDescriptors descriptors;
|
ThingDescriptors descriptors;
|
||||||
qCDebug(dcSunSpec()) << "Discovery finished. Found" << discoveryReply->networkDeviceInfos().count() << "devices";
|
qCDebug(dcSunSpec()) << "Discovery finished. Found" << discoveryReply->networkDeviceInfos().count() << "devices";
|
||||||
|
|
|
||||||
|
|
@ -90,6 +90,7 @@ void IntegrationPluginWebasto::discoverThings(ThingDiscoveryInfo *info)
|
||||||
|
|
||||||
qCDebug(dcWebasto()) << "Discover things";
|
qCDebug(dcWebasto()) << "Discover things";
|
||||||
NetworkDeviceDiscoveryReply *discoveryReply = hardwareManager()->networkDeviceDiscovery()->discover();
|
NetworkDeviceDiscoveryReply *discoveryReply = hardwareManager()->networkDeviceDiscovery()->discover();
|
||||||
|
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, discoveryReply, &NetworkDeviceDiscoveryReply::deleteLater);
|
||||||
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){
|
connect(discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){
|
||||||
ThingDescriptors descriptors;
|
ThingDescriptors descriptors;
|
||||||
qCDebug(dcWebasto()) << "Discovery finished. Found" << discoveryReply->networkDeviceInfos().count() << "devices";
|
qCDebug(dcWebasto()) << "Discovery finished. Found" << discoveryReply->networkDeviceInfos().count() << "devices";
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue