From c676412a3184b3d84d5c0b564304e8c752c887df Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Mon, 16 Jan 2023 12:24:36 +0100 Subject: [PATCH] Mennekes: Discard unknown discovery results --- mennekes/integrationpluginmennekes.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/mennekes/integrationpluginmennekes.cpp b/mennekes/integrationpluginmennekes.cpp index 3e21175..cd307f2 100644 --- a/mennekes/integrationpluginmennekes.cpp +++ b/mennekes/integrationpluginmennekes.cpp @@ -61,6 +61,9 @@ void IntegrationPluginMennekes::discoverThings(ThingDiscoveryInfo *info) name = "AMTRON Charge Control"; } else if (result.model.startsWith("P")) { name = "AMTRON Professional"; + } else { + qCWarning(dcMennekes()) << "Unknown Amtron model:" << result.model; + continue; } ThingDescriptor descriptor(amtronECUThingClassId, name, description); qCDebug(dcMennekes()) << "Discovered:" << descriptor.title() << descriptor.description(); @@ -88,6 +91,11 @@ void IntegrationPluginMennekes::discoverThings(ThingDiscoveryInfo *info) connect(discovery, &AmtronHCC3Discovery::discoveryFinished, info, [=](){ foreach (const AmtronHCC3Discovery::AmtronDiscoveryResult &result, discovery->discoveryResults()) { + if (result.serialNumber.isEmpty()) { + qCWarning(dcMennekes()) << "Unable to read Amtron serial number:" << result.serialNumber << result.wallboxName; + continue; + } + ThingDescriptor descriptor(amtronHCC3ThingClassId, result.wallboxName, "Serial: " + result.serialNumber + " - " + result.networkDeviceInfo.address().toString()); qCDebug(dcMennekes()) << "Discovered:" << descriptor.title() << descriptor.description(); @@ -98,6 +106,7 @@ void IntegrationPluginMennekes::discoverThings(ThingDiscoveryInfo *info) descriptor.setThingId(existingThings.first()->id()); } + ParamList params; params << Param(amtronHCC3ThingMacAddressParamTypeId, result.networkDeviceInfo.macAddress()); // Note: if we discover also the port and modbusaddress, we must fill them in from the discovery here, for now everywhere the defaults...