diff --git a/debian/control b/debian/control index c88e8e0c..f545e939 100644 --- a/debian/control +++ b/debian/control @@ -591,6 +591,21 @@ Description: nymea.io plugin for Pushbullet This package will install the nymea.io plugin for sending messages via Pushbullet. +Package: nymea-plugin-solarlog +Architecture: any +Depends: ${shlibs:Depends}, + ${misc:Depends}, + nymea-plugins-translations, +Description: nymea.io plugin for Solar-Log + The nymea daemon is a plugin based IoT (Internet of Things) server. The + server works like a translator for devices, things and services and + allows them to interact. + With the powerful rule engine you are able to connect any device available + in the system and create individual scenes and behaviors for your environment. + . + This package will install the nymea.io plugin for Solar-Log. + + Package: nymea-plugin-tasmota Architecture: any Depends: ${shlibs:Depends}, @@ -984,6 +999,7 @@ Depends: nymea-plugin-anel, nymea-plugin-shelly, nymea-plugin-senic, nymea-plugin-sonos, + nymea-plugin-solarlog, nymea-plugin-tado, nymea-plugin-keba, nymea-plugin-unifi, diff --git a/debian/nymea-plugin-solarlog.install.in b/debian/nymea-plugin-solarlog.install.in new file mode 100644 index 00000000..fec3ab6b --- /dev/null +++ b/debian/nymea-plugin-solarlog.install.in @@ -0,0 +1 @@ +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_integrationpluginsolarlog.so diff --git a/nymea-plugins.pro b/nymea-plugins.pro index e5605321..c734ab56 100644 --- a/nymea-plugins.pro +++ b/nymea-plugins.pro @@ -40,6 +40,7 @@ PLUGIN_DIRS = \ philipshue \ pushbullet \ shelly \ + solarlog \ systemmonitor \ remotessh \ senic \ diff --git a/solarlog/README.md b/solarlog/README.md new file mode 100644 index 00000000..092be2aa --- /dev/null +++ b/solarlog/README.md @@ -0,0 +1,24 @@ +# Solar-Log + +This plug-in integrates Solar-Log devices into nymea. + +## Supported Things + +* Solar-Log 200 +* Solar-Log 250 +* Solar-Log 300 +* Solar-Log 500 +* Solar-Log 1000 +* Solar-Log 1200 +* Solar-Log 1900 +* Solar-Log 2000 + +## Requirements + +* The package 'nymea-plugin-solarlog' must be installed. +* The device and nymea must be in the same network. +* Device to be updated to the Solar-Log Firmware Version 3.6.0. + +## More +https://www.solar-log.com/en + diff --git a/solarlog/integrationpluginsolarlog.cpp b/solarlog/integrationpluginsolarlog.cpp new file mode 100644 index 00000000..4c4da6f3 --- /dev/null +++ b/solarlog/integrationpluginsolarlog.cpp @@ -0,0 +1,145 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +* +* Copyright 2013 - 2020, nymea GmbH +* Contact: contact@nymea.io +* +* This file is part of nymea. +* This project including source code and documentation is protected by +* copyright law, and remains the property of nymea GmbH. All rights, including +* reproduction, publication, editing and translation, are reserved. The use of +* this project is subject to the terms of a license agreement to be concluded +* with nymea GmbH in accordance with the terms of use of nymea GmbH, available +* under https://nymea.io/license +* +* GNU Lesser General Public License Usage +* Alternatively, this project may be redistributed and/or modified under the +* terms of the GNU Lesser General Public License as published by the Free +* Software Foundation; version 3. This project is distributed in the hope that +* it will be useful, but WITHOUT ANY WARRANTY; without even the implied +* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* Lesser General Public License for more details. +* +* You should have received a copy of the GNU Lesser General Public License +* along with this project. If not, see . +* +* For any further details and any questions please contact us under +* contact@nymea.io or see our FAQ/Licensing Information on +* https://nymea.io/license/faq +* +* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +#include "integrationpluginsolarlog.h" +#include "plugininfo.h" +#include "network/networkaccessmanager.h" + +#include +#include +#include + +IntegrationPluginSolarLog::IntegrationPluginSolarLog() +{ + +} + +void IntegrationPluginSolarLog::setupThing(ThingSetupInfo *info) +{ + Thing *thing = info->thing(); + if (thing->thingClassId() == solarlogThingClassId) { + getData(thing); + m_asyncSetup.insert(thing, info); + connect(info, &ThingSetupInfo::aborted, this, [thing, this] {m_asyncSetup.remove(thing);}); + } else { + Q_ASSERT_X(false, "setupThing", QString("Unhandled thingClassId: %1").arg(thing->thingClassId().toString()).toUtf8()); + } +} + +void IntegrationPluginSolarLog::postSetupThing(Thing *thing) +{ + Q_UNUSED(thing) + + if (!m_refreshTimer) { + m_refreshTimer = hardwareManager()->pluginTimerManager()->registerTimer(2); + connect(m_refreshTimer, &PluginTimer::timeout, this, &IntegrationPluginSolarLog::onRefreshTimer); + } +} + +void IntegrationPluginSolarLog::thingRemoved(Thing *thing) +{ + Q_UNUSED(thing) + + if (myThings().isEmpty()) { + hardwareManager()->pluginTimerManager()->unregisterTimer(m_refreshTimer); + m_refreshTimer = nullptr; + } +} + +void IntegrationPluginSolarLog::onRefreshTimer() +{ + foreach (Thing *thing, myThings().filterByThingClassId(solarlogThingClassId)) { + getData(thing); + } +} + +void IntegrationPluginSolarLog::getData(Thing *thing) +{ + QUrl url; + url.setHost(thing->paramValue(solarlogThingHostParamTypeId).toString()); + url.setPath("/getjp"); + url.setScheme("http"); + QNetworkRequest request(url); + request.setHeader(QNetworkRequest::KnownHeaders::ContentTypeHeader, "application/json"); + QNetworkReply *reply = hardwareManager()->networkManager()->post(request, QByteArray("{\"801\":{\"170\":null}}")); + connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater); + connect(reply, &QNetworkReply::finished, thing, [this, reply, thing]{ + + int status = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); + + // Check HTTP status code + if (status != 200 || reply->error() != QNetworkReply::NoError) { + thing->setStateValue(solarlogConnectedStateTypeId, false); + qCWarning(dcSolarlog()) << "Request error:" << status << reply->errorString(); + if (m_asyncSetup.contains(thing)) { + ThingSetupInfo *info = m_asyncSetup.take(thing); + info->finish(Thing::ThingErrorHardwareNotAvailable, tr("No Solar-Log device at given IP-Address")); + } + return; + } + + thing->setStateValue(solarlogConnectedStateTypeId, true); + QByteArray rawData = reply->readAll(); + QJsonParseError error; + QJsonDocument data = QJsonDocument::fromJson(rawData, &error); + if (error.error != QJsonParseError::NoError) { + qCWarning(dcSolarlog()) << "Received invalid JSON object, try to upgrade the Solarlog firmware. Min Version is 3.5."; + if (m_asyncSetup.contains(thing)) { + ThingSetupInfo *info = m_asyncSetup.take(thing); + info->finish(Thing::ThingErrorHardwareFailure, tr("Outdated Solar-Log firmware")); + } + return; + } + + if (m_asyncSetup.contains(thing)) { + ThingSetupInfo *info = m_asyncSetup.take(thing); + info->finish(Thing::ThingErrorNoError); + } + + QVariantMap map = data.toVariant().toMap().value("801").toMap().value("170").toMap(); + thing->setStateValue(solarlogLastupdateStateTypeId, map.value(QString::number(JsonObjectNumbers::LastUpdateTime))); + thing->setStateValue(solarlogTotalPowerEventTypeId, (map.value(QString::number(JsonObjectNumbers::Pac)).toDouble()/1000.00)); + thing->setStateValue(solarlogPdcStateTypeId, (map.value(QString::number(JsonObjectNumbers::Pdc)).toDouble()/1000.00)); + thing->setStateValue(solarlogUacStateTypeId, map.value(QString::number(JsonObjectNumbers::Uac))); + thing->setStateValue(solarlogDcVoltageStateTypeId, map.value(QString::number(JsonObjectNumbers::DCVoltage))); + thing->setStateValue(solarlogYieldDayStateTypeId, (map.value(QString::number(JsonObjectNumbers::YieldDay)).toDouble()/1000.00)); + thing->setStateValue(solarlogYieldYesterdayStateTypeId, (map.value(QString::number(JsonObjectNumbers::YieldYesterday)).toDouble()/1000.00)); + thing->setStateValue(solarlogYieldMonthStateTypeId, (map.value(QString::number(JsonObjectNumbers::YieldMonth)).toDouble()/1000.00)); + thing->setStateValue(solarlogYieldYearStateTypeId, (map.value(QString::number(JsonObjectNumbers::YieldYear)).toDouble()/1000.00)); + thing->setStateValue(solarlogTotalEnergyProducedStateTypeId, (map.value(QString::number(JsonObjectNumbers::YieldTotal)).toDouble()/1000.00)); + thing->setStateValue(solarlogCurrentTotalConsumptionStateTypeId, map.value(QString::number(JsonObjectNumbers::ConsPac))); + thing->setStateValue(solarlogConsYieldDayStateTypeId, map.value(QString::number(JsonObjectNumbers::ConsYieldDay))); + thing->setStateValue(solarlogConsYieldYesterdayStateTypeId, map.value(QString::number(JsonObjectNumbers::ConsYieldYesterday))); + thing->setStateValue(solarlogConsYieldMonthStateTypeId, map.value(QString::number(JsonObjectNumbers::ConsYieldMonth))); + thing->setStateValue(solarlogConsYieldYearStateTypeId, map.value(QString::number(JsonObjectNumbers::ConsYieldYear))); + thing->setStateValue(solarlogConsYieldTotalStateTypeId, map.value(QString::number(JsonObjectNumbers::ConsYieldTotal))); + thing->setStateValue(solarlogTotalPowerStateTypeId, (map.value(QString::number(JsonObjectNumbers::TotalPower)).toDouble()/1000.00)); + }); +} diff --git a/solarlog/integrationpluginsolarlog.h b/solarlog/integrationpluginsolarlog.h new file mode 100644 index 00000000..b81e45ae --- /dev/null +++ b/solarlog/integrationpluginsolarlog.h @@ -0,0 +1,83 @@ +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +* +* Copyright 2013 - 2020, nymea GmbH +* Contact: contact@nymea.io +* +* This file is part of nymea. +* This project including source code and documentation is protected by +* copyright law, and remains the property of nymea GmbH. All rights, including +* reproduction, publication, editing and translation, are reserved. The use of +* this project is subject to the terms of a license agreement to be concluded +* with nymea GmbH in accordance with the terms of use of nymea GmbH, available +* under https://nymea.io/license +* +* GNU Lesser General Public License Usage +* Alternatively, this project may be redistributed and/or modified under the +* terms of the GNU Lesser General Public License as published by the Free +* Software Foundation; version 3. This project is distributed in the hope that +* it will be useful, but WITHOUT ANY WARRANTY; without even the implied +* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +* Lesser General Public License for more details. +* +* You should have received a copy of the GNU Lesser General Public License +* along with this project. If not, see . +* +* For any further details and any questions please contact us under +* contact@nymea.io or see our FAQ/Licensing Information on +* https://nymea.io/license/faq +* +* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +#ifndef INTEGRATIONPLUGINSOLARLOG_H +#define INTEGRATIONPLUGINSOLARLOG_H + +#include "integrations/integrationplugin.h" +#include "plugintimer.h" + +#include +#include +#include + + +class IntegrationPluginSolarLog: public IntegrationPlugin { + Q_OBJECT + Q_PLUGIN_METADATA(IID "io.nymea.IntegrationPlugin" FILE "integrationpluginsolarlog.json") + Q_INTERFACES(IntegrationPlugin) + +public: + enum JsonObjectNumbers{ + LastUpdateTime = 100, + Pac, + Pdc, + Uac, + DCVoltage, + YieldDay, + YieldYesterday, + YieldMonth, + YieldYear, + YieldTotal, + ConsPac, + ConsYieldDay, + ConsYieldYesterday, + ConsYieldMonth, + ConsYieldYear, + ConsYieldTotal, + TotalPower + }; + explicit IntegrationPluginSolarLog(); + + void setupThing(ThingSetupInfo *info) override; + void postSetupThing(Thing *thing) override; + void thingRemoved(Thing *thing) override; + +private slots: + void onRefreshTimer(); + +private: + PluginTimer *m_refreshTimer = nullptr; + QHash m_asyncSetup; + + void getData(Thing *thing); +}; + +#endif // INTEGRATIONPLUGINSOLARLOG_H diff --git a/solarlog/integrationpluginsolarlog.json b/solarlog/integrationpluginsolarlog.json new file mode 100644 index 00000000..8a8f37e8 --- /dev/null +++ b/solarlog/integrationpluginsolarlog.json @@ -0,0 +1,194 @@ +{ + "id": "606adc5a-c9a5-45fa-9652-ea385dcb0b81", + "name": "solarlog", + "displayName": "Solar-Log", + "vendors": [ + { + "id": "0cf5f437-abf0-4396-92d4-be94d616c667", + "name": "solarlog", + "displayName": "Solar-Log", + "thingClasses": [ + { + "id": "1374b47e-5555-4ec1-b2cd-6474048dd30c", + "name": "solarlog", + "displayName": "Solar-Log", + "createMethods": [ "user", "discovery" ], + "interfaces": ["extendedsmartmeterproducer", "connectable" ], + "paramTypes": [ + { + "id": "84bd8a41-2411-4bb0-87a9-ab7e01044b10", + "name": "host", + "displayName": "Address", + "type": "QString", + "inputType": "TextLine", + "defaultValue": "solar-log" + } + ], + "stateTypes": [ + { + "id": "eb9f8575-71e3-42a9-aa4d-ffea9586cc4f", + "name": "connected", + "displayName": "Reachable", + "displayNameEvent": "Reachable changed", + "type": "bool", + "defaultValue": false, + "cached": false + }, + { + "id": "b944c513-a7f0-4bc1-941e-aae9849557fe", + "name": "lastupdate", + "displayName": "Last update", + "displayNameEvent": "Last update changed", + "type": "QString", + "defaultValue": "" + }, + { + "id": "0bf515d8-0f48-4eba-9255-f774d68c80fe", + "name": "currentPower", + "displayName": "Power AC", + "displayNameEvent": "Power AC changed", + "type": "double", + "unit": "KiloWatt", + "defaultValue": 0 + }, + { + "id": "e4183a70-c848-447a-962a-f19dc5974140", + "name": "pdc", + "displayName": "Power DC", + "displayNameEvent": "Power DC changed", + "type": "double", + "unit": "KiloWatt", + "defaultValue": 0 + }, + { + "id": "7dc46b2e-5fba-4cc6-a159-09472cdfac62", + "name": "uac", + "displayName": "AC voltage", + "displayNameEvent": "AC voltage changed", + "type": "double", + "unit": "Volt", + "defaultValue": 0 + }, + { + "id": "bb891a05-59d8-4a3b-a0ea-b63af58558f7", + "name": "dcVoltage", + "displayName": "DC voltage", + "displayNameEvent": "DC voltage changed", + "type": "double", + "unit": "Volt", + "defaultValue": 0 + }, + { + "id": "53ed041a-e3c3-4ae5-9a79-1cd7ad82e9a8", + "name": "yieldDay", + "displayName": "Yield day", + "displayNameEvent": "Yield day changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0 + }, + { + "id": "bd96d0b3-e921-49eb-8b34-0b3be5bb27fa", + "name": "yieldYesterday", + "displayName": "Yield yesterday", + "displayNameEvent": "Yield yesterday changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0 + }, + { + "id": "9a77662a-2034-4031-8e7a-1e6347089d97", + "name": "yieldMonth", + "displayName": "Yield month", + "displayNameEvent": "Yield month changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0 + }, + { + "id": "d18169ce-deeb-4f7b-b737-818a91760041", + "name": "yieldYear", + "displayName": "Yield year", + "displayNameEvent": "Yield year changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0 + }, + { + "id": "3afb6ea1-fef8-4c17-8307-c7547a7a6f3c", + "name": "totalEnergyProduced", + "displayName": "Yield total", + "displayNameEvent": "Yield total changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0 + }, + { + "id": "5b665247-278a-4b59-9046-add40763e937", + "name": "currentTotalConsumption", + "displayName": "Current total power consumption", + "displayNameEvent": "Current total power consumption changed", + "type": "double", + "unit": "KiloWatt", + "defaultValue": 0 + }, + { + "id": "40ff1d14-a5d2-4fdb-919c-58dfbcdca123", + "name": "consYieldDay", + "displayName": "Energy consumption day", + "displayNameEvent": "Energy consumption day changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0 + }, + { + "id": "5d6d5ba5-ebc3-42ce-9d08-802da694b4da", + "name": "consYieldYesterday", + "displayName": "Energy consumption yesterday", + "displayNameEvent": "Energy consumption yesterday changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0 + }, + { + "id": "a45a557a-a937-4382-8ef5-76f1ff5940e4", + "name": "consYieldMonth", + "displayName": "Energy consumption month", + "displayNameEvent": "Energy consumption month changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0 + }, + { + "id": "1d42619b-3a50-4bde-b325-67a8014332ef", + "name": "consYieldYear", + "displayName": "Energy consumption year", + "displayNameEvent": "Energy consumption year changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0 + }, + { + "id": "34f60062-5dec-45ed-9a27-4fbc083cb36e", + "name": "consYieldTotal", + "displayName": "Energy consumption total", + "displayNameEvent": "Energy consumption total changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0 + }, + { + "id": "0aa21401-2a3d-4149-803b-f0ba8c66b2f7", + "name": "totalPower", + "displayName": "Installed generator power", + "displayNameEvent": "Installed generator power changed", + "type": "double", + "unit": "KiloWatt", + "defaultValue": 0 + } + ] + } + ] + } + ] +} diff --git a/solarlog/meta.json b/solarlog/meta.json new file mode 100644 index 00000000..4646a411 --- /dev/null +++ b/solarlog/meta.json @@ -0,0 +1,12 @@ +{ + "title": "Solar-Log", + "tagline": "Integrates Solar-Log with nymea.", + "icon": "solarlog.png", + "stability": "consumer", + "offline": true, + "technologies": [ + "network" + ], + "categories": [ + ] +} diff --git a/solarlog/solarlog.png b/solarlog/solarlog.png new file mode 100644 index 00000000..e26006be Binary files /dev/null and b/solarlog/solarlog.png differ diff --git a/solarlog/solarlog.pro b/solarlog/solarlog.pro new file mode 100644 index 00000000..06846de6 --- /dev/null +++ b/solarlog/solarlog.pro @@ -0,0 +1,9 @@ +include(../plugins.pri) + +QT += network + +SOURCES += \ + integrationpluginsolarlog.cpp \ + +HEADERS += \ + integrationpluginsolarlog.h \ diff --git a/solarlog/translations/606adc5a-c9a5-45fa-9652-ea385dcb0b81-de.ts b/solarlog/translations/606adc5a-c9a5-45fa-9652-ea385dcb0b81-de.ts new file mode 100644 index 00000000..d0f9fb82 --- /dev/null +++ b/solarlog/translations/606adc5a-c9a5-45fa-9652-ea385dcb0b81-de.ts @@ -0,0 +1,308 @@ + + + + + IntegrationPluginSolarLog + + + No Solar-Log device at given IP-Address + Kein Solar-Log Gerät an angegebener IP Adresse + + + + Outdated Solar-Log firmware + Veraltete Solar-Log Firware + + + + solarlog + + + Address + The name of the ParamType (ThingClass: solarlog, Type: thing, ID: {84bd8a41-2411-4bb0-87a9-ab7e01044b10}) + Adresse + + + + + Installed generator power + The name of the ParamType (ThingClass: solarlog, EventType: totalPower, ID: {0aa21401-2a3d-4149-803b-f0ba8c66b2f7}) +---------- +The name of the StateType ({0aa21401-2a3d-4149-803b-f0ba8c66b2f7}) of ThingClass solarlog + Installierte Generatorleistung + + + + Installed generator power changed + The name of the EventType ({0aa21401-2a3d-4149-803b-f0ba8c66b2f7}) of ThingClass solarlog + Installierte Generatorleistung geändert + + + + + Last update + The name of the ParamType (ThingClass: solarlog, EventType: lastupdate, ID: {b944c513-a7f0-4bc1-941e-aae9849557fe}) +---------- +The name of the StateType ({b944c513-a7f0-4bc1-941e-aae9849557fe}) of ThingClass solarlog + Letztes Update + + + + Last update changed + The name of the EventType ({b944c513-a7f0-4bc1-941e-aae9849557fe}) of ThingClass solarlog + Letztes Update geändert + + + + + + Solar-Log + The name of the ThingClass ({1374b47e-5555-4ec1-b2cd-6474048dd30c}) +---------- +The name of the vendor ({0cf5f437-abf0-4396-92d4-be94d616c667}) +---------- +The name of the plugin solarlog ({606adc5a-c9a5-45fa-9652-ea385dcb0b81}) + Solar-Log + + + + + AC voltage + The name of the ParamType (ThingClass: solarlog, EventType: uac, ID: {7dc46b2e-5fba-4cc6-a159-09472cdfac62}) +---------- +The name of the StateType ({7dc46b2e-5fba-4cc6-a159-09472cdfac62}) of ThingClass solarlog + Wechselspannung + + + + AC voltage changed + The name of the EventType ({7dc46b2e-5fba-4cc6-a159-09472cdfac62}) of ThingClass solarlog + Wechselspannung geändert + + + + + Current total power consumption + The name of the ParamType (ThingClass: solarlog, EventType: currentTotalConsumption, ID: {5b665247-278a-4b59-9046-add40763e937}) +---------- +The name of the StateType ({5b665247-278a-4b59-9046-add40763e937}) of ThingClass solarlog + Derzeitiger Gesamtleistungsverbrauch + + + + Current total power consumption changed + The name of the EventType ({5b665247-278a-4b59-9046-add40763e937}) of ThingClass solarlog + Derzeitiger Gesamtleistungsverbrauch geändert + + + + + DC voltage + The name of the ParamType (ThingClass: solarlog, EventType: dcVoltage, ID: {bb891a05-59d8-4a3b-a0ea-b63af58558f7}) +---------- +The name of the StateType ({bb891a05-59d8-4a3b-a0ea-b63af58558f7}) of ThingClass solarlog + Gleichspannung + + + + DC voltage changed + The name of the EventType ({bb891a05-59d8-4a3b-a0ea-b63af58558f7}) of ThingClass solarlog + Gleichspannung geändert + + + + + Energy consumption day + The name of the ParamType (ThingClass: solarlog, EventType: consYieldDay, ID: {40ff1d14-a5d2-4fdb-919c-58dfbcdca123}) +---------- +The name of the StateType ({40ff1d14-a5d2-4fdb-919c-58dfbcdca123}) of ThingClass solarlog + Tagesenergieverbrauch + + + + Energy consumption day changed + The name of the EventType ({40ff1d14-a5d2-4fdb-919c-58dfbcdca123}) of ThingClass solarlog + Tagesenergieverbrauch geändert + + + + + Energy consumption month + The name of the ParamType (ThingClass: solarlog, EventType: consYieldMonth, ID: {a45a557a-a937-4382-8ef5-76f1ff5940e4}) +---------- +The name of the StateType ({a45a557a-a937-4382-8ef5-76f1ff5940e4}) of ThingClass solarlog + Monatsenergieverbrauch + + + + Energy consumption month changed + The name of the EventType ({a45a557a-a937-4382-8ef5-76f1ff5940e4}) of ThingClass solarlog + Monatsenergieverbrauch geändert + + + + + Energy consumption total + The name of the ParamType (ThingClass: solarlog, EventType: consYieldTotal, ID: {34f60062-5dec-45ed-9a27-4fbc083cb36e}) +---------- +The name of the StateType ({34f60062-5dec-45ed-9a27-4fbc083cb36e}) of ThingClass solarlog + Totalenergieverbrauch + + + + Energy consumption total changed + The name of the EventType ({34f60062-5dec-45ed-9a27-4fbc083cb36e}) of ThingClass solarlog + Totalenergieverbrauch geändert + + + + + Energy consumption year + The name of the ParamType (ThingClass: solarlog, EventType: consYieldYear, ID: {1d42619b-3a50-4bde-b325-67a8014332ef}) +---------- +The name of the StateType ({1d42619b-3a50-4bde-b325-67a8014332ef}) of ThingClass solarlog + Jahresenergieverbrauch + + + + Energy consumption year changed + The name of the EventType ({1d42619b-3a50-4bde-b325-67a8014332ef}) of ThingClass solarlog + Jahresenergieverbrauch geändert + + + + + Energy consumption yesterday + The name of the ParamType (ThingClass: solarlog, EventType: consYieldYesterday, ID: {5d6d5ba5-ebc3-42ce-9d08-802da694b4da}) +---------- +The name of the StateType ({5d6d5ba5-ebc3-42ce-9d08-802da694b4da}) of ThingClass solarlog + Gestriger Tagesenergieverbrauch + + + + Energy consumption yesterday changed + The name of the EventType ({5d6d5ba5-ebc3-42ce-9d08-802da694b4da}) of ThingClass solarlog + Gestriger Tagesenergieverbrauch geändert + + + + + Power AC + The name of the ParamType (ThingClass: solarlog, EventType: currentPower, ID: {0bf515d8-0f48-4eba-9255-f774d68c80fe}) +---------- +The name of the StateType ({0bf515d8-0f48-4eba-9255-f774d68c80fe}) of ThingClass solarlog + Leistung AC + + + + Power AC changed + The name of the EventType ({0bf515d8-0f48-4eba-9255-f774d68c80fe}) of ThingClass solarlog + Leistung AC geändert + + + + + Power DC + The name of the ParamType (ThingClass: solarlog, EventType: pdc, ID: {e4183a70-c848-447a-962a-f19dc5974140}) +---------- +The name of the StateType ({e4183a70-c848-447a-962a-f19dc5974140}) of ThingClass solarlog + Leistung DC + + + + Power DC changed + The name of the EventType ({e4183a70-c848-447a-962a-f19dc5974140}) of ThingClass solarlog + Leistung DC geändert + + + + + Reachable + The name of the ParamType (ThingClass: solarlog, EventType: connected, ID: {eb9f8575-71e3-42a9-aa4d-ffea9586cc4f}) +---------- +The name of the StateType ({eb9f8575-71e3-42a9-aa4d-ffea9586cc4f}) of ThingClass solarlog + Erreichbar + + + + Reachable changed + The name of the EventType ({eb9f8575-71e3-42a9-aa4d-ffea9586cc4f}) of ThingClass solarlog + Erreichbar geändert + + + + + Yield day + The name of the ParamType (ThingClass: solarlog, EventType: yieldDay, ID: {53ed041a-e3c3-4ae5-9a79-1cd7ad82e9a8}) +---------- +The name of the StateType ({53ed041a-e3c3-4ae5-9a79-1cd7ad82e9a8}) of ThingClass solarlog + Tagesertrag + + + + Yield day changed + The name of the EventType ({53ed041a-e3c3-4ae5-9a79-1cd7ad82e9a8}) of ThingClass solarlog + Tagesertrag geändert + + + + + Yield month + The name of the ParamType (ThingClass: solarlog, EventType: yieldMonth, ID: {9a77662a-2034-4031-8e7a-1e6347089d97}) +---------- +The name of the StateType ({9a77662a-2034-4031-8e7a-1e6347089d97}) of ThingClass solarlog + Monatsertrag + + + + Yield month changed + The name of the EventType ({9a77662a-2034-4031-8e7a-1e6347089d97}) of ThingClass solarlog + Monatsertrag geändert + + + + + Yield total + The name of the ParamType (ThingClass: solarlog, EventType: totalEnergyProduced, ID: {3afb6ea1-fef8-4c17-8307-c7547a7a6f3c}) +---------- +The name of the StateType ({3afb6ea1-fef8-4c17-8307-c7547a7a6f3c}) of ThingClass solarlog + Totalertrag + + + + Yield total changed + The name of the EventType ({3afb6ea1-fef8-4c17-8307-c7547a7a6f3c}) of ThingClass solarlog + Totalertrag geändert + + + + + Yield year + The name of the ParamType (ThingClass: solarlog, EventType: yieldYear, ID: {d18169ce-deeb-4f7b-b737-818a91760041}) +---------- +The name of the StateType ({d18169ce-deeb-4f7b-b737-818a91760041}) of ThingClass solarlog + Jahresertrag + + + + Yield year changed + The name of the EventType ({d18169ce-deeb-4f7b-b737-818a91760041}) of ThingClass solarlog + Jahresertrag geändert + + + + + Yield yesterday + The name of the ParamType (ThingClass: solarlog, EventType: yieldYesterday, ID: {bd96d0b3-e921-49eb-8b34-0b3be5bb27fa}) +---------- +The name of the StateType ({bd96d0b3-e921-49eb-8b34-0b3be5bb27fa}) of ThingClass solarlog + Gestriger Tagesertrag + + + + Yield yesterday changed + The name of the EventType ({bd96d0b3-e921-49eb-8b34-0b3be5bb27fa}) of ThingClass solarlog + Gestriger Tagesertrag geändert + + + diff --git a/solarlog/translations/606adc5a-c9a5-45fa-9652-ea385dcb0b81-en_US.ts b/solarlog/translations/606adc5a-c9a5-45fa-9652-ea385dcb0b81-en_US.ts new file mode 100644 index 00000000..ab13650e --- /dev/null +++ b/solarlog/translations/606adc5a-c9a5-45fa-9652-ea385dcb0b81-en_US.ts @@ -0,0 +1,308 @@ + + + + + IntegrationPluginSolarLog + + + No Solar-Log device at given IP-Address + + + + + Outdated Solar-Log firmware + + + + + solarlog + + + Address + The name of the ParamType (ThingClass: solarlog, Type: thing, ID: {84bd8a41-2411-4bb0-87a9-ab7e01044b10}) + + + + + + Installed generator power + The name of the ParamType (ThingClass: solarlog, EventType: totalPower, ID: {0aa21401-2a3d-4149-803b-f0ba8c66b2f7}) +---------- +The name of the StateType ({0aa21401-2a3d-4149-803b-f0ba8c66b2f7}) of ThingClass solarlog + + + + + Installed generator power changed + The name of the EventType ({0aa21401-2a3d-4149-803b-f0ba8c66b2f7}) of ThingClass solarlog + + + + + + Last update + The name of the ParamType (ThingClass: solarlog, EventType: lastupdate, ID: {b944c513-a7f0-4bc1-941e-aae9849557fe}) +---------- +The name of the StateType ({b944c513-a7f0-4bc1-941e-aae9849557fe}) of ThingClass solarlog + + + + + Last update changed + The name of the EventType ({b944c513-a7f0-4bc1-941e-aae9849557fe}) of ThingClass solarlog + + + + + + + Solar-Log + The name of the ThingClass ({1374b47e-5555-4ec1-b2cd-6474048dd30c}) +---------- +The name of the vendor ({0cf5f437-abf0-4396-92d4-be94d616c667}) +---------- +The name of the plugin solarlog ({606adc5a-c9a5-45fa-9652-ea385dcb0b81}) + + + + + + AC voltage + The name of the ParamType (ThingClass: solarlog, EventType: uac, ID: {7dc46b2e-5fba-4cc6-a159-09472cdfac62}) +---------- +The name of the StateType ({7dc46b2e-5fba-4cc6-a159-09472cdfac62}) of ThingClass solarlog + + + + + AC voltage changed + The name of the EventType ({7dc46b2e-5fba-4cc6-a159-09472cdfac62}) of ThingClass solarlog + + + + + + Current total power consumption + The name of the ParamType (ThingClass: solarlog, EventType: currentTotalConsumption, ID: {5b665247-278a-4b59-9046-add40763e937}) +---------- +The name of the StateType ({5b665247-278a-4b59-9046-add40763e937}) of ThingClass solarlog + + + + + Current total power consumption changed + The name of the EventType ({5b665247-278a-4b59-9046-add40763e937}) of ThingClass solarlog + + + + + + DC voltage + The name of the ParamType (ThingClass: solarlog, EventType: dcVoltage, ID: {bb891a05-59d8-4a3b-a0ea-b63af58558f7}) +---------- +The name of the StateType ({bb891a05-59d8-4a3b-a0ea-b63af58558f7}) of ThingClass solarlog + + + + + DC voltage changed + The name of the EventType ({bb891a05-59d8-4a3b-a0ea-b63af58558f7}) of ThingClass solarlog + + + + + + Energy consumption day + The name of the ParamType (ThingClass: solarlog, EventType: consYieldDay, ID: {40ff1d14-a5d2-4fdb-919c-58dfbcdca123}) +---------- +The name of the StateType ({40ff1d14-a5d2-4fdb-919c-58dfbcdca123}) of ThingClass solarlog + + + + + Energy consumption day changed + The name of the EventType ({40ff1d14-a5d2-4fdb-919c-58dfbcdca123}) of ThingClass solarlog + + + + + + Energy consumption month + The name of the ParamType (ThingClass: solarlog, EventType: consYieldMonth, ID: {a45a557a-a937-4382-8ef5-76f1ff5940e4}) +---------- +The name of the StateType ({a45a557a-a937-4382-8ef5-76f1ff5940e4}) of ThingClass solarlog + + + + + Energy consumption month changed + The name of the EventType ({a45a557a-a937-4382-8ef5-76f1ff5940e4}) of ThingClass solarlog + + + + + + Energy consumption total + The name of the ParamType (ThingClass: solarlog, EventType: consYieldTotal, ID: {34f60062-5dec-45ed-9a27-4fbc083cb36e}) +---------- +The name of the StateType ({34f60062-5dec-45ed-9a27-4fbc083cb36e}) of ThingClass solarlog + + + + + Energy consumption total changed + The name of the EventType ({34f60062-5dec-45ed-9a27-4fbc083cb36e}) of ThingClass solarlog + + + + + + Energy consumption year + The name of the ParamType (ThingClass: solarlog, EventType: consYieldYear, ID: {1d42619b-3a50-4bde-b325-67a8014332ef}) +---------- +The name of the StateType ({1d42619b-3a50-4bde-b325-67a8014332ef}) of ThingClass solarlog + + + + + Energy consumption year changed + The name of the EventType ({1d42619b-3a50-4bde-b325-67a8014332ef}) of ThingClass solarlog + + + + + + Energy consumption yesterday + The name of the ParamType (ThingClass: solarlog, EventType: consYieldYesterday, ID: {5d6d5ba5-ebc3-42ce-9d08-802da694b4da}) +---------- +The name of the StateType ({5d6d5ba5-ebc3-42ce-9d08-802da694b4da}) of ThingClass solarlog + + + + + Energy consumption yesterday changed + The name of the EventType ({5d6d5ba5-ebc3-42ce-9d08-802da694b4da}) of ThingClass solarlog + + + + + + Power AC + The name of the ParamType (ThingClass: solarlog, EventType: currentPower, ID: {0bf515d8-0f48-4eba-9255-f774d68c80fe}) +---------- +The name of the StateType ({0bf515d8-0f48-4eba-9255-f774d68c80fe}) of ThingClass solarlog + + + + + Power AC changed + The name of the EventType ({0bf515d8-0f48-4eba-9255-f774d68c80fe}) of ThingClass solarlog + + + + + + Power DC + The name of the ParamType (ThingClass: solarlog, EventType: pdc, ID: {e4183a70-c848-447a-962a-f19dc5974140}) +---------- +The name of the StateType ({e4183a70-c848-447a-962a-f19dc5974140}) of ThingClass solarlog + + + + + Power DC changed + The name of the EventType ({e4183a70-c848-447a-962a-f19dc5974140}) of ThingClass solarlog + + + + + + Reachable + The name of the ParamType (ThingClass: solarlog, EventType: connected, ID: {eb9f8575-71e3-42a9-aa4d-ffea9586cc4f}) +---------- +The name of the StateType ({eb9f8575-71e3-42a9-aa4d-ffea9586cc4f}) of ThingClass solarlog + + + + + Reachable changed + The name of the EventType ({eb9f8575-71e3-42a9-aa4d-ffea9586cc4f}) of ThingClass solarlog + + + + + + Yield day + The name of the ParamType (ThingClass: solarlog, EventType: yieldDay, ID: {53ed041a-e3c3-4ae5-9a79-1cd7ad82e9a8}) +---------- +The name of the StateType ({53ed041a-e3c3-4ae5-9a79-1cd7ad82e9a8}) of ThingClass solarlog + + + + + Yield day changed + The name of the EventType ({53ed041a-e3c3-4ae5-9a79-1cd7ad82e9a8}) of ThingClass solarlog + + + + + + Yield month + The name of the ParamType (ThingClass: solarlog, EventType: yieldMonth, ID: {9a77662a-2034-4031-8e7a-1e6347089d97}) +---------- +The name of the StateType ({9a77662a-2034-4031-8e7a-1e6347089d97}) of ThingClass solarlog + + + + + Yield month changed + The name of the EventType ({9a77662a-2034-4031-8e7a-1e6347089d97}) of ThingClass solarlog + + + + + + Yield total + The name of the ParamType (ThingClass: solarlog, EventType: totalEnergyProduced, ID: {3afb6ea1-fef8-4c17-8307-c7547a7a6f3c}) +---------- +The name of the StateType ({3afb6ea1-fef8-4c17-8307-c7547a7a6f3c}) of ThingClass solarlog + + + + + Yield total changed + The name of the EventType ({3afb6ea1-fef8-4c17-8307-c7547a7a6f3c}) of ThingClass solarlog + + + + + + Yield year + The name of the ParamType (ThingClass: solarlog, EventType: yieldYear, ID: {d18169ce-deeb-4f7b-b737-818a91760041}) +---------- +The name of the StateType ({d18169ce-deeb-4f7b-b737-818a91760041}) of ThingClass solarlog + + + + + Yield year changed + The name of the EventType ({d18169ce-deeb-4f7b-b737-818a91760041}) of ThingClass solarlog + + + + + + Yield yesterday + The name of the ParamType (ThingClass: solarlog, EventType: yieldYesterday, ID: {bd96d0b3-e921-49eb-8b34-0b3be5bb27fa}) +---------- +The name of the StateType ({bd96d0b3-e921-49eb-8b34-0b3be5bb27fa}) of ThingClass solarlog + + + + + Yield yesterday changed + The name of the EventType ({bd96d0b3-e921-49eb-8b34-0b3be5bb27fa}) of ThingClass solarlog + + + +