Merge PR #755: go-eCharger: Update to networkdevice interface

This commit is contained in:
jenkins 2025-03-30 20:36:34 +02:00
commit 46099cffc6
6 changed files with 620 additions and 134 deletions

View File

@ -53,7 +53,7 @@ void GoeDiscovery::startDiscovery()
{
// Clean up
m_discoveryResults.clear();
m_verifiedNetworkDeviceInfos.clear();
m_verifiedHostAddresses.clear();
m_startDateTime = QDateTime::currentDateTime();
@ -69,23 +69,15 @@ void GoeDiscovery::startDiscovery()
m_discoveryReply = m_networkDeviceDiscovery->discover();
// Test any network device beeing discovered
connect(m_discoveryReply, &NetworkDeviceDiscoveryReply::networkDeviceInfoAdded, this, &GoeDiscovery::checkNetworkDevice);
connect(m_discoveryReply, &NetworkDeviceDiscoveryReply::hostAddressDiscovered, this, &GoeDiscovery::checkHostAddress);
// When the network discovery has finished, we process the rest and give some time to finish the pending replies
connect(m_discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [=](){
connect(m_discoveryReply, &NetworkDeviceDiscoveryReply::finished, this, [this](){
// The network device discovery is done
m_discoveredNetworkDeviceInfos = m_discoveryReply->networkDeviceInfos();
m_discoveryReply->deleteLater();
m_discoveryReply = nullptr;
// Check if all network device infos have been verified
foreach (const NetworkDeviceInfo &networkDeviceInfo, m_discoveredNetworkDeviceInfos) {
if (m_verifiedNetworkDeviceInfos.contains(networkDeviceInfo))
continue;
checkNetworkDevice(networkDeviceInfo);
}
// If there might be some response after the grace period time,
// we don't care any more since there might just waiting for some timeouts...
// If there would be a device, it would have responded.
@ -126,30 +118,30 @@ bool GoeDiscovery::isGoeCharger(const ZeroConfServiceEntry &serviceEntry)
return serviceEntry.name().toLower().contains("go-echarger");
}
void GoeDiscovery::checkNetworkDevice(const NetworkDeviceInfo &networkDeviceInfo)
void GoeDiscovery::checkHostAddress(const QHostAddress &address)
{
// Make sure we have not checked this host yet
if (m_verifiedNetworkDeviceInfos.contains(networkDeviceInfo))
if (m_verifiedHostAddresses.contains(address))
return;
qCDebug(dcGoECharger()) << "Discovery: Start inspecting" << networkDeviceInfo.address().toString();
checkNetworkDeviceApiV2(networkDeviceInfo);
checkNetworkDeviceApiV1(networkDeviceInfo);
qCDebug(dcGoECharger()) << "Discovery: Start inspecting" << address.toString();
checkHostAddressApiV2(address);
checkHostAddressApiV1(address);
m_verifiedNetworkDeviceInfos.append(networkDeviceInfo);
m_verifiedHostAddresses.append(address);
}
void GoeDiscovery::checkNetworkDeviceApiV1(const NetworkDeviceInfo &networkDeviceInfo)
void GoeDiscovery::checkHostAddressApiV1(const QHostAddress &address)
{
// First check if API V1 is available: http://<host>/status
QNetworkReply *reply = m_networkAccessManager->get(buildRequestV1(networkDeviceInfo.address()));
// Check if API V1 is available: http://<host>/status
QNetworkReply *reply = m_networkAccessManager->get(buildRequestV1(address));
m_pendingReplies.append(reply);
connect(reply, &QNetworkReply::finished, this, [=](){
m_pendingReplies.removeAll(reply);
reply->deleteLater();
if (reply->error() != QNetworkReply::NoError) {
qCDebug(dcGoECharger()) << "Discovery:" << networkDeviceInfo.address().toString() << "API V1 verification HTTP error" << reply->errorString() << "Continue...";
qCDebug(dcGoECharger()) << "Discovery:" << address.toString() << "API V1 verification HTTP error" << reply->errorString() << "Continue...";
return;
}
@ -157,7 +149,7 @@ void GoeDiscovery::checkNetworkDeviceApiV1(const NetworkDeviceInfo &networkDevic
QJsonParseError error;
QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &error);
if (error.error != QJsonParseError::NoError) {
qCDebug(dcGoECharger()) << "Discovery:" << networkDeviceInfo.address().toString() << "API V1 verification invalid JSON data. Continue...";
qCDebug(dcGoECharger()) << "Discovery:" << address.toString() << "API V1 verification invalid JSON data. Continue...";
return;
}
@ -166,44 +158,44 @@ void GoeDiscovery::checkNetworkDeviceApiV1(const NetworkDeviceInfo &networkDevic
QVariantMap responseMap = jsonDoc.toVariant().toMap();
if (responseMap.contains("fwv") && responseMap.contains("sse") && responseMap.contains("nrg") && responseMap.contains("amp")) {
// Looks like we have found a go-e V1 api endpoint, nice
qCDebug(dcGoECharger()) << "Discovery: --> Found API V1 on" << networkDeviceInfo.address().toString();
qCDebug(dcGoECharger()) << "Discovery: --> Found API V1 on" << address.toString();
if (m_discoveryResults.contains(networkDeviceInfo.address()) && m_discoveryResults.value(networkDeviceInfo.address()).discoveryMethod == DiscoveryMethodZeroConf) {
qCDebug(dcGoECharger()) << "Discovery: Network discovery found API V1 go-eCharger on" << networkDeviceInfo.address().toString()
<< "but this host has already been discovered using ZeroConf. Prefering ZeroConf over MAC address due to Repeater missbehaviours.";
if (m_discoveryResults.contains(address) && m_discoveryResults.value(address).discoveryMethod == DiscoveryMethodZeroConf) {
qCDebug(dcGoECharger()) << "Discovery: Network discovery found API V1 go-eCharger on" << address.toString()
<< "but this host has already been discovered using ZeroConf. Prefering ZeroConf over MAC address due to Repeater missbehaviours.";
return;
}
if (m_discoveryResults.contains(networkDeviceInfo.address())) {
if (m_discoveryResults.contains(address)) {
// We use the information from API V2 since there are more information available
m_discoveryResults[networkDeviceInfo.address()].apiAvailableV1 = true;
m_discoveryResults[address].apiAvailableV1 = true;
} else {
GoeDiscovery::Result result;
result.serialNumber = responseMap.value("sse").toString();
result.firmwareVersion = responseMap.value("fwv").toString();
result.networkDeviceInfo = networkDeviceInfo;
//result.networkDeviceInfo = networkDeviceInfo;
result.apiAvailableV1 = true;
m_discoveryResults[networkDeviceInfo.address()] = result;
m_discoveryResults[address] = result;
}
} else {
qCDebug(dcGoECharger()) << "Discovery:" << networkDeviceInfo.address().toString() << "API V1 verification returned JSON data but not the right one. Continue...";
qCDebug(dcGoECharger()) << "Discovery:" << address.toString() << "API V1 verification returned JSON data but not the right one. Continue...";
}
});
}
void GoeDiscovery::checkNetworkDeviceApiV2(const NetworkDeviceInfo &networkDeviceInfo)
void GoeDiscovery::checkHostAddressApiV2(const QHostAddress &address)
{
// Check if API V2 is available: http://<host>/api/status
qCDebug(dcGoECharger()) << "Discovery: verify API V2 on" << networkDeviceInfo.address().toString();
QNetworkReply *reply = m_networkAccessManager->get(buildRequestV2(networkDeviceInfo.address()));
qCDebug(dcGoECharger()) << "Discovery: verify API V2 on" << address.toString();
QNetworkReply *reply = m_networkAccessManager->get(buildRequestV2(address));
m_pendingReplies.append(reply);
connect(reply, &QNetworkReply::finished, this, [=](){
m_pendingReplies.removeAll(reply);
reply->deleteLater();
if (reply->error() != QNetworkReply::NoError) {
qCDebug(dcGoECharger()) << "Discovery:" << networkDeviceInfo.address().toString() << "API V2 verification HTTP error" << reply->errorString() << "Continue...";
qCDebug(dcGoECharger()) << "Discovery:" << address.toString() << "API V2 verification HTTP error" << reply->errorString() << "Continue...";
return;
}
@ -211,7 +203,7 @@ void GoeDiscovery::checkNetworkDeviceApiV2(const NetworkDeviceInfo &networkDevic
QJsonParseError error;
QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &error);
if (error.error != QJsonParseError::NoError) {
qCDebug(dcGoECharger()) << "Discovery:" << networkDeviceInfo.address().toString() << "API V2 verification invalid JSON data. Continue...";
qCDebug(dcGoECharger()) << "Discovery:" << address.toString() << "API V2 verification invalid JSON data. Continue...";
return;
}
@ -220,7 +212,7 @@ void GoeDiscovery::checkNetworkDeviceApiV2(const NetworkDeviceInfo &networkDevic
QVariantMap responseMap = jsonDoc.toVariant().toMap();
if (responseMap.contains("fwv") && responseMap.contains("sse") && responseMap.contains("typ") && responseMap.contains("fna")) {
// Looks like we have found a go-e V2 api endpoint, nice
qCDebug(dcGoECharger()) << "Discovery: --> Found API V2 on" << networkDeviceInfo.address().toString();
qCDebug(dcGoECharger()) << "Discovery: --> Found API V2 on" << address.toString();
GoeDiscovery::Result result;
result.serialNumber = responseMap.value("sse").toString();
@ -228,24 +220,24 @@ void GoeDiscovery::checkNetworkDeviceApiV2(const NetworkDeviceInfo &networkDevic
result.manufacturer = responseMap.value("oem").toString();
result.product = responseMap.value("typ").toString();
result.friendlyName = responseMap.value("fna").toString();
result.networkDeviceInfo = networkDeviceInfo;
//result.networkDeviceInfo = networkDeviceInfo;
result.discoveryMethod = DiscoveryMethodNetwork;
result.apiAvailableV2 = true;
if (m_discoveryResults.contains(networkDeviceInfo.address()) && m_discoveryResults.value(networkDeviceInfo.address()).discoveryMethod == DiscoveryMethodZeroConf) {
qCDebug(dcGoECharger()) << "Discovery: Network discovery found API V2 go-eCharger on" << networkDeviceInfo.address().toString()
<< "but this host has already been discovered using ZeroConf. Prefering ZeroConf over MAC address due to Repeater missbehaviours.";
if (m_discoveryResults.contains(address) && m_discoveryResults.value(address).discoveryMethod == DiscoveryMethodZeroConf) {
qCDebug(dcGoECharger()) << "Discovery: Network discovery found API V2 go-eCharger on" << address.toString()
<< "but this host has already been discovered using ZeroConf. Prefering ZeroConf over MAC address due to Repeater missbehaviours.";
return;
}
if (m_discoveryResults.contains(networkDeviceInfo.address())) {
result.apiAvailableV1 = m_discoveryResults.value(networkDeviceInfo.address()).apiAvailableV1;
if (m_discoveryResults.contains(address)) {
result.apiAvailableV1 = m_discoveryResults.value(address).apiAvailableV1;
}
// Overwrite result from V1 since V2 contains more information
m_discoveryResults[networkDeviceInfo.address()] = result;
m_discoveryResults[address] = result;
} else {
qCDebug(dcGoECharger()) << "Discovery:" << networkDeviceInfo.address().toString() << "API V2 verification returned JSON data but not the right one. Continue...";
qCDebug(dcGoECharger()) << "Discovery:" << address.toString() << "API V2 verification returned JSON data but not the right one. Continue...";
}
});
}
@ -274,6 +266,7 @@ void GoeDiscovery::onServiceEntryAdded(const ZeroConfServiceEntry &serviceEntry)
// Overwrite any already discovered result for this host, we always prefere ZeroConf over Networkdiscovery...
m_discoveryResults[result.address] = result;
m_verifiedHostAddresses.append(result.address);
}
}
@ -289,6 +282,12 @@ void GoeDiscovery::finishDiscovery()
{
disconnect(m_serviceBrowser, &ZeroConfServiceBrowser::serviceEntryAdded, this, &GoeDiscovery::onServiceEntryAdded);
foreach (const Result &result, m_discoveryResults) {
int index = m_discoveredNetworkDeviceInfos.indexFromHostAddress(result.address);
if (index >= 0) {
m_discoveryResults[result.address].networkDeviceInfo = m_discoveredNetworkDeviceInfos.at(index);
}
}
qint64 durationMilliSeconds = QDateTime::currentMSecsSinceEpoch() - m_startDateTime.toMSecsSinceEpoch();
qCInfo(dcGoECharger()) << "Discovery: Finished the discovery process. Found" << m_discoveryResults.count() << "go-eChargers in" << QTime::fromMSecsSinceStartOfDay(durationMilliSeconds).toString("mm:ss.zzz");
@ -309,7 +308,6 @@ QDebug operator<<(QDebug dbg, const GoeDiscovery::Result &result)
dbg.nospace() << ", " << result.address.toString();
} else {
dbg.nospace() << ", " << result.networkDeviceInfo.address().toString();
dbg.nospace() << ", " << result.networkDeviceInfo.macAddress();
}
dbg.nospace() << ") ";
return dbg.maybeSpace();

View File

@ -88,14 +88,14 @@ private:
QHash<QHostAddress, GoeDiscovery::Result> m_discoveryResults;
NetworkDeviceInfos m_discoveredNetworkDeviceInfos;
NetworkDeviceInfos m_verifiedNetworkDeviceInfos;
QList<QHostAddress> m_verifiedHostAddresses;
QList<QNetworkReply *> m_pendingReplies;
private slots:
void checkNetworkDevice(const NetworkDeviceInfo &networkDeviceInfo);
void checkNetworkDeviceApiV1(const NetworkDeviceInfo &networkDeviceInfo);
void checkNetworkDeviceApiV2(const NetworkDeviceInfo &networkDeviceInfo);
void checkHostAddress(const QHostAddress &address);
void checkHostAddressApiV1(const QHostAddress &address);
void checkHostAddressApiV2(const QHostAddress &address);
void onServiceEntryAdded(const ZeroConfServiceEntry &serviceEntry);

View File

@ -57,7 +57,6 @@ void IntegrationPluginGoECharger::init()
m_serviceBrowser = hardwareManager()->zeroConfController()->createServiceBrowser();
connect(m_serviceBrowser, &ZeroConfServiceBrowser::serviceEntryAdded, this, &IntegrationPluginGoECharger::onServiceEntryAdded);
}
}
void IntegrationPluginGoECharger::discoverThings(ThingDiscoveryInfo *info)
@ -86,8 +85,13 @@ void IntegrationPluginGoECharger::discoverThings(ThingDiscoveryInfo *info)
title += " (" + result.manufacturer + ")";
}
ParamList params;
QString description = "Serial: " + result.serialNumber + ", V: " + result.firmwareVersion;
if (result.discoveryMethod == GoeDiscovery::DiscoveryMethodNetwork) {
params << Param(goeHomeThingMacAddressParamTypeId, result.networkDeviceInfo.thingParamValueMacAddress());
params << Param(goeHomeThingHostNameParamTypeId, result.networkDeviceInfo.thingParamValueHostName());
params << Param(goeHomeThingAddressParamTypeId, result.networkDeviceInfo.thingParamValueAddress());
description.append(" - " + result.networkDeviceInfo.address().toString());
} else {
description.append(" - " + result.address.toString());
@ -95,8 +99,6 @@ void IntegrationPluginGoECharger::discoverThings(ThingDiscoveryInfo *info)
qCDebug(dcGoECharger()) << "-->" << title << description;
ThingDescriptor descriptor(goeHomeThingClassId, title, description);
ParamList params;
params << Param(goeHomeThingMacAddressParamTypeId, result.networkDeviceInfo.macAddress());
params << Param(goeHomeThingSerialNumberParamTypeId, result.serialNumber);
params << Param(goeHomeThingApiVersionParamTypeId, result.apiAvailableV2 ? 2 : 1); // always use v2 if available...
descriptor.setParams(params);
@ -123,8 +125,12 @@ void IntegrationPluginGoECharger::setupThing(ThingSetupInfo *info)
Thing *thing = info->thing();
qCDebug(dcGoECharger()) << "Setting up" << thing << thing->params();
MacAddress macAddress = MacAddress(thing->paramValue(goeHomeThingMacAddressParamTypeId).toString());
if (!macAddress.isValid()) {
MacAddress macAddress(thing->paramValue(goeHomeThingMacAddressParamTypeId).toString());
QHostAddress address(thing->paramValue(goeHomeThingAddressParamTypeId).toString());
QString hostName(thing->paramValue(goeHomeThingHostNameParamTypeId).toString());
if (!macAddress.isValid() && address.isNull() && hostName.isEmpty()) {
// ZeroConf
QHostAddress address = getHostAddress(thing);
if (address.isNull()) {
@ -143,8 +149,9 @@ void IntegrationPluginGoECharger::setupThing(ThingSetupInfo *info)
hardwareManager()->networkDeviceDiscovery()->unregisterMonitor(m_monitors.take(thing));
// Create the monitor
NetworkDeviceMonitor *monitor = hardwareManager()->networkDeviceDiscovery()->registerMonitor(macAddress);
NetworkDeviceMonitor *monitor = hardwareManager()->networkDeviceDiscovery()->registerMonitor(thing);
m_monitors.insert(thing, monitor);
QHostAddress address = getHostAddress(thing);
if (address.isNull()) {
qCWarning(dcGoECharger()) << "Cannot set up go-eCharger. The host address is not known yet. Maybe it will be available in the next run...";
@ -222,7 +229,7 @@ void IntegrationPluginGoECharger::setupThing(ThingSetupInfo *info)
setupGoeHome(info);
} else {
qCDebug(dcGoECharger()) << "Wait for the network monitor to get reachable";
connect(monitor, &NetworkDeviceMonitor::reachableChanged, info, [=](bool reachable){
connect(monitor, &NetworkDeviceMonitor::reachableChanged, info, [this, info](bool reachable){
if (reachable) {
setupGoeHome(info);
}

View File

@ -24,7 +24,7 @@
"displayName": "go-eCharger Home",
"id": "3b663d51-fdb5-4944-b409-c07f7933877e",
"createMethods": ["Discovery", "User"],
"interfaces": ["evcharger", "smartmeterconsumer", "connectable"],
"interfaces": ["evcharger", "smartmeterconsumer", "connectable", "networkdevice"],
"paramTypes": [
{
"id": "0e30e30f-ad96-417e-b739-cac85f75de39",
@ -32,6 +32,18 @@
"displayName": "MAC address",
"type": "QString"
},
{
"id": "b70db8c3-b380-4c9a-8954-c02126b057b3",
"name":"hostName",
"displayName": "Host name",
"type": "QString"
},
{
"id": "9492e39a-0300-47b9-aeda-8a2b14f9ff2b",
"name":"address",
"displayName": "IP address",
"type": "QString"
},
{
"id": "74abaff3-39e6-40be-b3c3-f41911d17e02",
"name": "serialNumber",

View File

@ -0,0 +1,390 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="de">
<context>
<name>GoECharger</name>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="80"/>
<source>Access</source>
<extracomment>The name of the StateType ({d80e1ed8-c3ae-4b68-bf86-21b4d7b2b201}) of ThingClass goeHome</extracomment>
<translation>Zugang</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="83"/>
<source>Adapter connected</source>
<extracomment>The name of the StateType ({d557e59e-ca22-4aff-bf80-dfee44db0f69}) of ThingClass goeHome</extracomment>
<translation>Adapter verbunden</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="86"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="89"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="92"/>
<source>Allow charging</source>
<extracomment>The name of the ParamType (ThingClass: goeHome, ActionType: power, ID: {8a7ab9f1-0143-494c-98ee-69f94125fe42})
----------
The name of the ActionType ({8a7ab9f1-0143-494c-98ee-69f94125fe42}) of ThingClass goeHome
----------
The name of the StateType ({8a7ab9f1-0143-494c-98ee-69f94125fe42}) of ThingClass goeHome</extracomment>
<translation>Ladeerlaubnis</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="95"/>
<source>Automatic</source>
<extracomment>The name of a possible value of StateType {d80e1ed8-c3ae-4b68-bf86-21b4d7b2b201} of ThingClass goeHome</extracomment>
<translation>Automatisch</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="98"/>
<source>Cable ampere encoding</source>
<extracomment>The name of the StateType ({f9091651-1522-4387-b300-906abd907fb3}) of ThingClass goeHome</extracomment>
<translation>Kabel Enkodierung</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="101"/>
<source>Car plugged in</source>
<extracomment>The name of the StateType ({6cb155b1-0831-47bc-8657-17ca68716684}) of ThingClass goeHome</extracomment>
<translation>Auto angesteckt</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="104"/>
<source>Car state</source>
<extracomment>The name of the StateType ({c69053bc-3a53-4e76-868b-ccf0958e9e44}) of ThingClass goeHome</extracomment>
<translation>Auto Zustand</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="107"/>
<source>Charging</source>
<extracomment>The name of the StateType ({48c6cdb8-9fc1-4c14-95df-3e2c62e59361}) of ThingClass goeHome</extracomment>
<translation>Laden</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="110"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="113"/>
<source>Charging current</source>
<extracomment>The name of the ParamType (ThingClass: goeHome, ActionType: maxChargingCurrent, ID: {446fb786-bfbe-4938-963c-73d02184573f})
----------
The name of the StateType ({446fb786-bfbe-4938-963c-73d02184573f}) of ThingClass goeHome</extracomment>
<translation>Ladestrom</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="116"/>
<source>Charging finished and vehicle still connected</source>
<extracomment>The name of a possible value of StateType {c69053bc-3a53-4e76-868b-ccf0958e9e44} of ThingClass goeHome</extracomment>
<translation>Ladung beendet und Auto noch angeschlossen</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="119"/>
<source>Connected</source>
<extracomment>The name of the StateType ({a5afaad5-78bf-4cac-b98d-7eae31aac518}) of ThingClass goeHome</extracomment>
<translation>Verbunden</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="122"/>
<source>Current power</source>
<extracomment>The name of the StateType ({f00cfcab-9271-48fa-b843-89244c9551ae}) of ThingClass goeHome</extracomment>
<translation>Aktuelle Leistung</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="125"/>
<source>Current power phase A</source>
<extracomment>The name of the StateType ({c6f68517-c4cd-415d-9455-b1731f7d9a1a}) of ThingClass goeHome</extracomment>
<translation>Leistung Phase A</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="128"/>
<source>Current power phase B</source>
<extracomment>The name of the StateType ({92005049-9ab9-4d7d-a7b6-6ab1a36c5f5f}) of ThingClass goeHome</extracomment>
<translation>Leistung Phase B</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="131"/>
<source>Current power phase C</source>
<extracomment>The name of the StateType ({1076fbd0-f42b-46e3-adc9-004361d6cd51}) of ThingClass goeHome</extracomment>
<translation>Leistung Phase C</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="134"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="137"/>
<source>Desired number of charging phases</source>
<extracomment>The name of the ParamType (ThingClass: goeHome, ActionType: desiredPhaseCount, ID: {db0af9a7-08fd-4224-b071-c89e11ae8c47})
----------
The name of the StateType ({db0af9a7-08fd-4224-b071-c89e11ae8c47}) of ThingClass goeHome</extracomment>
<translation>Gewünschte Phasenanzahl</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="140"/>
<source>Firmware version</source>
<extracomment>The name of the StateType ({5d18b48d-b886-409e-ab2e-336d9c94a55c}) of ThingClass goeHome</extracomment>
<translation>Firmware Version</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="146"/>
<source>HTTP refresh interval</source>
<extracomment>The name of the ParamType (ThingClass: goECharger, Type: plugin, ID: {7746a28e-c125-40bc-958c-27d8aeeb06a0})</extracomment>
<translation>HTTP-Aktuelisierungsintervall</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="149"/>
<source>MAC address</source>
<extracomment>The name of the ParamType (ThingClass: goeHome, Type: thing, ID: {0e30e30f-ad96-417e-b739-cac85f75de39})</extracomment>
<translation>MAC-Adresse</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="152"/>
<source>Maximal ampere</source>
<extracomment>The name of the StateType ({58cd977d-22df-48c9-829a-81554130d607}) of ThingClass goeHome</extracomment>
<translation>Maximale Stromstärke</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="158"/>
<source>Number of charging phases</source>
<extracomment>The name of the StateType ({b78d805a-f97c-4c9d-a647-5fc98f8d6dd1}) of ThingClass goeHome</extracomment>
<translation>Anzahl der ladenden Phasen</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="161"/>
<source>Open</source>
<extracomment>The name of a possible value of StateType {d80e1ed8-c3ae-4b68-bf86-21b4d7b2b201} of ThingClass goeHome</extracomment>
<translation>Offen</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="164"/>
<source>Phase A current</source>
<extracomment>The name of the StateType ({c8aab9e2-ba53-43b9-95db-e2c3edc97e33}) of ThingClass goeHome</extracomment>
<translation>Ladestrom Phase A</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="167"/>
<source>Phase A voltage</source>
<extracomment>The name of the StateType ({76da8f16-44a4-4242-b78b-09c9bb127623}) of ThingClass goeHome</extracomment>
<translation>Spannung Phase A</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="170"/>
<source>Phase B current</source>
<extracomment>The name of the StateType ({f11ac403-728d-48f3-8669-0e684faf9890}) of ThingClass goeHome</extracomment>
<translation>Ladestrom Phase B</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="173"/>
<source>Phase B voltage</source>
<extracomment>The name of the StateType ({7df01eb4-0d4d-400c-b1bc-001ca83a6a3c}) of ThingClass goeHome</extracomment>
<translation>Spannung Phase B</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="176"/>
<source>Phase C current</source>
<extracomment>The name of the StateType ({55295e1c-50b0-400b-82e4-b3417b5ed4d1}) of ThingClass goeHome</extracomment>
<translation>Ladestrom Phase C</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="179"/>
<source>Phase C voltage</source>
<extracomment>The name of the StateType ({31814cfe-626d-4168-802b-b7fc6592fc79}) of ThingClass goeHome</extracomment>
<translation>Spannung Phase A</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="182"/>
<source>RFID</source>
<extracomment>The name of a possible value of StateType {d80e1ed8-c3ae-4b68-bf86-21b4d7b2b201} of ThingClass goeHome</extracomment>
<translation>RFID</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="185"/>
<source>Ready but no vehicle connected</source>
<extracomment>The name of a possible value of StateType {c69053bc-3a53-4e76-868b-ccf0958e9e44} of ThingClass goeHome</extracomment>
<translation>Bereit aber kein Fahrzeug angeschlossen</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="188"/>
<source>Serial number</source>
<extracomment>The name of the ParamType (ThingClass: goeHome, Type: thing, ID: {74abaff3-39e6-40be-b3c3-f41911d17e02})</extracomment>
<translation>Seriennummer</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="191"/>
<source>Session energy</source>
<extracomment>The name of the StateType ({e8258831-ad89-4d27-b295-e8c10dd42b76}) of ThingClass goeHome</extracomment>
<translation>Sitzungsenergie</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="194"/>
<source>Set charging current</source>
<extracomment>The name of the ActionType ({446fb786-bfbe-4938-963c-73d02184573f}) of ThingClass goeHome</extracomment>
<translation>Setze Ladestrom</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="197"/>
<source>Set desired number of charging phases</source>
<extracomment>The name of the ActionType ({db0af9a7-08fd-4224-b071-c89e11ae8c47}) of ThingClass goeHome</extracomment>
<translation>Setze ladende Phasenanzahl</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="200"/>
<source>Temperature 1</source>
<extracomment>The name of the StateType ({2bf1ebf1-0d8c-4209-ad35-4114d9861832}) of ThingClass goeHome</extracomment>
<translation>Temperatur 1</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="203"/>
<source>Temperature 2</source>
<extracomment>The name of the StateType ({558e273a-4028-495a-902a-e4e932a0ae24}) of ThingClass goeHome</extracomment>
<translation>Temperatur 2</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="206"/>
<source>Temperature 3</source>
<extracomment>The name of the StateType ({dbf8a5dc-b8f5-437a-ac0c-c4cf8a09aacb}) of ThingClass goeHome</extracomment>
<translation>Temperatur 3</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="209"/>
<source>Temperature 4</source>
<extracomment>The name of the StateType ({1953e29f-fe28-4016-9b05-f4baf4c311ff}) of ThingClass goeHome</extracomment>
<translation>Temperatur 4</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="212"/>
<source>Total energy</source>
<extracomment>The name of the StateType ({d8f5abb6-5db3-4040-8829-553b1d881ce4}) of ThingClass goeHome</extracomment>
<translation>Gesamtenergie</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="215"/>
<source>Unknown</source>
<extracomment>The name of a possible value of StateType {c69053bc-3a53-4e76-868b-ccf0958e9e44} of ThingClass goeHome</extracomment>
<translation>Unbekannt</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="218"/>
<source>Update available</source>
<extracomment>The name of the StateType ({08b107bc-1284-455d-9e5a-6a1c3adc389f}) of ThingClass goeHome</extracomment>
<translation>Update verfügbar</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="77"/>
<source>API Version</source>
<extracomment>The name of the ParamType (ThingClass: goeHome, Type: thing, ID: {3ad014e2-c948-406e-99be-eba1d866ea20})</extracomment>
<translation>API Version</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="71"/>
<source>1</source>
<extracomment>The name of a possible value of StateType {db0af9a7-08fd-4224-b071-c89e11ae8c47} of ThingClass goeHome</extracomment>
<translation>1</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="74"/>
<source>3</source>
<extracomment>The name of a possible value of StateType {db0af9a7-08fd-4224-b071-c89e11ae8c47} of ThingClass goeHome</extracomment>
<translation>3</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="143"/>
<source>Frequency</source>
<extracomment>The name of the StateType ({28f59f96-4b30-4606-9a04-80c82abc346b}) of ThingClass goeHome</extracomment>
<translation>Frequenz</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="155"/>
<source>Model maximal ampere</source>
<extracomment>The name of the StateType ({ede9251d-662e-4d4b-90e3-db3d33c823d3}) of ThingClass goeHome</extracomment>
<translation>Maximaler Ladestrom des Models</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="221"/>
<source>Use MQTT interface</source>
<extracomment>The name of the ParamType (ThingClass: goeHome, Type: thing, ID: {848613a6-8a17-4082-ba77-3b4421170a4f})</extracomment>
<translation>Nutze MQTT Schnittstelle</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="224"/>
<source>Vehicle loads</source>
<extracomment>The name of a possible value of StateType {c69053bc-3a53-4e76-868b-ccf0958e9e44} of ThingClass goeHome</extracomment>
<translation>Fahrzeug lädt</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="227"/>
<source>Waiting for vehicle</source>
<extracomment>The name of a possible value of StateType {c69053bc-3a53-4e76-868b-ccf0958e9e44} of ThingClass goeHome</extracomment>
<translation>Warte auf Fahrzeug</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="230"/>
<source>go-e</source>
<extracomment>The name of the vendor ({c2cf9998-3584-489f-8d82-68a0baed2064})</extracomment>
<translation>go-e</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="233"/>
<source>go-eCharger</source>
<extracomment>The name of the plugin GoECharger ({a1dfca21-3f41-4a67-bc8c-c8b333411bd9})</extracomment>
<translation>go-eCharger</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="236"/>
<source>go-eCharger Home</source>
<extracomment>The name of the ThingClass ({3b663d51-fdb5-4944-b409-c07f7933877e})</extracomment>
<translation>go-eCharger Home</translation>
</message>
</context>
<context>
<name>IntegrationPluginGoECharger</name>
<message>
<location filename="../integrationplugingoecharger.cpp" line="66"/>
<source>The network device discovery is not available.</source>
<translation>Die Netzwerksuche ist auf diesem System nicht verfügbar.</translation>
</message>
<message>
<location filename="../integrationplugingoecharger.cpp" line="139"/>
<location filename="../integrationplugingoecharger.cpp" line="159"/>
<source>The host address is not known yet. Trying later again.</source>
<translation>Die Netzwerkadresse ist noch nicht bekannt. Die Einrichtung wird später erneut versucht.</translation>
</message>
<message>
<location filename="../integrationplugingoecharger.cpp" line="362"/>
<location filename="../integrationplugingoecharger.cpp" line="403"/>
<location filename="../integrationplugingoecharger.cpp" line="444"/>
<location filename="../integrationplugingoecharger.cpp" line="486"/>
<location filename="../integrationplugingoecharger.cpp" line="772"/>
<location filename="../integrationplugingoecharger.cpp" line="821"/>
<location filename="../integrationplugingoecharger.cpp" line="851"/>
<location filename="../integrationplugingoecharger.cpp" line="881"/>
<location filename="../integrationplugingoecharger.cpp" line="911"/>
<location filename="../integrationplugingoecharger.cpp" line="941"/>
<location filename="../integrationplugingoecharger.cpp" line="1424"/>
<source>The wallbox does not seem to be reachable.</source>
<translation>Die Ladestation scheint nicht erreichbar zu sein.</translation>
</message>
<message>
<location filename="../integrationplugingoecharger.cpp" line="372"/>
<location filename="../integrationplugingoecharger.cpp" line="413"/>
<location filename="../integrationplugingoecharger.cpp" line="454"/>
<location filename="../integrationplugingoecharger.cpp" line="496"/>
<location filename="../integrationplugingoecharger.cpp" line="781"/>
<location filename="../integrationplugingoecharger.cpp" line="830"/>
<location filename="../integrationplugingoecharger.cpp" line="860"/>
<location filename="../integrationplugingoecharger.cpp" line="890"/>
<location filename="../integrationplugingoecharger.cpp" line="920"/>
<location filename="../integrationplugingoecharger.cpp" line="950"/>
<location filename="../integrationplugingoecharger.cpp" line="1433"/>
<source>The wallbox returned invalid data.</source>
<translation>Es wurden ungültige Daten von der Ladestation erhalten.</translation>
</message>
<message>
<location filename="../integrationplugingoecharger.cpp" line="804"/>
<location filename="../integrationplugingoecharger.cpp" line="1396"/>
<source>Error creating MQTT channel. Please check MQTT server settings.</source>
<translation>Fehler beim Anlegen des MQTT-Kanals. Bitte überpfüfe die MQTT Server Einstellungen.</translation>
</message>
<message>
<location filename="../integrationplugingoecharger.cpp" line="837"/>
<location filename="../integrationplugingoecharger.cpp" line="867"/>
<location filename="../integrationplugingoecharger.cpp" line="897"/>
<location filename="../integrationplugingoecharger.cpp" line="927"/>
<location filename="../integrationplugingoecharger.cpp" line="958"/>
<source>Error while configuring MQTT settings on the wallbox.</source>
<translation>Fehler beim Einrichten der MQTT Verbindung auf der Ladestation.</translation>
</message>
</context>
</TS>

View File

@ -4,21 +4,21 @@
<context>
<name>GoECharger</name>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="70"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="80"/>
<source>Access</source>
<extracomment>The name of the StateType ({d80e1ed8-c3ae-4b68-bf86-21b4d7b2b201}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="73"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="83"/>
<source>Adapter connected</source>
<extracomment>The name of the StateType ({d557e59e-ca22-4aff-bf80-dfee44db0f69}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="76"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="79"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="82"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="86"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="89"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="92"/>
<source>Allow charging</source>
<extracomment>The name of the ParamType (ThingClass: goeHome, ActionType: power, ID: {8a7ab9f1-0143-494c-98ee-69f94125fe42})
----------
@ -28,32 +28,38 @@ The name of the StateType ({8a7ab9f1-0143-494c-98ee-69f94125fe42}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="85"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="95"/>
<source>Automatic</source>
<extracomment>The name of a possible value of StateType {d80e1ed8-c3ae-4b68-bf86-21b4d7b2b201} of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="98"/>
<source>Cable ampere encoding</source>
<extracomment>The name of the StateType ({f9091651-1522-4387-b300-906abd907fb3}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="88"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="101"/>
<source>Car plugged in</source>
<extracomment>The name of the StateType ({6cb155b1-0831-47bc-8657-17ca68716684}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="91"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="104"/>
<source>Car state</source>
<extracomment>The name of the StateType ({c69053bc-3a53-4e76-868b-ccf0958e9e44}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="94"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="107"/>
<source>Charging</source>
<extracomment>The name of the StateType ({48c6cdb8-9fc1-4c14-95df-3e2c62e59361}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="97"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="100"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="110"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="113"/>
<source>Charging current</source>
<extracomment>The name of the ParamType (ThingClass: goeHome, ActionType: maxChargingCurrent, ID: {446fb786-bfbe-4938-963c-73d02184573f})
----------
@ -61,187 +67,262 @@ The name of the StateType ({446fb786-bfbe-4938-963c-73d02184573f}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="103"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="116"/>
<source>Charging finished and vehicle still connected</source>
<extracomment>The name of a possible value of StateType {c69053bc-3a53-4e76-868b-ccf0958e9e44} of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="119"/>
<source>Connected</source>
<extracomment>The name of the StateType ({a5afaad5-78bf-4cac-b98d-7eae31aac518}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="106"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="122"/>
<source>Current power</source>
<extracomment>The name of the StateType ({f00cfcab-9271-48fa-b843-89244c9551ae}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="109"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="125"/>
<source>Current power phase A</source>
<extracomment>The name of the StateType ({c6f68517-c4cd-415d-9455-b1731f7d9a1a}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="112"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="128"/>
<source>Current power phase B</source>
<extracomment>The name of the StateType ({92005049-9ab9-4d7d-a7b6-6ab1a36c5f5f}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="115"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="131"/>
<source>Current power phase C</source>
<extracomment>The name of the StateType ({1076fbd0-f42b-46e3-adc9-004361d6cd51}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="118"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="134"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="137"/>
<source>Desired number of charging phases</source>
<extracomment>The name of the ParamType (ThingClass: goeHome, ActionType: desiredPhaseCount, ID: {db0af9a7-08fd-4224-b071-c89e11ae8c47})
----------
The name of the StateType ({db0af9a7-08fd-4224-b071-c89e11ae8c47}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="140"/>
<source>Firmware version</source>
<extracomment>The name of the StateType ({5d18b48d-b886-409e-ab2e-336d9c94a55c}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="124"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="146"/>
<source>HTTP refresh interval</source>
<extracomment>The name of the ParamType (ThingClass: goECharger, Type: plugin, ID: {7746a28e-c125-40bc-958c-27d8aeeb06a0})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="149"/>
<source>MAC address</source>
<extracomment>The name of the ParamType (ThingClass: goeHome, Type: thing, ID: {0e30e30f-ad96-417e-b739-cac85f75de39})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="127"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="152"/>
<source>Maximal ampere</source>
<extracomment>The name of the StateType ({58cd977d-22df-48c9-829a-81554130d607}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="133"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="158"/>
<source>Number of charging phases</source>
<extracomment>The name of the StateType ({b78d805a-f97c-4c9d-a647-5fc98f8d6dd1}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="136"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="161"/>
<source>Open</source>
<extracomment>The name of a possible value of StateType {d80e1ed8-c3ae-4b68-bf86-21b4d7b2b201} of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="164"/>
<source>Phase A current</source>
<extracomment>The name of the StateType ({c8aab9e2-ba53-43b9-95db-e2c3edc97e33}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="139"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="167"/>
<source>Phase A voltage</source>
<extracomment>The name of the StateType ({76da8f16-44a4-4242-b78b-09c9bb127623}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="142"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="170"/>
<source>Phase B current</source>
<extracomment>The name of the StateType ({f11ac403-728d-48f3-8669-0e684faf9890}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="145"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="173"/>
<source>Phase B voltage</source>
<extracomment>The name of the StateType ({7df01eb4-0d4d-400c-b1bc-001ca83a6a3c}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="148"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="176"/>
<source>Phase C current</source>
<extracomment>The name of the StateType ({55295e1c-50b0-400b-82e4-b3417b5ed4d1}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="151"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="179"/>
<source>Phase C voltage</source>
<extracomment>The name of the StateType ({31814cfe-626d-4168-802b-b7fc6592fc79}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="154"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="182"/>
<source>RFID</source>
<extracomment>The name of a possible value of StateType {d80e1ed8-c3ae-4b68-bf86-21b4d7b2b201} of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="185"/>
<source>Ready but no vehicle connected</source>
<extracomment>The name of a possible value of StateType {c69053bc-3a53-4e76-868b-ccf0958e9e44} of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="188"/>
<source>Serial number</source>
<extracomment>The name of the ParamType (ThingClass: goeHome, Type: thing, ID: {74abaff3-39e6-40be-b3c3-f41911d17e02})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="157"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="191"/>
<source>Session energy</source>
<extracomment>The name of the StateType ({e8258831-ad89-4d27-b295-e8c10dd42b76}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="160"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="194"/>
<source>Set charging current</source>
<extracomment>The name of the ActionType ({446fb786-bfbe-4938-963c-73d02184573f}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="163"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="197"/>
<source>Set desired number of charging phases</source>
<extracomment>The name of the ActionType ({db0af9a7-08fd-4224-b071-c89e11ae8c47}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="200"/>
<source>Temperature 1</source>
<extracomment>The name of the StateType ({2bf1ebf1-0d8c-4209-ad35-4114d9861832}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="166"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="203"/>
<source>Temperature 2</source>
<extracomment>The name of the StateType ({558e273a-4028-495a-902a-e4e932a0ae24}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="169"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="206"/>
<source>Temperature 3</source>
<extracomment>The name of the StateType ({dbf8a5dc-b8f5-437a-ac0c-c4cf8a09aacb}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="172"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="209"/>
<source>Temperature 4</source>
<extracomment>The name of the StateType ({1953e29f-fe28-4016-9b05-f4baf4c311ff}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="175"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="212"/>
<source>Total energy</source>
<extracomment>The name of the StateType ({d8f5abb6-5db3-4040-8829-553b1d881ce4}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="178"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="215"/>
<source>Unknown</source>
<extracomment>The name of a possible value of StateType {c69053bc-3a53-4e76-868b-ccf0958e9e44} of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="218"/>
<source>Update available</source>
<extracomment>The name of the StateType ({08b107bc-1284-455d-9e5a-6a1c3adc389f}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="67"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="77"/>
<source>API Version</source>
<extracomment>The name of the ParamType (ThingClass: goeHome, Type: thing, ID: {3ad014e2-c948-406e-99be-eba1d866ea20})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="121"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="71"/>
<source>1</source>
<extracomment>The name of a possible value of StateType {db0af9a7-08fd-4224-b071-c89e11ae8c47} of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="74"/>
<source>3</source>
<extracomment>The name of a possible value of StateType {db0af9a7-08fd-4224-b071-c89e11ae8c47} of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="143"/>
<source>Frequency</source>
<extracomment>The name of the StateType ({28f59f96-4b30-4606-9a04-80c82abc346b}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="130"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="155"/>
<source>Model maximal ampere</source>
<extracomment>The name of the StateType ({ede9251d-662e-4d4b-90e3-db3d33c823d3}) of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="181"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="221"/>
<source>Use MQTT interface</source>
<extracomment>The name of the ParamType (ThingClass: goeHome, Type: thing, ID: {848613a6-8a17-4082-ba77-3b4421170a4f})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="184"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="224"/>
<source>Vehicle loads</source>
<extracomment>The name of a possible value of StateType {c69053bc-3a53-4e76-868b-ccf0958e9e44} of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="227"/>
<source>Waiting for vehicle</source>
<extracomment>The name of a possible value of StateType {c69053bc-3a53-4e76-868b-ccf0958e9e44} of ThingClass goeHome</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="230"/>
<source>go-e</source>
<extracomment>The name of the vendor ({c2cf9998-3584-489f-8d82-68a0baed2064})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="187"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="233"/>
<source>go-eCharger</source>
<extracomment>The name of the plugin GoECharger ({a1dfca21-3f41-4a67-bc8c-c8b333411bd9})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="190"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/goecharger/plugininfo.h" line="236"/>
<source>go-eCharger Home</source>
<extracomment>The name of the ThingClass ({3b663d51-fdb5-4944-b409-c07f7933877e})</extracomment>
<translation type="unfinished"></translation>
@ -250,60 +331,58 @@ The name of the StateType ({446fb786-bfbe-4938-963c-73d02184573f}) of ThingClass
<context>
<name>IntegrationPluginGoECharger</name>
<message>
<location filename="../integrationplugingoecharger.cpp" line="56"/>
<location filename="../integrationplugingoecharger.cpp" line="66"/>
<source>The network device discovery is not available.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../integrationplugingoecharger.cpp" line="111"/>
<source>The MAC address is not known. Please reconfigure the thing.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../integrationplugingoecharger.cpp" line="122"/>
<location filename="../integrationplugingoecharger.cpp" line="139"/>
<location filename="../integrationplugingoecharger.cpp" line="159"/>
<source>The host address is not known yet. Trying later again.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../integrationplugingoecharger.cpp" line="317"/>
<location filename="../integrationplugingoecharger.cpp" line="356"/>
<location filename="../integrationplugingoecharger.cpp" line="397"/>
<location filename="../integrationplugingoecharger.cpp" line="667"/>
<location filename="../integrationplugingoecharger.cpp" line="715"/>
<location filename="../integrationplugingoecharger.cpp" line="745"/>
<location filename="../integrationplugingoecharger.cpp" line="775"/>
<location filename="../integrationplugingoecharger.cpp" line="805"/>
<location filename="../integrationplugingoecharger.cpp" line="835"/>
<location filename="../integrationplugingoecharger.cpp" line="1286"/>
<location filename="../integrationplugingoecharger.cpp" line="362"/>
<location filename="../integrationplugingoecharger.cpp" line="403"/>
<location filename="../integrationplugingoecharger.cpp" line="444"/>
<location filename="../integrationplugingoecharger.cpp" line="486"/>
<location filename="../integrationplugingoecharger.cpp" line="772"/>
<location filename="../integrationplugingoecharger.cpp" line="821"/>
<location filename="../integrationplugingoecharger.cpp" line="851"/>
<location filename="../integrationplugingoecharger.cpp" line="881"/>
<location filename="../integrationplugingoecharger.cpp" line="911"/>
<location filename="../integrationplugingoecharger.cpp" line="941"/>
<location filename="../integrationplugingoecharger.cpp" line="1424"/>
<source>The wallbox does not seem to be reachable.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../integrationplugingoecharger.cpp" line="326"/>
<location filename="../integrationplugingoecharger.cpp" line="365"/>
<location filename="../integrationplugingoecharger.cpp" line="407"/>
<location filename="../integrationplugingoecharger.cpp" line="676"/>
<location filename="../integrationplugingoecharger.cpp" line="724"/>
<location filename="../integrationplugingoecharger.cpp" line="754"/>
<location filename="../integrationplugingoecharger.cpp" line="784"/>
<location filename="../integrationplugingoecharger.cpp" line="814"/>
<location filename="../integrationplugingoecharger.cpp" line="844"/>
<location filename="../integrationplugingoecharger.cpp" line="1295"/>
<location filename="../integrationplugingoecharger.cpp" line="372"/>
<location filename="../integrationplugingoecharger.cpp" line="413"/>
<location filename="../integrationplugingoecharger.cpp" line="454"/>
<location filename="../integrationplugingoecharger.cpp" line="496"/>
<location filename="../integrationplugingoecharger.cpp" line="781"/>
<location filename="../integrationplugingoecharger.cpp" line="830"/>
<location filename="../integrationplugingoecharger.cpp" line="860"/>
<location filename="../integrationplugingoecharger.cpp" line="890"/>
<location filename="../integrationplugingoecharger.cpp" line="920"/>
<location filename="../integrationplugingoecharger.cpp" line="950"/>
<location filename="../integrationplugingoecharger.cpp" line="1433"/>
<source>The wallbox returned invalid data.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../integrationplugingoecharger.cpp" line="698"/>
<location filename="../integrationplugingoecharger.cpp" line="1258"/>
<location filename="../integrationplugingoecharger.cpp" line="804"/>
<location filename="../integrationplugingoecharger.cpp" line="1396"/>
<source>Error creating MQTT channel. Please check MQTT server settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../integrationplugingoecharger.cpp" line="731"/>
<location filename="../integrationplugingoecharger.cpp" line="761"/>
<location filename="../integrationplugingoecharger.cpp" line="791"/>
<location filename="../integrationplugingoecharger.cpp" line="821"/>
<location filename="../integrationplugingoecharger.cpp" line="852"/>
<location filename="../integrationplugingoecharger.cpp" line="837"/>
<location filename="../integrationplugingoecharger.cpp" line="867"/>
<location filename="../integrationplugingoecharger.cpp" line="897"/>
<location filename="../integrationplugingoecharger.cpp" line="927"/>
<location filename="../integrationplugingoecharger.cpp" line="958"/>
<source>Error while configuring MQTT settings on the wallbox.</source>
<translation type="unfinished"></translation>
</message>