diff --git a/fronius/froniusinverter.cpp b/fronius/froniusinverter.cpp index 36fdd9d7..9dd63109 100644 --- a/fronius/froniusinverter.cpp +++ b/fronius/froniusinverter.cpp @@ -78,6 +78,8 @@ void FroniusInverter::updateThingInfo(const QByteArray &data) QVariantMap dataMap = jsonDoc.toVariant().toMap().value("Body").toMap().value("Data").toMap(); QVariantMap headMap = jsonDoc.toVariant().toMap().value("Head").toMap(); + qCDebug(dcFronius()) << "Inverter data" << qUtf8Printable(QJsonDocument::fromVariant(dataMap).toJson(QJsonDocument::Indented)); + // Set the inverter device state if (dataMap.contains("PAC")) { if(dataMap.value("PAC").toMap().values().at(0) == "W") diff --git a/fronius/froniusmeter.cpp b/fronius/froniusmeter.cpp index 7fd11271..0d767624 100644 --- a/fronius/froniusmeter.cpp +++ b/fronius/froniusmeter.cpp @@ -79,17 +79,63 @@ void FroniusMeter::updateThingInfo(const QByteArray &data) //Add Smart meter with following states: „PowerReal_P_Sum“, „EnergyReal_WAC_Sum_Produced“, „EnergyReal_WAC_Sum_Consumed“ - // Set the meter thing state + qCDebug(dcFronius()) << "Meter data" << qUtf8Printable(QJsonDocument::fromVariant(dataMap).toJson(QJsonDocument::Indented)); + + // Power if (dataMap.contains("PowerReal_P_Sum")) { - pluginThing()->setStateValue(meterCurrentPowerStateTypeId, dataMap.value("PowerReal_P_Sum").toInt()); + pluginThing()->setStateValue(meterCurrentPowerStateTypeId, dataMap.value("PowerReal_P_Sum").toDouble()); } + if (dataMap.contains("PowerReal_P_Phase_1")) { + pluginThing()->setStateValue(meterCurrentPowerPhaseAStateTypeId, dataMap.value("PowerReal_P_Phase_1").toDouble()); + } + + if (dataMap.contains("PowerReal_P_Phase_2")) { + pluginThing()->setStateValue(meterCurrentPowerPhaseBStateTypeId, dataMap.value("PowerReal_P_Phase_2").toDouble()); + } + + if (dataMap.contains("PowerReal_P_Phase_3")) { + pluginThing()->setStateValue(meterCurrentPowerPhaseCStateTypeId, dataMap.value("PowerReal_P_Phase_3").toDouble()); + } + + // Current + if (dataMap.contains("Current_AC_Phase_1")) { + pluginThing()->setStateValue(meterCurrentPhaseAStateTypeId, dataMap.value("Current_AC_Phase_1").toDouble()); + } + + if (dataMap.contains("Current_AC_Phase_2")) { + pluginThing()->setStateValue(meterCurrentPhaseBStateTypeId, dataMap.value("Current_AC_Phase_2").toDouble()); + } + + if (dataMap.contains("Current_AC_Phase_3")) { + pluginThing()->setStateValue(meterCurrentPhaseCStateTypeId, dataMap.value("Current_AC_Phase_3").toDouble()); + } + + // Voltage + if (dataMap.contains("Voltage_AC_Phase_1")) { + pluginThing()->setStateValue(meterVoltagePhaseAStateTypeId, dataMap.value("Voltage_AC_Phase_1").toDouble()); + } + + if (dataMap.contains("Voltage_AC_Phase_2")) { + pluginThing()->setStateValue(meterVoltagePhaseBStateTypeId, dataMap.value("Voltage_AC_Phase_2").toDouble()); + } + + if (dataMap.contains("Voltage_AC_Phase_3")) { + pluginThing()->setStateValue(meterVoltagePhaseCStateTypeId, dataMap.value("Voltage_AC_Phase_3").toDouble()); + } + + // Total energy if (dataMap.contains("EnergyReal_WAC_Sum_Produced")) { - pluginThing()->setStateValue(meterTotalEnergyProducedStateTypeId, dataMap.value("EnergyReal_WAC_Sum_Produced").toInt()/1000.00); + 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.00); + pluginThing()->setStateValue(meterTotalEnergyConsumedStateTypeId, dataMap.value("EnergyReal_WAC_Sum_Consumed").toInt()/1000.00); + } + + // Frequency + if (dataMap.contains("Frequency_Phase_Average")) { + pluginThing()->setStateValue(meterFrequencyStateTypeId, dataMap.value("Frequency_Phase_Average").toDouble()); } //update successful diff --git a/fronius/froniusstorage.cpp b/fronius/froniusstorage.cpp index e8a9e312..2119c148 100644 --- a/fronius/froniusstorage.cpp +++ b/fronius/froniusstorage.cpp @@ -78,13 +78,15 @@ void FroniusStorage::updateThingInfo(const QByteArray &data) QVariantMap dataMap = jsonDoc.toVariant().toMap().value("Body").toMap().value("Data").toMap(); // QVariantMap headMap = jsonDoc.toVariant().toMap().value("Head").toMap(); + qCDebug(dcFronius()) << "Storage data" << qUtf8Printable(QJsonDocument::fromVariant(dataMap).toJson(QJsonDocument::Indented)); + // create StorageInfo list map QVariantMap storageInfoMap = dataMap.value("Controller").toMap(); // copy retrieved information to thing states if (storageInfoMap.contains("StateOfCharge_Relative")) { pluginThing()->setStateValue(storageBatteryLevelStateTypeId, storageInfoMap.value("StateOfCharge_Relative").toInt()); - if (!pluginThing()->stateValue(storageChargingStateTypeId).toBool() && (storageInfoMap.value("StateOfCharge_Relative").toInt() < 5)) { + if (pluginThing()->stateValue(storageChargingStateStateTypeId).toString() == "charging" && (storageInfoMap.value("StateOfCharge_Relative").toInt() < 5)) { pluginThing()->setStateValue(storageBatteryCriticalStateTypeId, true); } else { pluginThing()->setStateValue(storageBatteryCriticalStateTypeId, false); @@ -94,7 +96,9 @@ void FroniusStorage::updateThingInfo(const QByteArray &data) if (storageInfoMap.contains("Temperature_Cell")) pluginThing()->setStateValue(storageCellTemperatureStateTypeId, storageInfoMap.value("Temperature_Cell").toDouble()); - //update successful + if (storageInfoMap.contains("Capacity_Maximum")) + pluginThing()->setStateValue(storageCapacityStateTypeId, storageInfoMap.value("Capacity_Maximum").toDouble()); + pluginThing()->setStateValue(storageConnectedStateTypeId,true); } @@ -120,8 +124,13 @@ void FroniusStorage::updateActivityInfo(const QByteArray &data) // create StorageInfo list map QVariantMap dataMap = jsonDoc.toVariant().toMap().value("Body").toMap().value("Data").toMap(); - float charge_akku = dataMap.value("Site").toMap().value("P_Akku").toFloat(); - pluginThing()->setStateValue(storageChargingStateTypeId, charge_akku < 0); - pluginThing()->setStateValue(storageDischargingStateTypeId, charge_akku > 0); + pluginThing()->setStateValue(storageCurrentPowerStateTypeId, charge_akku); + if (charge_akku < 0) { + pluginThing()->setStateValue(storageChargingStateStateTypeId, "discharging"); + } else if (charge_akku > 0) { + pluginThing()->setStateValue(storageChargingStateStateTypeId, "charging"); + } else { + pluginThing()->setStateValue(storageChargingStateStateTypeId, "idle"); + } } diff --git a/fronius/froniusstorage.h b/fronius/froniusstorage.h index 401244f1..551d6044 100644 --- a/fronius/froniusstorage.h +++ b/fronius/froniusstorage.h @@ -51,6 +51,6 @@ public: private: QString m_charging_state; - int m_charge; + int m_charge; }; #endif // FRONIUSSTORAGE_H diff --git a/fronius/integrationpluginfronius.cpp b/fronius/integrationpluginfronius.cpp index 38ca08cd..5cb07ac4 100644 --- a/fronius/integrationpluginfronius.cpp +++ b/fronius/integrationpluginfronius.cpp @@ -71,9 +71,9 @@ void IntegrationPluginFronius::discoverThings(ThingDiscoveryInfo *info) QString title; if (networkDeviceInfo.hostName().isEmpty()) { - title += networkDeviceInfo.address().toString(); + title += "Fronius Solar"; } else { - title += networkDeviceInfo.address().toString() + " (" + networkDeviceInfo.hostName() + ")"; + title += "Fronius Solar (" + networkDeviceInfo.hostName() + ")"; } QString description; @@ -193,7 +193,7 @@ void IntegrationPluginFronius::postSetupThing(Thing *thing) qCDebug(dcFronius()) << "Post setup" << thing->name(); if (!m_pluginTimer) { - m_pluginTimer = hardwareManager()->pluginTimerManager()->registerTimer(30); + m_pluginTimer = hardwareManager()->pluginTimerManager()->registerTimer(2); connect(m_pluginTimer, &PluginTimer::timeout, this, [this]() { foreach (Thing *logger, m_froniusLoggers) updateThingStates(logger); @@ -390,9 +390,8 @@ void IntegrationPluginFronius::searchNewThings(FroniusLogger *logger) if (!loggerThing) return; - QByteArray data = reply->readAll(); - // Convert the rawdata to a json document + QByteArray data = reply->readAll(); QJsonParseError error; QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &error); if (error.error != QJsonParseError::NoError) { @@ -409,11 +408,11 @@ void IntegrationPluginFronius::searchNewThings(FroniusLogger *logger) // Parse reply for inverters at the host address QVariantMap inverterMap = bodyMap.value("Data").toMap().value("Inverter").toMap(); - foreach (QString inverterId, inverterMap.keys()) { + foreach (const QString &inverterId, inverterMap.keys()) { //check if thing already connected to logger - if (!thingExists(inverterThingIdParamTypeId,inverterId)) { - QString thingName = loggerThing->name() + " Inverter " + inverterId; - ThingDescriptor descriptor(inverterThingClassId, thingName, "Fronius Solar Inverter", loggerThing->id()); + if (!thingExists(inverterThingIdParamTypeId, inverterId)) { + QString thingDescription = loggerThing->name(); + ThingDescriptor descriptor(inverterThingClassId, "Fronius Solar Inverter", thingDescription, loggerThing->id()); ParamList params; params.append(Param(inverterThingIdParamTypeId, inverterId)); descriptor.setParams(params); @@ -423,31 +422,111 @@ void IntegrationPluginFronius::searchNewThings(FroniusLogger *logger) // parse reply for meter things at the host address QVariantMap meterMap = bodyMap.value("Data").toMap().value("Meter").toMap(); - foreach (QString meterId, meterMap.keys()) { + foreach (const QString &meterId, meterMap.keys()) { //check if thing already connected to logger - if(!thingExists(meterThingIdParamTypeId, meterId)) { - QString thingName = loggerThing->name() + " Meter " + meterId; - ThingDescriptor descriptor(meterThingClassId, thingName, "Fronius Solar Meter", loggerThing->id()); - ParamList params; - params.append(Param(meterThingIdParamTypeId, meterId)); - descriptor.setParams(params); - thingDescriptors.append(descriptor); + if (!thingExists(meterThingIdParamTypeId, meterId)) { + // get meter infos + ///solar_api/v1/GetMeterRealtimeData.cgi?Scope=Device&DeviceId=0 + QUrl requestUrl; + requestUrl.setScheme("http"); + requestUrl.setHost(logger->hostAddress()); + requestUrl.setPath(logger->baseUrl() + "GetMeterRealtimeData.cgi"); + QUrlQuery query; + query.addQueryItem("Scope", "Device"); + query.addQueryItem("DeviceId", meterId); + requestUrl.setQuery(query); + + qCDebug(dcFronius()) << "Get meter information before setup"; + QNetworkReply *reply = hardwareManager()->networkManager()->get(QNetworkRequest(requestUrl)); + connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater); + connect(reply, &QNetworkReply::finished, this, [=]() { + if (reply->error() != QNetworkReply::NoError) { + qCWarning(dcFronius()) << "Network request error:" << reply->error() << reply->errorString(); + return; + } + + QByteArray data = reply->readAll(); + QJsonParseError error; + QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &error); + if (error.error != QJsonParseError::NoError) { + qCWarning(dcFronius()) << "Failed to parse JSON data" << data << ":" << error.errorString(); + return; + } + + QVariantMap dataMap = jsonDoc.toVariant().toMap().value("Body").toMap().value("Data").toMap(); + + QString thingName; + QString serialNumber; + if (dataMap.contains("Details")) { + QVariantMap details = dataMap.value("Details").toMap(); + thingName = details.value("Manufacturer", "Fronius").toString() + " " + details.value("Model", "Smart Meter").toString(); + serialNumber = details.value("Serial").toString(); + } else { + thingName = loggerThing->name() + " Meter " + meterId; + } + + ThingDescriptor descriptor(meterThingClassId, thingName, QString(), loggerThing->id()); + ParamList params; + params.append(Param(meterThingIdParamTypeId, meterId)); + params.append(Param(meterThingSerialNumberParamTypeId, serialNumber)); + descriptor.setParams(params); + emit autoThingsAppeared(ThingDescriptors() << descriptor); + }); } } // parse reply for storage things at the host address QVariantMap storageMap = bodyMap.value("Data").toMap().value("Storage").toMap(); - foreach (QString storageId, storageMap.keys()) { + foreach (const QString &storageId, storageMap.keys()) { //check if thing already connected to logger - if(!thingExists(storageThingIdParamTypeId,storageId)) { - QString thingName = loggerThing->name() + " Storage " + storageId; - ThingDescriptor descriptor(storageThingClassId, thingName, "Fronius Solar Storage", loggerThing->id()); - ParamList params; - params.append(Param(storageThingManufacturerParamTypeId, "")); - params.append(Param(storageThingCapacityParamTypeId, "")); - params.append(Param(storageThingIdParamTypeId, storageId)); - descriptor.setParams(params); - thingDescriptors.append(descriptor); + if (!thingExists(storageThingIdParamTypeId, storageId)) { + QUrlQuery query; + QUrl requestUrl; + requestUrl.setScheme("http"); + requestUrl.setHost(logger->hostAddress()); + requestUrl.setPath(logger->baseUrl() + "GetStorageRealtimeData.cgi"); + query.addQueryItem("Scope","Device"); + query.addQueryItem("DeviceId", storageId); + requestUrl.setQuery(query); + + qCDebug(dcFronius()) << "Get storage information before setup" << requestUrl.toString(); + QNetworkReply *reply = hardwareManager()->networkManager()->get(QNetworkRequest(requestUrl)); + connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater); + connect(reply, &QNetworkReply::finished, this, [=]() { + if (reply->error() != QNetworkReply::NoError) { + qCWarning(dcFronius()) << "Network request error:" << reply->error() << reply->errorString(); + return; + } + + // Convert the rawdata to a json document + QByteArray data = reply->readAll(); + QJsonParseError error; + QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &error); + if (error.error != QJsonParseError::NoError) { + qCWarning(dcFronius()) << "Failed to parse JSON data" << data << ":" << error.errorString(); + return; + } + + QVariantMap dataMap = jsonDoc.toVariant().toMap().value("Body").toMap().value("Data").toMap().value("Controller").toMap(); + + QString thingName; + QString serialNumber; + if (dataMap.contains("Details")) { + QVariantMap details = dataMap.value("Details").toMap(); + thingName = details.value("Manufacturer", "Fronius").toString() + " " + details.value("Model", "Energy Storage").toString(); + serialNumber = details.value("Serial").toString(); + } else { + thingName = loggerThing->name() + " Storage " + storageId; + } + + ThingDescriptor descriptor(storageThingClassId, thingName, QString(), loggerThing->id()); + ParamList params; + params.append(Param(storageThingIdParamTypeId, storageId)); + params.append(Param(storageThingSerialNumberParamTypeId, serialNumber)); + descriptor.setParams(params); + emit autoThingsAppeared(ThingDescriptors() << descriptor); + + }); } } @@ -475,7 +554,7 @@ void IntegrationPluginFronius::searchNewThings(FroniusLogger *logger) bool IntegrationPluginFronius::thingExists(const ParamTypeId &thingParamId, QString thingId) { - foreach(Thing *thing, myThings()) { + foreach (Thing *thing, myThings()) { if (thing->paramValue(thingParamId).toString() == thingId) { return true; } @@ -486,59 +565,13 @@ bool IntegrationPluginFronius::thingExists(const ParamTypeId &thingParamId, QStr void IntegrationPluginFronius::setupChild(ThingSetupInfo *info, Thing *loggerThing) { Thing *thing = info->thing(); - - if (thing->thingClassId() == storageThingClassId) { - FroniusStorage *newStorage = new FroniusStorage(thing, this); - newStorage->setDeviceId(thing->paramValue(storageThingIdParamTypeId).toString()); - newStorage->setBaseUrl(m_froniusLoggers.key(loggerThing)->baseUrl()); - newStorage->setHostAddress(m_froniusLoggers.key(loggerThing)->hostAddress()); - - // Get storage manufacturer and maximum capacity - QUrlQuery query; - QUrl requestUrl; - requestUrl.setScheme("http"); - requestUrl.setHost(newStorage->hostAddress()); - requestUrl.setPath(newStorage->baseUrl() + "GetStorageRealtimeData.cgi"); - query.addQueryItem("Scope","Device"); - query.addQueryItem("DeviceId", newStorage->deviceId()); - requestUrl.setQuery(query); - qCDebug(dcFronius()) << "Get Storage Data at address" << requestUrl.toString(); - QNetworkReply *reply = hardwareManager()->networkManager()->get(QNetworkRequest(requestUrl)); - connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater); - connect(reply, &QNetworkReply::finished, info, [this, info, newStorage, reply]() { - - QByteArray data = reply->readAll(); - - if (reply->error() != QNetworkReply::NoError) { - qCWarning(dcFronius()) << "Network request error:" << reply->error() << reply->errorString(); - info->finish(Thing::ThingErrorNoError); - return; - } - - // Convert the rawdata to a json document - QJsonParseError error; - QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &error); - if (error.error != QJsonParseError::NoError) { - qCWarning(dcFronius()) << "Failed to parse JSON data" << data << ":" << error.errorString(); - info->finish(Thing::ThingErrorHardwareFailure, tr("Please try again")); - return; - } - - // Create StorageInfo list map - QVariantMap storageInfoMap = jsonDoc.toVariant().toMap().value("Body").toMap().value("Data").toMap().value("Controller").toMap(); - - newStorage->pluginThing()->setParamValue(storageThingManufacturerParamTypeId, storageInfoMap.value("Details").toMap().value("Manufacturer").toString()); - newStorage->pluginThing()->setParamValue(storageThingCapacityParamTypeId, storageInfoMap.value("Capacity_Maximum").toInt()); - m_froniusStorages.insert(newStorage, info->thing()); - info->finish(Thing::ThingErrorNoError); - }); - } else if (thing->thingClassId() == inverterThingClassId) { + if (thing->thingClassId() == inverterThingClassId) { FroniusInverter *newInverter = new FroniusInverter(thing,this); newInverter->setDeviceId(thing->paramValue(inverterThingIdParamTypeId).toString()); newInverter->setBaseUrl(m_froniusLoggers.key(loggerThing)->baseUrl()); newInverter->setHostAddress(m_froniusLoggers.key(loggerThing)->hostAddress()); - // get inverter unique ID + // Get inverter unique ID QUrl requestUrl; requestUrl.setScheme("http"); requestUrl.setHost(newInverter->hostAddress()); @@ -577,6 +610,7 @@ void IntegrationPluginFronius::setupChild(ThingSetupInfo *info, Thing *loggerThi m_froniusInverters.insert(newInverter, info->thing()); info->finish(Thing::ThingErrorNoError); }); + } else if (thing->thingClassId() == meterThingClassId) { FroniusMeter *newMeter = new FroniusMeter(thing, this);; newMeter->setDeviceId(thing->paramValue(meterThingIdParamTypeId).toString()); @@ -585,5 +619,14 @@ void IntegrationPluginFronius::setupChild(ThingSetupInfo *info, Thing *loggerThi m_froniusMeters.insert(newMeter, thing); info->finish(Thing::ThingErrorNoError); + + } else if (thing->thingClassId() == storageThingClassId) { + FroniusStorage *newStorage = new FroniusStorage(thing, this); + newStorage->setDeviceId(thing->paramValue(storageThingIdParamTypeId).toString()); + newStorage->setBaseUrl(m_froniusLoggers.key(loggerThing)->baseUrl()); + newStorage->setHostAddress(m_froniusLoggers.key(loggerThing)->hostAddress()); + + m_froniusStorages.insert(newStorage, info->thing()); + info->finish(Thing::ThingErrorNoError); } } diff --git a/fronius/integrationpluginfronius.json b/fronius/integrationpluginfronius.json index 3e04c715..20558fb8 100644 --- a/fronius/integrationpluginfronius.json +++ b/fronius/integrationpluginfronius.json @@ -11,9 +11,10 @@ { "id": "4fd79fed-42f1-4df9-be64-3df7b2e0bda2", "name": "datalogger", - "displayName": "Fronius Solar Connection", + "displayName": "Fronius Solar", "createMethods": ["discovery", "user"], "interfaces": ["gateway"], + "providedInterfaces": ["energymeter", "solarinverter", "energystorage"], "paramTypes": [ { "id": "52da0197-4b78-4fec-aa72-70f949e26edc", @@ -230,7 +231,7 @@ "name": "meter", "displayName": "Fronius smart meter", "createMethods": ["auto"], - "interfaces": [ "smartmeterconsumer", "smartmeterproducer", "connectable" ], + "interfaces": [ "energymeter", "connectable" ], "paramTypes": [ { "id": "cf3a7025-d368-475a-8f48-efc1344a8409", @@ -239,6 +240,14 @@ "type": "QString", "inputType": "TextLine", "readOnly": true + }, + { + "id": "dfc2eeef-38b2-4089-9953-48186aaee060", + "name": "serialNumber", + "displayName": "Serial number", + "type": "QString", + "inputType": "TextLine", + "readOnly": true } ], "stateTypes": [ @@ -251,6 +260,60 @@ "defaultValue": false, "cached": false }, + { + "id": "267bc59f-1113-4aff-a502-4618a591aa16", + "name": "voltagePhaseA", + "displayName": "Voltage phase A", + "displayNameEvent": "Voltage phase A changed", + "type": "double", + "unit": "Volt", + "defaultValue": 0 + }, + { + "id": "bbcedb80-30f1-493e-81f0-5f77f2847353", + "name": "voltagePhaseB", + "displayName": "Voltage phase B", + "displayNameEvent": "Voltage phase B changed", + "type": "double", + "unit": "Volt", + "defaultValue": 0 + }, + { + "id": "8037557b-40dc-411b-8937-bcd1695f898a", + "name": "voltagePhaseC", + "displayName": "Voltage phase C", + "displayNameEvent": "Voltage phase C changed", + "type": "double", + "unit": "Volt", + "defaultValue": 0 + }, + { + "id": "a9673688-d84a-4848-8583-a70739130252", + "name": "currentPhaseA", + "displayName": "Current phase A", + "displayNameEvent": "Current phase A changed", + "type": "double", + "unit": "Ampere", + "defaultValue": 0 + }, + { + "id": "15632e49-95f9-496d-830c-53a31ca6d98e", + "name": "currentPhaseB", + "displayName": "Current phase B", + "displayNameEvent": "Current phase B changed", + "type": "double", + "unit": "Ampere", + "defaultValue": 0 + }, + { + "id": "10a24ba9-a57a-48a9-98f3-52671c09e855", + "name": "currentPhaseC", + "displayName": "Current phase C", + "displayNameEvent": "Current phase C changed", + "type": "double", + "unit": "Ampere", + "defaultValue": 0 + }, { "id": "e5056ea1-88a2-410b-9c5e-6322aca4cb17", "name": "currentPower", @@ -277,6 +340,42 @@ "type": "double", "unit": "KiloWattHour", "defaultValue": "0" + }, + { + "id": "6dbbb062-447b-47d6-b2e4-dceac9aff795", + "name": "currentPowerPhaseA", + "displayName": "Current power phase A", + "displayNameEvent": "Current power phase A changed", + "type": "double", + "unit": "Watt", + "defaultValue": 0 + }, + { + "id": "f230e78e-15b0-47a4-b494-bae65be00755", + "name": "currentPowerPhaseB", + "displayName": "Current power phase B", + "displayNameEvent": "Current power phase B changed", + "type": "double", + "unit": "Watt", + "defaultValue": 0 + }, + { + "id": "56b5d550-d902-4c33-9288-8ee972735a75", + "name": "currentPowerPhaseC", + "displayName": "Current power phase C", + "displayNameEvent": "Current power phase C changed", + "type": "double", + "unit": "Watt", + "defaultValue": 0 + }, + { + "id": "9ff64b29-e023-4395-abd4-b6c366acfd9e", + "name": "frequency", + "displayName": "Frequency", + "displayNameEvent": "Frequency changed", + "type": "double", + "unit": "Hertz", + "defaultValue": 0.00 } ] }, @@ -285,24 +384,8 @@ "name": "storage", "displayName": "Fronius solar storage", "createMethods": ["auto"], - "interfaces": [ "battery", "connectable" ], + "interfaces": [ "energystorage", "connectable"], "paramTypes": [ - { - "id": "9665c38b-c13a-428f-b741-1470239c63dc", - "name": "manufacturer", - "displayName": "Manufacturer", - "type": "QString", - "defaultValue": "TextLine", - "readOnly": true - }, - { - "id": "59a68e91-1aad-46b7-b351-03b7b2216366", - "name": "capacity", - "displayName": "Maxmimum capacity", - "type": "QString", - "defaultValue": "TextLine", - "readOnly": true - }, { "id": "49087f31-abf5-4bb8-946b-a3626ee80566", "name": "id", @@ -310,6 +393,14 @@ "type": "QString", "inputType": "TextLine", "readOnly": true + }, + { + "id": "8b6c7053-5ba5-4808-8ff4-9024c624d77d", + "name": "serialNumber", + "displayName": "Serial number", + "type": "QString", + "inputType": "TextLine", + "readOnly": true } ], "stateTypes": [ @@ -323,20 +414,31 @@ "cached": false }, { - "id": "2de34a1f-de2e-43ad-8998-8a5460dff9ae", - "name": "charging", - "displayName": "Charging", - "displayNameEvent": "Charging changed", - "type": "bool", - "defaultValue": false + "id": "7a045257-d829-4e58-a769-047b3aeec7c5", + "name": "chargingState", + "displayName": "Charging state", + "displayNameEvent": "Charging state changed", + "type": "QString", + "possibleValues": ["idle", "charging", "discharging"], + "defaultValue": "idle" }, { - "id": "be90d35c-081c-485b-b4cc-8271e7da5796", - "name": "discharging", - "displayName": "Discharging", - "displayNameEvent": "Discharging changed", - "type": "bool", - "defaultValue": false + "id": "5a89cd3f-3abf-4f51-ab2b-4039f1d211d9", + "name": "currentPower", + "displayName": "Current power", + "displayNameEvent": "Current power changed", + "type": "double", + "unit": "Watt", + "defaultValue": 0 + }, + { + "id": "3b163deb-67a2-41d1-8441-b2d53ad846ef", + "name": "capacity", + "displayName": "Capacity", + "displayNameEvent": "Capacity changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0 }, { "id": "5c6da672-9662-41bc-8c8c-aa0f32481251", diff --git a/fronius/meta.json b/fronius/meta.json index d8dd467b..16d6a278 100644 --- a/fronius/meta.json +++ b/fronius/meta.json @@ -8,6 +8,6 @@ "network" ], "categories": [ - + "energy" ] } diff --git a/fronius/translations/02319cfc-8b55-49ba-99bc-0588bbfab063-de.ts b/fronius/translations/02319cfc-8b55-49ba-99bc-0588bbfab063-de.ts index 9805d321..598e3b0f 100644 --- a/fronius/translations/02319cfc-8b55-49ba-99bc-0588bbfab063-de.ts +++ b/fronius/translations/02319cfc-8b55-49ba-99bc-0588bbfab063-de.ts @@ -15,7 +15,6 @@ - Please try again Bitte versuchen Sie es erneut @@ -28,8 +27,8 @@ fronius - - + + Battery level The name of the ParamType (ThingClass: storage, EventType: batteryLevel, ID: {5c6da672-9662-41bc-8c8c-aa0f32481251}) ---------- @@ -37,14 +36,14 @@ The name of the StateType ({5c6da672-9662-41bc-8c8c-aa0f32481251}) of ThingClass Batteriestand - + Battery level changed The name of the EventType ({5c6da672-9662-41bc-8c8c-aa0f32481251}) of ThingClass storage Batteriestand geändert - - + + Battery level critical The name of the ParamType (ThingClass: storage, EventType: batteryCritical, ID: {e5396312-b50e-4d6f-b628-5b51448971d3}) ---------- @@ -52,14 +51,14 @@ The name of the StateType ({e5396312-b50e-4d6f-b628-5b51448971d3}) of ThingClass Batteriestand kritisch - + Battery level critical changed The name of the EventType ({e5396312-b50e-4d6f-b628-5b51448971d3}) of ThingClass storage Batteriestand kritisch geändert - - + + CO2 factor The name of the ParamType (ThingClass: datalogger, EventType: co2factor, ID: {8ab01225-7be5-4482-a99b-314108ae0e2b}) ---------- @@ -67,14 +66,14 @@ The name of the StateType ({8ab01225-7be5-4482-a99b-314108ae0e2b}) of ThingClass CO2 Faktor - + CO2 factor changed The name of the EventType ({8ab01225-7be5-4482-a99b-314108ae0e2b}) of ThingClass datalogger CO2 Faktor geändert - - + + CO2 unit The name of the ParamType (ThingClass: datalogger, EventType: co2unit, ID: {b0e655f8-27d0-4add-918b-461cadc8efcc}) ---------- @@ -82,20 +81,35 @@ The name of the StateType ({b0e655f8-27d0-4add-918b-461cadc8efcc}) of ThingClass CO2-Einheit - + CO2 unit changed The name of the EventType ({b0e655f8-27d0-4add-918b-461cadc8efcc}) of ThingClass datalogger CO2-Einheit geändert - + + + Capacity + The name of the ParamType (ThingClass: storage, EventType: capacity, ID: {3b163deb-67a2-41d1-8441-b2d53ad846ef}) +---------- +The name of the StateType ({3b163deb-67a2-41d1-8441-b2d53ad846ef}) of ThingClass storage + + + + + Capacity changed + The name of the EventType ({3b163deb-67a2-41d1-8441-b2d53ad846ef}) of ThingClass storage + + + + Cash Currency changed The name of the EventType ({84da30c8-a7fb-49c6-884c-9521f9f62bbc}) of ThingClass datalogger Bargeldwährung geändert - - + + Cash currency The name of the ParamType (ThingClass: datalogger, EventType: cashcurrency, ID: {84da30c8-a7fb-49c6-884c-9521f9f62bbc}) ---------- @@ -103,8 +117,8 @@ The name of the StateType ({84da30c8-a7fb-49c6-884c-9521f9f62bbc}) of ThingClass Bargeldwährung - - + + Cash factor The name of the ParamType (ThingClass: datalogger, EventType: cashfactor, ID: {bc18595b-17c7-4a1f-8002-b908a3d9239d}) ---------- @@ -112,14 +126,14 @@ The name of the StateType ({bc18595b-17c7-4a1f-8002-b908a3d9239d}) of ThingClass Cash-Faktor - + Cash factor changed The name of the EventType ({bc18595b-17c7-4a1f-8002-b908a3d9239d}) of ThingClass datalogger Cash-Faktor geändert - - + + Cell temperature The name of the ParamType (ThingClass: storage, EventType: cellTemperature, ID: {4417499c-1757-4309-868a-be5cf3455c4a}) ---------- @@ -127,35 +141,146 @@ The name of the StateType ({4417499c-1757-4309-868a-be5cf3455c4a}) of ThingClass Zellentemperatur - + Cell temperature changed The name of the EventType ({4417499c-1757-4309-868a-be5cf3455c4a}) of ThingClass storage Zellentemperatur geändert + + + Current phase A + The name of the ParamType (ThingClass: meter, EventType: currentPhaseA, ID: {a9673688-d84a-4848-8583-a70739130252}) +---------- +The name of the StateType ({a9673688-d84a-4848-8583-a70739130252}) of ThingClass meter + + + + + Current phase A changed + The name of the EventType ({a9673688-d84a-4848-8583-a70739130252}) of ThingClass meter + + + + + + Current phase B + The name of the ParamType (ThingClass: meter, EventType: currentPhaseB, ID: {15632e49-95f9-496d-830c-53a31ca6d98e}) +---------- +The name of the StateType ({15632e49-95f9-496d-830c-53a31ca6d98e}) of ThingClass meter + + + + + Current phase B changed + The name of the EventType ({15632e49-95f9-496d-830c-53a31ca6d98e}) of ThingClass meter + + + + + + Current phase C + The name of the ParamType (ThingClass: meter, EventType: currentPhaseC, ID: {10a24ba9-a57a-48a9-98f3-52671c09e855}) +---------- +The name of the StateType ({10a24ba9-a57a-48a9-98f3-52671c09e855}) of ThingClass meter + + + + + Current phase C changed + The name of the EventType ({10a24ba9-a57a-48a9-98f3-52671c09e855}) of ThingClass meter + + + + + Current power phase A + The name of the ParamType (ThingClass: meter, EventType: currentPowerPhaseA, ID: {6dbbb062-447b-47d6-b2e4-dceac9aff795}) +---------- +The name of the StateType ({6dbbb062-447b-47d6-b2e4-dceac9aff795}) of ThingClass meter + + + + + Current power phase A changed + The name of the EventType ({6dbbb062-447b-47d6-b2e4-dceac9aff795}) of ThingClass meter + + + + + + Current power phase B + The name of the ParamType (ThingClass: meter, EventType: currentPowerPhaseB, ID: {f230e78e-15b0-47a4-b494-bae65be00755}) +---------- +The name of the StateType ({f230e78e-15b0-47a4-b494-bae65be00755}) of ThingClass meter + + + + + Current power phase B changed + The name of the EventType ({f230e78e-15b0-47a4-b494-bae65be00755}) of ThingClass meter + + + + + + Current power phase C + The name of the ParamType (ThingClass: meter, EventType: currentPowerPhaseC, ID: {56b5d550-d902-4c33-9288-8ee972735a75}) +---------- +The name of the StateType ({56b5d550-d902-4c33-9288-8ee972735a75}) of ThingClass meter + + + + + Current power phase C changed + The name of the EventType ({56b5d550-d902-4c33-9288-8ee972735a75}) of ThingClass meter + + + + + + Frequency + The name of the ParamType (ThingClass: meter, EventType: frequency, ID: {9ff64b29-e023-4395-abd4-b6c366acfd9e}) +---------- +The name of the StateType ({9ff64b29-e023-4395-abd4-b6c366acfd9e}) of ThingClass meter + + + + + Frequency changed + The name of the EventType ({9ff64b29-e023-4395-abd4-b6c366acfd9e}) of ThingClass meter + + + + Fronius smart meter The name of the ThingClass ({c3cb53a4-32dd-434d-9d9c-aada41f8129c}) - + Fronius solar storage The name of the ThingClass ({b00139fa-7386-48b1-8697-2fdd21a57ced}) - - + + + + Current power - The name of the ParamType (ThingClass: inverter, EventType: currentPower, ID: {788accbc-b86e-471b-b37f-14c9c6411526}) + The name of the ParamType (ThingClass: storage, EventType: currentPower, ID: {5a89cd3f-3abf-4f51-ab2b-4039f1d211d9}) +---------- +The name of the StateType ({5a89cd3f-3abf-4f51-ab2b-4039f1d211d9}) of ThingClass storage +---------- +The name of the ParamType (ThingClass: inverter, EventType: currentPower, ID: {788accbc-b86e-471b-b37f-14c9c6411526}) ---------- The name of the StateType ({788accbc-b86e-471b-b37f-14c9c6411526}) of ThingClass inverter Aktuelle Leistung - - + + Default language The name of the ParamType (ThingClass: datalogger, EventType: defaultlang, ID: {18b250e2-080a-4991-b368-177c4da83eca}) ---------- @@ -163,15 +288,15 @@ The name of the StateType ({18b250e2-080a-4991-b368-177c4da83eca}) of ThingClass Standardsprache - + Default language changed The name of the EventType ({18b250e2-080a-4991-b368-177c4da83eca}) of ThingClass datalogger Standardsprache geändert - - - + + + Device ID The name of the ParamType (ThingClass: storage, Type: thing, ID: {49087f31-abf5-4bb8-946b-a3626ee80566}) ---------- @@ -181,8 +306,8 @@ The name of the ParamType (ThingClass: inverter, Type: thing, ID: {f2f8c2f5-dd6a Geräte ID - - + + Energy Consumed The name of the ParamType (ThingClass: meter, EventType: totalEnergyConsumed, ID: {f3451818-48d2-42a5-94fd-ad094c06967f}) ---------- @@ -190,14 +315,14 @@ The name of the StateType ({f3451818-48d2-42a5-94fd-ad094c06967f}) of ThingClass Energie verbraucht - + Energy consumption changed The name of the EventType ({f3451818-48d2-42a5-94fd-ad094c06967f}) of ThingClass meter Energieverbrauch geändert - - + + Energy of current day The name of the ParamType (ThingClass: inverter, EventType: eday, ID: {b6af1bf5-753d-47b6-a151-e4d801fe6ff8}) ---------- @@ -205,8 +330,8 @@ The name of the StateType ({b6af1bf5-753d-47b6-a151-e4d801fe6ff8}) of ThingClass Energie dieses Tages - - + + Energy of current year The name of the ParamType (ThingClass: inverter, EventType: eyear, ID: {7fd2fa28-9bcc-4f01-a823-459437d185f6}) ---------- @@ -214,20 +339,20 @@ The name of the StateType ({7fd2fa28-9bcc-4f01-a823-459437d185f6}) of ThingClass Energie dieses Jahres - + Energy of day changed The name of the EventType ({b6af1bf5-753d-47b6-a151-e4d801fe6ff8}) of ThingClass inverter Energie dieses Tages geändert - + Energy of year changed The name of the EventType ({7fd2fa28-9bcc-4f01-a823-459437d185f6}) of ThingClass inverter Energie dieses Jahres geändert - - + + Energy produced The name of the ParamType (ThingClass: meter, EventType: totalEnergyProduced, ID: {ca14cca5-d9f0-49c5-a8f7-907d4c0825f0}) ---------- @@ -235,14 +360,14 @@ The name of the StateType ({ca14cca5-d9f0-49c5-a8f7-907d4c0825f0}) of ThingClass - + Energy production changed The name of the EventType ({ca14cca5-d9f0-49c5-a8f7-907d4c0825f0}) of ThingClass meter Energieproduktion geändert - - + + Charging The name of the ParamType (ThingClass: storage, EventType: charging, ID: {2de34a1f-de2e-43ad-8998-8a5460dff9ae}) ---------- @@ -250,20 +375,23 @@ The name of the StateType ({2de34a1f-de2e-43ad-8998-8a5460dff9ae}) of ThingClass - + Charging changed The name of the EventType ({2de34a1f-de2e-43ad-8998-8a5460dff9ae}) of ThingClass storage - + + Current power changed - The name of the EventType ({788accbc-b86e-471b-b37f-14c9c6411526}) of ThingClass inverter + The name of the EventType ({5a89cd3f-3abf-4f51-ab2b-4039f1d211d9}) of ThingClass storage +---------- +The name of the EventType ({788accbc-b86e-471b-b37f-14c9c6411526}) of ThingClass inverter - - + + Current power usage The name of the ParamType (ThingClass: meter, EventType: currentPower, ID: {e5056ea1-88a2-410b-9c5e-6322aca4cb17}) ---------- @@ -271,14 +399,14 @@ The name of the StateType ({e5056ea1-88a2-410b-9c5e-6322aca4cb17}) of ThingClass - + Current power usage changed The name of the EventType ({e5056ea1-88a2-410b-9c5e-6322aca4cb17}) of ThingClass meter - - + + Discharging The name of the ParamType (ThingClass: storage, EventType: discharging, ID: {be90d35c-081c-485b-b4cc-8271e7da5796}) ---------- @@ -286,38 +414,35 @@ The name of the StateType ({be90d35c-081c-485b-b4cc-8271e7da5796}) of ThingClass - + Discharging changed The name of the EventType ({be90d35c-081c-485b-b4cc-8271e7da5796}) of ThingClass storage - + Fronius The name of the vendor ({2286fc38-afd9-4128-ab7e-0fba527d53ba}) Fronius - + + Fronius Solar - The name of the plugin fronius ({02319cfc-8b55-49ba-99bc-0588bbfab063}) + The name of the ThingClass ({4fd79fed-42f1-4df9-be64-3df7b2e0bda2}) +---------- +The name of the plugin fronius ({02319cfc-8b55-49ba-99bc-0588bbfab063}) Fronius Solar - - Fronius Solar Connection - The name of the ThingClass ({4fd79fed-42f1-4df9-be64-3df7b2e0bda2}) - Fronius Solar Verbindung - - - + Fronius Solar Inverter The name of the ThingClass ({540aa956-8b8f-4982-9f58-343a76cea846}) Fronius Solar Inverter - - + + Hardware version The name of the ParamType (ThingClass: datalogger, EventType: hwversion, ID: {3b4206e5-74c7-4708-96b8-2abfab0c41d6}) ---------- @@ -325,20 +450,20 @@ The name of the StateType ({3b4206e5-74c7-4708-96b8-2abfab0c41d6}) of ThingClass Hardwareversion - + Hardware version changed The name of the EventType ({3b4206e5-74c7-4708-96b8-2abfab0c41d6}) of ThingClass datalogger Hardwareversion geändert - + Host address The name of the ParamType (ThingClass: datalogger, Type: thing, ID: {52da0197-4b78-4fec-aa72-70f949e26edc}) Adresse - - + + Inverter active The name of the ParamType (ThingClass: inverter, EventType: active, ID: {e763baa7-5eaf-438c-83f0-4fa6c0f7eeb0}) ---------- @@ -346,32 +471,20 @@ The name of the StateType ({e763baa7-5eaf-438c-83f0-4fa6c0f7eeb0}) of ThingClass Inverter aktiv - + Inverter active changed The name of the EventType ({e763baa7-5eaf-438c-83f0-4fa6c0f7eeb0}) of ThingClass inverter Inverter aktiv geändert - + MAC address The name of the ParamType (ThingClass: datalogger, Type: thing, ID: {2237972e-385b-4458-b5d3-1d1fb4ae8756}) - - Manufacturer - The name of the ParamType (ThingClass: storage, Type: thing, ID: {9665c38b-c13a-428f-b741-1470239c63dc}) - Hersteller - - - - Maxmimum capacity - The name of the ParamType (ThingClass: storage, Type: thing, ID: {59a68e91-1aad-46b7-b351-03b7b2216366}) - Maximale Kapazität - - - - + + Platform ID The name of the ParamType (ThingClass: datalogger, EventType: platformid, ID: {65c068e6-4a0b-4672-9724-ae95216c4c9c}) ---------- @@ -379,14 +492,14 @@ The name of the StateType ({65c068e6-4a0b-4672-9724-ae95216c4c9c}) of ThingClass Plattform ID - + Platform ID changed The name of the EventType ({65c068e6-4a0b-4672-9724-ae95216c4c9c}) of ThingClass datalogger Plattform-ID geändert - - + + Power management relay The name of the ParamType (ThingClass: datalogger, EventType: powerManagmentRelay, ID: {b217acf6-0c5e-4a3e-a50c-4c0133c871c2}) ---------- @@ -394,8 +507,8 @@ The name of the StateType ({b217acf6-0c5e-4a3e-a50c-4c0133c871c2}) of ThingClass Leistungsmanagement Relais - - + + Power management relay reason The name of the ParamType (ThingClass: datalogger, EventType: powerManagmentRelayReason, ID: {5650ce9b-0d7d-4c52-b410-ea618889b4bb}) ---------- @@ -403,20 +516,20 @@ The name of the StateType ({5650ce9b-0d7d-4c52-b410-ea618889b4bb}) of ThingClass Leistungsmanagement Relais Grund - + Power management relay reason changed The name of the EventType ({5650ce9b-0d7d-4c52-b410-ea618889b4bb}) of ThingClass datalogger Leistungsmanagement Relais Grund geändert - + Power management relay status changed The name of the EventType ({b217acf6-0c5e-4a3e-a50c-4c0133c871c2}) of ThingClass datalogger Leistungsmanagement Relais Status geändert - - + + Product ID The name of the ParamType (ThingClass: datalogger, EventType: productid, ID: {b22052ef-14da-43d2-982b-f2c2d8c03206}) ---------- @@ -424,20 +537,20 @@ The name of the StateType ({b22052ef-14da-43d2-982b-f2c2d8c03206}) of ThingClass Produkt-ID - + Product ID changed The name of the EventType ({b22052ef-14da-43d2-982b-f2c2d8c03206}) of ThingClass datalogger Produkt-ID geändert - - - - - - - - + + + + + + + + Reachable The name of the ParamType (ThingClass: storage, EventType: connected, ID: {2f7e1267-b0be-4b78-9aa3-832b86c4efad}) ---------- @@ -457,9 +570,9 @@ The name of the StateType ({98e4476f-e745-4a7f-b795-19269cb70c40}) of ThingClass Erreichbar - - - + + + Reachable changed The name of the EventType ({2f7e1267-b0be-4b78-9aa3-832b86c4efad}) of ThingClass storage ---------- @@ -469,14 +582,23 @@ The name of the EventType ({eda29c50-73ac-40e0-9c92-26fee352e688}) of ThingClass Erreichbar geändert - + Search new devices The name of the ActionType ({c217fdc1-de18-41dc-b5d8-8072f84e7b6c}) of ThingClass datalogger Suche neue Geräte - - + + + Serial number + The name of the ParamType (ThingClass: storage, Type: thing, ID: {8b6c7053-5ba5-4808-8ff4-9024c624d77d}) +---------- +The name of the ParamType (ThingClass: meter, Type: thing, ID: {dfc2eeef-38b2-4089-9953-48186aaee060}) + + + + + Software version The name of the ParamType (ThingClass: datalogger, EventType: swversion, ID: {31743ca5-4353-4f26-b2ad-5da43e5b9d86}) ---------- @@ -484,14 +606,14 @@ The name of the StateType ({31743ca5-4353-4f26-b2ad-5da43e5b9d86}) of ThingClass Softwareversion - + Software version changed The name of the EventType ({31743ca5-4353-4f26-b2ad-5da43e5b9d86}) of ThingClass datalogger Softwareversion geändert - - + + Total produced energy The name of the ParamType (ThingClass: inverter, EventType: totalEnergyProduced, ID: {d6dbb879-4cbc-4db3-830e-b92ba91a13e5}) ---------- @@ -499,14 +621,14 @@ The name of the StateType ({d6dbb879-4cbc-4db3-830e-b92ba91a13e5}) of ThingClass - + Total produced energy changed The name of the EventType ({d6dbb879-4cbc-4db3-830e-b92ba91a13e5}) of ThingClass inverter - - + + Time zone The name of the ParamType (ThingClass: datalogger, EventType: tzone, ID: {6bdfeeda-7a47-4043-a011-5eb96308a7d6}) ---------- @@ -514,14 +636,14 @@ The name of the StateType ({6bdfeeda-7a47-4043-a011-5eb96308a7d6}) of ThingClass Zeitzone - + Time zone changed The name of the EventType ({6bdfeeda-7a47-4043-a011-5eb96308a7d6}) of ThingClass datalogger Zeitzone geändert - - + + Timezone location The name of the ParamType (ThingClass: datalogger, EventType: tzoneloc, ID: {d034f59d-dc34-450a-a6f3-68264767a3e4}) ---------- @@ -529,13 +651,58 @@ The name of the StateType ({d034f59d-dc34-450a-a6f3-68264767a3e4}) of ThingClass Zeitzone Ort - + Timezone location changed The name of the EventType ({d034f59d-dc34-450a-a6f3-68264767a3e4}) of ThingClass datalogger Zeitzone Ort geändert - + + + Voltage phase A + The name of the ParamType (ThingClass: meter, EventType: voltagePhaseA, ID: {267bc59f-1113-4aff-a502-4618a591aa16}) +---------- +The name of the StateType ({267bc59f-1113-4aff-a502-4618a591aa16}) of ThingClass meter + + + + + Voltage phase A changed + The name of the EventType ({267bc59f-1113-4aff-a502-4618a591aa16}) of ThingClass meter + + + + + + Voltage phase B + The name of the ParamType (ThingClass: meter, EventType: voltagePhaseB, ID: {bbcedb80-30f1-493e-81f0-5f77f2847353}) +---------- +The name of the StateType ({bbcedb80-30f1-493e-81f0-5f77f2847353}) of ThingClass meter + + + + + Voltage phase B changed + The name of the EventType ({bbcedb80-30f1-493e-81f0-5f77f2847353}) of ThingClass meter + + + + + + Voltage phase C + The name of the ParamType (ThingClass: meter, EventType: voltagePhaseC, ID: {8037557b-40dc-411b-8937-bcd1695f898a}) +---------- +The name of the StateType ({8037557b-40dc-411b-8937-bcd1695f898a}) of ThingClass meter + + + + + Voltage phase C changed + The name of the EventType ({8037557b-40dc-411b-8937-bcd1695f898a}) of ThingClass meter + + + + logger reachable changed The name of the EventType ({98e4476f-e745-4a7f-b795-19269cb70c40}) of ThingClass datalogger Logger erriechbar geändert diff --git a/fronius/translations/02319cfc-8b55-49ba-99bc-0588bbfab063-en_US.ts b/fronius/translations/02319cfc-8b55-49ba-99bc-0588bbfab063-en_US.ts index 7ad1be7b..0df571b7 100644 --- a/fronius/translations/02319cfc-8b55-49ba-99bc-0588bbfab063-en_US.ts +++ b/fronius/translations/02319cfc-8b55-49ba-99bc-0588bbfab063-en_US.ts @@ -15,7 +15,6 @@ - Please try again @@ -28,8 +27,8 @@ fronius - - + + Battery level The name of the ParamType (ThingClass: storage, EventType: batteryLevel, ID: {5c6da672-9662-41bc-8c8c-aa0f32481251}) ---------- @@ -37,14 +36,14 @@ The name of the StateType ({5c6da672-9662-41bc-8c8c-aa0f32481251}) of ThingClass - + Battery level changed The name of the EventType ({5c6da672-9662-41bc-8c8c-aa0f32481251}) of ThingClass storage - - + + Battery level critical The name of the ParamType (ThingClass: storage, EventType: batteryCritical, ID: {e5396312-b50e-4d6f-b628-5b51448971d3}) ---------- @@ -52,14 +51,14 @@ The name of the StateType ({e5396312-b50e-4d6f-b628-5b51448971d3}) of ThingClass - + Battery level critical changed The name of the EventType ({e5396312-b50e-4d6f-b628-5b51448971d3}) of ThingClass storage - - + + CO2 factor The name of the ParamType (ThingClass: datalogger, EventType: co2factor, ID: {8ab01225-7be5-4482-a99b-314108ae0e2b}) ---------- @@ -67,14 +66,14 @@ The name of the StateType ({8ab01225-7be5-4482-a99b-314108ae0e2b}) of ThingClass - + CO2 factor changed The name of the EventType ({8ab01225-7be5-4482-a99b-314108ae0e2b}) of ThingClass datalogger - - + + CO2 unit The name of the ParamType (ThingClass: datalogger, EventType: co2unit, ID: {b0e655f8-27d0-4add-918b-461cadc8efcc}) ---------- @@ -82,20 +81,35 @@ The name of the StateType ({b0e655f8-27d0-4add-918b-461cadc8efcc}) of ThingClass - + CO2 unit changed The name of the EventType ({b0e655f8-27d0-4add-918b-461cadc8efcc}) of ThingClass datalogger - + + + Capacity + The name of the ParamType (ThingClass: storage, EventType: capacity, ID: {3b163deb-67a2-41d1-8441-b2d53ad846ef}) +---------- +The name of the StateType ({3b163deb-67a2-41d1-8441-b2d53ad846ef}) of ThingClass storage + + + + + Capacity changed + The name of the EventType ({3b163deb-67a2-41d1-8441-b2d53ad846ef}) of ThingClass storage + + + + Cash Currency changed The name of the EventType ({84da30c8-a7fb-49c6-884c-9521f9f62bbc}) of ThingClass datalogger - - + + Cash currency The name of the ParamType (ThingClass: datalogger, EventType: cashcurrency, ID: {84da30c8-a7fb-49c6-884c-9521f9f62bbc}) ---------- @@ -103,8 +117,8 @@ The name of the StateType ({84da30c8-a7fb-49c6-884c-9521f9f62bbc}) of ThingClass - - + + Cash factor The name of the ParamType (ThingClass: datalogger, EventType: cashfactor, ID: {bc18595b-17c7-4a1f-8002-b908a3d9239d}) ---------- @@ -112,14 +126,14 @@ The name of the StateType ({bc18595b-17c7-4a1f-8002-b908a3d9239d}) of ThingClass - + Cash factor changed The name of the EventType ({bc18595b-17c7-4a1f-8002-b908a3d9239d}) of ThingClass datalogger - - + + Cell temperature The name of the ParamType (ThingClass: storage, EventType: cellTemperature, ID: {4417499c-1757-4309-868a-be5cf3455c4a}) ---------- @@ -127,35 +141,146 @@ The name of the StateType ({4417499c-1757-4309-868a-be5cf3455c4a}) of ThingClass - + Cell temperature changed The name of the EventType ({4417499c-1757-4309-868a-be5cf3455c4a}) of ThingClass storage + + + Current phase A + The name of the ParamType (ThingClass: meter, EventType: currentPhaseA, ID: {a9673688-d84a-4848-8583-a70739130252}) +---------- +The name of the StateType ({a9673688-d84a-4848-8583-a70739130252}) of ThingClass meter + + + + + Current phase A changed + The name of the EventType ({a9673688-d84a-4848-8583-a70739130252}) of ThingClass meter + + + + + + Current phase B + The name of the ParamType (ThingClass: meter, EventType: currentPhaseB, ID: {15632e49-95f9-496d-830c-53a31ca6d98e}) +---------- +The name of the StateType ({15632e49-95f9-496d-830c-53a31ca6d98e}) of ThingClass meter + + + + + Current phase B changed + The name of the EventType ({15632e49-95f9-496d-830c-53a31ca6d98e}) of ThingClass meter + + + + + + Current phase C + The name of the ParamType (ThingClass: meter, EventType: currentPhaseC, ID: {10a24ba9-a57a-48a9-98f3-52671c09e855}) +---------- +The name of the StateType ({10a24ba9-a57a-48a9-98f3-52671c09e855}) of ThingClass meter + + + + + Current phase C changed + The name of the EventType ({10a24ba9-a57a-48a9-98f3-52671c09e855}) of ThingClass meter + + + + + Current power phase A + The name of the ParamType (ThingClass: meter, EventType: currentPowerPhaseA, ID: {6dbbb062-447b-47d6-b2e4-dceac9aff795}) +---------- +The name of the StateType ({6dbbb062-447b-47d6-b2e4-dceac9aff795}) of ThingClass meter + + + + + Current power phase A changed + The name of the EventType ({6dbbb062-447b-47d6-b2e4-dceac9aff795}) of ThingClass meter + + + + + + Current power phase B + The name of the ParamType (ThingClass: meter, EventType: currentPowerPhaseB, ID: {f230e78e-15b0-47a4-b494-bae65be00755}) +---------- +The name of the StateType ({f230e78e-15b0-47a4-b494-bae65be00755}) of ThingClass meter + + + + + Current power phase B changed + The name of the EventType ({f230e78e-15b0-47a4-b494-bae65be00755}) of ThingClass meter + + + + + + Current power phase C + The name of the ParamType (ThingClass: meter, EventType: currentPowerPhaseC, ID: {56b5d550-d902-4c33-9288-8ee972735a75}) +---------- +The name of the StateType ({56b5d550-d902-4c33-9288-8ee972735a75}) of ThingClass meter + + + + + Current power phase C changed + The name of the EventType ({56b5d550-d902-4c33-9288-8ee972735a75}) of ThingClass meter + + + + + + Frequency + The name of the ParamType (ThingClass: meter, EventType: frequency, ID: {9ff64b29-e023-4395-abd4-b6c366acfd9e}) +---------- +The name of the StateType ({9ff64b29-e023-4395-abd4-b6c366acfd9e}) of ThingClass meter + + + + + Frequency changed + The name of the EventType ({9ff64b29-e023-4395-abd4-b6c366acfd9e}) of ThingClass meter + + + + Fronius smart meter The name of the ThingClass ({c3cb53a4-32dd-434d-9d9c-aada41f8129c}) - + Fronius solar storage The name of the ThingClass ({b00139fa-7386-48b1-8697-2fdd21a57ced}) - - + + + + Current power - The name of the ParamType (ThingClass: inverter, EventType: currentPower, ID: {788accbc-b86e-471b-b37f-14c9c6411526}) + The name of the ParamType (ThingClass: storage, EventType: currentPower, ID: {5a89cd3f-3abf-4f51-ab2b-4039f1d211d9}) +---------- +The name of the StateType ({5a89cd3f-3abf-4f51-ab2b-4039f1d211d9}) of ThingClass storage +---------- +The name of the ParamType (ThingClass: inverter, EventType: currentPower, ID: {788accbc-b86e-471b-b37f-14c9c6411526}) ---------- The name of the StateType ({788accbc-b86e-471b-b37f-14c9c6411526}) of ThingClass inverter - - + + Default language The name of the ParamType (ThingClass: datalogger, EventType: defaultlang, ID: {18b250e2-080a-4991-b368-177c4da83eca}) ---------- @@ -163,15 +288,15 @@ The name of the StateType ({18b250e2-080a-4991-b368-177c4da83eca}) of ThingClass - + Default language changed The name of the EventType ({18b250e2-080a-4991-b368-177c4da83eca}) of ThingClass datalogger - - - + + + Device ID The name of the ParamType (ThingClass: storage, Type: thing, ID: {49087f31-abf5-4bb8-946b-a3626ee80566}) ---------- @@ -181,8 +306,8 @@ The name of the ParamType (ThingClass: inverter, Type: thing, ID: {f2f8c2f5-dd6a - - + + Energy Consumed The name of the ParamType (ThingClass: meter, EventType: totalEnergyConsumed, ID: {f3451818-48d2-42a5-94fd-ad094c06967f}) ---------- @@ -190,14 +315,14 @@ The name of the StateType ({f3451818-48d2-42a5-94fd-ad094c06967f}) of ThingClass - + Energy consumption changed The name of the EventType ({f3451818-48d2-42a5-94fd-ad094c06967f}) of ThingClass meter - - + + Energy of current day The name of the ParamType (ThingClass: inverter, EventType: eday, ID: {b6af1bf5-753d-47b6-a151-e4d801fe6ff8}) ---------- @@ -205,8 +330,8 @@ The name of the StateType ({b6af1bf5-753d-47b6-a151-e4d801fe6ff8}) of ThingClass - - + + Energy of current year The name of the ParamType (ThingClass: inverter, EventType: eyear, ID: {7fd2fa28-9bcc-4f01-a823-459437d185f6}) ---------- @@ -214,20 +339,20 @@ The name of the StateType ({7fd2fa28-9bcc-4f01-a823-459437d185f6}) of ThingClass - + Energy of day changed The name of the EventType ({b6af1bf5-753d-47b6-a151-e4d801fe6ff8}) of ThingClass inverter - + Energy of year changed The name of the EventType ({7fd2fa28-9bcc-4f01-a823-459437d185f6}) of ThingClass inverter - - + + Energy produced The name of the ParamType (ThingClass: meter, EventType: totalEnergyProduced, ID: {ca14cca5-d9f0-49c5-a8f7-907d4c0825f0}) ---------- @@ -235,14 +360,14 @@ The name of the StateType ({ca14cca5-d9f0-49c5-a8f7-907d4c0825f0}) of ThingClass - + Energy production changed The name of the EventType ({ca14cca5-d9f0-49c5-a8f7-907d4c0825f0}) of ThingClass meter - - + + Charging The name of the ParamType (ThingClass: storage, EventType: charging, ID: {2de34a1f-de2e-43ad-8998-8a5460dff9ae}) ---------- @@ -250,20 +375,23 @@ The name of the StateType ({2de34a1f-de2e-43ad-8998-8a5460dff9ae}) of ThingClass - + Charging changed The name of the EventType ({2de34a1f-de2e-43ad-8998-8a5460dff9ae}) of ThingClass storage - + + Current power changed - The name of the EventType ({788accbc-b86e-471b-b37f-14c9c6411526}) of ThingClass inverter + The name of the EventType ({5a89cd3f-3abf-4f51-ab2b-4039f1d211d9}) of ThingClass storage +---------- +The name of the EventType ({788accbc-b86e-471b-b37f-14c9c6411526}) of ThingClass inverter - - + + Current power usage The name of the ParamType (ThingClass: meter, EventType: currentPower, ID: {e5056ea1-88a2-410b-9c5e-6322aca4cb17}) ---------- @@ -271,14 +399,14 @@ The name of the StateType ({e5056ea1-88a2-410b-9c5e-6322aca4cb17}) of ThingClass - + Current power usage changed The name of the EventType ({e5056ea1-88a2-410b-9c5e-6322aca4cb17}) of ThingClass meter - - + + Discharging The name of the ParamType (ThingClass: storage, EventType: discharging, ID: {be90d35c-081c-485b-b4cc-8271e7da5796}) ---------- @@ -286,38 +414,35 @@ The name of the StateType ({be90d35c-081c-485b-b4cc-8271e7da5796}) of ThingClass - + Discharging changed The name of the EventType ({be90d35c-081c-485b-b4cc-8271e7da5796}) of ThingClass storage - + Fronius The name of the vendor ({2286fc38-afd9-4128-ab7e-0fba527d53ba}) - + + Fronius Solar - The name of the plugin fronius ({02319cfc-8b55-49ba-99bc-0588bbfab063}) + The name of the ThingClass ({4fd79fed-42f1-4df9-be64-3df7b2e0bda2}) +---------- +The name of the plugin fronius ({02319cfc-8b55-49ba-99bc-0588bbfab063}) - - Fronius Solar Connection - The name of the ThingClass ({4fd79fed-42f1-4df9-be64-3df7b2e0bda2}) - - - - + Fronius Solar Inverter The name of the ThingClass ({540aa956-8b8f-4982-9f58-343a76cea846}) - - + + Hardware version The name of the ParamType (ThingClass: datalogger, EventType: hwversion, ID: {3b4206e5-74c7-4708-96b8-2abfab0c41d6}) ---------- @@ -325,20 +450,20 @@ The name of the StateType ({3b4206e5-74c7-4708-96b8-2abfab0c41d6}) of ThingClass - + Hardware version changed The name of the EventType ({3b4206e5-74c7-4708-96b8-2abfab0c41d6}) of ThingClass datalogger - + Host address The name of the ParamType (ThingClass: datalogger, Type: thing, ID: {52da0197-4b78-4fec-aa72-70f949e26edc}) - - + + Inverter active The name of the ParamType (ThingClass: inverter, EventType: active, ID: {e763baa7-5eaf-438c-83f0-4fa6c0f7eeb0}) ---------- @@ -346,32 +471,20 @@ The name of the StateType ({e763baa7-5eaf-438c-83f0-4fa6c0f7eeb0}) of ThingClass - + Inverter active changed The name of the EventType ({e763baa7-5eaf-438c-83f0-4fa6c0f7eeb0}) of ThingClass inverter - + MAC address The name of the ParamType (ThingClass: datalogger, Type: thing, ID: {2237972e-385b-4458-b5d3-1d1fb4ae8756}) - - Manufacturer - The name of the ParamType (ThingClass: storage, Type: thing, ID: {9665c38b-c13a-428f-b741-1470239c63dc}) - - - - - Maxmimum capacity - The name of the ParamType (ThingClass: storage, Type: thing, ID: {59a68e91-1aad-46b7-b351-03b7b2216366}) - - - - - + + Platform ID The name of the ParamType (ThingClass: datalogger, EventType: platformid, ID: {65c068e6-4a0b-4672-9724-ae95216c4c9c}) ---------- @@ -379,14 +492,14 @@ The name of the StateType ({65c068e6-4a0b-4672-9724-ae95216c4c9c}) of ThingClass - + Platform ID changed The name of the EventType ({65c068e6-4a0b-4672-9724-ae95216c4c9c}) of ThingClass datalogger - - + + Power management relay The name of the ParamType (ThingClass: datalogger, EventType: powerManagmentRelay, ID: {b217acf6-0c5e-4a3e-a50c-4c0133c871c2}) ---------- @@ -394,8 +507,8 @@ The name of the StateType ({b217acf6-0c5e-4a3e-a50c-4c0133c871c2}) of ThingClass - - + + Power management relay reason The name of the ParamType (ThingClass: datalogger, EventType: powerManagmentRelayReason, ID: {5650ce9b-0d7d-4c52-b410-ea618889b4bb}) ---------- @@ -403,20 +516,20 @@ The name of the StateType ({5650ce9b-0d7d-4c52-b410-ea618889b4bb}) of ThingClass - + Power management relay reason changed The name of the EventType ({5650ce9b-0d7d-4c52-b410-ea618889b4bb}) of ThingClass datalogger - + Power management relay status changed The name of the EventType ({b217acf6-0c5e-4a3e-a50c-4c0133c871c2}) of ThingClass datalogger - - + + Product ID The name of the ParamType (ThingClass: datalogger, EventType: productid, ID: {b22052ef-14da-43d2-982b-f2c2d8c03206}) ---------- @@ -424,20 +537,20 @@ The name of the StateType ({b22052ef-14da-43d2-982b-f2c2d8c03206}) of ThingClass - + Product ID changed The name of the EventType ({b22052ef-14da-43d2-982b-f2c2d8c03206}) of ThingClass datalogger - - - - - - - - + + + + + + + + Reachable The name of the ParamType (ThingClass: storage, EventType: connected, ID: {2f7e1267-b0be-4b78-9aa3-832b86c4efad}) ---------- @@ -457,9 +570,9 @@ The name of the StateType ({98e4476f-e745-4a7f-b795-19269cb70c40}) of ThingClass - - - + + + Reachable changed The name of the EventType ({2f7e1267-b0be-4b78-9aa3-832b86c4efad}) of ThingClass storage ---------- @@ -469,14 +582,23 @@ The name of the EventType ({eda29c50-73ac-40e0-9c92-26fee352e688}) of ThingClass - + Search new devices The name of the ActionType ({c217fdc1-de18-41dc-b5d8-8072f84e7b6c}) of ThingClass datalogger - - + + + Serial number + The name of the ParamType (ThingClass: storage, Type: thing, ID: {8b6c7053-5ba5-4808-8ff4-9024c624d77d}) +---------- +The name of the ParamType (ThingClass: meter, Type: thing, ID: {dfc2eeef-38b2-4089-9953-48186aaee060}) + + + + + Software version The name of the ParamType (ThingClass: datalogger, EventType: swversion, ID: {31743ca5-4353-4f26-b2ad-5da43e5b9d86}) ---------- @@ -484,14 +606,14 @@ The name of the StateType ({31743ca5-4353-4f26-b2ad-5da43e5b9d86}) of ThingClass - + Software version changed The name of the EventType ({31743ca5-4353-4f26-b2ad-5da43e5b9d86}) of ThingClass datalogger - - + + Total produced energy The name of the ParamType (ThingClass: inverter, EventType: totalEnergyProduced, ID: {d6dbb879-4cbc-4db3-830e-b92ba91a13e5}) ---------- @@ -499,14 +621,14 @@ The name of the StateType ({d6dbb879-4cbc-4db3-830e-b92ba91a13e5}) of ThingClass - + Total produced energy changed The name of the EventType ({d6dbb879-4cbc-4db3-830e-b92ba91a13e5}) of ThingClass inverter - - + + Time zone The name of the ParamType (ThingClass: datalogger, EventType: tzone, ID: {6bdfeeda-7a47-4043-a011-5eb96308a7d6}) ---------- @@ -514,14 +636,14 @@ The name of the StateType ({6bdfeeda-7a47-4043-a011-5eb96308a7d6}) of ThingClass - + Time zone changed The name of the EventType ({6bdfeeda-7a47-4043-a011-5eb96308a7d6}) of ThingClass datalogger - - + + Timezone location The name of the ParamType (ThingClass: datalogger, EventType: tzoneloc, ID: {d034f59d-dc34-450a-a6f3-68264767a3e4}) ---------- @@ -529,13 +651,58 @@ The name of the StateType ({d034f59d-dc34-450a-a6f3-68264767a3e4}) of ThingClass - + Timezone location changed The name of the EventType ({d034f59d-dc34-450a-a6f3-68264767a3e4}) of ThingClass datalogger - + + + Voltage phase A + The name of the ParamType (ThingClass: meter, EventType: voltagePhaseA, ID: {267bc59f-1113-4aff-a502-4618a591aa16}) +---------- +The name of the StateType ({267bc59f-1113-4aff-a502-4618a591aa16}) of ThingClass meter + + + + + Voltage phase A changed + The name of the EventType ({267bc59f-1113-4aff-a502-4618a591aa16}) of ThingClass meter + + + + + + Voltage phase B + The name of the ParamType (ThingClass: meter, EventType: voltagePhaseB, ID: {bbcedb80-30f1-493e-81f0-5f77f2847353}) +---------- +The name of the StateType ({bbcedb80-30f1-493e-81f0-5f77f2847353}) of ThingClass meter + + + + + Voltage phase B changed + The name of the EventType ({bbcedb80-30f1-493e-81f0-5f77f2847353}) of ThingClass meter + + + + + + Voltage phase C + The name of the ParamType (ThingClass: meter, EventType: voltagePhaseC, ID: {8037557b-40dc-411b-8937-bcd1695f898a}) +---------- +The name of the StateType ({8037557b-40dc-411b-8937-bcd1695f898a}) of ThingClass meter + + + + + Voltage phase C changed + The name of the EventType ({8037557b-40dc-411b-8937-bcd1695f898a}) of ThingClass meter + + + + logger reachable changed The name of the EventType ({98e4476f-e745-4a7f-b795-19269cb70c40}) of ThingClass datalogger