Use API key provider in openweathermap plugin

master
Michael Zanetti 2020-10-19 12:38:36 +02:00
parent 9f68b37e50
commit df372d917e
5 changed files with 293 additions and 279 deletions

View File

@ -44,30 +44,19 @@
IntegrationPluginOpenweathermap::IntegrationPluginOpenweathermap()
{
// max 60 calls/minute
// max 50000 calls/day
m_apiKey = "c1b9d5584bb740804871583f6c62744f";
QSettings settings(NymeaSettings::settingsPath() + "/nymead.conf", QSettings::IniFormat);
settings.beginGroup("OpenWeatherMap");
if (settings.contains("apiKey")) {
m_apiKey = settings.value("apiKey").toString();
QString printedCopy = m_apiKey;
qCDebug(dcOpenWeatherMap()) << "Using custom API key:" << printedCopy.replace(printedCopy.length() - 10, 10, "**********");
}
settings.endGroup();
}
IntegrationPluginOpenweathermap::~IntegrationPluginOpenweathermap()
{
hardwareManager()->pluginTimerManager()->unregisterTimer(m_pluginTimer);
}
void IntegrationPluginOpenweathermap::init()
{
m_pluginTimer = hardwareManager()->pluginTimerManager()->registerTimer(900);
connect(m_pluginTimer, &PluginTimer::timeout, this, &IntegrationPluginOpenweathermap::onPluginTimer);
updateApiKey();
connect(this, &IntegrationPlugin::configValueChanged, this, &IntegrationPluginOpenweathermap::updateApiKey);
connect(apiKeyStorage(), &ApiKeyStorage::keyAdded, this, &IntegrationPluginOpenweathermap::updateApiKey);
connect(apiKeyStorage(), &ApiKeyStorage::keyUpdated, this, &IntegrationPluginOpenweathermap::updateApiKey);
}
void IntegrationPluginOpenweathermap::discoverThings(ThingDiscoveryInfo *info)
@ -85,7 +74,21 @@ void IntegrationPluginOpenweathermap::discoverThings(ThingDiscoveryInfo *info)
void IntegrationPluginOpenweathermap::setupThing(ThingSetupInfo *info)
{
update(info->thing());
if (m_apiKey.isEmpty()) {
info->finish(Thing::ThingErrorAuthenticationFailure, QT_TR_NOOP("No API key for OpenWeatherMap available."));
return;
}
info->finish(Thing::ThingErrorNoError);
if (!m_pluginTimer) {
m_pluginTimer = hardwareManager()->pluginTimerManager()->registerTimer(900);
connect(m_pluginTimer, &PluginTimer::timeout, this, [this](){
foreach (Thing *thing, myThings()) {
update(thing);
}
});
}
}
void IntegrationPluginOpenweathermap::executeAction(ThingActionInfo *info)
@ -96,37 +99,28 @@ void IntegrationPluginOpenweathermap::executeAction(ThingActionInfo *info)
void IntegrationPluginOpenweathermap::thingRemoved(Thing *thing)
{
// check if a thing gets removed while we still have a reply!
foreach (Thing *d, m_weatherReplies.values()) {
if (d->id() == thing->id()) {
QNetworkReply *reply = m_weatherReplies.key(thing);
m_weatherReplies.take(reply);
reply->deleteLater();
}
Q_UNUSED(thing)
if (myThings().isEmpty()) {
hardwareManager()->pluginTimerManager()->unregisterTimer(m_pluginTimer);
m_pluginTimer = nullptr;
}
}
void IntegrationPluginOpenweathermap::networkManagerReplyReady()
void IntegrationPluginOpenweathermap::updateApiKey()
{
QNetworkReply *reply = static_cast<QNetworkReply *>(sender());
if (reply->error()) {
qCWarning(dcOpenWeatherMap) << "OpenWeatherMap reply error: " << reply->errorString();
reply->deleteLater();
return;
if (!(m_apiKey = configValue(openWeatherMapPluginCustomApiKeyParamTypeId).toString()).isEmpty()) {
qCDebug(dcOpenWeatherMap()) << "Using API key from plugin settings.";
} else if (!(m_apiKey = apiKeyStorage()->requestKey("openweathermap").data("appid")).isEmpty()) {
qCDebug(dcOpenWeatherMap()) << "Using API key from nymea API keys provider";
} else {
qCWarning(dcOpenWeatherMap()) << "No API key set. This plugin might not work correctly.";
qCWarning(dcOpenWeatherMap()) << "Either install an API key pacakge (nymea-apikeysprovider-plugin-*) or provide a key in the plugin settings.";
}
if (m_weatherReplies.contains(reply)) {
QByteArray data = reply->readAll();
Thing* thing = m_weatherReplies.take(reply);
processWeatherData(data, thing);
}
reply->deleteLater();
}
void IntegrationPluginOpenweathermap::update(Thing *thing)
{
qCDebug(dcOpenWeatherMap()) << "Refresh data for" << thing->name();
qCDebug(dcOpenWeatherMap()) << "Refreshing data for" << thing->name();
QUrl url("http://api.openweathermap.org/data/2.5/weather");
QUrlQuery query;
query.addQueryItem("id", thing->paramValue(openweathermapThingIdParamTypeId).toString());
@ -136,8 +130,113 @@ void IntegrationPluginOpenweathermap::update(Thing *thing)
url.setQuery(query);
QNetworkReply *reply = hardwareManager()->networkManager()->get(QNetworkRequest(url));
connect(reply, &QNetworkReply::finished, this, &IntegrationPluginOpenweathermap::networkManagerReplyReady);
m_weatherReplies.insert(reply, thing);
connect(reply, &QNetworkReply::finished, reply, &QNetworkReply::deleteLater);
connect(reply, &QNetworkReply::finished, thing, [thing, reply](){
if (reply->error() != QNetworkReply::NoError) {
qCWarning(dcOpenWeatherMap) << "OpenWeatherMap reply error: " << reply->errorString();
return;
}
QByteArray data = reply->readAll();
QJsonParseError error;
QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &error);
if (error.error != QJsonParseError::NoError) {
qCWarning(dcOpenWeatherMap()) << "failed to parse weather data for thing " << thing->name() << "\n" << data << "\n" << error.errorString();
return;
}
qCDebug(dcOpenWeatherMap()) << "Received" << qUtf8Printable(jsonDoc.toJson());
// http://openweathermap.org/current
QVariantMap dataMap = jsonDoc.toVariant().toMap();
if (dataMap.contains("clouds")) {
int cloudiness = dataMap.value("clouds").toMap().value("all").toInt();
thing->setStateValue(openweathermapCloudinessStateTypeId, cloudiness);
}
if (dataMap.contains("dt")) {
uint lastUpdate = dataMap.value("dt").toUInt();
thing->setStateValue(openweathermapUpdateTimeStateTypeId, lastUpdate);
}
if (dataMap.contains("main")) {
double temperatur = dataMap.value("main").toMap().value("temp").toDouble();
double temperaturMax = dataMap.value("main").toMap().value("temp_max").toDouble();
double temperaturMin = dataMap.value("main").toMap().value("temp_min").toDouble();
double pressure = dataMap.value("main").toMap().value("pressure").toDouble();
int humidity = dataMap.value("main").toMap().value("humidity").toInt();
thing->setStateValue(openweathermapTemperatureStateTypeId, temperatur);
thing->setStateValue(openweathermapTemperatureMinStateTypeId, temperaturMin);
thing->setStateValue(openweathermapTemperatureMaxStateTypeId, temperaturMax);
thing->setStateValue(openweathermapPressureStateTypeId, pressure);
thing->setStateValue(openweathermapHumidityStateTypeId, humidity);
}
if (dataMap.contains("sys")) {
qint64 sunrise = dataMap.value("sys").toMap().value("sunrise").toLongLong();
qint64 sunset = dataMap.value("sys").toMap().value("sunset").toLongLong();
thing->setStateValue(openweathermapSunriseTimeStateTypeId, sunrise);
thing->setStateValue(openweathermapSunsetTimeStateTypeId, sunset);
QTimeZone tz = QTimeZone(QTimeZone::systemTimeZoneId());
QDateTime up = QDateTime::fromMSecsSinceEpoch(sunrise * 1000);
QDateTime down = QDateTime::fromMSecsSinceEpoch(sunset * 1000);
QDateTime now = QDateTime::currentDateTime().toTimeZone(tz);
thing->setStateValue(openweathermapDaylightStateTypeId, up < now && down > now);
}
if (dataMap.contains("visibility")) {
int visibility = dataMap.value("visibility").toInt();
thing->setStateValue(openweathermapVisibilityStateTypeId, visibility);
}
// http://openweathermap.org/weather-conditions
if (dataMap.contains("weather") && dataMap.value("weather").toList().count() > 0) {
int conditionId = dataMap.value("weather").toList().first().toMap().value("id").toInt();
if (conditionId == 800) {
if (thing->stateValue(openweathermapUpdateTimeStateTypeId).toInt() > thing->stateValue(openweathermapSunriseTimeStateTypeId).toInt() &&
thing->stateValue(openweathermapUpdateTimeStateTypeId).toInt() < thing->stateValue(openweathermapSunsetTimeStateTypeId).toInt()) {
thing->setStateValue(openweathermapWeatherConditionStateTypeId, "clear-day");
} else {
thing->setStateValue(openweathermapWeatherConditionStateTypeId, "clear-night");
}
} else if (conditionId == 801) {
if (thing->stateValue(openweathermapUpdateTimeStateTypeId).toInt() > thing->stateValue(openweathermapSunriseTimeStateTypeId).toInt() &&
thing->stateValue(openweathermapUpdateTimeStateTypeId).toInt() < thing->stateValue(openweathermapSunsetTimeStateTypeId).toInt()) {
thing->setStateValue(openweathermapWeatherConditionStateTypeId, "few-clouds-day");
} else {
thing->setStateValue(openweathermapWeatherConditionStateTypeId, "few-clouds-night");
}
} else if (conditionId == 802) {
thing->setStateValue(openweathermapWeatherConditionStateTypeId, "clouds");
} else if (conditionId >= 803 && conditionId < 900) {
thing->setStateValue(openweathermapWeatherConditionStateTypeId, "overcast");
} else if (conditionId >= 300 && conditionId < 400) {
thing->setStateValue(openweathermapWeatherConditionStateTypeId, "light-rain");
} else if (conditionId >= 500 && conditionId < 600) {
thing->setStateValue(openweathermapWeatherConditionStateTypeId, "shower-rain");
} else if (conditionId >= 200 && conditionId < 300) {
thing->setStateValue(openweathermapWeatherConditionStateTypeId, "thunderstorm");
} else if (conditionId >= 600 && conditionId < 700) {
thing->setStateValue(openweathermapWeatherConditionStateTypeId, "snow");
} else if (conditionId >= 700 && conditionId < 800) {
thing->setStateValue(openweathermapWeatherConditionStateTypeId, "fog");
}
QString description = dataMap.value("weather").toList().first().toMap().value("description").toString();
thing->setStateValue(openweathermapWeatherDescriptionStateTypeId, description);
}
if (dataMap.contains("wind")) {
int windDirection = dataMap.value("wind").toMap().value("deg").toInt();
double windSpeed = dataMap.value("wind").toMap().value("speed").toDouble();
thing->setStateValue(openweathermapWindDirectionStateTypeId, windDirection);
thing->setStateValue(openweathermapWindSpeedStateTypeId, windSpeed);
}
});
}
void IntegrationPluginOpenweathermap::searchAutodetect(ThingDiscoveryInfo *info)
@ -305,111 +404,4 @@ void IntegrationPluginOpenweathermap::processSearchResults(const QList<QVariantM
info->finish(Thing::ThingErrorNoError);
}
void IntegrationPluginOpenweathermap::processWeatherData(const QByteArray &data, Thing *thing)
{
QJsonParseError error;
QJsonDocument jsonDoc = QJsonDocument::fromJson(data, &error);
//qCDebug(dcOpenWeatherMap) << jsonDoc.toJson();
if (error.error != QJsonParseError::NoError) {
qCWarning(dcOpenWeatherMap) << "failed to parse weather data for thing " << thing->name() << ": " << data << ":" << error.errorString();
return;
}
// http://openweathermap.org/current
QVariantMap dataMap = jsonDoc.toVariant().toMap();
if (dataMap.contains("clouds")) {
int cloudiness = dataMap.value("clouds").toMap().value("all").toInt();
thing->setStateValue(openweathermapCloudinessStateTypeId, cloudiness);
}
if (dataMap.contains("dt")) {
uint lastUpdate = dataMap.value("dt").toUInt();
thing->setStateValue(openweathermapUpdateTimeStateTypeId, lastUpdate);
}
if (dataMap.contains("main")) {
double temperatur = dataMap.value("main").toMap().value("temp").toDouble();
double temperaturMax = dataMap.value("main").toMap().value("temp_max").toDouble();
double temperaturMin = dataMap.value("main").toMap().value("temp_min").toDouble();
double pressure = dataMap.value("main").toMap().value("pressure").toDouble();
int humidity = dataMap.value("main").toMap().value("humidity").toInt();
thing->setStateValue(openweathermapTemperatureStateTypeId, temperatur);
thing->setStateValue(openweathermapTemperatureMinStateTypeId, temperaturMin);
thing->setStateValue(openweathermapTemperatureMaxStateTypeId, temperaturMax);
thing->setStateValue(openweathermapPressureStateTypeId, pressure);
thing->setStateValue(openweathermapHumidityStateTypeId, humidity);
}
if (dataMap.contains("sys")) {
qint64 sunrise = dataMap.value("sys").toMap().value("sunrise").toLongLong();
qint64 sunset = dataMap.value("sys").toMap().value("sunset").toLongLong();
thing->setStateValue(openweathermapSunriseTimeStateTypeId, sunrise);
thing->setStateValue(openweathermapSunsetTimeStateTypeId, sunset);
QTimeZone tz = QTimeZone(QTimeZone::systemTimeZoneId());
QDateTime up = QDateTime::fromMSecsSinceEpoch(sunrise * 1000);
QDateTime down = QDateTime::fromMSecsSinceEpoch(sunset * 1000);
QDateTime now = QDateTime::currentDateTime().toTimeZone(tz);
thing->setStateValue(openweathermapDaylightStateTypeId, up < now && down > now);
}
if (dataMap.contains("visibility")) {
int visibility = dataMap.value("visibility").toInt();
thing->setStateValue(openweathermapVisibilityStateTypeId, visibility);
}
// http://openweathermap.org/weather-conditions
if (dataMap.contains("weather") && dataMap.value("weather").toList().count() > 0) {
int conditionId = dataMap.value("weather").toList().first().toMap().value("id").toInt();
if (conditionId == 800) {
if (thing->stateValue(openweathermapUpdateTimeStateTypeId).toInt() > thing->stateValue(openweathermapSunriseTimeStateTypeId).toInt() &&
thing->stateValue(openweathermapUpdateTimeStateTypeId).toInt() < thing->stateValue(openweathermapSunsetTimeStateTypeId).toInt()) {
thing->setStateValue(openweathermapWeatherConditionStateTypeId, "clear-day");
} else {
thing->setStateValue(openweathermapWeatherConditionStateTypeId, "clear-night");
}
} else if (conditionId == 801) {
if (thing->stateValue(openweathermapUpdateTimeStateTypeId).toInt() > thing->stateValue(openweathermapSunriseTimeStateTypeId).toInt() &&
thing->stateValue(openweathermapUpdateTimeStateTypeId).toInt() < thing->stateValue(openweathermapSunsetTimeStateTypeId).toInt()) {
thing->setStateValue(openweathermapWeatherConditionStateTypeId, "few-clouds-day");
} else {
thing->setStateValue(openweathermapWeatherConditionStateTypeId, "few-clouds-night");
}
} else if (conditionId == 802) {
thing->setStateValue(openweathermapWeatherConditionStateTypeId, "clouds");
} else if (conditionId >= 803 && conditionId < 900) {
thing->setStateValue(openweathermapWeatherConditionStateTypeId, "overcast");
} else if (conditionId >= 300 && conditionId < 400) {
thing->setStateValue(openweathermapWeatherConditionStateTypeId, "light-rain");
} else if (conditionId >= 500 && conditionId < 600) {
thing->setStateValue(openweathermapWeatherConditionStateTypeId, "shower-rain");
} else if (conditionId >= 200 && conditionId < 300) {
thing->setStateValue(openweathermapWeatherConditionStateTypeId, "thunderstorm");
} else if (conditionId >= 600 && conditionId < 700) {
thing->setStateValue(openweathermapWeatherConditionStateTypeId, "snow");
} else if (conditionId >= 700 && conditionId < 800) {
thing->setStateValue(openweathermapWeatherConditionStateTypeId, "fog");
}
QString description = dataMap.value("weather").toList().first().toMap().value("description").toString();
thing->setStateValue(openweathermapWeatherDescriptionStateTypeId, description);
}
if (dataMap.contains("wind")) {
int windDirection = dataMap.value("wind").toMap().value("deg").toInt();
double windSpeed = dataMap.value("wind").toMap().value("speed").toDouble();
thing->setStateValue(openweathermapWindDirectionStateTypeId, windDirection);
thing->setStateValue(openweathermapWindSpeedStateTypeId, windSpeed);
}
}
void IntegrationPluginOpenweathermap::onPluginTimer()
{
foreach (Thing *thing, myThings()) {
update(thing);
}
}

View File

@ -56,28 +56,18 @@ public:
void thingRemoved(Thing *thing) override;
private:
PluginTimer *m_pluginTimer = nullptr;
QHash<QNetworkReply *, Thing *> m_weatherReplies;
private slots:
void updateApiKey();
private:
QString m_apiKey;
PluginTimer *m_pluginTimer = nullptr;
void update(Thing *thing);
void searchAutodetect(ThingDiscoveryInfo *info);
void search(QString searchString, ThingDiscoveryInfo *info);
void searchGeoLocation(double lat, double lon, const QString &country, ThingDiscoveryInfo *info);
void processAutodetectResponse(QByteArray data);
void processSearchResponse(QByteArray data);
void processGeoSearchResponse(QByteArray data);
void processSearchResults(const QList<QVariantMap> &cityList, ThingDiscoveryInfo *info);
void processWeatherData(const QByteArray &data, Thing *thing);
private slots:
void networkManagerReplyReady();
void onPluginTimer();
};
#endif // INTEGRATIONPLUGINOPENWEATHERMAP_H

