diff --git a/fronius/froniusmeter.cpp b/fronius/froniusmeter.cpp index fe662306..5097a29a 100644 --- a/fronius/froniusmeter.cpp +++ b/fronius/froniusmeter.cpp @@ -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"); - //} -} diff --git a/fronius/froniusmeter.h b/fronius/froniusmeter.h index a629d8a9..65752492 100644 --- a/fronius/froniusmeter.h +++ b/fronius/froniusmeter.h @@ -46,7 +46,6 @@ public: QUrl updateUrl(); void updateThingInfo(const QByteArray &data); QUrl activityUrl(); - void updateActivityInfo(const QByteArray &data); private: QString m_activity; diff --git a/fronius/integrationpluginfronius.cpp b/fronius/integrationpluginfronius.cpp index bd3d2dde..c2d8b6ee 100644 --- a/fronius/integrationpluginfronius.cpp +++ b/fronius/integrationpluginfronius.cpp @@ -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();