Merge PR #242: Tado: Add heating interface
commit
b3d0a23114
|
|
@ -36,6 +36,7 @@
|
|||
#include <QDebug>
|
||||
#include <QUrlQuery>
|
||||
#include <QJsonDocument>
|
||||
#include <QTimer>
|
||||
|
||||
IntegrationPluginTado::IntegrationPluginTado()
|
||||
{
|
||||
|
|
@ -44,7 +45,18 @@ IntegrationPluginTado::IntegrationPluginTado()
|
|||
|
||||
void IntegrationPluginTado::startPairing(ThingPairingInfo *info)
|
||||
{
|
||||
info->finish(Thing::ThingErrorNoError, QT_TR_NOOP("Please enter the login credentials."));
|
||||
// Checking the internet connection
|
||||
NetworkAccessManager *network = hardwareManager()->networkManager();
|
||||
QNetworkReply *reply = network->get(QNetworkRequest(QUrl("https://my.tado.com/api/v2")));
|
||||
connect(reply, &QNetworkReply::finished, info, [reply, info] {
|
||||
|
||||
if (reply->error() == QNetworkReply::NetworkError::HostNotFoundError) {
|
||||
info->finish(Thing::ThingErrorHardwareNotAvailable, QT_TR_NOOP("Tado server is not reachable."));
|
||||
} else {
|
||||
info->finish(Thing::ThingErrorNoError, QT_TR_NOOP("Please enter the login credentials for your Tado account."));
|
||||
}
|
||||
});
|
||||
connect(reply, &QNetworkReply::finished, this, &QNetworkReply::deleteLater);
|
||||
}
|
||||
|
||||
void IntegrationPluginTado::confirmPairing(ThingPairingInfo *info, const QString &username, const QString &password)
|
||||
|
|
@ -52,6 +64,7 @@ void IntegrationPluginTado::confirmPairing(ThingPairingInfo *info, const QString
|
|||
Tado *tado = new Tado(hardwareManager()->networkManager(), username, this);
|
||||
connect(tado, &Tado::tokenReceived, this, &IntegrationPluginTado::onTokenReceived);
|
||||
connect(tado, &Tado::authenticationStatusChanged, this, &IntegrationPluginTado::onAuthenticationStatusChanged);
|
||||
connect(tado, &Tado::requestExecuted, this, &IntegrationPluginTado::onRequestExecuted);
|
||||
connect(tado, &Tado::connectionChanged, this, &IntegrationPluginTado::onConnectionChanged);
|
||||
connect(tado, &Tado::homesReceived, this, &IntegrationPluginTado::onHomesReceived);
|
||||
connect(tado, &Tado::zonesReceived, this, &IntegrationPluginTado::onZonesReceived);
|
||||
|
|
@ -88,6 +101,7 @@ void IntegrationPluginTado::setupThing(ThingSetupInfo *info)
|
|||
tado = new Tado(hardwareManager()->networkManager(), username, this);
|
||||
connect(tado, &Tado::tokenReceived, this, &IntegrationPluginTado::onTokenReceived);
|
||||
connect(tado, &Tado::authenticationStatusChanged, this, &IntegrationPluginTado::onAuthenticationStatusChanged);
|
||||
connect(tado, &Tado::requestExecuted, this, &IntegrationPluginTado::onRequestExecuted);
|
||||
connect(tado, &Tado::connectionChanged, this, &IntegrationPluginTado::onConnectionChanged);
|
||||
connect(tado, &Tado::homesReceived, this, &IntegrationPluginTado::onHomesReceived);
|
||||
connect(tado, &Tado::zonesReceived, this, &IntegrationPluginTado::onZonesReceived);
|
||||
|
|
@ -96,14 +110,20 @@ void IntegrationPluginTado::setupThing(ThingSetupInfo *info)
|
|||
tado->getToken(password);
|
||||
m_tadoAccounts.insert(thing->id(), tado);
|
||||
m_asyncDeviceSetup.insert(tado, info);
|
||||
return;
|
||||
connect(info, &ThingSetupInfo::aborted, [info, this] {
|
||||
Tado *tado = m_tadoAccounts.take(info->thing()->id());
|
||||
m_asyncDeviceSetup.remove(tado);
|
||||
tado->deleteLater();
|
||||
});
|
||||
}
|
||||
|
||||
} else if (thing->thingClassId() == zoneThingClassId) {
|
||||
qCDebug(dcTado) << "Setup tado thermostat" << thing->params();
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
} else {
|
||||
return info->finish(Thing::ThingErrorThingClassNotFound);
|
||||
qCWarning(dcTado()) << "Unhandled thing class in setupDevice";
|
||||
}
|
||||
qCWarning(dcTado()) << "Unhandled thing class in setupDevice";
|
||||
}
|
||||
|
||||
void IntegrationPluginTado::thingRemoved(Thing *thing)
|
||||
|
|
@ -148,35 +168,57 @@ void IntegrationPluginTado::executeAction(ThingActionInfo *info)
|
|||
|
||||
if (thing->thingClassId() == zoneThingClassId) {
|
||||
Tado *tado = m_tadoAccounts.value(thing->parentId());
|
||||
if (!tado)
|
||||
if (!tado) {
|
||||
info->finish(Thing::ThingErrorThingNotFound);
|
||||
return;
|
||||
}
|
||||
QString homeId = thing->paramValue(zoneThingHomeIdParamTypeId).toString();
|
||||
QString zoneId = thing->paramValue(zoneThingZoneIdParamTypeId).toString();
|
||||
if (action.actionTypeId() == zoneModeActionTypeId) {
|
||||
|
||||
QUuid requestId;
|
||||
if (action.param(zoneModeActionModeParamTypeId).value().toString() == "Tado") {
|
||||
tado->deleteOverlay(homeId, zoneId);
|
||||
requestId = tado->deleteOverlay(homeId, zoneId);
|
||||
} else if (action.param(zoneModeActionModeParamTypeId).value().toString() == "Off") {
|
||||
tado->setOverlay(homeId, zoneId, false, thing->stateValue(zoneTargetTemperatureStateTypeId).toDouble());
|
||||
requestId = tado->setOverlay(homeId, zoneId, false, thing->stateValue(zoneTargetTemperatureStateTypeId).toDouble());
|
||||
} else {
|
||||
if(thing->stateValue(zoneTargetTemperatureStateTypeId).toDouble() <= 5.0) {
|
||||
tado->setOverlay(homeId, zoneId, true, 5);
|
||||
requestId = tado->setOverlay(homeId, zoneId, true, 5);
|
||||
} else {
|
||||
tado->setOverlay(homeId, zoneId, true, thing->stateValue(zoneTargetTemperatureStateTypeId).toDouble());
|
||||
requestId = tado->setOverlay(homeId, zoneId, true, thing->stateValue(zoneTargetTemperatureStateTypeId).toDouble());
|
||||
}
|
||||
}
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
m_asyncActions.insert(requestId, info);
|
||||
connect(info, &ThingActionInfo::aborted, [requestId, this] {m_asyncActions.remove(requestId);});
|
||||
} else if (action.actionTypeId() == zoneTargetTemperatureActionTypeId) {
|
||||
|
||||
double temperature = action.param(zoneTargetTemperatureActionTargetTemperatureParamTypeId).value().toDouble();
|
||||
QUuid requestId;
|
||||
if (temperature <= 0) {
|
||||
QUuid requestId = tado->setOverlay(homeId, zoneId, false, 0);
|
||||
m_asyncActions.insert(requestId, info);
|
||||
requestId = tado->setOverlay(homeId, zoneId, false, 0);
|
||||
} else {
|
||||
tado->setOverlay(homeId, zoneId, true, temperature);
|
||||
requestId = tado->setOverlay(homeId, zoneId, true, temperature);
|
||||
}
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
m_asyncActions.insert(requestId, info);
|
||||
connect(info, &ThingActionInfo::aborted, [requestId, this] {m_asyncActions.remove(requestId);});
|
||||
} else if (action.actionTypeId() == zonePowerActionTypeId) {
|
||||
bool power = action.param(zonePowerActionPowerParamTypeId).value().toBool();
|
||||
thing->setStateValue(zonePowerStateTypeId, power); // the actual power set response might be slow
|
||||
QUuid requestId;
|
||||
double temperature = thing->stateValue(zoneTargetTemperatureStateTypeId).toDouble();
|
||||
if (!power) {
|
||||
requestId = tado->setOverlay(homeId, zoneId, false, 0);
|
||||
} else {
|
||||
requestId = tado->setOverlay(homeId, zoneId, true, temperature);
|
||||
}
|
||||
m_asyncActions.insert(requestId, info);
|
||||
connect(info, &ThingActionInfo::aborted, [requestId, this] {m_asyncActions.remove(requestId);});
|
||||
} else {
|
||||
qCWarning(dcTado()) << "Execute action, unhandled actionTypeId" << action.actionTypeId();
|
||||
info->finish(Thing::ThingErrorActionTypeNotFound);
|
||||
}
|
||||
} else {
|
||||
qCWarning(dcTado()) << "Execute action, unhandled thingClassId" << thing->thingClassId();
|
||||
info->finish(Thing::ThingErrorThingClassNotFound);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -197,8 +239,24 @@ void IntegrationPluginTado::onConnectionChanged(bool connected)
|
|||
{
|
||||
Tado *tado = static_cast<Tado*>(sender());
|
||||
|
||||
if (m_asyncDeviceSetup.contains(tado)) {
|
||||
//Thing setup failed, try as long as ThingSetupInfo is valid.
|
||||
if (!connected) {
|
||||
QTimer::singleShot(2000, tado, [tado, this]{
|
||||
if(m_asyncDeviceSetup.contains(tado)){
|
||||
//Check once more if the ThingSetupInfo is still valid
|
||||
pluginStorage()->beginGroup(m_asyncDeviceSetup.value(tado)->thing()->id().toString());
|
||||
QString password = pluginStorage()->value("password").toString();
|
||||
pluginStorage()->endGroup();
|
||||
tado->getToken(password);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
if (m_tadoAccounts.values().contains(tado)){
|
||||
Thing *thing = myThings().findById(m_tadoAccounts.key(tado));
|
||||
if (!thing)
|
||||
return;
|
||||
thing->setStateValue(tadoConnectionConnectedStateTypeId, connected);
|
||||
|
||||
foreach(Thing *zoneThing, myThings().filterByParentId(thing->id())) {
|
||||
|
|
@ -220,13 +278,38 @@ void IntegrationPluginTado::onAuthenticationStatusChanged(bool authenticated)
|
|||
|
||||
if (m_tadoAccounts.values().contains(tado)){
|
||||
Thing *thing = myThings().findById(m_tadoAccounts.key(tado));
|
||||
if (!thing)
|
||||
return;
|
||||
thing->setStateValue(tadoConnectionLoggedInStateTypeId, authenticated);
|
||||
|
||||
if (!authenticated) {
|
||||
QTimer::singleShot(5000, tado, [this, tado, thing] {
|
||||
if (!tado->connected()) {
|
||||
pluginStorage()->beginGroup(thing->id().toString());
|
||||
QString password = pluginStorage()->value("password").toString();
|
||||
pluginStorage()->endGroup();
|
||||
tado->getToken(password);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void IntegrationPluginTado::onRequestExecuted(QUuid requestId, bool success)
|
||||
{
|
||||
if (m_asyncActions.contains(requestId)) {
|
||||
ThingActionInfo *info = m_asyncActions.take(requestId);
|
||||
if (success) {
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
} else {
|
||||
info->finish(Thing::ThingErrorHardwareNotAvailable);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void IntegrationPluginTado::onTokenReceived(Tado::Token token)
|
||||
{
|
||||
Q_UNUSED(token);
|
||||
Q_UNUSED(token)
|
||||
|
||||
qCDebug(dcTado()) << "Token received";
|
||||
Tado *tado = static_cast<Tado*>(sender());
|
||||
|
|
|
|||
|
|
@ -68,6 +68,7 @@ private slots:
|
|||
|
||||
void onConnectionChanged(bool connected);
|
||||
void onAuthenticationStatusChanged(bool authenticated);
|
||||
void onRequestExecuted(QUuid requestId, bool success);
|
||||
void onTokenReceived(Tado::Token token);
|
||||
void onHomesReceived(QList<Tado::Home> homes);
|
||||
void onZonesReceived(const QString &homeId, QList<Tado::Zone> zones);
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@
|
|||
"id": "1a7bb944-fb9c-490a-8a4c-794b27282292",
|
||||
"name": "zone",
|
||||
"displayName": "Zone",
|
||||
"interfaces": ["thermostat", "temperaturesensor", "connectable"],
|
||||
"interfaces": ["heating", "temperaturesensor", "humiditysensor", "connectable"],
|
||||
"createMethods": ["auto"],
|
||||
"paramTypes": [
|
||||
{
|
||||
|
|
@ -110,7 +110,9 @@
|
|||
"name": "power",
|
||||
"displayName": "Power",
|
||||
"displayNameEvent": "Power changed",
|
||||
"displayNameAction": "Set power",
|
||||
"type": "bool",
|
||||
"writable": true,
|
||||
"defaultValue": false
|
||||
},
|
||||
{
|
||||
|
|
|
|||
106
tado/tado.cpp
106
tado/tado.cpp
|
|
@ -56,6 +56,16 @@ QString Tado::username()
|
|||
return m_username;
|
||||
}
|
||||
|
||||
bool Tado::authenticated()
|
||||
{
|
||||
return m_authenticationStatus;
|
||||
}
|
||||
|
||||
bool Tado::connected()
|
||||
{
|
||||
return m_connectionStatus;
|
||||
}
|
||||
|
||||
void Tado::getToken(const QString &password)
|
||||
{
|
||||
QNetworkRequest request;
|
||||
|
|
@ -78,15 +88,15 @@ void Tado::getToken(const QString &password)
|
|||
// Check HTTP status code
|
||||
if (status != 200 || reply->error() != QNetworkReply::NoError) {
|
||||
if (reply->error() == QNetworkReply::HostNotFoundError) {
|
||||
emit connectionChanged(false);
|
||||
setConnectionStatus(false);
|
||||
}
|
||||
if (status == 401) {
|
||||
emit authenticationStatusChanged(false);
|
||||
if (status == 401 || status == 400) {
|
||||
setAuthenticationStatus(false);
|
||||
}
|
||||
qCWarning(dcTado()) << "Request error:" << status << reply->errorString();
|
||||
return;
|
||||
}
|
||||
emit connectionChanged(true);
|
||||
setConnectionStatus(true);
|
||||
|
||||
QJsonParseError error;
|
||||
QJsonDocument data = QJsonDocument::fromJson(reply->readAll(), &error);
|
||||
|
|
@ -111,15 +121,15 @@ void Tado::getToken(const QString &password)
|
|||
token.expires = obj["expires_in"].toInt();
|
||||
m_refreshTimer->start((token.expires - 10)*1000);
|
||||
} else {
|
||||
qCWarning(dcTado()) << "Received response doesn't contain an expire time";
|
||||
qCWarning(dcTado()) << "Received response doesn't contain an expire time";
|
||||
}
|
||||
token.scope = obj["scope"].toString();
|
||||
token.jti = obj["jti"].toString();
|
||||
emit authenticationStatusChanged(true);
|
||||
setAuthenticationStatus(true);
|
||||
emit tokenReceived(token);
|
||||
} else {
|
||||
qCWarning(dcTado()) << "Received response isn't an object" << data.toJson();
|
||||
emit authenticationStatusChanged(false);
|
||||
setAuthenticationStatus(false);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
@ -139,16 +149,16 @@ void Tado::getHomes()
|
|||
// Check HTTP status code
|
||||
if (status != 200 || reply->error() != QNetworkReply::NoError) {
|
||||
if (reply->error() == QNetworkReply::HostNotFoundError) {
|
||||
emit connectionChanged(false);
|
||||
setConnectionStatus(false);
|
||||
}
|
||||
if (status == 401) {
|
||||
emit authenticationStatusChanged(false);
|
||||
if (status == 401 || status == 400) {
|
||||
setAuthenticationStatus(false);
|
||||
}
|
||||
qCWarning(dcTado()) << "Request error:" << status << reply->errorString();
|
||||
return;
|
||||
}
|
||||
emit connectionChanged(true);
|
||||
emit authenticationStatusChanged(true);
|
||||
setConnectionStatus(true);
|
||||
setAuthenticationStatus(true);
|
||||
|
||||
QJsonParseError error;
|
||||
QJsonDocument data = QJsonDocument::fromJson(reply->readAll(), &error);
|
||||
|
|
@ -184,16 +194,16 @@ void Tado::getZones(const QString &homeId)
|
|||
// Check HTTP status code
|
||||
if (status != 200 || reply->error() != QNetworkReply::NoError) {
|
||||
if (reply->error() == QNetworkReply::HostNotFoundError) {
|
||||
emit connectionChanged(false);
|
||||
setConnectionStatus(false);
|
||||
}
|
||||
if (status == 401) {
|
||||
emit authenticationStatusChanged(false);
|
||||
if (status == 401 || status == 400) {
|
||||
setAuthenticationStatus(false);
|
||||
}
|
||||
qCWarning(dcTado()) << "Request error:" << status << reply->errorString();
|
||||
return;
|
||||
}
|
||||
emit connectionChanged(true);
|
||||
emit authenticationStatusChanged(true);
|
||||
setConnectionStatus(true);
|
||||
setAuthenticationStatus(true);
|
||||
|
||||
QJsonParseError error;
|
||||
QJsonDocument data = QJsonDocument::fromJson(reply->readAll(), &error);
|
||||
|
|
@ -230,17 +240,17 @@ void Tado::getZoneState(const QString &homeId, const QString &zoneId)
|
|||
// Check HTTP status code
|
||||
if (status != 200 || reply->error() != QNetworkReply::NoError) {
|
||||
if (reply->error() == QNetworkReply::HostNotFoundError) {
|
||||
emit connectionChanged(false);
|
||||
setConnectionStatus(false);
|
||||
}
|
||||
if (status == 401) {
|
||||
emit authenticationStatusChanged(false);
|
||||
if (status == 401 || status == 400) {
|
||||
setAuthenticationStatus(false);
|
||||
}
|
||||
qCWarning(dcTado()) << "Request error:" << status << reply->errorString();
|
||||
return;
|
||||
}
|
||||
|
||||
emit connectionChanged(true);
|
||||
emit authenticationStatusChanged(true);
|
||||
setConnectionStatus(true);
|
||||
setAuthenticationStatus(true);
|
||||
|
||||
QJsonParseError error;
|
||||
QJsonDocument data = QJsonDocument::fromJson(reply->readAll(), &error);
|
||||
|
|
@ -291,9 +301,9 @@ QUuid Tado::setOverlay(const QString &homeId, const QString &zoneId, bool power,
|
|||
QByteArray body;
|
||||
QByteArray powerString;
|
||||
if (power)
|
||||
powerString = "ON";
|
||||
powerString = "ON";
|
||||
else
|
||||
powerString = "OFF";
|
||||
powerString = "OFF";
|
||||
|
||||
body.append("{\"setting\":{\"type\":\"HEATING\",\"power\":\""+ powerString + "\",\"temperature\":{\"celsius\":" + QVariant(targetTemperature).toByteArray() + "}},\"termination\":{\"type\":\"MANUAL\"}}");
|
||||
//qCDebug(dcTado()) << "Sending request" << body;
|
||||
|
|
@ -306,10 +316,10 @@ QUuid Tado::setOverlay(const QString &homeId, const QString &zoneId, bool power,
|
|||
if (status != 200 || reply->error() != QNetworkReply::NoError) {
|
||||
emit requestExecuted(requestId, false);
|
||||
if (reply->error() == QNetworkReply::HostNotFoundError) {
|
||||
emit connectionChanged(false);
|
||||
setConnectionStatus(false);
|
||||
}
|
||||
if (status == 401) { //Unauthorized
|
||||
emit authenticationStatusChanged(false);
|
||||
if (status == 401 || status == 400) { //Unauthorized
|
||||
setAuthenticationStatus(false);
|
||||
} else if (status == 422) { //Unprocessable Entity
|
||||
qCWarning(dcTado()) << "Unprocessable Entity, probably a value out of range";
|
||||
} else {
|
||||
|
|
@ -317,8 +327,8 @@ QUuid Tado::setOverlay(const QString &homeId, const QString &zoneId, bool power,
|
|||
}
|
||||
return;
|
||||
}
|
||||
emit authenticationStatusChanged(true);
|
||||
emit connectionChanged(true);
|
||||
setAuthenticationStatus(true);
|
||||
setConnectionStatus(true);
|
||||
emit requestExecuted(requestId, true);
|
||||
|
||||
QJsonParseError error;
|
||||
|
|
@ -358,10 +368,10 @@ QUuid Tado::deleteOverlay(const QString &homeId, const QString &zoneId)
|
|||
if (status < 200 || status > 210 || reply->error() != QNetworkReply::NoError) {
|
||||
emit requestExecuted(requestId ,false);
|
||||
if (reply->error() == QNetworkReply::HostNotFoundError) {
|
||||
emit connectionChanged(false);
|
||||
setConnectionStatus(false);
|
||||
}
|
||||
if (status == 401) { //Unauthorized
|
||||
emit authenticationStatusChanged(false);
|
||||
if (status == 401 || status == 400) { //Unauthorized
|
||||
setAuthenticationStatus(false);
|
||||
} else if (status == 422) { //Unprocessable Entity
|
||||
qCWarning(dcTado()) << "Unprocessable Entity, probably a value out of range";
|
||||
} else {
|
||||
|
|
@ -370,8 +380,8 @@ QUuid Tado::deleteOverlay(const QString &homeId, const QString &zoneId)
|
|||
qCWarning(dcTado()) << "Request error:" << status << reply->errorString();
|
||||
return;
|
||||
}
|
||||
emit authenticationStatusChanged(true);
|
||||
emit connectionChanged(true);
|
||||
setAuthenticationStatus(true);
|
||||
setConnectionStatus(true);
|
||||
emit requestExecuted(requestId, true);
|
||||
|
||||
QJsonParseError error;
|
||||
|
|
@ -396,6 +406,26 @@ QUuid Tado::deleteOverlay(const QString &homeId, const QString &zoneId)
|
|||
return requestId;
|
||||
}
|
||||
|
||||
void Tado::setAuthenticationStatus(bool status)
|
||||
{
|
||||
if (m_authenticationStatus != status) {
|
||||
m_authenticationStatus = status;
|
||||
emit authenticationStatusChanged(status);
|
||||
}
|
||||
|
||||
if (!status) {
|
||||
m_refreshTimer->stop();
|
||||
}
|
||||
}
|
||||
|
||||
void Tado::setConnectionStatus(bool status)
|
||||
{
|
||||
if (m_connectionStatus != status) {
|
||||
m_connectionStatus = status;
|
||||
emit connectionChanged(status);
|
||||
}
|
||||
}
|
||||
|
||||
void Tado::onRefreshTimer()
|
||||
{
|
||||
QNetworkRequest request;
|
||||
|
|
@ -416,16 +446,16 @@ void Tado::onRefreshTimer()
|
|||
// Check HTTP status code
|
||||
if (status != 200 || reply->error() != QNetworkReply::NoError) {
|
||||
if (reply->error() == QNetworkReply::HostNotFoundError) {
|
||||
emit connectionChanged(false);
|
||||
setConnectionStatus(false);
|
||||
}
|
||||
if (status == 400 || status == 401) {
|
||||
emit authenticationStatusChanged(false);
|
||||
setAuthenticationStatus(false);
|
||||
}
|
||||
qCWarning(dcTado()) << "Request error:" << status << reply->errorString();
|
||||
return;
|
||||
}
|
||||
emit connectionChanged(true);
|
||||
emit authenticationStatusChanged(true);
|
||||
setConnectionStatus(true);
|
||||
setAuthenticationStatus(true);
|
||||
|
||||
QJsonParseError error;
|
||||
QJsonDocument data = QJsonDocument::fromJson(reply->readAll(), &error);
|
||||
|
|
|
|||
|
|
@ -93,6 +93,8 @@ public:
|
|||
|
||||
void setUsername(const QString &username);
|
||||
QString username();
|
||||
bool authenticated();
|
||||
bool connected();
|
||||
|
||||
void getToken(const QString &password);
|
||||
void getHomes();
|
||||
|
|
@ -114,6 +116,11 @@ private:
|
|||
QString m_refreshToken;
|
||||
QTimer *m_refreshTimer = nullptr;
|
||||
|
||||
bool m_authenticationStatus = false;
|
||||
bool m_connectionStatus = false;
|
||||
void setAuthenticationStatus(bool status);
|
||||
void setConnectionStatus(bool status);
|
||||
|
||||
signals:
|
||||
void connectionChanged(bool connected);
|
||||
void authenticationStatusChanged(bool authenticated);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,245 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="de">
|
||||
<context>
|
||||
<name>IntegrationPluginTado</name>
|
||||
<message>
|
||||
<location filename="../integrationplugintado.cpp" line="55"/>
|
||||
<source>Tado server is not reachable.</source>
|
||||
<translation>Tado-Server ist nicht erreichbar.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../integrationplugintado.cpp" line="57"/>
|
||||
<source>Please enter the login credentials for your Tado account.</source>
|
||||
<translation>Bitte geben Sie die Anmeldeinformationen für Ihr Tado-Konto ein.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Tado</name>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="66"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="69"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="72"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="75"/>
|
||||
<source>Available</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: zone, EventType: connected, ID: {9f45a703-6a15-447c-a77a-0df731cda48e})
|
||||
----------
|
||||
The name of the StateType ({9f45a703-6a15-447c-a77a-0df731cda48e}) of ThingClass zone
|
||||
----------
|
||||
The name of the ParamType (ThingClass: tadoConnection, EventType: connected, ID: {2f79bc1d-27ed-480a-b583-728363c83ea6})
|
||||
----------
|
||||
The name of the StateType ({2f79bc1d-27ed-480a-b583-728363c83ea6}) of ThingClass tadoConnection</extracomment>
|
||||
<translation>Verfügbar</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="78"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="81"/>
|
||||
<source>Available changed</source>
|
||||
<extracomment>The name of the EventType ({9f45a703-6a15-447c-a77a-0df731cda48e}) of ThingClass zone
|
||||
----------
|
||||
The name of the EventType ({2f79bc1d-27ed-480a-b583-728363c83ea6}) of ThingClass tadoConnection</extracomment>
|
||||
<translation>Verfügbar geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="84"/>
|
||||
<source>Home id</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: zone, Type: thing, ID: {330cad74-6f07-42ad-b226-299927c3c4f0})</extracomment>
|
||||
<translation>Home id</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="87"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="90"/>
|
||||
<source>Humidity</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: zone, EventType: humidity, ID: {0faaaff1-2a33-44ec-b68d-d8855f584b02})
|
||||
----------
|
||||
The name of the StateType ({0faaaff1-2a33-44ec-b68d-d8855f584b02}) of ThingClass zone</extracomment>
|
||||
<translation>Luftfeuchte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="93"/>
|
||||
<source>Humidity changed</source>
|
||||
<extracomment>The name of the EventType ({0faaaff1-2a33-44ec-b68d-d8855f584b02}) of ThingClass zone</extracomment>
|
||||
<translation>Luftfeuchte geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="96"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="99"/>
|
||||
<source>Logged in</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: tadoConnection, EventType: loggedIn, ID: {2aed240b-8c5c-418b-a9d1-0d75412c1c27})
|
||||
----------
|
||||
The name of the StateType ({2aed240b-8c5c-418b-a9d1-0d75412c1c27}) of ThingClass tadoConnection</extracomment>
|
||||
<translation>Eingelogged</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="102"/>
|
||||
<source>Logged in changed</source>
|
||||
<extracomment>The name of the EventType ({2aed240b-8c5c-418b-a9d1-0d75412c1c27}) of ThingClass tadoConnection</extracomment>
|
||||
<translation>Eingelogged geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="105"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="108"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="111"/>
|
||||
<source>Mode</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: zone, ActionType: mode, ID: {4cecf87c-8a5d-4bc4-a4ba-d2ee6103714b})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: zone, EventType: mode, ID: {4cecf87c-8a5d-4bc4-a4ba-d2ee6103714b})
|
||||
----------
|
||||
The name of the StateType ({4cecf87c-8a5d-4bc4-a4ba-d2ee6103714b}) of ThingClass zone</extracomment>
|
||||
<translation>Modus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="114"/>
|
||||
<source>Mode changed</source>
|
||||
<extracomment>The name of the EventType ({4cecf87c-8a5d-4bc4-a4ba-d2ee6103714b}) of ThingClass zone</extracomment>
|
||||
<translation>Modus geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="117"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="120"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="123"/>
|
||||
<source>Power</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: zone, ActionType: power, ID: {e886377d-34b7-4908-ad0d-ed463fc6181d})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: zone, EventType: power, ID: {e886377d-34b7-4908-ad0d-ed463fc6181d})
|
||||
----------
|
||||
The name of the StateType ({e886377d-34b7-4908-ad0d-ed463fc6181d}) of ThingClass zone</extracomment>
|
||||
<translation>Eingeschalten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="126"/>
|
||||
<source>Power changed</source>
|
||||
<extracomment>The name of the EventType ({e886377d-34b7-4908-ad0d-ed463fc6181d}) of ThingClass zone</extracomment>
|
||||
<translation>Eingeschalten geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="129"/>
|
||||
<source>Set mode</source>
|
||||
<extracomment>The name of the ActionType ({4cecf87c-8a5d-4bc4-a4ba-d2ee6103714b}) of ThingClass zone</extracomment>
|
||||
<translation>Setze Modus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="132"/>
|
||||
<source>Set power</source>
|
||||
<extracomment>The name of the ActionType ({e886377d-34b7-4908-ad0d-ed463fc6181d}) of ThingClass zone</extracomment>
|
||||
<translation>Setze Eingeschalten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="135"/>
|
||||
<source>Set target temperature</source>
|
||||
<extracomment>The name of the ActionType ({684fcc62-f12b-4669-988e-4b79f153b0f2}) of ThingClass zone</extracomment>
|
||||
<translation>Setze Zieltemperatur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="138"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="141"/>
|
||||
<source>Tado</source>
|
||||
<extracomment>The name of the vendor ({23c8a19f-bd6a-4c90-bcc9-2f0c0d9292c5})
|
||||
----------
|
||||
The name of the plugin Tado ({b4f2d2ee-50bb-4786-b7f5-261fed204fa5})</extracomment>
|
||||
<translation>Tado</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="144"/>
|
||||
<source>Tado Connection</source>
|
||||
<extracomment>The name of the ThingClass ({69be7d15-5658-4442-872e-42abbd8bff81})</extracomment>
|
||||
<translation>Tado Verbindung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="147"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="150"/>
|
||||
<source>Tado mode</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: zone, EventType: tadoMode, ID: {8b800998-5c2d-4940-9d0e-036979cf49ca})
|
||||
----------
|
||||
The name of the StateType ({8b800998-5c2d-4940-9d0e-036979cf49ca}) of ThingClass zone</extracomment>
|
||||
<translation>Tado Modus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="153"/>
|
||||
<source>Tado mode changed</source>
|
||||
<extracomment>The name of the EventType ({8b800998-5c2d-4940-9d0e-036979cf49ca}) of ThingClass zone</extracomment>
|
||||
<translation>Tado Modus geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="156"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="159"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="162"/>
|
||||
<source>Target temperature</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: zone, ActionType: targetTemperature, ID: {684fcc62-f12b-4669-988e-4b79f153b0f2})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: zone, EventType: targetTemperature, ID: {684fcc62-f12b-4669-988e-4b79f153b0f2})
|
||||
----------
|
||||
The name of the StateType ({684fcc62-f12b-4669-988e-4b79f153b0f2}) of ThingClass zone</extracomment>
|
||||
<translation>Zieltemperatur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="165"/>
|
||||
<source>Target temperature changed</source>
|
||||
<extracomment>The name of the EventType ({684fcc62-f12b-4669-988e-4b79f153b0f2}) of ThingClass zone</extracomment>
|
||||
<translation>Zieltemperatur geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="168"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="171"/>
|
||||
<source>Temperature</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: zone, EventType: temperature, ID: {80098178-7d92-43dd-a216-23704cc0eaa2})
|
||||
----------
|
||||
The name of the StateType ({80098178-7d92-43dd-a216-23704cc0eaa2}) of ThingClass zone</extracomment>
|
||||
<translation>Temperatur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="174"/>
|
||||
<source>Temperature changed</source>
|
||||
<extracomment>The name of the EventType ({80098178-7d92-43dd-a216-23704cc0eaa2}) of ThingClass zone</extracomment>
|
||||
<translation>Temperatur geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="177"/>
|
||||
<source>Type</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: zone, Type: thing, ID: {8e86797e-5333-4428-9dba-9ed5ac243b44})</extracomment>
|
||||
<translation>Typ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="180"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="183"/>
|
||||
<source>Username</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: tadoConnection, EventType: userDisplayName, ID: {33f55afc-a673-47a4-9fb0-75fdac6a66f4})
|
||||
----------
|
||||
The name of the StateType ({33f55afc-a673-47a4-9fb0-75fdac6a66f4}) of ThingClass tadoConnection</extracomment>
|
||||
<translation>Benutzername</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="186"/>
|
||||
<source>Username changed</source>
|
||||
<extracomment>The name of the EventType ({33f55afc-a673-47a4-9fb0-75fdac6a66f4}) of ThingClass tadoConnection</extracomment>
|
||||
<translation>Passwort</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="189"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="192"/>
|
||||
<source>Window open</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: zone, EventType: windowOpen, ID: {c7a04e26-bb22-406e-b117-262bdb8b9c0e})
|
||||
----------
|
||||
The name of the StateType ({c7a04e26-bb22-406e-b117-262bdb8b9c0e}) of ThingClass zone</extracomment>
|
||||
<translation>Fenster offen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="195"/>
|
||||
<source>Window open changed</source>
|
||||
<extracomment>The name of the EventType ({c7a04e26-bb22-406e-b117-262bdb8b9c0e}) of ThingClass zone</extracomment>
|
||||
<translation>Fenster offen geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="198"/>
|
||||
<source>Zone</source>
|
||||
<extracomment>The name of the ThingClass ({1a7bb944-fb9c-490a-8a4c-794b27282292})</extracomment>
|
||||
<translation>Zone</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="201"/>
|
||||
<source>Zone id</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: zone, Type: thing, ID: {cd67476b-978d-4a22-a40e-50cbc941e09e})</extracomment>
|
||||
<translation>Zonen-ID</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
|
@ -4,18 +4,23 @@
|
|||
<context>
|
||||
<name>IntegrationPluginTado</name>
|
||||
<message>
|
||||
<location filename="../integrationplugintado.cpp" line="47"/>
|
||||
<source>Please enter the login credentials.</source>
|
||||
<location filename="../integrationplugintado.cpp" line="55"/>
|
||||
<source>Tado server is not reachable.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../integrationplugintado.cpp" line="57"/>
|
||||
<source>Please enter the login credentials for your Tado account.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>Tado</name>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="64"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="67"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="70"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="73"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="66"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="69"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="72"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="75"/>
|
||||
<source>Available</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: zone, EventType: connected, ID: {9f45a703-6a15-447c-a77a-0df731cda48e})
|
||||
----------
|
||||
|
|
@ -27,8 +32,8 @@ The name of the StateType ({2f79bc1d-27ed-480a-b583-728363c83ea6}) of ThingClass
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="76"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="79"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="78"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="81"/>
|
||||
<source>Available changed</source>
|
||||
<extracomment>The name of the EventType ({9f45a703-6a15-447c-a77a-0df731cda48e}) of ThingClass zone
|
||||
----------
|
||||
|
|
@ -36,14 +41,14 @@ The name of the EventType ({2f79bc1d-27ed-480a-b583-728363c83ea6}) of ThingClass
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="82"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="84"/>
|
||||
<source>Home id</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: zone, Type: thing, ID: {330cad74-6f07-42ad-b226-299927c3c4f0})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="85"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="88"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="87"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="90"/>
|
||||
<source>Humidity</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: zone, EventType: humidity, ID: {0faaaff1-2a33-44ec-b68d-d8855f584b02})
|
||||
----------
|
||||
|
|
@ -51,14 +56,14 @@ The name of the StateType ({0faaaff1-2a33-44ec-b68d-d8855f584b02}) of ThingClass
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="91"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="93"/>
|
||||
<source>Humidity changed</source>
|
||||
<extracomment>The name of the EventType ({0faaaff1-2a33-44ec-b68d-d8855f584b02}) of ThingClass zone</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="94"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="97"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="96"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="99"/>
|
||||
<source>Logged in</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: tadoConnection, EventType: loggedIn, ID: {2aed240b-8c5c-418b-a9d1-0d75412c1c27})
|
||||
----------
|
||||
|
|
@ -66,15 +71,15 @@ The name of the StateType ({2aed240b-8c5c-418b-a9d1-0d75412c1c27}) of ThingClass
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="100"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="102"/>
|
||||
<source>Logged in changed</source>
|
||||
<extracomment>The name of the EventType ({2aed240b-8c5c-418b-a9d1-0d75412c1c27}) of ThingClass tadoConnection</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="103"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="106"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="109"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="105"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="108"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="111"/>
|
||||
<source>Mode</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: zone, ActionType: mode, ID: {4cecf87c-8a5d-4bc4-a4ba-d2ee6103714b})
|
||||
----------
|
||||
|
|
@ -84,41 +89,50 @@ The name of the StateType ({4cecf87c-8a5d-4bc4-a4ba-d2ee6103714b}) of ThingClass
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="112"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="114"/>
|
||||
<source>Mode changed</source>
|
||||
<extracomment>The name of the EventType ({4cecf87c-8a5d-4bc4-a4ba-d2ee6103714b}) of ThingClass zone</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="115"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="118"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="117"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="120"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="123"/>
|
||||
<source>Power</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: zone, EventType: power, ID: {e886377d-34b7-4908-ad0d-ed463fc6181d})
|
||||
<extracomment>The name of the ParamType (ThingClass: zone, ActionType: power, ID: {e886377d-34b7-4908-ad0d-ed463fc6181d})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: zone, EventType: power, ID: {e886377d-34b7-4908-ad0d-ed463fc6181d})
|
||||
----------
|
||||
The name of the StateType ({e886377d-34b7-4908-ad0d-ed463fc6181d}) of ThingClass zone</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="121"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="126"/>
|
||||
<source>Power changed</source>
|
||||
<extracomment>The name of the EventType ({e886377d-34b7-4908-ad0d-ed463fc6181d}) of ThingClass zone</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="124"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="129"/>
|
||||
<source>Set mode</source>
|
||||
<extracomment>The name of the ActionType ({4cecf87c-8a5d-4bc4-a4ba-d2ee6103714b}) of ThingClass zone</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="127"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="132"/>
|
||||
<source>Set power</source>
|
||||
<extracomment>The name of the ActionType ({e886377d-34b7-4908-ad0d-ed463fc6181d}) of ThingClass zone</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="135"/>
|
||||
<source>Set target temperature</source>
|
||||
<extracomment>The name of the ActionType ({684fcc62-f12b-4669-988e-4b79f153b0f2}) of ThingClass zone</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="130"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="133"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="138"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="141"/>
|
||||
<source>Tado</source>
|
||||
<extracomment>The name of the vendor ({23c8a19f-bd6a-4c90-bcc9-2f0c0d9292c5})
|
||||
----------
|
||||
|
|
@ -126,14 +140,14 @@ The name of the plugin Tado ({b4f2d2ee-50bb-4786-b7f5-261fed204fa5})</extracomme
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="136"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="144"/>
|
||||
<source>Tado Connection</source>
|
||||
<extracomment>The name of the ThingClass ({69be7d15-5658-4442-872e-42abbd8bff81})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="139"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="142"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="147"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="150"/>
|
||||
<source>Tado mode</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: zone, EventType: tadoMode, ID: {8b800998-5c2d-4940-9d0e-036979cf49ca})
|
||||
----------
|
||||
|
|
@ -141,15 +155,15 @@ The name of the StateType ({8b800998-5c2d-4940-9d0e-036979cf49ca}) of ThingClass
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="145"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="153"/>
|
||||
<source>Tado mode changed</source>
|
||||
<extracomment>The name of the EventType ({8b800998-5c2d-4940-9d0e-036979cf49ca}) of ThingClass zone</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="148"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="151"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="154"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="156"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="159"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="162"/>
|
||||
<source>Target temperature</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: zone, ActionType: targetTemperature, ID: {684fcc62-f12b-4669-988e-4b79f153b0f2})
|
||||
----------
|
||||
|
|
@ -159,14 +173,14 @@ The name of the StateType ({684fcc62-f12b-4669-988e-4b79f153b0f2}) of ThingClass
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="157"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="165"/>
|
||||
<source>Target temperature changed</source>
|
||||
<extracomment>The name of the EventType ({684fcc62-f12b-4669-988e-4b79f153b0f2}) of ThingClass zone</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="160"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="163"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="168"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="171"/>
|
||||
<source>Temperature</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: zone, EventType: temperature, ID: {80098178-7d92-43dd-a216-23704cc0eaa2})
|
||||
----------
|
||||
|
|
@ -174,20 +188,20 @@ The name of the StateType ({80098178-7d92-43dd-a216-23704cc0eaa2}) of ThingClass
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="166"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="174"/>
|
||||
<source>Temperature changed</source>
|
||||
<extracomment>The name of the EventType ({80098178-7d92-43dd-a216-23704cc0eaa2}) of ThingClass zone</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="169"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="177"/>
|
||||
<source>Type</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: zone, Type: thing, ID: {8e86797e-5333-4428-9dba-9ed5ac243b44})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="172"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="175"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="180"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="183"/>
|
||||
<source>Username</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: tadoConnection, EventType: userDisplayName, ID: {33f55afc-a673-47a4-9fb0-75fdac6a66f4})
|
||||
----------
|
||||
|
|
@ -195,14 +209,14 @@ The name of the StateType ({33f55afc-a673-47a4-9fb0-75fdac6a66f4}) of ThingClass
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="178"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="186"/>
|
||||
<source>Username changed</source>
|
||||
<extracomment>The name of the EventType ({33f55afc-a673-47a4-9fb0-75fdac6a66f4}) of ThingClass tadoConnection</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="181"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="184"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="189"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="192"/>
|
||||
<source>Window open</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: zone, EventType: windowOpen, ID: {c7a04e26-bb22-406e-b117-262bdb8b9c0e})
|
||||
----------
|
||||
|
|
@ -210,19 +224,19 @@ The name of the StateType ({c7a04e26-bb22-406e-b117-262bdb8b9c0e}) of ThingClass
|
|||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="187"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="195"/>
|
||||
<source>Window open changed</source>
|
||||
<extracomment>The name of the EventType ({c7a04e26-bb22-406e-b117-262bdb8b9c0e}) of ThingClass zone</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="190"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="198"/>
|
||||
<source>Zone</source>
|
||||
<extracomment>The name of the ThingClass ({1a7bb944-fb9c-490a-8a4c-794b27282292})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="193"/>
|
||||
<location filename="../../../build-nymea-plugins-Desktop-Debug/tado/plugininfo.h" line="201"/>
|
||||
<source>Zone id</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: zone, Type: thing, ID: {cd67476b-978d-4a22-a40e-50cbc941e09e})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
|
|
|
|||
Loading…
Reference in New Issue