Merge PR #245: aWATTar: Add support for aWATTar Germany

master
Jenkins nymea 2020-04-14 17:29:26 +02:00
commit 611d16c543
9 changed files with 487 additions and 493 deletions

View File

@ -1,8 +1,14 @@
# aWATTar
This plugin allows to receive the current energy market price from the [aWATTar GmbH](https://www.awattar.com/).
In order to use this plugin you need to enter the access token from your energy provider. You can find more
information about you accesstoken [here](https://www.awattar.com/api-unser-datenfeed).
This plugin allows to receive the current energy market price from the aWATTar GmbH.
* [aWATTar Austria](https://www.awattar.com)
* [aWATTar Germany](https://www.awattar.de)
The Austrian edition of aWATTar requires to enter the access token from your energy provider.
You can find more information about you accesstoken [here](https://www.awattar.com/api-unser-datenfeed).
The German servers do not require a token at this point.
## Available data
@ -17,11 +23,3 @@ price is above the average, if the deviation is negative, the current price is b
![aWATTar graph](https://raw.githubusercontent.com/guh/nymea-plugins/master/awattar/docs/images/awattar-graph.png "aWATTar graph")
# Heat pump
Information about the smart grid modes can be found [here](https://www.waermepumpe.de/sg-ready/).
In order to interact with the heat pump (SG-ready), this plugin creates a CoAP connection to the server running on the
6LoWPAN bridge. The server IPv6 can be configured in the plugin configuration. Once the connection is established, the
plugin searches for 6LoWPAN neighbors in the network.

View File

@ -5,11 +5,9 @@ QT += network
TARGET = $$qtLibraryTarget(nymea_integrationpluginawattar)
SOURCES += \
integrationpluginawattar.cpp \
heatpump.cpp
integrationpluginawattar.cpp
HEADERS += \
integrationpluginawattar.h \
heatpump.h
integrationpluginawattar.h

View File

@ -1,156 +0,0 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* 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 <https://www.gnu.org/licenses/>.
*
* 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 "heatpump.h"
#include "coap/corelinkparser.h"
#include "extern-plugininfo.h"
HeatPump::HeatPump(QHostAddress address, QObject *parent) :
QObject(parent),
m_address(address),
m_reachable(false),
m_sgMode(0)
{
m_coap = new Coap(this);
connect(m_coap, SIGNAL(replyFinished(CoapReply*)), this, SLOT(onReplyFinished(CoapReply*)));
QUrl url;
url.setScheme("coap");
url.setHost(m_address.toString());
url.setPath("/.well-known/core");
qCDebug(dcAwattar) << "Discover pump resources on" << url.toString();
CoapReply *reply = m_coap->get(CoapRequest(url));
if (reply->error() != CoapReply::NoError) {
qCWarning(dcAwattar()) << "Could not discover pump resources" << reply->errorString();
reply->deleteLater();
return;
}
m_discoverReplies.append(reply);
}
QHostAddress HeatPump::address() const
{
return m_address;
}
bool HeatPump::reachable() const
{
return m_reachable;
}
void HeatPump::setSgMode(const int &sgMode)
{
// Note: always try to set sg-mode, to make sure the pump is still reachable (like a ping)
if (m_sgMode != sgMode) {
m_sgMode = sgMode;
qCDebug(dcAwattar) << "Setting sg-mode to" << sgMode;
}
QUrl url;
url.setScheme("coap");
url.setHost(m_address.toString());
url.setPath("/a/sg_mode");
QByteArray payload = QString("mode=%1").arg(QString::number(m_sgMode)).toUtf8();
CoapReply *reply = m_coap->post(CoapRequest(url), payload);
if (reply->error() != CoapReply::NoError) {
qCWarning(dcAwattar()) << "Could not set sg mode" << reply->errorString();
setReachable(false);
reply->deleteLater();
return;
}
m_sgModeReplies.append(reply);
}
void HeatPump::setReachable(const bool &reachable)
{
if (m_reachable != reachable) {
m_reachable = reachable;
emit reachableChanged();
}
}
void HeatPump::onReplyFinished(CoapReply *reply)
{
if (m_discoverReplies.contains(reply)) {
m_discoverReplies.removeAll(reply);
if (reply->error() != CoapReply::NoError) {
qCWarning(dcAwattar()) << "CoAP resource discovery reply error" << reply->errorString();
setReachable(false);
reply->deleteLater();
return;
}
if (reply->statusCode() != CoapPdu::Content) {
qCWarning(dcAwattar()) << "Resource discovery status code:" << reply;
setReachable(false);
reply->deleteLater();
return;
}
qCDebug(dcAwattar) << "Discovered successfully the resources";
CoreLinkParser parser(reply->payload());
foreach (const CoreLink &link, parser.links()) {
qCDebug(dcAwattar) << link << endl;
}
} else if (m_sgModeReplies.contains(reply)) {
m_sgModeReplies.removeAll(reply);
if (reply->error() != CoapReply::NoError) {
if (reachable())
qCWarning(dcAwattar()) << "CoAP sg-mode reply error" << reply->errorString();
setReachable(false);
reply->deleteLater();
return;
}
if (reply->statusCode() != CoapPdu::Content) {
qCWarning(dcAwattar()) << "Set sg-mode status code error:" << reply;
setReachable(false);
reply->deleteLater();
return;
}
if (!reachable())
qCDebug(dcAwattar) << "Set sg-mode successfully.";
}
// the reply had no error until now, so make sure the resource is reachable
setReachable(true);
reply->deleteLater();
}

View File

@ -1,73 +0,0 @@
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*
* 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 <https://www.gnu.org/licenses/>.
*
* 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 HEATPUMP_H
#define HEATPUMP_H
#include <QObject>
#include <QHostAddress>
#include "coap/coap.h"
#include "coap/coapreply.h"
#include "coap/coaprequest.h"
class HeatPump : public QObject
{
Q_OBJECT
public:
explicit HeatPump(QHostAddress address, QObject *parent = 0);
QHostAddress address() const;
bool reachable() const;
void setSgMode(const int &sgMode);
private:
QHostAddress m_address;
bool m_reachable;
int m_sgMode;
Coap *m_coap;
QList<CoapReply *> m_discoverReplies;
QList<CoapReply *> m_sgModeReplies;
void setReachable(const bool &reachable);
private slots:
void onReplyFinished(CoapReply *reply);
signals:
void reachableChanged();
};
#endif // HEATPUMP_H

View File

@ -40,6 +40,29 @@
IntegrationPluginAwattar::IntegrationPluginAwattar()
{
m_serverUrls[awattarATThingClassId] = "https://api.awattar.com/v1/marketdata";
m_serverUrls[awattarDEThingClassId] = "https://api.awattar.de/v1/marketdata";
m_connectedStateTypeIds[awattarATThingClassId] = awattarATConnectedStateTypeId;
m_connectedStateTypeIds[awattarDEThingClassId] = awattarDEConnectedStateTypeId;
m_currentMarketPriceStateTypeIds[awattarATThingClassId] = awattarATCurrentMarketPriceStateTypeId;
m_currentMarketPriceStateTypeIds[awattarDEThingClassId] = awattarDECurrentMarketPriceStateTypeId;
m_validUntilStateTypeIds[awattarATThingClassId] = awattarATValidUntilStateTypeId;
m_validUntilStateTypeIds[awattarDEThingClassId] = awattarDEValidUntilStateTypeId;
m_averagePriceStateTypeIds[awattarATThingClassId] = awattarATAveragePriceStateTypeId;
m_averagePriceStateTypeIds[awattarDEThingClassId] = awattarDEAveragePriceStateTypeId;
m_lowestPriceStateTypeIds[awattarATThingClassId] = awattarATLowestPriceStateTypeId;
m_lowestPriceStateTypeIds[awattarDEThingClassId] = awattarDELowestPriceStateTypeId;
m_highestPriceStateTypeIds[awattarATThingClassId] = awattarATHighestPriceStateTypeId;
m_highestPriceStateTypeIds[awattarDEThingClassId] = awattarDEHighestPriceStateTypeId;
m_averageDeviationStateTypeIds[awattarATThingClassId] = awattarATAverageDeviationStateTypeId;
m_averageDeviationStateTypeIds[awattarDEThingClassId] = awattarDEAverageDeviationStateTypeId;
}
IntegrationPluginAwattar::~IntegrationPluginAwattar()
@ -98,6 +121,7 @@ void IntegrationPluginAwattar::thingRemoved(Thing *thing)
Q_UNUSED(thing)
if (m_pluginTimer && myThings().isEmpty()) {
hardwareManager()->pluginTimerManager()->unregisterTimer(m_pluginTimer);
m_pluginTimer = nullptr;
}
}
@ -116,7 +140,7 @@ void IntegrationPluginAwattar::requestPriceData(Thing* thing, ThingSetupInfo *se
QByteArray data = QString(token + ":").toUtf8().toBase64();
QString header = "Basic " + data;
QNetworkRequest request(QUrl("https://api.awattar.com/v1/marketdata"));
QNetworkRequest request(QUrl(m_serverUrls.value(thing->thingClassId())));
request.setRawHeader("Authorization", header.toLocal8Bit());
request.setSslConfiguration(QSslConfiguration::defaultConfiguration());
QNetworkReply *reply = hardwareManager()->networkManager()->get(request);
@ -130,7 +154,7 @@ void IntegrationPluginAwattar::requestPriceData(Thing* thing, ThingSetupInfo *se
if (setup) {
setup->finish(Thing::ThingErrorHardwareFailure, QT_TR_NOOP("Error getting data from server."));
} else {
thing->setStateValue(awattarConnectedStateTypeId, false);
thing->setStateValue(m_connectedStateTypeIds.value(thing->thingClassId()), false);
}
return;
}
@ -142,7 +166,7 @@ void IntegrationPluginAwattar::requestPriceData(Thing* thing, ThingSetupInfo *se
if (setup) {
setup->finish(Thing::ThingErrorHardwareFailure, QT_TR_NOOP("The server returned unexpected data."));
} else {
thing->setStateValue(awattarConnectedStateTypeId, false);
thing->setStateValue(m_connectedStateTypeIds.value(thing->thingClassId()), false);
}
return;
}
@ -151,7 +175,7 @@ void IntegrationPluginAwattar::requestPriceData(Thing* thing, ThingSetupInfo *se
setup->finish(Thing::ThingErrorNoError);
}
thing->setStateValue(awattarConnectedStateTypeId, true);
thing->setStateValue(m_connectedStateTypeIds.value(thing->thingClassId()), true);
processPriceData(thing, jsonDoc.toVariant().toMap());
});
@ -200,8 +224,8 @@ void IntegrationPluginAwattar::processPriceData(Thing *thing, const QVariantMap
if (price < minPrice)
minPrice = price;
thing->setStateValue(awattarCurrentMarketPriceStateTypeId, currentPrice / 10.0);
thing->setStateValue(awattarValidUntilStateTypeId, endTime.toLocalTime().toTime_t());
thing->setStateValue(m_currentMarketPriceStateTypeIds.value(thing->thingClassId()), currentPrice / 10.0);
thing->setStateValue(m_validUntilStateTypeIds.value(thing->thingClassId()), endTime.toLocalTime().toTime_t());
}
}
@ -214,9 +238,9 @@ void IntegrationPluginAwattar::processPriceData(Thing *thing, const QVariantMap
deviation = qRound(-100 * (averagePrice - currentPrice) / (maxPrice - averagePrice));
}
thing->setStateValue(awattarAveragePriceStateTypeId, averagePrice / 10.0);
thing->setStateValue(awattarLowestPriceStateTypeId, minPrice / 10.0);
thing->setStateValue(awattarHighestPriceStateTypeId, maxPrice / 10.0);
thing->setStateValue(awattarAverageDeviationStateTypeId, deviation);
thing->setStateValue(m_averagePriceStateTypeIds.value(thing->thingClassId()), averagePrice / 10.0);
thing->setStateValue(m_lowestPriceStateTypeIds.value(thing->thingClassId()), minPrice / 10.0);
thing->setStateValue(m_highestPriceStateTypeIds.value(thing->thingClassId()), maxPrice / 10.0);
thing->setStateValue(m_averageDeviationStateTypeIds.value(thing->thingClassId()), deviation);
}

View File

@ -34,8 +34,6 @@
#include "integrations/integrationplugin.h"
#include "plugintimer.h"
#include "heatpump.h"
#include <QHash>
#include <QDebug>
#include <QTimer>
@ -57,13 +55,22 @@ public:
void setupThing(ThingSetupInfo *info) override;
void thingRemoved(Thing *thing) override;
private:
PluginTimer *m_pluginTimer = nullptr;
private slots:
void onPluginTimer();
void requestPriceData(Thing* thing, ThingSetupInfo *setup = nullptr);
void processPriceData(Thing *thing, const QVariantMap &data);
private:
PluginTimer *m_pluginTimer = nullptr;
QHash<ThingClassId, QString> m_serverUrls;
QHash<ThingClassId, StateTypeId> m_connectedStateTypeIds;
QHash<ThingClassId, StateTypeId> m_currentMarketPriceStateTypeIds;
QHash<ThingClassId, StateTypeId> m_validUntilStateTypeIds;
QHash<ThingClassId, StateTypeId> m_averagePriceStateTypeIds;
QHash<ThingClassId, StateTypeId> m_lowestPriceStateTypeIds;
QHash<ThingClassId, StateTypeId> m_highestPriceStateTypeIds;
QHash<ThingClassId, StateTypeId> m_averageDeviationStateTypeIds;
};
#endif // INTEGRATIONPLUGINAWATTAR_H

View File

@ -2,16 +2,6 @@
"displayName": "aWATTar",
"name": "awattar",
"id": "9c261c33-d44e-461e-8ec1-68803cb73f12",
"paramTypes": [
{
"id": "cf13eebf-f188-447a-afcb-bbd330983060",
"name": "rpl",
"displayName": "RPL address",
"type": "QString",
"inputType": "TextLine",
"defaultValue": "fdaa:e9b8:d03a::ff:fe00:1"
}
],
"vendors": [
{
"displayName": "aWATTar",
@ -20,8 +10,8 @@
"thingClasses": [
{
"id": "29cd8265-d8bb-4cf9-9080-bfc2cf9787bc",
"displayName": "aWATTar",
"name": "awattar",
"displayName": "aWATTar AT",
"name": "awattarAT",
"createMethods": ["user"],
"setupMethod": "displaypin",
"interfaces": ["connectable"],
@ -32,13 +22,14 @@
"displayName": "Online",
"displayNameEvent": "Online changed",
"type": "bool",
"defaultValue": false
"defaultValue": false,
"cached": false
},
{
"id": "eab37309-3dd8-46a0-94d4-bd05b5bb0430",
"name": "currentMarketPrice",
"displayName": "current market price",
"displayNameEvent": "current market price changed",
"displayName": "Current market price",
"displayNameEvent": "Current market price changed",
"type": "double",
"unit": "EuroCentPerKiloWattHour",
"defaultValue": 0
@ -46,8 +37,8 @@
{
"id": "38b86cee-9588-4269-a585-128907929dc2",
"name": "averageDeviation",
"displayName": "average deviation",
"displayNameEvent": "average deviation changed",
"displayName": "Average deviation",
"displayNameEvent": "Average deviation changed",
"type": "int",
"unit": "Percentage",
"defaultValue": 0
@ -55,8 +46,8 @@
{
"id": "d5a8a176-aca0-45b1-b043-95c43750f383",
"name": "validUntil",
"displayName": "valid until",
"displayNameEvent": "valid until changed",
"displayName": "Valid until",
"displayNameEvent": "Valid until changed",
"unit": "UnixTime",
"type": "int",
"defaultValue": 0
@ -64,8 +55,8 @@
{
"id": "55d6d7a8-446f-48ae-8014-1225810d03ee",
"name": "averagePrice",
"displayName": "average market price [+/- 12 h]",
"displayNameEvent": "average market price [+/- 12 h] changed",
"displayName": "Average market price [+/- 12 h]",
"displayNameEvent": "Average market price [+/- 12 h] changed",
"type": "double",
"unit": "EuroCentPerKiloWattHour",
"defaultValue": 0
@ -73,8 +64,8 @@
{
"id": "e7af5bdc-48d7-4e96-b877-331da4dcfae5",
"name": "lowestPrice",
"displayName": "lowest market price [+/- 12 h]",
"displayNameEvent": "lowest market price [+/- 12 h] changed",
"displayName": "Lowest market price [+/- 12 h]",
"displayNameEvent": "Lowest market price [+/- 12 h] changed",
"type": "double",
"unit": "EuroCentPerKiloWattHour",
"defaultValue": 0
@ -82,8 +73,81 @@
{
"id": "0c171c42-b070-453e-8a63-df9aebfa8533",
"name": "highestPrice",
"displayName": "highest market price [+/- 12 h]",
"displayNameEvent": "highest market price [+/- 12 h] changed",
"displayName": "Highest market price [+/- 12 h]",
"displayNameEvent": "Highest market price [+/- 12 h] changed",
"type": "double",
"unit": "EuroCentPerKiloWattHour",
"defaultValue": 0
}
]
},
{
"id": "61973ead-98a4-4064-8fc3-532b4ecb9f78",
"displayName": "aWATTar DE",
"name": "awattarDE",
"createMethods": ["user"],
"setupMethod": "justAdd",
"interfaces": ["connectable"],
"stateTypes": [
{
"id": "2646b541-1ce0-4656-b253-2f98608072b3",
"name": "connected",
"displayName": "Online",
"displayNameEvent": "Online changed",
"type": "bool",
"defaultValue": false,
"cached": false
},
{
"id": "048566fe-d49d-4cc7-b93b-520f727f600a",
"name": "currentMarketPrice",
"displayName": "Current market price",
"displayNameEvent": "Current market price changed",
"type": "double",
"unit": "EuroCentPerKiloWattHour",
"defaultValue": 0
},
{
"id": "f5ffd03d-e21f-4a27-bc69-f1aed426281c",
"name": "averageDeviation",
"displayName": "Average deviation",
"displayNameEvent": "Average deviation changed",
"type": "int",
"unit": "Percentage",
"defaultValue": 0
},
{
"id": "a1d9fb61-4907-4c2d-9bd8-b8cbcfe7f3e3",
"name": "validUntil",
"displayName": "Valid until",
"displayNameEvent": "Valid until changed",
"unit": "UnixTime",
"type": "int",
"defaultValue": 0
},
{
"id": "90571d1e-42c1-4a55-b70d-4781fab02313",
"name": "averagePrice",
"displayName": "Average market price [+/- 12 h]",
"displayNameEvent": "Average market price [+/- 12 h] changed",
"type": "double",
"unit": "EuroCentPerKiloWattHour",
"defaultValue": 0
},
{
"id": "9e4dd133-ecfc-4239-9536-b5ec502cb194",
"name": "lowestPrice",
"displayName": "Lowest market price [+/- 12 h]",
"displayNameEvent": "Lowest market price [+/- 12 h] changed",
"type": "double",
"unit": "EuroCentPerKiloWattHour",
"defaultValue": 0
},
{
"id": "c97662ed-0e61-4c0e-acca-6792a1c27213",
"name": "highestPrice",
"displayName": "Highest market price [+/- 12 h]",
"displayNameEvent": "Highest market price [+/- 12 h] changed",
"type": "double",
"unit": "EuroCentPerKiloWattHour",
"defaultValue": 0

View File

@ -4,151 +4,217 @@
<context>
<name>IntegrationPluginAwattar</name>
<message>
<location filename="../integrationpluginawattar.cpp" line="51"/>
<location filename="../integrationpluginawattar.cpp" line="74"/>
<source>Please enter your token for awattar.com</source>
<translation type="unfinished"></translation>
<translation>Bitte gib Dein aWATTar.com Token ein</translation>
</message>
<message>
<location filename="../integrationpluginawattar.cpp" line="72"/>
<location filename="../integrationpluginawattar.cpp" line="95"/>
<source>This token is not valid.</source>
<extracomment>Error setting up thing with invalid token</extracomment>
<translation type="unfinished"></translation>
<translation>Dieses Token ist ungültig.</translation>
</message>
<message>
<location filename="../integrationpluginawattar.cpp" line="131"/>
<location filename="../integrationpluginawattar.cpp" line="155"/>
<source>Error getting data from server.</source>
<translation type="unfinished"></translation>
<translation>Fehler beim Laden der Daten vom Server.</translation>
</message>
<message>
<location filename="../integrationpluginawattar.cpp" line="143"/>
<location filename="../integrationpluginawattar.cpp" line="167"/>
<source>The server returned unexpected data.</source>
<translation type="unfinished"></translation>
<translation>Der Server liefert unerwartete Daten.</translation>
</message>
</context>
<context>
<name>awattar</name>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="54"/>
<source>RPL address</source>
<extracomment>The name of the ParamType (ThingClass: awattar, Type: plugin, ID: {cf13eebf-f188-447a-afcb-bbd330983060})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="57"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="60"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="63"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="192"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="195"/>
<source>aWATTar</source>
<extracomment>The name of the ThingClass ({29cd8265-d8bb-4cf9-9080-bfc2cf9787bc})
----------
The name of the vendor ({acd47238-bbbc-4eaf-b484-38c52cfa4866})
<extracomment>The name of the vendor ({acd47238-bbbc-4eaf-b484-38c52cfa4866})
----------
The name of the plugin awattar ({9c261c33-d44e-461e-8ec1-68803cb73f12})</extracomment>
<translation type="unfinished"></translation>
<translation>aWATTar</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="51"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="168"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="171"/>
<source>Online changed</source>
<extracomment>The name of the EventType ({470b9b88-17f3-42e3-9250-cc181984eafe}) of ThingClass awattar</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="45"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="48"/>
<source>Online</source>
<extracomment>The name of the ParamType (ThingClass: awattar, EventType: connected, ID: {470b9b88-17f3-42e3-9250-cc181984eafe})
<extracomment>The name of the EventType ({2646b541-1ce0-4656-b253-2f98608072b3}) of ThingClass awattarDE
----------
The name of the StateType ({470b9b88-17f3-42e3-9250-cc181984eafe}) of ThingClass awattar</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="90"/>
<source>current market price changed</source>
<extracomment>The name of the EventType ({eab37309-3dd8-46a0-94d4-bd05b5bb0430}) of ThingClass awattar</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="84"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="87"/>
<source>current market price</source>
<extracomment>The name of the ParamType (ThingClass: awattar, EventType: currentMarketPrice, ID: {eab37309-3dd8-46a0-94d4-bd05b5bb0430})
----------
The name of the StateType ({eab37309-3dd8-46a0-94d4-bd05b5bb0430}) of ThingClass awattar</extracomment>
<translation type="unfinished"></translation>
The name of the EventType ({470b9b88-17f3-42e3-9250-cc181984eafe}) of ThingClass awattarAT</extracomment>
<translation>Onlinestatus geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="66"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="69"/>
<source>average deviation</source>
<extracomment>The name of the ParamType (ThingClass: awattar, EventType: averageDeviation, ID: {38b86cee-9588-4269-a585-128907929dc2})
----------
The name of the StateType ({38b86cee-9588-4269-a585-128907929dc2}) of ThingClass awattar</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="111"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="114"/>
<source>valid until</source>
<extracomment>The name of the ParamType (ThingClass: awattar, EventType: validUntil, ID: {d5a8a176-aca0-45b1-b043-95c43750f383})
----------
The name of the StateType ({d5a8a176-aca0-45b1-b043-95c43750f383}) of ThingClass awattar</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="72"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="75"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="78"/>
<source>average market price [+/- 12 h]</source>
<extracomment>The name of the ParamType (ThingClass: awattar, EventType: averagePrice, ID: {55d6d7a8-446f-48ae-8014-1225810d03ee})
<source>Average deviation</source>
<extracomment>The name of the ParamType (ThingClass: awattarDE, EventType: averageDeviation, ID: {f5ffd03d-e21f-4a27-bc69-f1aed426281c})
----------
The name of the StateType ({55d6d7a8-446f-48ae-8014-1225810d03ee}) of ThingClass awattar</extracomment>
<translation type="unfinished"></translation>
The name of the StateType ({f5ffd03d-e21f-4a27-bc69-f1aed426281c}) of ThingClass awattarDE
----------
The name of the ParamType (ThingClass: awattarAT, EventType: averageDeviation, ID: {38b86cee-9588-4269-a585-128907929dc2})
----------
The name of the StateType ({38b86cee-9588-4269-a585-128907929dc2}) of ThingClass awattarAT</extracomment>
<translation>Mittlere Abweichung</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="78"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="81"/>
<source>Average deviation changed</source>
<extracomment>The name of the EventType ({f5ffd03d-e21f-4a27-bc69-f1aed426281c}) of ThingClass awattarDE
----------
The name of the EventType ({38b86cee-9588-4269-a585-128907929dc2}) of ThingClass awattarAT</extracomment>
<translation>Mittlere Abweichung geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="84"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="87"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="90"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="93"/>
<source>Average market price [+/- 12 h]</source>
<extracomment>The name of the ParamType (ThingClass: awattarDE, EventType: averagePrice, ID: {90571d1e-42c1-4a55-b70d-4781fab02313})
----------
The name of the StateType ({90571d1e-42c1-4a55-b70d-4781fab02313}) of ThingClass awattarDE
----------
The name of the ParamType (ThingClass: awattarAT, EventType: averagePrice, ID: {55d6d7a8-446f-48ae-8014-1225810d03ee})
----------
The name of the StateType ({55d6d7a8-446f-48ae-8014-1225810d03ee}) of ThingClass awattarAT</extracomment>
<translation>Durchschnittlicher Marktpreis [±12h ]</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="96"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="99"/>
<source>Average market price [+/- 12 h] changed</source>
<extracomment>The name of the EventType ({90571d1e-42c1-4a55-b70d-4781fab02313}) of ThingClass awattarDE
----------
The name of the EventType ({55d6d7a8-446f-48ae-8014-1225810d03ee}) of ThingClass awattarAT</extracomment>
<translation>Durchschnittlicher Marktpreis [± 12h] geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="102"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="105"/>
<source>lowest market price [+/- 12 h]</source>
<extracomment>The name of the ParamType (ThingClass: awattar, EventType: lowestPrice, ID: {e7af5bdc-48d7-4e96-b877-331da4dcfae5})
----------
The name of the StateType ({e7af5bdc-48d7-4e96-b877-331da4dcfae5}) of ThingClass awattar</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="93"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="96"/>
<source>highest market price [+/- 12 h]</source>
<extracomment>The name of the ParamType (ThingClass: awattar, EventType: highestPrice, ID: {0c171c42-b070-453e-8a63-df9aebfa8533})
----------
The name of the StateType ({0c171c42-b070-453e-8a63-df9aebfa8533}) of ThingClass awattar</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="72"/>
<source>average deviation changed</source>
<extracomment>The name of the EventType ({38b86cee-9588-4269-a585-128907929dc2}) of ThingClass awattar</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="117"/>
<source>valid until changed</source>
<extracomment>The name of the EventType ({d5a8a176-aca0-45b1-b043-95c43750f383}) of ThingClass awattar</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="81"/>
<source>average market price [+/- 12 h] changed</source>
<extracomment>The name of the EventType ({55d6d7a8-446f-48ae-8014-1225810d03ee}) of ThingClass awattar</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="108"/>
<source>lowest market price [+/- 12 h] changed</source>
<extracomment>The name of the EventType ({e7af5bdc-48d7-4e96-b877-331da4dcfae5}) of ThingClass awattar</extracomment>
<translation type="unfinished"></translation>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="111"/>
<source>Current market price</source>
<extracomment>The name of the ParamType (ThingClass: awattarDE, EventType: currentMarketPrice, ID: {048566fe-d49d-4cc7-b93b-520f727f600a})
----------
The name of the StateType ({048566fe-d49d-4cc7-b93b-520f727f600a}) of ThingClass awattarDE
----------
The name of the ParamType (ThingClass: awattarAT, EventType: currentMarketPrice, ID: {eab37309-3dd8-46a0-94d4-bd05b5bb0430})
----------
The name of the StateType ({eab37309-3dd8-46a0-94d4-bd05b5bb0430}) of ThingClass awattarAT</extracomment>
<translation>Aktueller Marktpreis</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="99"/>
<source>highest market price [+/- 12 h] changed</source>
<extracomment>The name of the EventType ({0c171c42-b070-453e-8a63-df9aebfa8533}) of ThingClass awattar</extracomment>
<translation type="unfinished"></translation>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="114"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="117"/>
<source>Current market price changed</source>
<extracomment>The name of the EventType ({048566fe-d49d-4cc7-b93b-520f727f600a}) of ThingClass awattarDE
----------
The name of the EventType ({eab37309-3dd8-46a0-94d4-bd05b5bb0430}) of ThingClass awattarAT</extracomment>
<translation>Aktueller Marktpreis geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="120"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="123"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="126"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="129"/>
<source>Highest market price [+/- 12 h]</source>
<extracomment>The name of the ParamType (ThingClass: awattarDE, EventType: highestPrice, ID: {c97662ed-0e61-4c0e-acca-6792a1c27213})
----------
The name of the StateType ({c97662ed-0e61-4c0e-acca-6792a1c27213}) of ThingClass awattarDE
----------
The name of the ParamType (ThingClass: awattarAT, EventType: highestPrice, ID: {0c171c42-b070-453e-8a63-df9aebfa8533})
----------
The name of the StateType ({0c171c42-b070-453e-8a63-df9aebfa8533}) of ThingClass awattarAT</extracomment>
<translation>Höchster Marktpreis [± 12h]</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="132"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="135"/>
<source>Highest market price [+/- 12 h] changed</source>
<extracomment>The name of the EventType ({c97662ed-0e61-4c0e-acca-6792a1c27213}) of ThingClass awattarDE
----------
The name of the EventType ({0c171c42-b070-453e-8a63-df9aebfa8533}) of ThingClass awattarAT</extracomment>
<translation>Höchster Marktpreis [± 12h] geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="138"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="141"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="144"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="147"/>
<source>Lowest market price [+/- 12 h]</source>
<extracomment>The name of the ParamType (ThingClass: awattarDE, EventType: lowestPrice, ID: {9e4dd133-ecfc-4239-9536-b5ec502cb194})
----------
The name of the StateType ({9e4dd133-ecfc-4239-9536-b5ec502cb194}) of ThingClass awattarDE
----------
The name of the ParamType (ThingClass: awattarAT, EventType: lowestPrice, ID: {e7af5bdc-48d7-4e96-b877-331da4dcfae5})
----------
The name of the StateType ({e7af5bdc-48d7-4e96-b877-331da4dcfae5}) of ThingClass awattarAT</extracomment>
<translation>Tiefster Marktpreis [± 12h]</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="150"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="153"/>
<source>Lowest market price [+/- 12 h] changed</source>
<extracomment>The name of the EventType ({9e4dd133-ecfc-4239-9536-b5ec502cb194}) of ThingClass awattarDE
----------
The name of the EventType ({e7af5bdc-48d7-4e96-b877-331da4dcfae5}) of ThingClass awattarAT</extracomment>
<translation>Tiefster Marktpreis [± 12h] geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="156"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="159"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="162"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="165"/>
<source>Online</source>
<extracomment>The name of the ParamType (ThingClass: awattarDE, EventType: connected, ID: {2646b541-1ce0-4656-b253-2f98608072b3})
----------
The name of the StateType ({2646b541-1ce0-4656-b253-2f98608072b3}) of ThingClass awattarDE
----------
The name of the ParamType (ThingClass: awattarAT, EventType: connected, ID: {470b9b88-17f3-42e3-9250-cc181984eafe})
----------
The name of the StateType ({470b9b88-17f3-42e3-9250-cc181984eafe}) of ThingClass awattarAT</extracomment>
<translation>Online</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="174"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="177"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="180"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="183"/>
<source>Valid until</source>
<extracomment>The name of the ParamType (ThingClass: awattarDE, EventType: validUntil, ID: {a1d9fb61-4907-4c2d-9bd8-b8cbcfe7f3e3})
----------
The name of the StateType ({a1d9fb61-4907-4c2d-9bd8-b8cbcfe7f3e3}) of ThingClass awattarDE
----------
The name of the ParamType (ThingClass: awattarAT, EventType: validUntil, ID: {d5a8a176-aca0-45b1-b043-95c43750f383})
----------
The name of the StateType ({d5a8a176-aca0-45b1-b043-95c43750f383}) of ThingClass awattarAT</extracomment>
<translation>Gültig bis</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="186"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="189"/>
<source>Valid until changed</source>
<extracomment>The name of the EventType ({a1d9fb61-4907-4c2d-9bd8-b8cbcfe7f3e3}) of ThingClass awattarDE
----------
The name of the EventType ({d5a8a176-aca0-45b1-b043-95c43750f383}) of ThingClass awattarAT</extracomment>
<translation>Gültigkeit geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="198"/>
<source>aWATTar AT</source>
<extracomment>The name of the ThingClass ({29cd8265-d8bb-4cf9-9080-bfc2cf9787bc})</extracomment>
<translation>aWATTar AT</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="201"/>
<source>aWATTar DE</source>
<extracomment>The name of the ThingClass ({61973ead-98a4-4064-8fc3-532b4ecb9f78})</extracomment>
<translation>aWATTar DE</translation>
</message>
</context>
</TS>

View File

@ -4,23 +4,23 @@
<context>
<name>IntegrationPluginAwattar</name>
<message>
<location filename="../integrationpluginawattar.cpp" line="51"/>
<location filename="../integrationpluginawattar.cpp" line="74"/>
<source>Please enter your token for awattar.com</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../integrationpluginawattar.cpp" line="72"/>
<location filename="../integrationpluginawattar.cpp" line="95"/>
<source>This token is not valid.</source>
<extracomment>Error setting up thing with invalid token</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../integrationpluginawattar.cpp" line="131"/>
<location filename="../integrationpluginawattar.cpp" line="155"/>
<source>Error getting data from server.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../integrationpluginawattar.cpp" line="143"/>
<location filename="../integrationpluginawattar.cpp" line="167"/>
<source>The server returned unexpected data.</source>
<translation type="unfinished"></translation>
</message>
@ -28,126 +28,192 @@
<context>
<name>awattar</name>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="54"/>
<source>RPL address</source>
<extracomment>The name of the ParamType (ThingClass: awattar, Type: plugin, ID: {cf13eebf-f188-447a-afcb-bbd330983060})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="57"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="60"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="63"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="192"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="195"/>
<source>aWATTar</source>
<extracomment>The name of the ThingClass ({29cd8265-d8bb-4cf9-9080-bfc2cf9787bc})
----------
The name of the vendor ({acd47238-bbbc-4eaf-b484-38c52cfa4866})
<extracomment>The name of the vendor ({acd47238-bbbc-4eaf-b484-38c52cfa4866})
----------
The name of the plugin awattar ({9c261c33-d44e-461e-8ec1-68803cb73f12})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="51"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="168"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="171"/>
<source>Online changed</source>
<extracomment>The name of the EventType ({470b9b88-17f3-42e3-9250-cc181984eafe}) of ThingClass awattar</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="45"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="48"/>
<source>Online</source>
<extracomment>The name of the ParamType (ThingClass: awattar, EventType: connected, ID: {470b9b88-17f3-42e3-9250-cc181984eafe})
<extracomment>The name of the EventType ({2646b541-1ce0-4656-b253-2f98608072b3}) of ThingClass awattarDE
----------
The name of the StateType ({470b9b88-17f3-42e3-9250-cc181984eafe}) of ThingClass awattar</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="90"/>
<source>current market price changed</source>
<extracomment>The name of the EventType ({eab37309-3dd8-46a0-94d4-bd05b5bb0430}) of ThingClass awattar</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="84"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="87"/>
<source>current market price</source>
<extracomment>The name of the ParamType (ThingClass: awattar, EventType: currentMarketPrice, ID: {eab37309-3dd8-46a0-94d4-bd05b5bb0430})
----------
The name of the StateType ({eab37309-3dd8-46a0-94d4-bd05b5bb0430}) of ThingClass awattar</extracomment>
The name of the EventType ({470b9b88-17f3-42e3-9250-cc181984eafe}) of ThingClass awattarAT</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="66"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="69"/>
<source>average deviation</source>
<extracomment>The name of the ParamType (ThingClass: awattar, EventType: averageDeviation, ID: {38b86cee-9588-4269-a585-128907929dc2})
----------
The name of the StateType ({38b86cee-9588-4269-a585-128907929dc2}) of ThingClass awattar</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="111"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="114"/>
<source>valid until</source>
<extracomment>The name of the ParamType (ThingClass: awattar, EventType: validUntil, ID: {d5a8a176-aca0-45b1-b043-95c43750f383})
----------
The name of the StateType ({d5a8a176-aca0-45b1-b043-95c43750f383}) of ThingClass awattar</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="72"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="75"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="78"/>
<source>average market price [+/- 12 h]</source>
<extracomment>The name of the ParamType (ThingClass: awattar, EventType: averagePrice, ID: {55d6d7a8-446f-48ae-8014-1225810d03ee})
<source>Average deviation</source>
<extracomment>The name of the ParamType (ThingClass: awattarDE, EventType: averageDeviation, ID: {f5ffd03d-e21f-4a27-bc69-f1aed426281c})
----------
The name of the StateType ({55d6d7a8-446f-48ae-8014-1225810d03ee}) of ThingClass awattar</extracomment>
The name of the StateType ({f5ffd03d-e21f-4a27-bc69-f1aed426281c}) of ThingClass awattarDE
----------
The name of the ParamType (ThingClass: awattarAT, EventType: averageDeviation, ID: {38b86cee-9588-4269-a585-128907929dc2})
----------
The name of the StateType ({38b86cee-9588-4269-a585-128907929dc2}) of ThingClass awattarAT</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="78"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="81"/>
<source>Average deviation changed</source>
<extracomment>The name of the EventType ({f5ffd03d-e21f-4a27-bc69-f1aed426281c}) of ThingClass awattarDE
----------
The name of the EventType ({38b86cee-9588-4269-a585-128907929dc2}) of ThingClass awattarAT</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="84"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="87"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="90"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="93"/>
<source>Average market price [+/- 12 h]</source>
<extracomment>The name of the ParamType (ThingClass: awattarDE, EventType: averagePrice, ID: {90571d1e-42c1-4a55-b70d-4781fab02313})
----------
The name of the StateType ({90571d1e-42c1-4a55-b70d-4781fab02313}) of ThingClass awattarDE
----------
The name of the ParamType (ThingClass: awattarAT, EventType: averagePrice, ID: {55d6d7a8-446f-48ae-8014-1225810d03ee})
----------
The name of the StateType ({55d6d7a8-446f-48ae-8014-1225810d03ee}) of ThingClass awattarAT</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="96"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="99"/>
<source>Average market price [+/- 12 h] changed</source>
<extracomment>The name of the EventType ({90571d1e-42c1-4a55-b70d-4781fab02313}) of ThingClass awattarDE
----------
The name of the EventType ({55d6d7a8-446f-48ae-8014-1225810d03ee}) of ThingClass awattarAT</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="102"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="105"/>
<source>lowest market price [+/- 12 h]</source>
<extracomment>The name of the ParamType (ThingClass: awattar, EventType: lowestPrice, ID: {e7af5bdc-48d7-4e96-b877-331da4dcfae5})
----------
The name of the StateType ({e7af5bdc-48d7-4e96-b877-331da4dcfae5}) of ThingClass awattar</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="93"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="96"/>
<source>highest market price [+/- 12 h]</source>
<extracomment>The name of the ParamType (ThingClass: awattar, EventType: highestPrice, ID: {0c171c42-b070-453e-8a63-df9aebfa8533})
----------
The name of the StateType ({0c171c42-b070-453e-8a63-df9aebfa8533}) of ThingClass awattar</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="72"/>
<source>average deviation changed</source>
<extracomment>The name of the EventType ({38b86cee-9588-4269-a585-128907929dc2}) of ThingClass awattar</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="117"/>
<source>valid until changed</source>
<extracomment>The name of the EventType ({d5a8a176-aca0-45b1-b043-95c43750f383}) of ThingClass awattar</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="81"/>
<source>average market price [+/- 12 h] changed</source>
<extracomment>The name of the EventType ({55d6d7a8-446f-48ae-8014-1225810d03ee}) of ThingClass awattar</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="108"/>
<source>lowest market price [+/- 12 h] changed</source>
<extracomment>The name of the EventType ({e7af5bdc-48d7-4e96-b877-331da4dcfae5}) of ThingClass awattar</extracomment>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="111"/>
<source>Current market price</source>
<extracomment>The name of the ParamType (ThingClass: awattarDE, EventType: currentMarketPrice, ID: {048566fe-d49d-4cc7-b93b-520f727f600a})
----------
The name of the StateType ({048566fe-d49d-4cc7-b93b-520f727f600a}) of ThingClass awattarDE
----------
The name of the ParamType (ThingClass: awattarAT, EventType: currentMarketPrice, ID: {eab37309-3dd8-46a0-94d4-bd05b5bb0430})
----------
The name of the StateType ({eab37309-3dd8-46a0-94d4-bd05b5bb0430}) of ThingClass awattarAT</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="99"/>
<source>highest market price [+/- 12 h] changed</source>
<extracomment>The name of the EventType ({0c171c42-b070-453e-8a63-df9aebfa8533}) of ThingClass awattar</extracomment>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="114"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="117"/>
<source>Current market price changed</source>
<extracomment>The name of the EventType ({048566fe-d49d-4cc7-b93b-520f727f600a}) of ThingClass awattarDE
----------
The name of the EventType ({eab37309-3dd8-46a0-94d4-bd05b5bb0430}) of ThingClass awattarAT</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="120"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="123"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="126"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="129"/>
<source>Highest market price [+/- 12 h]</source>
<extracomment>The name of the ParamType (ThingClass: awattarDE, EventType: highestPrice, ID: {c97662ed-0e61-4c0e-acca-6792a1c27213})
----------
The name of the StateType ({c97662ed-0e61-4c0e-acca-6792a1c27213}) of ThingClass awattarDE
----------
The name of the ParamType (ThingClass: awattarAT, EventType: highestPrice, ID: {0c171c42-b070-453e-8a63-df9aebfa8533})
----------
The name of the StateType ({0c171c42-b070-453e-8a63-df9aebfa8533}) of ThingClass awattarAT</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="132"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="135"/>
<source>Highest market price [+/- 12 h] changed</source>
<extracomment>The name of the EventType ({c97662ed-0e61-4c0e-acca-6792a1c27213}) of ThingClass awattarDE
----------
The name of the EventType ({0c171c42-b070-453e-8a63-df9aebfa8533}) of ThingClass awattarAT</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="138"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="141"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="144"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="147"/>
<source>Lowest market price [+/- 12 h]</source>
<extracomment>The name of the ParamType (ThingClass: awattarDE, EventType: lowestPrice, ID: {9e4dd133-ecfc-4239-9536-b5ec502cb194})
----------
The name of the StateType ({9e4dd133-ecfc-4239-9536-b5ec502cb194}) of ThingClass awattarDE
----------
The name of the ParamType (ThingClass: awattarAT, EventType: lowestPrice, ID: {e7af5bdc-48d7-4e96-b877-331da4dcfae5})
----------
The name of the StateType ({e7af5bdc-48d7-4e96-b877-331da4dcfae5}) of ThingClass awattarAT</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="150"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="153"/>
<source>Lowest market price [+/- 12 h] changed</source>
<extracomment>The name of the EventType ({9e4dd133-ecfc-4239-9536-b5ec502cb194}) of ThingClass awattarDE
----------
The name of the EventType ({e7af5bdc-48d7-4e96-b877-331da4dcfae5}) of ThingClass awattarAT</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="156"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="159"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="162"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="165"/>
<source>Online</source>
<extracomment>The name of the ParamType (ThingClass: awattarDE, EventType: connected, ID: {2646b541-1ce0-4656-b253-2f98608072b3})
----------
The name of the StateType ({2646b541-1ce0-4656-b253-2f98608072b3}) of ThingClass awattarDE
----------
The name of the ParamType (ThingClass: awattarAT, EventType: connected, ID: {470b9b88-17f3-42e3-9250-cc181984eafe})
----------
The name of the StateType ({470b9b88-17f3-42e3-9250-cc181984eafe}) of ThingClass awattarAT</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="174"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="177"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="180"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="183"/>
<source>Valid until</source>
<extracomment>The name of the ParamType (ThingClass: awattarDE, EventType: validUntil, ID: {a1d9fb61-4907-4c2d-9bd8-b8cbcfe7f3e3})
----------
The name of the StateType ({a1d9fb61-4907-4c2d-9bd8-b8cbcfe7f3e3}) of ThingClass awattarDE
----------
The name of the ParamType (ThingClass: awattarAT, EventType: validUntil, ID: {d5a8a176-aca0-45b1-b043-95c43750f383})
----------
The name of the StateType ({d5a8a176-aca0-45b1-b043-95c43750f383}) of ThingClass awattarAT</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="186"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="189"/>
<source>Valid until changed</source>
<extracomment>The name of the EventType ({a1d9fb61-4907-4c2d-9bd8-b8cbcfe7f3e3}) of ThingClass awattarDE
----------
The name of the EventType ({d5a8a176-aca0-45b1-b043-95c43750f383}) of ThingClass awattarAT</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="198"/>
<source>aWATTar AT</source>
<extracomment>The name of the ThingClass ({29cd8265-d8bb-4cf9-9080-bfc2cf9787bc})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/awattar/plugininfo.h" line="201"/>
<source>aWATTar DE</source>
<extracomment>The name of the ThingClass ({61973ead-98a4-4064-8fc3-532b4ecb9f78})</extracomment>
<translation type="unfinished"></translation>
</message>
</context>