View File

@ -2,6 +2,16 @@
"name": "OpenWeatherMap",
"displayName": "OpenWeatherMap",
"id": "bc6af567-2338-41d5-aac1-462dec6e4783",
"apiKeys": ["openweathermap"],
"paramTypes": [
{
"id": "71d075c3-4c4f-4864-99be-42a3121ce196",
"name": "customApiKey",
"displayName": "Custom API key",
"type": "QString",
"defaultValue": ""
}
],
"vendors": [
{
"name": "openWeatherMap",

View File

@ -4,28 +4,33 @@
<context>
<name>IntegrationPluginOpenweathermap</name>
<message>
<location filename="../integrationpluginopenweathermap.cpp" line="149"/>
<location filename="../integrationpluginopenweathermap.cpp" line="79"/>
<source>No API key for OpenWeatherMap available.</source>
<translation>Kein API Key für OpenWeatherMap verfügbar.</translation>
</message>
<message>
<location filename="../integrationpluginopenweathermap.cpp" line="249"/>
<source>Error detecting current location.</source>
<translation>Fehler bei der Erkennung der aktuellen Position.</translation>
</message>
<message>
<location filename="../integrationpluginopenweathermap.cpp" line="158"/>
<location filename="../integrationpluginopenweathermap.cpp" line="258"/>
<source>Received unexpected data detecting current location.</source>
<translation>Unerwartete Daten zur Erkennung der aktuellen Position empfangen.</translation>
</message>
<message>
<location filename="../integrationpluginopenweathermap.cpp" line="201"/>
<location filename="../integrationpluginopenweathermap.cpp" line="301"/>
<source>Error searching for weather stations.</source>
<translation>Fehler bei der Suche nach Wetterstationen.</translation>
</message>
<message>
<location filename="../integrationpluginopenweathermap.cpp" line="210"/>
<location filename="../integrationpluginopenweathermap.cpp" line="259"/>
<location filename="../integrationpluginopenweathermap.cpp" line="310"/>
<location filename="../integrationpluginopenweathermap.cpp" line="359"/>
<source>Received unexpected data while searching for weather stations.</source>
<translation>Erhielt unerwartete Daten bei der Suche nach Wetterstationen.</translation>
</message>
<message>
<location filename="../integrationpluginopenweathermap.cpp" line="250"/>
<location filename="../integrationpluginopenweathermap.cpp" line="350"/>
<source>Error searching for weather stations in current location.</source>
<translation>Fehler bei der Suche nach Wetterstationen am aktuellen Standort.</translation>
</message>
@ -33,8 +38,8 @@
<context>
<name>OpenWeatherMap</name>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="73"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="76"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="77"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="80"/>
<source>OpenWeatherMap</source>
<extracomment>The name of the vendor ({bf1e96f0-9650-4e7c-a56c-916d54d18e7a})
----------
@ -42,38 +47,44 @@ The name of the plugin OpenWeatherMap ({bc6af567-2338-41d5-aac1-462dec6e4783})</
<translation>OpenWeatherMap</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="79"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="83"/>
<source>Weather</source>
<extracomment>The name of the ThingClass ({985195aa-17ad-4530-88a4-cdd753d747d7})</extracomment>
<translation>Wetter</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="127"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="131"/>
<source>name</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, Type: thing, ID: {394d3983-49d4-47f7-888b-243f3f5e9972})</extracomment>
<translation>Name</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="91"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="95"/>
<source>country</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, Type: thing, ID: {f0cd96bb-ddd1-4484-8353-8b6633fa101d})</extracomment>
<translation>Land</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="112"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="74"/>
<source>Custom API key</source>
<extracomment>The name of the ParamType (ThingClass: openWeatherMap, Type: plugin, ID: {71d075c3-4c4f-4864-99be-42a3121ce196})</extracomment>
<translation>Benutzerdefinierter API Key</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="116"/>
<source>id</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, Type: thing, ID: {286342e1-b299-4f67-9d8f-2ed9e8844466})</extracomment>
<translation>ID</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="124"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="128"/>
<source>location</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, Type: discovery, ID: {f370b076-a783-4b46-85b2-6f4a9dba55d8})</extracomment>
<translation>Ort</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="196"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="199"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="200"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="203"/>
<source>weather condition</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: weatherCondition, ID: {f16891f3-1174-44f6-a940-cffc8b64bdc1})
----------
@ -81,26 +92,26 @@ The name of the StateType ({f16891f3-1174-44f6-a940-cffc8b64bdc1}) of ThingClass
<translation>Wetterbedingung</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="121"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="125"/>
<source>last update changed</source>
<extracomment>The name of the EventType ({36b2f09b-7d77-4fbc-a68f-23d735dda0b1}) of ThingClass openweathermap</extracomment>
<translation>Zuletzt aktualisiert geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="166"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="170"/>
<source>temperature changed</source>
<extracomment>The name of the EventType ({6013402f-b5b1-46b3-8490-f0c20d62fe61}) of ThingClass openweathermap</extracomment>
<translation>Temperatur geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="202"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="206"/>
<source>weather condition changed</source>
<extracomment>The name of the EventType ({f16891f3-1174-44f6-a940-cffc8b64bdc1}) of ThingClass openweathermap</extracomment>
<translation>Wetterbedingung geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="115"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="118"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="119"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="122"/>
<source>last update</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: updateTime, ID: {36b2f09b-7d77-4fbc-a68f-23d735dda0b1})
----------
@ -108,8 +119,8 @@ The name of the StateType ({36b2f09b-7d77-4fbc-a68f-23d735dda0b1}) of ThingClass
<translation>Letztes Update</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="160"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="163"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="164"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="167"/>
<source>temperature</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: temperature, ID: {6013402f-b5b1-46b3-8490-f0c20d62fe61})
----------
@ -117,14 +128,14 @@ The name of the StateType ({6013402f-b5b1-46b3-8490-f0c20d62fe61}) of ThingClass
<translation>Temperatur</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="184"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="188"/>
<source>temperature minimum changed</source>
<extracomment>The name of the EventType ({14ec2781-cb04-4bbf-b097-7d01ef982630}) of ThingClass openweathermap</extracomment>
<translation>Temperatur Minimum geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="178"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="181"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="182"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="185"/>
<source>temperature minimum</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: temperatureMin, ID: {14ec2781-cb04-4bbf-b097-7d01ef982630})
----------
@ -132,14 +143,14 @@ The name of the StateType ({14ec2781-cb04-4bbf-b097-7d01ef982630}) of ThingClass
<translation>Temperatur Minimum</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="175"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="179"/>
<source>temperature maximum changed</source>
<extracomment>The name of the EventType ({fefe5563-452f-4833-b5cf-49c3cc67c772}) of ThingClass openweathermap</extracomment>
<translation>Temperatur Maximum geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="169"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="172"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="173"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="176"/>
<source>temperature maximum</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: temperatureMax, ID: {fefe5563-452f-4833-b5cf-49c3cc67c772})
----------
@ -147,14 +158,14 @@ The name of the StateType ({fefe5563-452f-4833-b5cf-49c3cc67c772}) of ThingClass
<translation>Temperatur Maximum</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="109"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="113"/>
<source>humidity changed</source>
<extracomment>The name of the EventType ({6f32ec73-3240-4630-ada9-1c10b8e98123}) of ThingClass openweathermap</extracomment>
<translation>Luftfeuchtigkeit geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="103"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="106"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="107"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="110"/>
<source>humidity</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: humidity, ID: {6f32ec73-3240-4630-ada9-1c10b8e98123})
----------
@ -162,14 +173,14 @@ The name of the StateType ({6f32ec73-3240-4630-ada9-1c10b8e98123}) of ThingClass
<translation>Luftfeuchtigkeit</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="136"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="140"/>
<source>pressure changed</source>
<extracomment>The name of the EventType ({4a42eea9-00eb-440b-915e-dbe42180f83b}) of ThingClass openweathermap</extracomment>
<translation>Luftdruck geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="130"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="133"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="134"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="137"/>
<source>pressure</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: pressure, ID: {4a42eea9-00eb-440b-915e-dbe42180f83b})
----------
@ -177,14 +188,14 @@ The name of the StateType ({4a42eea9-00eb-440b-915e-dbe42180f83b}) of ThingClass
<translation>Luftdruck</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="229"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="233"/>
<source>wind speed changed</source>
<extracomment>The name of the EventType ({2bf63430-e9e2-4fbf-88e6-6f1b4770f287}) of ThingClass openweathermap</extracomment>
<translation>Windgeschwindigkeit geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="223"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="226"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="227"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="230"/>
<source>wind speed</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: windSpeed, ID: {2bf63430-e9e2-4fbf-88e6-6f1b4770f287})
----------
@ -192,14 +203,14 @@ The name of the StateType ({2bf63430-e9e2-4fbf-88e6-6f1b4770f287}) of ThingClass
<translation>Windgeschwindigkeit</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="220"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="224"/>
<source>wind direction changed</source>
<extracomment>The name of the EventType ({589e2ea5-65b2-4afd-9b72-e3708a589a12}) of ThingClass openweathermap</extracomment>
<translation>Windrichtung geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="214"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="217"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="218"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="221"/>
<source>wind direction</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: windDirection, ID: {589e2ea5-65b2-4afd-9b72-e3708a589a12})
----------
@ -207,14 +218,14 @@ The name of the StateType ({589e2ea5-65b2-4afd-9b72-e3708a589a12}) of ThingClass
<translation>Windrichtung</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="88"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="92"/>
<source>cloudiness changed</source>
<extracomment>The name of the EventType ({798553bc-45c7-42eb-9105-430bddb5d9b7}) of ThingClass openweathermap</extracomment>
<translation>Bewölkungsgrad geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="82"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="85"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="86"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="89"/>
<source>cloudiness</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: cloudiness, ID: {798553bc-45c7-42eb-9105-430bddb5d9b7})
----------
@ -222,14 +233,14 @@ The name of the StateType ({798553bc-45c7-42eb-9105-430bddb5d9b7}) of ThingClass
<translation>Bewölkungsgrad</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="193"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="197"/>
<source>visibility changed</source>
<extracomment>The name of the EventType ({1e10d129-cb88-48b0-9244-e3e7e7b175d9}) of ThingClass openweathermap</extracomment>
<translation>Fernsicht geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="187"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="190"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="191"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="194"/>
<source>visibility</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: visibility, ID: {1e10d129-cb88-48b0-9244-e3e7e7b175d9})
----------
@ -237,14 +248,14 @@ The name of the StateType ({1e10d129-cb88-48b0-9244-e3e7e7b175d9}) of ThingClass
<translation>Fernsicht</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="211"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="215"/>
<source>weather description changed</source>
<extracomment>The name of the EventType ({f9539108-0e0e-4736-a306-6408f8e20a26}) of ThingClass openweathermap</extracomment>
<translation>Wetter Beschreibung geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="205"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="208"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="209"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="212"/>
<source>weather description</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: weatherDescription, ID: {f9539108-0e0e-4736-a306-6408f8e20a26})
----------
@ -252,14 +263,14 @@ The name of the StateType ({f9539108-0e0e-4736-a306-6408f8e20a26}) of ThingClass
<translation>Wetter Beschreibung</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="157"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="161"/>
<source>sunset changed</source>
<extracomment>The name of the EventType ({af155e94-9492-44e1-8608-7d0ee8b5d50d}) of ThingClass openweathermap</extracomment>
<translation>Sonnenuntergang geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="151"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="154"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="155"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="158"/>
<source>sunset</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: sunsetTime, ID: {af155e94-9492-44e1-8608-7d0ee8b5d50d})
----------
@ -267,14 +278,14 @@ The name of the StateType ({af155e94-9492-44e1-8608-7d0ee8b5d50d}) of ThingClass
<translation>Sonnenuntergang</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="148"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="152"/>
<source>sunrise changed</source>
<extracomment>The name of the EventType ({a1dddc3d-549f-4f20-b78b-be850548f286}) of ThingClass openweathermap</extracomment>
<translation>Sonnenaufgang geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="142"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="145"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="146"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="149"/>
<source>sunrise</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: sunriseTime, ID: {a1dddc3d-549f-4f20-b78b-be850548f286})
----------
@ -282,14 +293,14 @@ The name of the StateType ({a1dddc3d-549f-4f20-b78b-be850548f286}) of ThingClass
<translation>Sonnenaufgang</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="100"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="104"/>
<source>daylightChanged</source>
<extracomment>The name of the EventType ({e0a14b66-c8e1-49fb-8eff-b48e5dce80de}) of ThingClass openweathermap</extracomment>
<translation>Tageslicht geändert</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="94"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="97"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="98"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="101"/>
<source>daylight</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: daylight, ID: {e0a14b66-c8e1-49fb-8eff-b48e5dce80de})
----------
@ -297,7 +308,7 @@ The name of the StateType ({e0a14b66-c8e1-49fb-8eff-b48e5dce80de}) of ThingClass
<translation>Tageslicht</translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="139"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="143"/>
<source>refresh</source>
<extracomment>The name of the ActionType ({cfbc6504-d86f-4856-8dfa-97b6fbb385e4}) of ThingClass openweathermap</extracomment>
<translation>Aktualisieren</translation>

