diff --git a/mennekes/integrationpluginmennekes.cpp b/mennekes/integrationpluginmennekes.cpp
index cd307f2..5a37e01 100644
--- a/mennekes/integrationpluginmennekes.cpp
+++ b/mennekes/integrationpluginmennekes.cpp
@@ -398,6 +398,16 @@ void IntegrationPluginMennekes::setupAmtronECUConnection(ThingSetupInfo *info)
}
qCDebug(dcMennekes()) << "Connection init finished successfully" << amtronECUConnection;
+
+ QString minimumVersion = "5.22";
+ if (!ensureAmtronECUVersion(amtronECUConnection, minimumVersion)) {
+ qCWarning(dcMennekes()) << "Firmware version too old:" << QByteArray::fromHex(QByteArray::number(amtronECUConnection->firmwareVersion(), 16)) << "Minimum required:" << minimumVersion;
+ hardwareManager()->networkDeviceDiscovery()->unregisterMonitor(monitor);
+ amtronECUConnection->deleteLater();
+ info->finish(Thing::ThingErrorHardwareFailure, QT_TR_NOOP("The firmware version of this wallbox is too old. Please upgrade the firmware to at least version 5.22."));
+ return;
+ }
+
m_amtronECUConnections.insert(thing, amtronECUConnection);
info->finish(Thing::ThingErrorNoError);
@@ -426,8 +436,13 @@ void IntegrationPluginMennekes::setupAmtronECUConnection(ThingSetupInfo *info)
qCDebug(dcMennekes()) << "min current limit changed:" << minCurrentLimit;
thing->setStateMinValue(amtronECUMaxChargingCurrentStateTypeId, minCurrentLimit);
});
- connect(amtronECUConnection, &AmtronECUModbusTcpConnection::maxCurrentLimitChanged, thing, [thing](quint16 maxCurrentLimit) {
+ connect(amtronECUConnection, &AmtronECUModbusTcpConnection::maxCurrentLimitChanged, thing, [this, thing](quint16 maxCurrentLimit) {
qCDebug(dcMennekes()) << "max current limit changed:" << maxCurrentLimit;
+ // If the vehicle or cable are not capable of reporting the maximum, this will be 0
+ // We'll reset to the max defined in the json file in that case
+ if (maxCurrentLimit == 0) {
+ maxCurrentLimit = supportedThings().findById(amtronECUThingClassId).stateTypes().findById(amtronECUMaxChargingCurrentStateTypeId).maxValue().toUInt();
+ }
thing->setStateMaxValue(amtronECUMaxChargingCurrentStateTypeId, maxCurrentLimit);
});
connect(amtronECUConnection, &AmtronECUModbusTcpConnection::hemsCurrentLimitChanged, thing, [thing](quint16 hemsCurrentLimit) {
diff --git a/mennekes/translations/c7c3c65c-a0cc-4ab1-90d8-4ad05bfcdc38-en_US.ts b/mennekes/translations/c7c3c65c-a0cc-4ab1-90d8-4ad05bfcdc38-en_US.ts
index 1ae03de..3179782 100644
--- a/mennekes/translations/c7c3c65c-a0cc-4ab1-90d8-4ad05bfcdc38-en_US.ts
+++ b/mennekes/translations/c7c3c65c-a0cc-4ab1-90d8-4ad05bfcdc38-en_US.ts
@@ -9,23 +9,28 @@
-
-
+
+ The MAC address is not known. Please reconfigure the thing.
-
-
+
+ The host address is not known yet. Trying later again.
-
-
+
+ Error communicating with the wallbox.
+
+
+ The firmware version of this wallbox is too old. Please upgrade the firmware to at least version 5.22.
+
+ Mennekes