diff --git a/amperfied/connecthomediscovery.cpp b/amperfied/connecthomediscovery.cpp index ed377b0..a8e90c4 100644 --- a/amperfied/connecthomediscovery.cpp +++ b/amperfied/connecthomediscovery.cpp @@ -85,6 +85,13 @@ void ConnectHomeDiscovery::checkNetworkDevice(const NetworkDeviceInfo &networkDe cleanupConnection(connection); return; } + + if (connection->version() < 0x100 || connection->version() > 0x2ff) { + qCInfo(dcAmperfied()) << "Skipping invalid/unsupported AMPERFIED version" << connection->version(); + cleanupConnection(connection); + return; + } + Result result; result.firmwareVersion = connection->version(); result.networkDeviceInfo = networkDeviceInfo; diff --git a/amperfied/integrationpluginamperfied.cpp b/amperfied/integrationpluginamperfied.cpp index 817fc1f..b79d3e6 100644 --- a/amperfied/integrationpluginamperfied.cpp +++ b/amperfied/integrationpluginamperfied.cpp @@ -44,8 +44,6 @@ IntegrationPluginAmperfied::IntegrationPluginAmperfied() void IntegrationPluginAmperfied::discoverThings(ThingDiscoveryInfo *info) { - hardwareManager()->modbusRtuResource(); - if (info->thingClassId() == energyControlThingClassId) { EnergyControlDiscovery *discovery = new EnergyControlDiscovery(hardwareManager()->modbusRtuResource(), info);