View File

@ -4,28 +4,33 @@
<context>
<name>IntegrationPluginOpenweathermap</name>
<message>
<location filename="../integrationpluginopenweathermap.cpp" line="149"/>
<location filename="../integrationpluginopenweathermap.cpp" line="79"/>
<source>No API key for OpenWeatherMap available.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../integrationpluginopenweathermap.cpp" line="249"/>
<source>Error detecting current location.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../integrationpluginopenweathermap.cpp" line="158"/>
<location filename="../integrationpluginopenweathermap.cpp" line="258"/>
<source>Received unexpected data detecting current location.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../integrationpluginopenweathermap.cpp" line="201"/>
<location filename="../integrationpluginopenweathermap.cpp" line="301"/>
<source>Error searching for weather stations.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../integrationpluginopenweathermap.cpp" line="210"/>
<location filename="../integrationpluginopenweathermap.cpp" line="259"/>
<location filename="../integrationpluginopenweathermap.cpp" line="310"/>
<location filename="../integrationpluginopenweathermap.cpp" line="359"/>
<source>Received unexpected data while searching for weather stations.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../integrationpluginopenweathermap.cpp" line="250"/>
<location filename="../integrationpluginopenweathermap.cpp" line="350"/>
<source>Error searching for weather stations in current location.</source>
<translation type="unfinished"></translation>
</message>
@ -33,8 +38,8 @@
<context>
<name>OpenWeatherMap</name>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="73"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="76"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="77"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="80"/>
<source>OpenWeatherMap</source>
<extracomment>The name of the vendor ({bf1e96f0-9650-4e7c-a56c-916d54d18e7a})
----------
@ -42,38 +47,44 @@ The name of the plugin OpenWeatherMap ({bc6af567-2338-41d5-aac1-462dec6e4783})</
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="79"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="83"/>
<source>Weather</source>
<extracomment>The name of the ThingClass ({985195aa-17ad-4530-88a4-cdd753d747d7})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="127"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="131"/>
<source>name</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, Type: thing, ID: {394d3983-49d4-47f7-888b-243f3f5e9972})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="91"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="95"/>
<source>country</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, Type: thing, ID: {f0cd96bb-ddd1-4484-8353-8b6633fa101d})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="112"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="74"/>
<source>Custom API key</source>
<extracomment>The name of the ParamType (ThingClass: openWeatherMap, Type: plugin, ID: {71d075c3-4c4f-4864-99be-42a3121ce196})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="116"/>
<source>id</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, Type: thing, ID: {286342e1-b299-4f67-9d8f-2ed9e8844466})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="124"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="128"/>
<source>location</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, Type: discovery, ID: {f370b076-a783-4b46-85b2-6f4a9dba55d8})</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="196"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="199"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="200"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="203"/>
<source>weather condition</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: weatherCondition, ID: {f16891f3-1174-44f6-a940-cffc8b64bdc1})
----------
@ -81,26 +92,26 @@ The name of the StateType ({f16891f3-1174-44f6-a940-cffc8b64bdc1}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="121"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="125"/>
<source>last update changed</source>
<extracomment>The name of the EventType ({36b2f09b-7d77-4fbc-a68f-23d735dda0b1}) of ThingClass openweathermap</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="166"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="170"/>
<source>temperature changed</source>
<extracomment>The name of the EventType ({6013402f-b5b1-46b3-8490-f0c20d62fe61}) of ThingClass openweathermap</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="202"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="206"/>
<source>weather condition changed</source>
<extracomment>The name of the EventType ({f16891f3-1174-44f6-a940-cffc8b64bdc1}) of ThingClass openweathermap</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="115"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="118"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="119"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="122"/>
<source>last update</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: updateTime, ID: {36b2f09b-7d77-4fbc-a68f-23d735dda0b1})
----------
@ -108,8 +119,8 @@ The name of the StateType ({36b2f09b-7d77-4fbc-a68f-23d735dda0b1}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="160"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="163"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="164"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="167"/>
<source>temperature</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: temperature, ID: {6013402f-b5b1-46b3-8490-f0c20d62fe61})
----------
@ -117,14 +128,14 @@ The name of the StateType ({6013402f-b5b1-46b3-8490-f0c20d62fe61}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="184"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="188"/>
<source>temperature minimum changed</source>
<extracomment>The name of the EventType ({14ec2781-cb04-4bbf-b097-7d01ef982630}) of ThingClass openweathermap</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="178"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="181"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="182"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="185"/>
<source>temperature minimum</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: temperatureMin, ID: {14ec2781-cb04-4bbf-b097-7d01ef982630})
----------
@ -132,14 +143,14 @@ The name of the StateType ({14ec2781-cb04-4bbf-b097-7d01ef982630}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="175"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="179"/>
<source>temperature maximum changed</source>
<extracomment>The name of the EventType ({fefe5563-452f-4833-b5cf-49c3cc67c772}) of ThingClass openweathermap</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="169"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="172"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="173"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="176"/>
<source>temperature maximum</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: temperatureMax, ID: {fefe5563-452f-4833-b5cf-49c3cc67c772})
----------
@ -147,14 +158,14 @@ The name of the StateType ({fefe5563-452f-4833-b5cf-49c3cc67c772}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="109"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="113"/>
<source>humidity changed</source>
<extracomment>The name of the EventType ({6f32ec73-3240-4630-ada9-1c10b8e98123}) of ThingClass openweathermap</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="103"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="106"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="107"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="110"/>
<source>humidity</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: humidity, ID: {6f32ec73-3240-4630-ada9-1c10b8e98123})
----------
@ -162,14 +173,14 @@ The name of the StateType ({6f32ec73-3240-4630-ada9-1c10b8e98123}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="136"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="140"/>
<source>pressure changed</source>
<extracomment>The name of the EventType ({4a42eea9-00eb-440b-915e-dbe42180f83b}) of ThingClass openweathermap</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="130"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="133"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="134"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="137"/>
<source>pressure</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: pressure, ID: {4a42eea9-00eb-440b-915e-dbe42180f83b})
----------
@ -177,14 +188,14 @@ The name of the StateType ({4a42eea9-00eb-440b-915e-dbe42180f83b}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="229"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="233"/>
<source>wind speed changed</source>
<extracomment>The name of the EventType ({2bf63430-e9e2-4fbf-88e6-6f1b4770f287}) of ThingClass openweathermap</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="223"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="226"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="227"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="230"/>
<source>wind speed</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: windSpeed, ID: {2bf63430-e9e2-4fbf-88e6-6f1b4770f287})
----------
@ -192,14 +203,14 @@ The name of the StateType ({2bf63430-e9e2-4fbf-88e6-6f1b4770f287}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="220"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="224"/>
<source>wind direction changed</source>
<extracomment>The name of the EventType ({589e2ea5-65b2-4afd-9b72-e3708a589a12}) of ThingClass openweathermap</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="214"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="217"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="218"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="221"/>
<source>wind direction</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: windDirection, ID: {589e2ea5-65b2-4afd-9b72-e3708a589a12})
----------
@ -207,14 +218,14 @@ The name of the StateType ({589e2ea5-65b2-4afd-9b72-e3708a589a12}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="88"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="92"/>
<source>cloudiness changed</source>
<extracomment>The name of the EventType ({798553bc-45c7-42eb-9105-430bddb5d9b7}) of ThingClass openweathermap</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="82"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="85"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="86"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="89"/>
<source>cloudiness</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: cloudiness, ID: {798553bc-45c7-42eb-9105-430bddb5d9b7})
----------
@ -222,14 +233,14 @@ The name of the StateType ({798553bc-45c7-42eb-9105-430bddb5d9b7}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="193"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="197"/>
<source>visibility changed</source>
<extracomment>The name of the EventType ({1e10d129-cb88-48b0-9244-e3e7e7b175d9}) of ThingClass openweathermap</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="187"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="190"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="191"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="194"/>
<source>visibility</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: visibility, ID: {1e10d129-cb88-48b0-9244-e3e7e7b175d9})
----------
@ -237,14 +248,14 @@ The name of the StateType ({1e10d129-cb88-48b0-9244-e3e7e7b175d9}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="211"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="215"/>
<source>weather description changed</source>
<extracomment>The name of the EventType ({f9539108-0e0e-4736-a306-6408f8e20a26}) of ThingClass openweathermap</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="205"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="208"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="209"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="212"/>
<source>weather description</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: weatherDescription, ID: {f9539108-0e0e-4736-a306-6408f8e20a26})
----------
@ -252,14 +263,14 @@ The name of the StateType ({f9539108-0e0e-4736-a306-6408f8e20a26}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="157"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="161"/>
<source>sunset changed</source>
<extracomment>The name of the EventType ({af155e94-9492-44e1-8608-7d0ee8b5d50d}) of ThingClass openweathermap</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="151"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="154"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="155"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="158"/>
<source>sunset</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: sunsetTime, ID: {af155e94-9492-44e1-8608-7d0ee8b5d50d})
----------
@ -267,14 +278,14 @@ The name of the StateType ({af155e94-9492-44e1-8608-7d0ee8b5d50d}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="148"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="152"/>
<source>sunrise changed</source>
<extracomment>The name of the EventType ({a1dddc3d-549f-4f20-b78b-be850548f286}) of ThingClass openweathermap</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="142"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="145"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="146"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="149"/>
<source>sunrise</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: sunriseTime, ID: {a1dddc3d-549f-4f20-b78b-be850548f286})
----------
@ -282,14 +293,14 @@ The name of the StateType ({a1dddc3d-549f-4f20-b78b-be850548f286}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="100"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="104"/>
<source>daylightChanged</source>
<extracomment>The name of the EventType ({e0a14b66-c8e1-49fb-8eff-b48e5dce80de}) of ThingClass openweathermap</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="94"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="97"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="98"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="101"/>
<source>daylight</source>
<extracomment>The name of the ParamType (ThingClass: openweathermap, EventType: daylight, ID: {e0a14b66-c8e1-49fb-8eff-b48e5dce80de})
----------
@ -297,7 +308,7 @@ The name of the StateType ({e0a14b66-c8e1-49fb-8eff-b48e5dce80de}) of ThingClass
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="139"/>
<location filename="../../../build-nymea-plugins-Desktop-Debug/openweathermap/plugininfo.h" line="143"/>
<source>refresh</source>
<extracomment>The name of the ActionType ({cfbc6504-d86f-4856-8dfa-97b6fbb385e4}) of ThingClass openweathermap</extracomment>
<translation type="unfinished"></translation>