diff --git a/awattar/README.md b/awattar/README.md
index d6ee857e..151fb498 100644
--- a/awattar/README.md
+++ b/awattar/README.md
@@ -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

-# 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.
-
diff --git a/awattar/awattar.pro b/awattar/awattar.pro
index 1f9cf86d..567b07c8 100644
--- a/awattar/awattar.pro
+++ b/awattar/awattar.pro
@@ -5,11 +5,9 @@ QT += network
TARGET = $$qtLibraryTarget(nymea_integrationpluginawattar)
SOURCES += \
- integrationpluginawattar.cpp \
- heatpump.cpp
+ integrationpluginawattar.cpp
HEADERS += \
- integrationpluginawattar.h \
- heatpump.h
+ integrationpluginawattar.h
diff --git a/awattar/heatpump.cpp b/awattar/heatpump.cpp
deleted file mode 100644
index 18aabcc2..00000000
--- a/awattar/heatpump.cpp
+++ /dev/null
@@ -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 .
-*
-* 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();
-}
diff --git a/awattar/heatpump.h b/awattar/heatpump.h
deleted file mode 100644
index 03484f52..00000000
--- a/awattar/heatpump.h
+++ /dev/null
@@ -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 .
-*
-* 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
-#include
-
-
-#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 m_discoverReplies;
- QList m_sgModeReplies;
-
- void setReachable(const bool &reachable);
-
-private slots:
- void onReplyFinished(CoapReply *reply);
-
-signals:
- void reachableChanged();
-
-
-};
-
-#endif // HEATPUMP_H
diff --git a/awattar/integrationpluginawattar.cpp b/awattar/integrationpluginawattar.cpp
index 1476f4d3..11b60400 100644
--- a/awattar/integrationpluginawattar.cpp
+++ b/awattar/integrationpluginawattar.cpp
@@ -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);
}
diff --git a/awattar/integrationpluginawattar.h b/awattar/integrationpluginawattar.h
index a1fb4dc8..042b7dbc 100644
--- a/awattar/integrationpluginawattar.h
+++ b/awattar/integrationpluginawattar.h
@@ -34,8 +34,6 @@
#include "integrations/integrationplugin.h"
#include "plugintimer.h"
-#include "heatpump.h"
-
#include
#include
#include
@@ -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 m_serverUrls;
+ QHash m_connectedStateTypeIds;
+ QHash m_currentMarketPriceStateTypeIds;
+ QHash m_validUntilStateTypeIds;
+ QHash m_averagePriceStateTypeIds;
+ QHash m_lowestPriceStateTypeIds;
+ QHash m_highestPriceStateTypeIds;
+ QHash m_averageDeviationStateTypeIds;
};
#endif // INTEGRATIONPLUGINAWATTAR_H
diff --git a/awattar/integrationpluginawattar.json b/awattar/integrationpluginawattar.json
index 4e197aa3..366e58f8 100644
--- a/awattar/integrationpluginawattar.json
+++ b/awattar/integrationpluginawattar.json
@@ -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
diff --git a/awattar/translations/9c261c33-d44e-461e-8ec1-68803cb73f12-de_DE.ts b/awattar/translations/9c261c33-d44e-461e-8ec1-68803cb73f12-de_DE.ts
index bc35467e..d8e2757d 100644
--- a/awattar/translations/9c261c33-d44e-461e-8ec1-68803cb73f12-de_DE.ts
+++ b/awattar/translations/9c261c33-d44e-461e-8ec1-68803cb73f12-de_DE.ts
@@ -4,151 +4,217 @@
IntegrationPluginAwattar
-
+ Please enter your token for awattar.com
-
+ Bitte gib Dein aWATTar.com Token ein
-
+ This token is not valid.Error setting up thing with invalid token
-
+ Dieses Token ist ungültig.
-
+ Error getting data from server.
-
+ Fehler beim Laden der Daten vom Server.
-
+ The server returned unexpected data.
-
+ Der Server liefert unerwartete Daten.awattar
-
- RPL address
- The name of the ParamType (ThingClass: awattar, Type: plugin, ID: {cf13eebf-f188-447a-afcb-bbd330983060})
-
-
-
-
-
-
+
+ aWATTar
- The name of the ThingClass ({29cd8265-d8bb-4cf9-9080-bfc2cf9787bc})
-----------
-The name of the vendor ({acd47238-bbbc-4eaf-b484-38c52cfa4866})
+ The name of the vendor ({acd47238-bbbc-4eaf-b484-38c52cfa4866})
----------
The name of the plugin awattar ({9c261c33-d44e-461e-8ec1-68803cb73f12})
-
+ aWATTar
-
+
+ Online changed
- The name of the EventType ({470b9b88-17f3-42e3-9250-cc181984eafe}) of ThingClass awattar
-
-
-
-
-
- Online
- The name of the ParamType (ThingClass: awattar, EventType: connected, ID: {470b9b88-17f3-42e3-9250-cc181984eafe})
+ 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
-
-
-
-
- current market price changed
- The name of the EventType ({eab37309-3dd8-46a0-94d4-bd05b5bb0430}) of ThingClass awattar
-
-
-
-
-
- current market price
- 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
-
+The name of the EventType ({470b9b88-17f3-42e3-9250-cc181984eafe}) of ThingClass awattarAT
+ Onlinestatus geändert
- average deviation
- 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
-
-
-
-
-
- valid until
- 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
-
-
-
+
-
- average market price [+/- 12 h]
- The name of the ParamType (ThingClass: awattar, EventType: averagePrice, ID: {55d6d7a8-446f-48ae-8014-1225810d03ee})
+ Average deviation
+ 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
-
+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
+ Mittlere Abweichung
+
+
+
+
+ Average deviation changed
+ 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
+ Mittlere Abweichung geändert
+
+
+
+
+
+
+ Average market price [+/- 12 h]
+ 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
+ Durchschnittlicher Marktpreis [±12h ]
+
+
+
+
+ Average market price [+/- 12 h] changed
+ 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
+ Durchschnittlicher Marktpreis [± 12h] geändert
- lowest market price [+/- 12 h]
- 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
-
-
-
-
-
- highest market price [+/- 12 h]
- 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
-
-
-
-
- average deviation changed
- The name of the EventType ({38b86cee-9588-4269-a585-128907929dc2}) of ThingClass awattar
-
-
-
-
- valid until changed
- The name of the EventType ({d5a8a176-aca0-45b1-b043-95c43750f383}) of ThingClass awattar
-
-
-
-
- average market price [+/- 12 h] changed
- The name of the EventType ({55d6d7a8-446f-48ae-8014-1225810d03ee}) of ThingClass awattar
-
-
-
- lowest market price [+/- 12 h] changed
- The name of the EventType ({e7af5bdc-48d7-4e96-b877-331da4dcfae5}) of ThingClass awattar
-
+
+ Current market price
+ 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
+ Aktueller Marktpreis
-
- highest market price [+/- 12 h] changed
- The name of the EventType ({0c171c42-b070-453e-8a63-df9aebfa8533}) of ThingClass awattar
-
+
+
+ Current market price changed
+ 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
+ Aktueller Marktpreis geändert
+
+
+
+
+
+
+ Highest market price [+/- 12 h]
+ 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
+ Höchster Marktpreis [± 12h]
+
+
+
+
+ Highest market price [+/- 12 h] changed
+ 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
+ Höchster Marktpreis [± 12h] geändert
+
+
+
+
+
+
+ Lowest market price [+/- 12 h]
+ 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
+ Tiefster Marktpreis [± 12h]
+
+
+
+
+ Lowest market price [+/- 12 h] changed
+ 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
+ Tiefster Marktpreis [± 12h] geändert
+
+
+
+
+
+
+ Online
+ 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
+ Online
+
+
+
+
+
+
+ Valid until
+ 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
+ Gültig bis
+
+
+
+
+ Valid until changed
+ 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
+ Gültigkeit geändert
+
+
+
+ aWATTar AT
+ The name of the ThingClass ({29cd8265-d8bb-4cf9-9080-bfc2cf9787bc})
+ aWATTar AT
+
+
+
+ aWATTar DE
+ The name of the ThingClass ({61973ead-98a4-4064-8fc3-532b4ecb9f78})
+ aWATTar DE
diff --git a/awattar/translations/9c261c33-d44e-461e-8ec1-68803cb73f12-en_US.ts b/awattar/translations/9c261c33-d44e-461e-8ec1-68803cb73f12-en_US.ts
index a5166a58..3ebd1e9d 100644
--- a/awattar/translations/9c261c33-d44e-461e-8ec1-68803cb73f12-en_US.ts
+++ b/awattar/translations/9c261c33-d44e-461e-8ec1-68803cb73f12-en_US.ts
@@ -4,23 +4,23 @@
IntegrationPluginAwattar
-
+ Please enter your token for awattar.com
-
+ This token is not valid.Error setting up thing with invalid token
-
+ Error getting data from server.
-
+ The server returned unexpected data.
@@ -28,126 +28,192 @@
awattar
-
- RPL address
- The name of the ParamType (ThingClass: awattar, Type: plugin, ID: {cf13eebf-f188-447a-afcb-bbd330983060})
-
-
-
-
-
-
+
+ aWATTar
- The name of the ThingClass ({29cd8265-d8bb-4cf9-9080-bfc2cf9787bc})
-----------
-The name of the vendor ({acd47238-bbbc-4eaf-b484-38c52cfa4866})
+ The name of the vendor ({acd47238-bbbc-4eaf-b484-38c52cfa4866})
----------
The name of the plugin awattar ({9c261c33-d44e-461e-8ec1-68803cb73f12})
-
+
+ Online changed
- The name of the EventType ({470b9b88-17f3-42e3-9250-cc181984eafe}) of ThingClass awattar
-
-
-
-
-
- Online
- The name of the ParamType (ThingClass: awattar, EventType: connected, ID: {470b9b88-17f3-42e3-9250-cc181984eafe})
+ 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
-
-
-
-
- current market price changed
- The name of the EventType ({eab37309-3dd8-46a0-94d4-bd05b5bb0430}) of ThingClass awattar
-
-
-
-
-
- current market price
- 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
+The name of the EventType ({470b9b88-17f3-42e3-9250-cc181984eafe}) of ThingClass awattarAT
- average deviation
- 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
-
-
-
-
-
- valid until
- 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
-
-
-
+
-
- average market price [+/- 12 h]
- The name of the ParamType (ThingClass: awattar, EventType: averagePrice, ID: {55d6d7a8-446f-48ae-8014-1225810d03ee})
+ Average deviation
+ 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
+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
+
+
+
+
+
+ Average deviation changed
+ 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
+
+
+
+
+
+
+
+ Average market price [+/- 12 h]
+ 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
+
+
+
+
+
+ Average market price [+/- 12 h] changed
+ 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
- lowest market price [+/- 12 h]
- 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
-
-
-
-
-
- highest market price [+/- 12 h]
- 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
-
-
-
-
- average deviation changed
- The name of the EventType ({38b86cee-9588-4269-a585-128907929dc2}) of ThingClass awattar
-
-
-
-
- valid until changed
- The name of the EventType ({d5a8a176-aca0-45b1-b043-95c43750f383}) of ThingClass awattar
-
-
-
-
- average market price [+/- 12 h] changed
- The name of the EventType ({55d6d7a8-446f-48ae-8014-1225810d03ee}) of ThingClass awattar
-
-
-
- lowest market price [+/- 12 h] changed
- The name of the EventType ({e7af5bdc-48d7-4e96-b877-331da4dcfae5}) of ThingClass awattar
+
+ Current market price
+ 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
-
- highest market price [+/- 12 h] changed
- The name of the EventType ({0c171c42-b070-453e-8a63-df9aebfa8533}) of ThingClass awattar
+
+
+ Current market price changed
+ 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
+
+
+
+
+
+
+
+ Highest market price [+/- 12 h]
+ 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
+
+
+
+
+
+ Highest market price [+/- 12 h] changed
+ 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
+
+
+
+
+
+
+
+ Lowest market price [+/- 12 h]
+ 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
+
+
+
+
+
+ Lowest market price [+/- 12 h] changed
+ 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
+
+
+
+
+
+
+
+ Online
+ 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
+
+
+
+
+
+
+
+ Valid until
+ 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
+
+
+
+
+
+ Valid until changed
+ 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
+
+
+
+
+ aWATTar AT
+ The name of the ThingClass ({29cd8265-d8bb-4cf9-9080-bfc2cf9787bc})
+
+
+
+
+ aWATTar DE
+ The name of the ThingClass ({61973ead-98a4-4064-8fc3-532b4ecb9f78})