mirror of
https://github.com/nymea/nymea-plugins.git
synced 2026-07-01 22:20:55 +02:00
Merge PR #790: goe: Improve parallel discovery and IP assignment
This commit is contained in:
commit
c63781a917
@ -167,7 +167,7 @@ void GoeDiscovery::checkHostAddressApiV1(const QHostAddress &address)
|
||||
GoeDiscovery::Result result;
|
||||
result.serialNumber = responseMap.value("sse").toString();
|
||||
result.firmwareVersion = responseMap.value("fwv").toString();
|
||||
//result.networkDeviceInfo = networkDeviceInfo;
|
||||
result.address = address;
|
||||
result.apiAvailableV1 = true;
|
||||
m_discoveryResults[address] = result;
|
||||
}
|
||||
@ -214,7 +214,7 @@ void GoeDiscovery::checkHostAddressApiV2(const QHostAddress &address)
|
||||
result.manufacturer = responseMap.value("oem").toString();
|
||||
result.product = responseMap.value("typ").toString();
|
||||
result.friendlyName = responseMap.value("fna").toString();
|
||||
//result.networkDeviceInfo = networkDeviceInfo;
|
||||
result.address = address;
|
||||
result.discoveryMethod = DiscoveryMethodNetwork;
|
||||
result.apiAvailableV2 = true;
|
||||
|
||||
|
||||
@ -50,9 +50,9 @@ public:
|
||||
QString friendlyName;
|
||||
QString serialNumber;
|
||||
QString firmwareVersion;
|
||||
DiscoveryMethod discoveryMethod;
|
||||
DiscoveryMethod discoveryMethod = DiscoveryMethodNetwork;
|
||||
NetworkDeviceInfo networkDeviceInfo; // Network discovery
|
||||
QHostAddress address; // ZeroConf
|
||||
QHostAddress address;
|
||||
bool apiAvailableV1 = false;
|
||||
bool apiAvailableV2 = false;
|
||||
} Result;
|
||||
|
||||
@ -82,12 +82,13 @@ void IntegrationPluginGoECharger::discoverThings(ThingDiscoveryInfo *info)
|
||||
ParamList params;
|
||||
|
||||
QString description = "Serial: " + result.serialNumber + ", V: " + result.firmwareVersion;
|
||||
if (result.discoveryMethod == GoeDiscovery::DiscoveryMethodNetwork) {
|
||||
if (result.networkDeviceInfo.isValid()) {
|
||||
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 {
|
||||
} else if (!result.address.isNull()) {
|
||||
params << Param(goeHomeThingAddressParamTypeId, result.address.toString());
|
||||
description.append(" - " + result.address.toString());
|
||||
}
|
||||
|
||||
@ -575,8 +576,15 @@ QNetworkRequest IntegrationPluginGoECharger::buildStatusRequest(Thing *thing, bo
|
||||
|
||||
QHostAddress IntegrationPluginGoECharger::getHostAddress(Thing *thing)
|
||||
{
|
||||
if (m_monitors.contains(thing))
|
||||
return m_monitors.value(thing)->networkDeviceInfo().address();
|
||||
if (m_monitors.contains(thing)) {
|
||||
QHostAddress address = m_monitors.value(thing)->networkDeviceInfo().address();
|
||||
if (!address.isNull())
|
||||
return address;
|
||||
}
|
||||
|
||||
QHostAddress address(thing->paramValue(goeHomeThingAddressParamTypeId).toString());
|
||||
if (!address.isNull())
|
||||
return address;
|
||||
|
||||
foreach (const ZeroConfServiceEntry &serviceEntry, m_serviceBrowser->serviceEntries()) {
|
||||
if (GoeDiscovery::isGoeCharger(serviceEntry) && serviceEntry.protocol() == QAbstractSocket::IPv4Protocol) {
|
||||
@ -1714,4 +1722,3 @@ void IntegrationPluginGoECharger::markAsDisconnected(Thing *thing)
|
||||
thing->setStateValue("currentPowerPhaseC", 0);
|
||||
thing->setStateValue("frequency", 0);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user