From 8f2aa8800097ca9d0ac1c132245ec58839542a90 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Mon, 14 Aug 2023 15:44:21 +0200 Subject: [PATCH] Amperfied: Verify version number durin discovery --- amperfied/connecthomediscovery.cpp | 7 +++++++ amperfied/integrationpluginamperfied.cpp | 2 -- 2 files changed, 7 insertions(+), 2 deletions(-) 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);