cleaned up a bit

This commit is contained in:
bernhard.trinnes 2020-07-14 19:43:05 +02:00
parent 9cf299c982
commit 483542fd16
3 changed files with 17 additions and 35 deletions

View File

@ -85,11 +85,11 @@ void FroniusMeter::updateThingInfo(const QByteArray &data)
}
if (dataMap.contains("EnergyReal_WAC_Sum_Produced")) {
pluginThing()->setStateValue(meterTotalEnergyProducedStateTypeId, dataMap.value("EnergyReal_WAC_Sum_Produced").toInt()/1000);
pluginThing()->setStateValue(meterTotalEnergyProducedStateTypeId, dataMap.value("EnergyReal_WAC_Sum_Produced").toInt()/1000.00);
}
if (dataMap.contains("EnergyReal_WAC_Sum_Consumed")) {
pluginThing()->setStateValue(meterTotalEnergyConsumedStateTypeId, dataMap.value("EnergyReal_WAC_Sum_Consumed").toInt()/1000);
pluginThing()->setStateValue(meterTotalEnergyConsumedStateTypeId, dataMap.value("EnergyReal_WAC_Sum_Consumed").toInt()/1000.00);
}
//update successful
@ -105,23 +105,3 @@ QUrl FroniusMeter::activityUrl()
return requestUrl;
}
void FroniusMeter::updateActivityInfo(const QByteArray &data)
{
// Convert the rawdata to a json document
QJsonParseError error;
QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &error);
if(error.error != QJsonParseError::NoError) {
qCWarning(dcFronius()) << "FroniusMeter: Failed to parse JSON data" << data << ":" << error.errorString();
return;
}
// create Meter Info list map
//QVariantMap dataMap = jsonDoc.toVariant().toMap().value("Body").toMap().value("Data").toMap();
//if (dataMap.value("Site").toMap().value("P_PV").toFloat() > 0) {
// pluginThing()->setStateValue(inverteractivStateTypeId, "production");
//} else {
// pluginThing()->setStateValue(inverteractivStateTypeId, "inactive");
//}
}

View File

@ -46,7 +46,6 @@ public:
QUrl updateUrl();
void updateThingInfo(const QByteArray &data);
QUrl activityUrl();
void updateActivityInfo(const QByteArray &data);
private:
QString m_activity;

View File

@ -352,19 +352,7 @@ void IntegrationPluginFronius::updateThingStates(Thing *thing)
m_froniusMeters.key(thing)->updateThingInfo(data);
}
});
QNetworkReply *next_reply = hardwareManager()->networkManager()->get(QNetworkRequest(m_froniusMeters.key(thing)->activityUrl()));
connect(next_reply, &QNetworkReply::finished, next_reply, &QNetworkReply::deleteLater);
connect(next_reply, &QNetworkReply::finished, [this, thing, next_reply]() {
if (next_reply->error() != QNetworkReply::NoError) {
qCWarning(dcFronius()) << "Network request error:" << next_reply->error() << next_reply->errorString() << next_reply->request().url();
return;
}
QByteArray data = next_reply->readAll();
if(m_froniusMeters.values().contains(thing)){ // check if thing was not removed before reply was received
m_froniusMeters.key(thing)->updateActivityInfo(data);
}
});
} else if (thing->thingClassId() == storageThingClassId) {
QNetworkReply *reply = hardwareManager()->networkManager()->get(QNetworkRequest(m_froniusStorages.key(thing)->updateUrl()));
connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater);
@ -493,6 +481,21 @@ void IntegrationPluginFronius::searchNewThings(FroniusLogger *logger)
}
}
QVariantMap ohmpilotMap = bodyMap.value("Data").toMap().value("Ohmpilot").toMap();
foreach (QString ohmpilotId, ohmpilotMap.keys()) {
qCDebug(dcFronius()) << "Unhandled device Ohmpilot" << ohmpilotId;
}
QVariantMap sensorCardMap = bodyMap.value("Data").toMap().value("SensorCard").toMap();
foreach (QString sensorCardId, sensorCardMap.keys()) {
qCDebug(dcFronius()) << "Unhandled device SensorCard" << sensorCardId;
}
QVariantMap stringControlMap = bodyMap.value("Data").toMap().value("StringControl").toMap();
foreach (QString stringControlId, stringControlMap.keys()) {
qCDebug(dcFronius()) << "Unhandled device StringControl" << stringControlId;
}
if (!thingDescriptors.empty()) {
emit autoThingsAppeared(thingDescriptors);
thingDescriptors.clear();