Merge PR #284: Generic Things: Add venetian blind
commit
bbb7490b2b
|
|
@ -1,7 +1,5 @@
|
|||
include(../plugins.pri)
|
||||
|
||||
TARGET = $$qtLibraryTarget(nymea_integrationplugingenericthings)
|
||||
|
||||
SOURCES += \
|
||||
integrationplugingenericthings.cpp
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,9 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
*
|
||||
*
|
||||
* Copyright 2013 - 2020, nymea GmbH
|
||||
* Contact: contact@nymea.io
|
||||
*
|
||||
|
||||
* This file is part of nymea.
|
||||
* This project including source code and documentation is protected by
|
||||
* copyright law, and remains the property of nymea GmbH. All rights, including
|
||||
|
|
@ -28,28 +29,6 @@
|
|||
*
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
/*!
|
||||
\page genericinterfaces.html
|
||||
\title Generic interfaces
|
||||
\brief Common interfaces to test the rule engine.
|
||||
|
||||
\ingroup plugins
|
||||
\ingroup nymea-tests
|
||||
|
||||
The generic interfaces plugin allows you create virtual buttons, which can be connected with a rule. This gives you
|
||||
the possibility to execute multiple \l{Action}{Actions} with one signal. Without a rule this generic interfaces are
|
||||
useless.
|
||||
|
||||
\chapter Plugin properties
|
||||
Following JSON file contains the definition and the description of all available \l{ThingClass}{DeviceClasses}
|
||||
and \l{Vendor}{Vendors} of this \l{DevicePlugin}.
|
||||
|
||||
For more details how to read this JSON file please check out the documentation for \l{The plugin JSON File}.
|
||||
|
||||
\quotefile plugins/deviceplugins/genericinterfaces/deviceplugingenericinterfaces.json
|
||||
*/
|
||||
|
||||
|
||||
#include "integrationplugingenericthings.h"
|
||||
#include "plugininfo.h"
|
||||
|
||||
|
|
@ -61,9 +40,156 @@ IntegrationPluginGenericThings::IntegrationPluginGenericThings()
|
|||
|
||||
}
|
||||
|
||||
void IntegrationPluginGenericThings::init()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void IntegrationPluginGenericThings::setupThing(ThingSetupInfo *info)
|
||||
{
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
Thing *thing = info->thing();
|
||||
if (thing->thingClassId() == extendedBlindThingClassId) {
|
||||
uint closingTime = thing->setting(extendedBlindSettingsClosingTimeParamTypeId).toUInt();
|
||||
if (closingTime == 0) {
|
||||
return info->finish(Thing::ThingErrorSetupFailed, tr("Invalid closing time"));
|
||||
}
|
||||
QTimer* timer = new QTimer(this);
|
||||
timer->setInterval(closingTime/100.00); // closing timer / 100 to update on every percent
|
||||
m_extendedBlindPercentageTimer.insert(thing, timer);
|
||||
connect(thing, &Thing::settingChanged, thing, [timer] (const ParamTypeId ¶mTypeId, const QVariant &value) {
|
||||
if (paramTypeId == extendedBlindSettingsClosingTimeParamTypeId) {
|
||||
timer->setInterval(value.toUInt()/100.00);
|
||||
}
|
||||
});
|
||||
connect(timer, &QTimer::timeout, this, [thing, this] {
|
||||
uint currentPercentage = thing->stateValue(extendedBlindPercentageStateTypeId).toUInt();
|
||||
|
||||
if (thing->stateValue(extendedBlindStatusStateTypeId).toString() == "Closing") {
|
||||
|
||||
if (currentPercentage == 100) {
|
||||
setBlindState(BlindStateStopped, thing);
|
||||
qCDebug(dcGenericThings()) << "Extended blind is closed, stopping timer";
|
||||
} else {
|
||||
currentPercentage++;
|
||||
thing->setStateValue(extendedBlindPercentageStateTypeId, currentPercentage);
|
||||
}
|
||||
} else if (thing->stateValue(extendedBlindStatusStateTypeId).toString() == "Opening") {
|
||||
|
||||
if (currentPercentage == 0) {
|
||||
setBlindState(BlindStateStopped, thing);
|
||||
qCDebug(dcGenericThings()) << "Extended blind is opened, stopping timer";
|
||||
} else {
|
||||
currentPercentage--;
|
||||
thing->setStateValue(extendedBlindPercentageStateTypeId, currentPercentage);
|
||||
}
|
||||
} else {
|
||||
setBlindState(BlindStateStopped, thing);
|
||||
}
|
||||
|
||||
if (m_extendedBlindPercentageTimer.contains(thing)) {
|
||||
uint targetPercentage = m_extendedBlindTargetPercentage.value(thing);
|
||||
if (targetPercentage == currentPercentage) {
|
||||
qCDebug(dcGenericThings()) << "Extended blind has reached target percentage, stopping timer";
|
||||
setBlindState(BlindStateStopped, thing);
|
||||
}
|
||||
}
|
||||
});
|
||||
} else if (info->thing()->thingClassId() == venetianBlindThingClassId) {
|
||||
uint closingTime = thing->setting(venetianBlindSettingsClosingTimeParamTypeId).toUInt();
|
||||
uint angleTime = thing->setting(venetianBlindSettingsAngleTimeParamTypeId).toUInt();
|
||||
if (closingTime < angleTime) {
|
||||
return info->finish(Thing::ThingErrorSetupFailed, tr("Invalid closing or angle time"));
|
||||
}
|
||||
QTimer* closingTimer = new QTimer(this);
|
||||
closingTimer->setInterval(closingTime/100.00); // closing timer / 100 to update on every percent
|
||||
m_extendedBlindPercentageTimer.insert(thing, closingTimer);
|
||||
|
||||
connect(closingTimer, &QTimer::timeout, thing, [thing, this] {
|
||||
uint currentPercentage = thing->stateValue(venetianBlindPercentageStateTypeId).toUInt();
|
||||
|
||||
if (thing->stateValue(venetianBlindStatusStateTypeId).toString() == "Closing") {
|
||||
|
||||
if (currentPercentage == 100) {
|
||||
setBlindState(BlindStateStopped, thing);
|
||||
qCDebug(dcGenericThings()) << "Venetian blind is closed, stopping timer";
|
||||
} else if (currentPercentage > 100) {
|
||||
currentPercentage = 100;
|
||||
setBlindState(BlindStateStopped, thing);
|
||||
qCWarning(dcGenericThings()) << "Venetian blind overshoot 100 percent";
|
||||
} else {
|
||||
currentPercentage++;
|
||||
thing->setStateValue(venetianBlindPercentageStateTypeId, currentPercentage);
|
||||
}
|
||||
} else if (thing->stateValue(venetianBlindStatusStateTypeId).toString() == "Opening") {
|
||||
|
||||
if (currentPercentage == 0) {
|
||||
setBlindState(BlindStateStopped, thing);
|
||||
qCDebug(dcGenericThings()) << "Venetian blind is opened, stopping timer";
|
||||
} else {
|
||||
currentPercentage--;
|
||||
thing->setStateValue(venetianBlindPercentageStateTypeId, currentPercentage);
|
||||
}
|
||||
} else {
|
||||
setBlindState(BlindStateStopped, thing);
|
||||
}
|
||||
|
||||
if (m_extendedBlindPercentageTimer.contains(thing)) {
|
||||
uint targetPercentage = m_extendedBlindTargetPercentage.value(thing);
|
||||
if (targetPercentage == currentPercentage) {
|
||||
qCDebug(dcGenericThings()) << "Venetian blind has reached target percentage, stopping timer";
|
||||
setBlindState(BlindStateStopped, thing);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
QTimer* angleTimer = new QTimer(this);
|
||||
angleTimer->setInterval(angleTime/180.00); // -90 to 90 degree -> 180 degree total
|
||||
m_venetianBlindAngleTimer.insert(thing, angleTimer);
|
||||
connect(thing, &Thing::settingChanged, thing, [closingTimer, angleTimer] (const ParamTypeId ¶mTypeId, const QVariant &value) {
|
||||
if (paramTypeId == venetianBlindSettingsClosingTimeParamTypeId) {
|
||||
closingTimer->setInterval(value.toUInt()/100.00);
|
||||
} else if (paramTypeId == venetianBlindSettingsAngleTimeParamTypeId) {
|
||||
angleTimer->setInterval(value.toUInt()/180.00);
|
||||
}
|
||||
});
|
||||
connect(angleTimer, &QTimer::timeout, thing, [thing, this] {
|
||||
int currentAngle = thing->stateValue(venetianBlindAngleStateTypeId).toInt();
|
||||
if (thing->stateValue(venetianBlindStatusStateTypeId).toString() == "Closing") {
|
||||
|
||||
if (currentAngle < 90) {
|
||||
currentAngle++;
|
||||
} else if (currentAngle == 90) {
|
||||
m_venetianBlindAngleTimer.value(thing)->stop();
|
||||
} else if (currentAngle > 90) {
|
||||
currentAngle = 90;
|
||||
m_venetianBlindAngleTimer.value(thing)->stop();
|
||||
qCWarning(dcGenericThings()) << "Venetian blind overshoot angle boundaries";
|
||||
}
|
||||
thing->setStateValue(venetianBlindAngleStateTypeId, currentAngle);
|
||||
} else if (thing->stateValue(venetianBlindStatusStateTypeId).toString() == "Opening") {
|
||||
|
||||
if (currentAngle > -90) {
|
||||
currentAngle--;
|
||||
} else if (currentAngle == -90) {
|
||||
m_venetianBlindAngleTimer.value(thing)->stop();
|
||||
} else if (currentAngle < -90) {
|
||||
currentAngle = -90;
|
||||
m_venetianBlindAngleTimer.value(thing)->stop();
|
||||
qCWarning(dcGenericThings()) << "Venetian blind overshoot angle boundaries";
|
||||
}
|
||||
thing->setStateValue(venetianBlindAngleStateTypeId, currentAngle);
|
||||
}
|
||||
|
||||
if (m_venetianBlindTargetAngle.contains(thing)) {
|
||||
int targetAngle = m_venetianBlindTargetAngle.value(thing);
|
||||
if (targetAngle == currentAngle) {
|
||||
qCDebug(dcGenericThings()) << "Venetian blind has reached target angle, stopping timer";
|
||||
setBlindState(BlindStateStopped, thing);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
void IntegrationPluginGenericThings::executeAction(ThingActionInfo *info)
|
||||
|
|
@ -77,20 +203,17 @@ void IntegrationPluginGenericThings::executeAction(ThingActionInfo *info)
|
|||
thing->setStateValue(awningClosingOutputStateTypeId, false);
|
||||
thing->setStateValue(awningOpeningOutputStateTypeId, true);
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
if (action.actionTypeId() == awningStopActionTypeId) {
|
||||
} else if (action.actionTypeId() == awningStopActionTypeId) {
|
||||
thing->setStateValue(awningStatusStateTypeId, "Stopped");
|
||||
thing->setStateValue(awningOpeningOutputStateTypeId, false);
|
||||
thing->setStateValue(awningClosingOutputStateTypeId, false);
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
if (action.actionTypeId() == awningCloseActionTypeId) {
|
||||
} else if (action.actionTypeId() == awningCloseActionTypeId) {
|
||||
thing->setStateValue(awningStatusStateTypeId, "Closing");
|
||||
thing->setStateValue(awningOpeningOutputStateTypeId, false);
|
||||
thing->setStateValue(awningClosingOutputStateTypeId, true);
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
if (action.actionTypeId() == awningOpeningOutputActionTypeId) {
|
||||
} else if (action.actionTypeId() == awningOpeningOutputActionTypeId) {
|
||||
bool on = action.param(awningOpeningOutputActionOpeningOutputParamTypeId).value().toBool();
|
||||
thing->setStateValue(awningOpeningOutputStateTypeId, on);
|
||||
if (on) {
|
||||
|
|
@ -100,8 +223,7 @@ void IntegrationPluginGenericThings::executeAction(ThingActionInfo *info)
|
|||
thing->setStateValue(awningStatusStateTypeId, "Stopped");
|
||||
}
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
if (action.actionTypeId() == awningClosingOutputActionTypeId) {
|
||||
} else if (action.actionTypeId() == awningClosingOutputActionTypeId) {
|
||||
bool on = action.param(awningClosingOutputActionClosingOutputParamTypeId).value().toBool();
|
||||
thing->setStateValue(awningClosingOutputStateTypeId, on);
|
||||
if (on) {
|
||||
|
|
@ -111,30 +233,26 @@ void IntegrationPluginGenericThings::executeAction(ThingActionInfo *info)
|
|||
thing->setStateValue(awningStatusStateTypeId, "Stopped");
|
||||
}
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
} else {
|
||||
Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
|
||||
}
|
||||
return info->finish(Thing::ThingErrorActionTypeNotFound);
|
||||
}
|
||||
|
||||
if (thing->thingClassId() == blindThingClassId ) {
|
||||
} else if (thing->thingClassId() == blindThingClassId ) {
|
||||
if (action.actionTypeId() == blindOpenActionTypeId) {
|
||||
thing->setStateValue(blindStatusStateTypeId, "Opening");
|
||||
thing->setStateValue(blindClosingOutputStateTypeId, false);
|
||||
thing->setStateValue(blindOpeningOutputStateTypeId, true);
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
if (action.actionTypeId() == blindStopActionTypeId) {
|
||||
} else if (action.actionTypeId() == blindStopActionTypeId) {
|
||||
thing->setStateValue(blindStatusStateTypeId, "Stopped");
|
||||
thing->setStateValue(blindOpeningOutputStateTypeId, false);
|
||||
thing->setStateValue(blindClosingOutputStateTypeId, false);
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
if (action.actionTypeId() == blindCloseActionTypeId) {
|
||||
} else if (action.actionTypeId() == blindCloseActionTypeId) {
|
||||
thing->setStateValue(blindStatusStateTypeId, "Closing");
|
||||
thing->setStateValue(blindOpeningOutputStateTypeId, false);
|
||||
thing->setStateValue(blindClosingOutputStateTypeId, true);
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
if (action.actionTypeId() == blindOpeningOutputActionTypeId) {
|
||||
} else if (action.actionTypeId() == blindOpeningOutputActionTypeId) {
|
||||
bool on = action.param(blindOpeningOutputActionOpeningOutputParamTypeId).value().toBool();
|
||||
thing->setStateValue(blindOpeningOutputStateTypeId, on);
|
||||
if (on) {
|
||||
|
|
@ -144,8 +262,7 @@ void IntegrationPluginGenericThings::executeAction(ThingActionInfo *info)
|
|||
thing->setStateValue(blindStatusStateTypeId, "Stopped");
|
||||
}
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
if (action.actionTypeId() == blindClosingOutputActionTypeId) {
|
||||
} else if (action.actionTypeId() == blindClosingOutputActionTypeId) {
|
||||
bool on = action.param(blindClosingOutputActionClosingOutputParamTypeId).value().toBool();
|
||||
thing->setStateValue(blindClosingOutputStateTypeId, on);
|
||||
if (on) {
|
||||
|
|
@ -155,30 +272,97 @@ void IntegrationPluginGenericThings::executeAction(ThingActionInfo *info)
|
|||
thing->setStateValue(blindStatusStateTypeId, "Stopped");
|
||||
}
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
} else {
|
||||
Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
|
||||
}
|
||||
return info->finish(Thing::ThingErrorActionTypeNotFound);
|
||||
}
|
||||
} else if (thing->thingClassId() == extendedBlindThingClassId) {
|
||||
|
||||
if (thing->thingClassId() == shutterThingClassId) {
|
||||
if (action.actionTypeId() == extendedBlindOpenActionTypeId) {
|
||||
setBlindState(BlindStateOpening, thing);
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
} else if (action.actionTypeId() == extendedBlindStopActionTypeId) {
|
||||
setBlindState(BlindStateStopped, thing);
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
} else if (action.actionTypeId() == extendedBlindCloseActionTypeId) {
|
||||
setBlindState(BlindStateClosing, thing);
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
} else if (action.actionTypeId() == extendedBlindOpeningOutputActionTypeId) {
|
||||
bool on = action.param(extendedBlindOpeningOutputActionOpeningOutputParamTypeId).value().toBool();
|
||||
thing->setStateValue(extendedBlindOpeningOutputStateTypeId, on);
|
||||
if (on) {
|
||||
setBlindState(BlindStateOpening, thing);
|
||||
} else {
|
||||
setBlindState(BlindStateStopped, thing);
|
||||
}
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
} else if (action.actionTypeId() == extendedBlindClosingOutputActionTypeId) {
|
||||
bool on = action.param(extendedBlindClosingOutputActionClosingOutputParamTypeId).value().toBool();
|
||||
thing->setStateValue(extendedBlindClosingOutputStateTypeId, on);
|
||||
if (on) {
|
||||
setBlindState(BlindStateClosing, thing);
|
||||
} else {
|
||||
setBlindState(BlindStateStopped, thing);
|
||||
}
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
} else if (action.actionTypeId() == extendedBlindPercentageActionTypeId) {
|
||||
moveBlindToPercentage(action, thing);
|
||||
} else {
|
||||
Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
|
||||
}
|
||||
} else if (thing->thingClassId() == venetianBlindThingClassId) {
|
||||
if (action.actionTypeId() == venetianBlindOpenActionTypeId) {
|
||||
setBlindState(BlindStateOpening, thing);
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
} else if (action.actionTypeId() == venetianBlindStopActionTypeId) {
|
||||
setBlindState(BlindStateStopped, thing);
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
} else if (action.actionTypeId() == venetianBlindCloseActionTypeId) {
|
||||
setBlindState(BlindStateClosing, thing);
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
} else if (action.actionTypeId() == venetianBlindOpeningOutputActionTypeId) {
|
||||
bool on = action.param(venetianBlindOpeningOutputActionOpeningOutputParamTypeId).value().toBool();
|
||||
thing->setStateValue(venetianBlindOpeningOutputStateTypeId, on);
|
||||
if (on) {
|
||||
setBlindState(BlindStateOpening, thing);
|
||||
} else {
|
||||
setBlindState(BlindStateStopped, thing);
|
||||
}
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
} else if (action.actionTypeId() == venetianBlindClosingOutputActionTypeId) {
|
||||
bool on = action.param(venetianBlindClosingOutputActionClosingOutputParamTypeId).value().toBool();
|
||||
thing->setStateValue(venetianBlindClosingOutputStateTypeId, on);
|
||||
if (on) {
|
||||
setBlindState(BlindStateClosing, thing);
|
||||
} else {
|
||||
setBlindState(BlindStateStopped, thing);
|
||||
}
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
} else if (action.actionTypeId() == venetianBlindPercentageActionTypeId) {
|
||||
moveBlindToPercentage(action, thing);
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
} else if (action.actionTypeId() == venetianBlindAngleActionTypeId) {
|
||||
moveBlindToAngle(action, thing);
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
} else {
|
||||
Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
|
||||
}
|
||||
} else if (thing->thingClassId() == shutterThingClassId) {
|
||||
if (action.actionTypeId() == shutterOpenActionTypeId) {
|
||||
thing->setStateValue(shutterStatusStateTypeId, "Opening");
|
||||
thing->setStateValue(shutterClosingOutputStateTypeId, false);
|
||||
thing->setStateValue(shutterOpeningOutputStateTypeId, true);
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
if (action.actionTypeId() == shutterStopActionTypeId) {
|
||||
} else if (action.actionTypeId() == shutterStopActionTypeId) {
|
||||
thing->setStateValue(shutterStatusStateTypeId, "Stopped");
|
||||
thing->setStateValue(shutterOpeningOutputStateTypeId, false);
|
||||
thing->setStateValue(shutterClosingOutputStateTypeId, false);
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
if (action.actionTypeId() == shutterCloseActionTypeId) {
|
||||
} else if (action.actionTypeId() == shutterCloseActionTypeId) {
|
||||
thing->setStateValue(shutterStatusStateTypeId, "Closing");
|
||||
thing->setStateValue(shutterOpeningOutputStateTypeId, false);
|
||||
thing->setStateValue(shutterClosingOutputStateTypeId, true);
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
if (action.actionTypeId() == shutterOpeningOutputActionTypeId) {
|
||||
} else if (action.actionTypeId() == shutterOpeningOutputActionTypeId) {
|
||||
bool on = action.param(shutterOpeningOutputActionOpeningOutputParamTypeId).value().toBool();
|
||||
thing->setStateValue(shutterOpeningOutputStateTypeId, on);
|
||||
if (on) {
|
||||
|
|
@ -188,8 +372,7 @@ void IntegrationPluginGenericThings::executeAction(ThingActionInfo *info)
|
|||
thing->setStateValue(shutterStatusStateTypeId, "Stopped");
|
||||
}
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
if (action.actionTypeId() == shutterClosingOutputActionTypeId) {
|
||||
} else if (action.actionTypeId() == shutterClosingOutputActionTypeId) {
|
||||
bool on = action.param(shutterClosingOutputActionClosingOutputParamTypeId).value().toBool();
|
||||
thing->setStateValue(shutterClosingOutputStateTypeId, on);
|
||||
if (on) {
|
||||
|
|
@ -199,59 +382,55 @@ void IntegrationPluginGenericThings::executeAction(ThingActionInfo *info)
|
|||
thing->setStateValue(shutterStatusStateTypeId, "Stopped");
|
||||
}
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
} else {
|
||||
Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
|
||||
}
|
||||
return info->finish(Thing::ThingErrorActionTypeNotFound);
|
||||
}
|
||||
|
||||
if (thing->thingClassId() == socketThingClassId) {
|
||||
} else if (thing->thingClassId() == socketThingClassId) {
|
||||
if (action.actionTypeId() == socketPowerActionTypeId) {
|
||||
thing->setStateValue(socketPowerStateTypeId, action.param(socketPowerActionPowerParamTypeId).value());
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
} else {
|
||||
Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
|
||||
}
|
||||
return info->finish(Thing::ThingErrorActionTypeNotFound);
|
||||
}
|
||||
|
||||
if (thing->thingClassId() == lightThingClassId) {
|
||||
} else if (thing->thingClassId() == lightThingClassId) {
|
||||
if (action.actionTypeId() == lightPowerActionTypeId) {
|
||||
thing->setStateValue(lightPowerStateTypeId, action.param(lightPowerActionPowerParamTypeId).value());
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
} else {
|
||||
Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
|
||||
}
|
||||
return info->finish(Thing::ThingErrorActionTypeNotFound);
|
||||
}
|
||||
|
||||
if (thing->thingClassId() == heatingThingClassId) {
|
||||
} else if (thing->thingClassId() == heatingThingClassId) {
|
||||
if (action.actionTypeId() == heatingPowerActionTypeId) {
|
||||
thing->setStateValue(heatingPowerStateTypeId, action.param(heatingPowerActionPowerParamTypeId).value());
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
} else {
|
||||
Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
|
||||
}
|
||||
return info->finish(Thing::ThingErrorActionTypeNotFound);
|
||||
}
|
||||
|
||||
if (thing->thingClassId() == powerSwitchThingClassId) {
|
||||
} else if (thing->thingClassId() == powerSwitchThingClassId) {
|
||||
if (action.actionTypeId() == powerSwitchPowerActionTypeId) {
|
||||
thing->setStateValue(powerSwitchPowerStateTypeId, action.param(powerSwitchPowerActionPowerParamTypeId).value());
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
return;
|
||||
} else {
|
||||
Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
|
||||
}
|
||||
}
|
||||
|
||||
if (thing->thingClassId() == irrigationThingClassId) {
|
||||
} else if (thing->thingClassId() == irrigationThingClassId) {
|
||||
if (action.actionTypeId() == irrigationPowerActionTypeId) {
|
||||
thing->setStateValue(irrigationPowerStateTypeId, action.param(irrigationPowerActionPowerParamTypeId).value());
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
return;
|
||||
} else {
|
||||
Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
|
||||
}
|
||||
}
|
||||
|
||||
if (thing->thingClassId() == ventilationThingClassId) {
|
||||
} else if (thing->thingClassId() == ventilationThingClassId) {
|
||||
if (action.actionTypeId() == ventilationPowerActionTypeId) {
|
||||
thing->setStateValue(ventilationPowerStateTypeId, action.param(ventilationPowerActionPowerParamTypeId).value());
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
return;
|
||||
} else {
|
||||
Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
|
||||
}
|
||||
}
|
||||
|
||||
if (thing->thingClassId() == temperatureSensorThingClassId) {
|
||||
} else if (thing->thingClassId() == temperatureSensorThingClassId) {
|
||||
if (action.actionTypeId() == temperatureSensorInputActionTypeId) {
|
||||
double value = info->action().param(temperatureSensorInputActionInputParamTypeId).value().toDouble();
|
||||
thing->setStateValue(temperatureSensorInputStateTypeId, value);
|
||||
|
|
@ -263,10 +442,10 @@ void IntegrationPluginGenericThings::executeAction(ThingActionInfo *info)
|
|||
thing->setStateValue(temperatureSensorTemperatureStateTypeId, newValue);
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
return;
|
||||
} else {
|
||||
Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
|
||||
}
|
||||
}
|
||||
|
||||
if (thing->thingClassId() == humiditySensorThingClassId) {
|
||||
} else if (thing->thingClassId() == humiditySensorThingClassId) {
|
||||
if (action.actionTypeId() == humiditySensorInputActionTypeId) {
|
||||
double value = info->action().param(humiditySensorInputActionInputParamTypeId).value().toDouble();
|
||||
thing->setStateValue(humiditySensorInputStateTypeId, value);
|
||||
|
|
@ -278,10 +457,10 @@ void IntegrationPluginGenericThings::executeAction(ThingActionInfo *info)
|
|||
thing->setStateValue(humiditySensorHumidityStateTypeId, newValue);
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
return;
|
||||
} else {
|
||||
Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
|
||||
}
|
||||
}
|
||||
|
||||
if (thing->thingClassId() == moistureSensorThingClassId) {
|
||||
} else if (thing->thingClassId() == moistureSensorThingClassId) {
|
||||
if (action.actionTypeId() == moistureSensorInputActionTypeId) {
|
||||
double value = info->action().param(moistureSensorInputActionInputParamTypeId).value().toDouble();
|
||||
thing->setStateValue(moistureSensorInputStateTypeId, value);
|
||||
|
|
@ -293,10 +472,25 @@ void IntegrationPluginGenericThings::executeAction(ThingActionInfo *info)
|
|||
thing->setStateValue(moistureSensorMoistureStateTypeId, newValue);
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
return;
|
||||
} else {
|
||||
Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
|
||||
}
|
||||
} else {
|
||||
Q_ASSERT_X(false, "executeAction", QString("Unhandled thingClassId: %1").arg(thing->thingClassId().toString()).toUtf8());
|
||||
}
|
||||
}
|
||||
|
||||
return info->finish(Thing::ThingErrorThingClassNotFound);
|
||||
void IntegrationPluginGenericThings::thingRemoved(Thing *thing)
|
||||
{
|
||||
if (thing->thingClassId() == extendedBlindThingClassId) {
|
||||
m_extendedBlindPercentageTimer.take(thing)->deleteLater();
|
||||
m_extendedBlindTargetPercentage.remove(thing);
|
||||
} else if (thing->thingClassId() == venetianBlindThingClassId) {
|
||||
m_extendedBlindPercentageTimer.take(thing)->deleteLater();
|
||||
m_extendedBlindTargetPercentage.remove(thing);
|
||||
m_venetianBlindAngleTimer.take(thing)->deleteLater();
|
||||
m_venetianBlindTargetAngle.remove(thing);
|
||||
}
|
||||
}
|
||||
|
||||
double IntegrationPluginGenericThings::mapDoubleValue(double value, double fromMin, double fromMax, double toMin, double toMax)
|
||||
|
|
@ -305,3 +499,127 @@ double IntegrationPluginGenericThings::mapDoubleValue(double value, double fromM
|
|||
double toValue = toMin + (toMax - toMin) * percent;
|
||||
return toValue;
|
||||
}
|
||||
|
||||
void IntegrationPluginGenericThings::setBlindState(IntegrationPluginGenericThings::BlindState state, Thing *thing)
|
||||
{
|
||||
//If an ongoing "to percentage" actions is beeing executed, it is now overruled by another action
|
||||
m_extendedBlindTargetPercentage.remove(thing);
|
||||
|
||||
if (thing->thingClassId() == extendedBlindThingClassId) {
|
||||
switch (state) {
|
||||
case BlindStateOpening:
|
||||
thing->setStateValue(extendedBlindStatusStateTypeId, "Opening");
|
||||
thing->setStateValue(extendedBlindClosingOutputStateTypeId, false);
|
||||
thing->setStateValue(extendedBlindOpeningOutputStateTypeId, true);
|
||||
thing->setStateValue(extendedBlindMovingStateTypeId, true);
|
||||
m_extendedBlindPercentageTimer.value(thing)->start();
|
||||
break;
|
||||
case BlindStateClosing:
|
||||
thing->setStateValue(extendedBlindStatusStateTypeId, "Closing");
|
||||
thing->setStateValue(extendedBlindClosingOutputStateTypeId, true);
|
||||
thing->setStateValue(extendedBlindOpeningOutputStateTypeId, false);
|
||||
thing->setStateValue(extendedBlindMovingStateTypeId, true);
|
||||
m_extendedBlindPercentageTimer.value(thing)->start();
|
||||
break;
|
||||
case BlindStateStopped:
|
||||
thing->setStateValue(extendedBlindStatusStateTypeId, "Stopped");
|
||||
thing->setStateValue(extendedBlindClosingOutputStateTypeId, false);
|
||||
thing->setStateValue(extendedBlindOpeningOutputStateTypeId, false);
|
||||
thing->setStateValue(extendedBlindMovingStateTypeId, false);
|
||||
m_extendedBlindPercentageTimer.value(thing)->stop();
|
||||
break;
|
||||
}
|
||||
} else if (thing->thingClassId() == venetianBlindThingClassId) {
|
||||
m_venetianBlindTargetAngle.remove(thing);
|
||||
switch (state) {
|
||||
case BlindStateOpening:
|
||||
thing->setStateValue(venetianBlindStatusStateTypeId, "Opening");
|
||||
thing->setStateValue(venetianBlindClosingOutputStateTypeId, false);
|
||||
thing->setStateValue(venetianBlindOpeningOutputStateTypeId, true);
|
||||
thing->setStateValue(venetianBlindMovingStateTypeId, true);
|
||||
m_extendedBlindPercentageTimer.value(thing)->start();
|
||||
m_venetianBlindAngleTimer.value(thing)->start();
|
||||
break;
|
||||
case BlindStateClosing:
|
||||
thing->setStateValue(venetianBlindStatusStateTypeId, "Closing");
|
||||
thing->setStateValue(venetianBlindClosingOutputStateTypeId, true);
|
||||
thing->setStateValue(venetianBlindOpeningOutputStateTypeId, false);
|
||||
thing->setStateValue(venetianBlindMovingStateTypeId, true);
|
||||
m_extendedBlindPercentageTimer.value(thing)->start();
|
||||
m_venetianBlindAngleTimer.value(thing)->start();
|
||||
break;
|
||||
case BlindStateStopped:
|
||||
thing->setStateValue(venetianBlindStatusStateTypeId, "Stopped");
|
||||
thing->setStateValue(venetianBlindClosingOutputStateTypeId, false);
|
||||
thing->setStateValue(venetianBlindOpeningOutputStateTypeId, false);
|
||||
thing->setStateValue(venetianBlindMovingStateTypeId, false);
|
||||
m_extendedBlindPercentageTimer.value(thing)->stop();
|
||||
m_venetianBlindAngleTimer.value(thing)->stop();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void IntegrationPluginGenericThings::moveBlindToPercentage(Action action, Thing *thing)
|
||||
{
|
||||
if (thing->thingClassId() == extendedBlindThingClassId) {
|
||||
uint targetPercentage = action.param(extendedBlindPercentageActionPercentageParamTypeId).value().toUInt();
|
||||
uint currentPercentage = thing->stateValue(extendedBlindPercentageStateTypeId).toUInt();
|
||||
// 100% indicates the device is fully closed
|
||||
if (targetPercentage == currentPercentage) {
|
||||
qCDebug(dcGenericThings()) << "Extended blind is already at given percentage" << targetPercentage;
|
||||
} else if (targetPercentage > currentPercentage) {
|
||||
setBlindState(BlindStateClosing, thing);
|
||||
m_extendedBlindTargetPercentage.insert(thing, targetPercentage);
|
||||
} else if (targetPercentage < currentPercentage) {
|
||||
setBlindState(BlindStateOpening, thing);
|
||||
m_extendedBlindTargetPercentage.insert(thing, targetPercentage);
|
||||
} else {
|
||||
setBlindState(BlindStateStopped, thing);
|
||||
}
|
||||
} else if (thing->thingClassId() == venetianBlindThingClassId) {
|
||||
uint targetPercentage = action.param(venetianBlindPercentageActionPercentageParamTypeId).value().toUInt();
|
||||
uint currentPercentage = thing->stateValue(venetianBlindPercentageStateTypeId).toUInt();
|
||||
qCDebug(dcGenericThings()) << "Moving venetian blind to percentage" << targetPercentage << "Current percentage:" << currentPercentage;
|
||||
// 100% indicates the device is fully closed
|
||||
if (targetPercentage == currentPercentage) {
|
||||
qCDebug(dcGenericThings()) << "Extended blind is already at given percentage" << targetPercentage;
|
||||
} else if (targetPercentage > currentPercentage) {
|
||||
setBlindState(BlindStateClosing, thing);
|
||||
m_extendedBlindTargetPercentage.insert(thing, targetPercentage);
|
||||
} else if (targetPercentage < currentPercentage) {
|
||||
setBlindState(BlindStateOpening, thing);
|
||||
m_extendedBlindTargetPercentage.insert(thing, targetPercentage);
|
||||
} else {
|
||||
setBlindState(BlindStateStopped, thing);
|
||||
}
|
||||
} else {
|
||||
qCDebug(dcGenericThings()) << "Move to percentage doesn't support this thingClass";
|
||||
}
|
||||
}
|
||||
|
||||
void IntegrationPluginGenericThings::moveBlindToAngle(Action action, Thing *thing)
|
||||
{
|
||||
if (thing->thingClassId() == venetianBlindThingClassId) {
|
||||
if (action.actionTypeId() == venetianBlindAngleActionTypeId) {
|
||||
//NOTE moving percentage affects the angle but the angle doesnt affect the percentage
|
||||
// opening -> -90
|
||||
// closing -> +90
|
||||
int targetAngle = action.param(venetianBlindAngleActionAngleParamTypeId).value().toInt();
|
||||
int currentAngle = thing->stateValue(venetianBlindAngleStateTypeId).toInt();
|
||||
if (targetAngle == currentAngle) {
|
||||
qCDebug(dcGenericThings()) << "Venetian blind is already at given angle" << targetAngle;
|
||||
} else if (targetAngle > currentAngle) {
|
||||
setBlindState(BlindStateClosing, thing);
|
||||
m_venetianBlindTargetAngle.insert(thing, targetAngle);
|
||||
} else if (targetAngle < currentAngle) {
|
||||
setBlindState(BlindStateOpening, thing);
|
||||
m_venetianBlindTargetAngle.insert(thing, targetAngle);
|
||||
} else {
|
||||
setBlindState(BlindStateStopped, thing);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
qCDebug(dcGenericThings()) << "Move to angle doesn't support this thingClass";
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
#define INTEGRATIONPLUGINGENERICTHINGS_H
|
||||
|
||||
#include "integrations/integrationplugin.h"
|
||||
#include <QTimer>
|
||||
|
||||
class IntegrationPluginGenericThings: public IntegrationPlugin
|
||||
{
|
||||
|
|
@ -42,11 +43,27 @@ class IntegrationPluginGenericThings: public IntegrationPlugin
|
|||
|
||||
public:
|
||||
explicit IntegrationPluginGenericThings();
|
||||
void init() override;
|
||||
void setupThing(ThingSetupInfo *info) override;
|
||||
void executeAction(ThingActionInfo *info) override;
|
||||
void thingRemoved(Thing *thing) override;
|
||||
|
||||
private:
|
||||
double mapDoubleValue(double value, double fromMin, double fromMax, double toMin, double toMax);
|
||||
|
||||
QHash<Thing *, QTimer *> m_extendedBlindPercentageTimer;
|
||||
QHash<Thing *, QTimer *> m_venetianBlindAngleTimer;
|
||||
QHash<Thing *, uint> m_extendedBlindTargetPercentage;
|
||||
QHash<Thing *, int> m_venetianBlindTargetAngle;
|
||||
|
||||
enum BlindState {
|
||||
BlindStateOpening,
|
||||
BlindStateClosing,
|
||||
BlindStateStopped
|
||||
};
|
||||
void setBlindState(BlindState state, Thing *thing);
|
||||
void moveBlindToPercentage(Action action, Thing *thing);
|
||||
void moveBlindToAngle(Action action, Thing *thing);
|
||||
};
|
||||
|
||||
#endif // INTEGRATIONPLUGINGENERICTHINGS_H
|
||||
|
|
|
|||
|
|
@ -130,6 +130,211 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "40aa9f3c-a23c-4f7f-8786-fcf3554f3e19",
|
||||
"name": "extendedBlind",
|
||||
"displayName": "Generic extended blind",
|
||||
"createMethods": ["user"],
|
||||
"interfaces": ["extendedblind"],
|
||||
"settingsTypes": [
|
||||
{
|
||||
"id": "27a95b8d-7f97-441b-a3be-0646c517cb06",
|
||||
"name": "closingTime",
|
||||
"displayName": "Closing time [MilliSecond]",
|
||||
"type": "uint",
|
||||
"minValue": 1,
|
||||
"defaultValue": 5000
|
||||
}
|
||||
],
|
||||
"stateTypes": [
|
||||
{
|
||||
"id": "e559f077-e904-4bbc-8ec3-344b814d2eab",
|
||||
"name": "openingOutput",
|
||||
"displayName": "Opening output",
|
||||
"displayNameEvent": "Opening output changed",
|
||||
"displayNameAction": "Set opening output",
|
||||
"type": "bool",
|
||||
"defaultValue": false,
|
||||
"ioType": "digitalInput",
|
||||
"writable": true
|
||||
},
|
||||
{
|
||||
"id": "1a4a5839-a30d-4239-a124-63bfdc74a8f6",
|
||||
"name": "closingOutput",
|
||||
"displayName": "Closing output",
|
||||
"displayNameEvent": "Closing output changed",
|
||||
"displayNameAction": "Set closing output",
|
||||
"type": "bool",
|
||||
"defaultValue": false,
|
||||
"ioType": "digitalInput",
|
||||
"writable": true
|
||||
},
|
||||
{
|
||||
"id": "c2354d7e-198a-43ae-aa5f-c6710010c7e1",
|
||||
"name": "status",
|
||||
"displayName": "Status",
|
||||
"displayNameEvent": "Status changed",
|
||||
"type": "QString",
|
||||
"possibleValues": [
|
||||
"Opening",
|
||||
"Stopped",
|
||||
"Closing"
|
||||
],
|
||||
"defaultValue": "Stopped"
|
||||
},
|
||||
{
|
||||
"id": "941d1e1f-8dd7-4493-812f-6cefefd88c2e",
|
||||
"name": "moving",
|
||||
"type": "bool",
|
||||
"displayName": "Moving",
|
||||
"displayNameEvent": "Moving changed",
|
||||
"defaultValue": false
|
||||
},
|
||||
{
|
||||
"id": "181df603-d45f-4d3d-a358-97aa3e4ac0bd",
|
||||
"name": "percentage",
|
||||
"displayName": "Percentage",
|
||||
"displayNameEvent": "Percentage changed",
|
||||
"displayNameAction": "Set percentage",
|
||||
"type": "int",
|
||||
"minValue": 0,
|
||||
"maxValue": 100,
|
||||
"defaultValue": 0,
|
||||
"unit": "Percentage",
|
||||
"writable": true
|
||||
}
|
||||
],
|
||||
"actionTypes": [
|
||||
{
|
||||
"id": "5a7599fa-8351-4ed6-9b98-fa2f3be54304",
|
||||
"name": "open",
|
||||
"displayName": "Open"
|
||||
},
|
||||
{
|
||||
"id": "ab67e4bf-c7b6-489b-9b49-3e0a1c7d33ca",
|
||||
"name": "stop",
|
||||
"displayName": "Stop"
|
||||
},
|
||||
{
|
||||
"id": "97d6351d-7440-47f3-bdba-a31bb15368ac",
|
||||
"name": "close",
|
||||
"displayName": "Close"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "e6b96ced-8d50-45da-91c8-792d364d2795",
|
||||
"name": "venetianBlind",
|
||||
"displayName": "Venetian blind",
|
||||
"createMethods": ["user"],
|
||||
"interfaces": ["venetianblind"],
|
||||
"settingsTypes": [
|
||||
{
|
||||
"id": "4c0bf07d-aaab-4f67-af65-00ceaefbaa84",
|
||||
"name": "closingTime",
|
||||
"displayName": "Closing time [MilliSecond]",
|
||||
"minValue": 1,
|
||||
"type": "uint",
|
||||
"defaultValue": 5000
|
||||
},
|
||||
{
|
||||
"id": "6c8340bf-7fd3-43e3-a75b-dfa2f6426e11",
|
||||
"name": "angleTime",
|
||||
"displayName": "Angle end to end time [MilliSecond]",
|
||||
"minValue": 1,
|
||||
"type": "uint",
|
||||
"defaultValue": 1000
|
||||
}
|
||||
],
|
||||
"stateTypes": [
|
||||
{
|
||||
"id": "6041dacf-5303-4dc0-ba3c-7ecaa438f2dd",
|
||||
"name": "openingOutput",
|
||||
"displayName": "Opening output",
|
||||
"displayNameEvent": "Opening output changed",
|
||||
"displayNameAction": "Set opening output",
|
||||
"type": "bool",
|
||||
"defaultValue": false,
|
||||
"ioType": "digitalInput",
|
||||
"writable": true
|
||||
},
|
||||
{
|
||||
"id": "84dd2fa1-85fe-47f3-9e32-e6083432d39c",
|
||||
"name": "closingOutput",
|
||||
"displayName": "Closing output",
|
||||
"displayNameEvent": "Closing output changed",
|
||||
"displayNameAction": "Set closing output",
|
||||
"type": "bool",
|
||||
"defaultValue": false,
|
||||
"ioType": "digitalInput",
|
||||
"writable": true
|
||||
},
|
||||
{
|
||||
"id": "6fb7826e-b6d8-42f8-b712-719496046436",
|
||||
"name": "status",
|
||||
"displayName": "Status",
|
||||
"displayNameEvent": "Status changed",
|
||||
"type": "QString",
|
||||
"possibleValues": [
|
||||
"Opening",
|
||||
"Stopped",
|
||||
"Closing"
|
||||
],
|
||||
"defaultValue": "Stopped"
|
||||
},
|
||||
{
|
||||
"id": "6234c07e-4200-4f2c-8cbd-bff24c38c243",
|
||||
"name": "moving",
|
||||
"type": "bool",
|
||||
"displayName": "Moving",
|
||||
"displayNameEvent": "Moving changed",
|
||||
"defaultValue": false
|
||||
},
|
||||
{
|
||||
"id": "33dc8019-336d-4d50-8d60-dff8508338ca",
|
||||
"name": "percentage",
|
||||
"displayName": "Percentage",
|
||||
"displayNameEvent": "Percentage changed",
|
||||
"displayNameAction": "Set percentage",
|
||||
"type": "int",
|
||||
"minValue": 0,
|
||||
"maxValue": 100,
|
||||
"defaultValue": 0,
|
||||
"unit": "Percentage",
|
||||
"writable": true
|
||||
},
|
||||
{
|
||||
"id": "fcb700c4-5da8-4385-85b0-6616e807974e",
|
||||
"name": "angle",
|
||||
"displayName": "Angle",
|
||||
"displayNameEvent": "Angle changed",
|
||||
"displayNameAction": "Set angle",
|
||||
"type": "int",
|
||||
"unit": "Degree",
|
||||
"minValue": -90,
|
||||
"maxValue": 90,
|
||||
"defaultValue": 0,
|
||||
"writable": true
|
||||
}
|
||||
],
|
||||
"actionTypes": [
|
||||
{
|
||||
"id": "3e728e50-3d45-4035-b215-1e604cf3159b",
|
||||
"name": "open",
|
||||
"displayName": "Open"
|
||||
},
|
||||
{
|
||||
"id": "6e3eeb5d-d7ed-4175-9795-e76451e0a00b",
|
||||
"name": "stop",
|
||||
"displayName": "Stop"
|
||||
},
|
||||
{
|
||||
"id": "1c71f050-f6cb-4929-9c9d-7c262f77c143",
|
||||
"name": "close",
|
||||
"displayName": "Close"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "7917c2e7-d7d2-4c47-a38d-41f7dd7693d9",
|
||||
"name": "shutter",
|
||||
|
|
|
|||
|
|
@ -3,10 +3,42 @@
|
|||
<TS version="2.1" language="de">
|
||||
<context>
|
||||
<name>GenericThings</name>
|
||||
<message>
|
||||
<source>Accuracy (decimal places)</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: moistureSensor, Type: settings, ID: {3c967a68-9951-4c9a-b019-79b913e762b6})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: humiditySensor, Type: settings, ID: {38064841-6121-4862-a639-08fb0b778511})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: temperatureSensor, Type: settings, ID: {3b543c3a-1fc0-45b5-8c07-600a6045f82e})</extracomment>
|
||||
<translation>Genauigkeit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Angle</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: venetianBlind, ActionType: angle, ID: {fcb700c4-5da8-4385-85b0-6616e807974e})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: venetianBlind, EventType: angle, ID: {fcb700c4-5da8-4385-85b0-6616e807974e})
|
||||
----------
|
||||
The name of the StateType ({fcb700c4-5da8-4385-85b0-6616e807974e}) of ThingClass venetianBlind</extracomment>
|
||||
<translation>Winkel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Angle changed</source>
|
||||
<extracomment>The name of the EventType ({fcb700c4-5da8-4385-85b0-6616e807974e}) of ThingClass venetianBlind</extracomment>
|
||||
<translation>Winkel geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Angle end to end time [MilliSecond]</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: venetianBlind, Type: thing, ID: {6c8340bf-7fd3-43e3-a75b-dfa2f6426e11})</extracomment>
|
||||
<translation>End- zu Endwinkelzeit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Close</source>
|
||||
<extracomment>The name of the ActionType ({cf5303f1-67c7-4cef-b11c-eb9de6fc8a87}) of ThingClass shutter
|
||||
----------
|
||||
The name of the ActionType ({1c71f050-f6cb-4929-9c9d-7c262f77c143}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the ActionType ({97d6351d-7440-47f3-bdba-a31bb15368ac}) of ThingClass extendedBlind
|
||||
----------
|
||||
The name of the ActionType ({86e9cf21-7487-47c4-b4be-4a940d7235fb}) of ThingClass blind
|
||||
----------
|
||||
The name of the ActionType ({53b5ba77-9a34-4cd6-ad24-fb01fc465f98}) of ThingClass awning</extracomment>
|
||||
|
|
@ -20,6 +52,18 @@ The name of the ParamType (ThingClass: shutter, EventType: closingOutput, ID: {1
|
|||
----------
|
||||
The name of the StateType ({1c35df0e-4c41-455f-893a-0145377952a0}) of ThingClass shutter
|
||||
----------
|
||||
The name of the ParamType (ThingClass: venetianBlind, ActionType: closingOutput, ID: {84dd2fa1-85fe-47f3-9e32-e6083432d39c})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: venetianBlind, EventType: closingOutput, ID: {84dd2fa1-85fe-47f3-9e32-e6083432d39c})
|
||||
----------
|
||||
The name of the StateType ({84dd2fa1-85fe-47f3-9e32-e6083432d39c}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the ParamType (ThingClass: extendedBlind, ActionType: closingOutput, ID: {1a4a5839-a30d-4239-a124-63bfdc74a8f6})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: extendedBlind, EventType: closingOutput, ID: {1a4a5839-a30d-4239-a124-63bfdc74a8f6})
|
||||
----------
|
||||
The name of the StateType ({1a4a5839-a30d-4239-a124-63bfdc74a8f6}) of ThingClass extendedBlind
|
||||
----------
|
||||
The name of the ParamType (ThingClass: blind, ActionType: closingOutput, ID: {9b673430-572d-4a9c-85d3-dafadbe541cd})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: blind, EventType: closingOutput, ID: {9b673430-572d-4a9c-85d3-dafadbe541cd})
|
||||
|
|
@ -31,21 +75,32 @@ The name of the ParamType (ThingClass: awning, ActionType: closingOutput, ID: {5
|
|||
The name of the ParamType (ThingClass: awning, EventType: closingOutput, ID: {59bfd575-709f-4e43-9726-de26e6d4ca8b})
|
||||
----------
|
||||
The name of the StateType ({59bfd575-709f-4e43-9726-de26e6d4ca8b}) of ThingClass awning</extracomment>
|
||||
<translation>Schließender Ausgang</translation>
|
||||
<translation>Ausgang Schließen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Closing output changed</source>
|
||||
<extracomment>The name of the EventType ({1c35df0e-4c41-455f-893a-0145377952a0}) of ThingClass shutter
|
||||
----------
|
||||
The name of the EventType ({84dd2fa1-85fe-47f3-9e32-e6083432d39c}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the EventType ({1a4a5839-a30d-4239-a124-63bfdc74a8f6}) of ThingClass extendedBlind
|
||||
----------
|
||||
The name of the EventType ({9b673430-572d-4a9c-85d3-dafadbe541cd}) of ThingClass blind
|
||||
----------
|
||||
The name of the EventType ({59bfd575-709f-4e43-9726-de26e6d4ca8b}) of ThingClass awning</extracomment>
|
||||
<translation>Schließender Ausgang geändert</translation>
|
||||
<translation>Ausgang Schließen geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Closing time [MilliSecond]</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: venetianBlind, Type: thing, ID: {4c0bf07d-aaab-4f67-af65-00ceaefbaa84})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: extendedBlind, Type: thing, ID: {27a95b8d-7f97-441b-a3be-0646c517cb06})</extracomment>
|
||||
<translation>Schließdauer [Millisekunden]</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic Things</source>
|
||||
<extracomment>The name of the plugin GenericThings ({b3188696-2585-4806-bf98-30ab576ce5c8})</extracomment>
|
||||
<translation>Generische "Things"</translation>
|
||||
<translation>Generische Dinge</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic awning</source>
|
||||
|
|
@ -55,7 +110,12 @@ The name of the EventType ({59bfd575-709f-4e43-9726-de26e6d4ca8b}) of ThingClass
|
|||
<message>
|
||||
<source>Generic blind</source>
|
||||
<extracomment>The name of the ThingClass ({17ee3657-6ad8-4ae2-8959-3cf66cec8d13})</extracomment>
|
||||
<translation>Generischer Sichtschutz</translation>
|
||||
<translation>Generische Beschattung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic extended blind</source>
|
||||
<extracomment>The name of the ThingClass ({40aa9f3c-a23c-4f7f-8786-fcf3554f3e19})</extracomment>
|
||||
<translation>Generische erweiterte Beschattung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic heating</source>
|
||||
|
|
@ -65,7 +125,12 @@ The name of the EventType ({59bfd575-709f-4e43-9726-de26e6d4ca8b}) of ThingClass
|
|||
<message>
|
||||
<source>Generic humidity sensor</source>
|
||||
<extracomment>The name of the ThingClass ({d295bc64-773c-42a9-83e2-80db5fa0d1ce})</extracomment>
|
||||
<translation>Generischer Feuchtigkeitssensor</translation>
|
||||
<translation>Generischer Luftfeuchtigkeitssensor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic irrigation</source>
|
||||
<extracomment>The name of the ThingClass ({d013b980-20d5-4791-9c4f-b411c39241d7})</extracomment>
|
||||
<translation>Generische Bewässerung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic light</source>
|
||||
|
|
@ -80,259 +145,39 @@ The name of the EventType ({59bfd575-709f-4e43-9726-de26e6d4ca8b}) of ThingClass
|
|||
<message>
|
||||
<source>Generic power switch</source>
|
||||
<extracomment>The name of the ThingClass ({57daa147-dd6f-4673-a757-d8f01a2054c7})</extracomment>
|
||||
<translation>Generischer Ein-/Ausschalter</translation>
|
||||
<translation>Generischer Schalter</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic shutter</source>
|
||||
<extracomment>The name of the ThingClass ({7917c2e7-d7d2-4c47-a38d-41f7dd7693d9})</extracomment>
|
||||
<translation>Gnerische Rollos</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic soil moisture sensor</source>
|
||||
<extracomment>The name of the ThingClass ({33e610cf-ff30-481b-9f0b-d6857bcd41a5})</extracomment>
|
||||
<translation>Generischer Erdfeuchtigkeitssensor</translation>
|
||||
<translation>Gnerischer Erdbodenfeuchtesensor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic temperature sensor</source>
|
||||
<extracomment>The name of the ThingClass ({cf3d65db-6f68-457b-968c-cfb66cbd5311})</extracomment>
|
||||
<translation>Generischer Temperatursensor</translation>
|
||||
<translation>Gnerischer Temperaturesensor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic ventilation</source>
|
||||
<extracomment>The name of the ThingClass ({24af8dd3-ddf0-47f0-bf09-70fdfd8dceab})</extracomment>
|
||||
<translation>Generische Lüftung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Humidity</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: humiditySensor, EventType: humidity, ID: {925225d9-2965-444a-9c42-63c2873700fb})
|
||||
----------
|
||||
The name of the StateType ({925225d9-2965-444a-9c42-63c2873700fb}) of ThingClass humiditySensor</extracomment>
|
||||
<translation>Luftfeuchtigkeit</translation>
|
||||
<translation>Luftfeuchte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Humidity changed</source>
|
||||
<extracomment>The name of the EventType ({925225d9-2965-444a-9c42-63c2873700fb}) of ThingClass humiditySensor</extracomment>
|
||||
<translation>Luftfeuchtigkeit geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maximum humidity</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: humiditySensor, Type: settings, ID: {10afc387-68d1-47ea-a816-0d1acad47b3c})</extracomment>
|
||||
<translation>Maximale Luftfeuchtigkeit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maximum moisture</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: moistureSensor, Type: settings, ID: {3426817d-065e-4cfc-aa21-bb434de684d6})</extracomment>
|
||||
<translation>Maximale Feuchtigkeit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maximum temperature</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: temperatureSensor, Type: settings, ID: {8b5947ab-127f-4995-853b-eeeb628811e3})</extracomment>
|
||||
<translation>Maximale Temperatur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Minimum humidity</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: humiditySensor, Type: settings, ID: {0218ffa9-3d49-4b25-a59f-c8831f190432})</extracomment>
|
||||
<translation>Minimale Luftfeuchtigkeit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Minimum moisture</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: moistureSensor, Type: settings, ID: {32153786-f1ae-4aa4-a84c-b9054102eb92})</extracomment>
|
||||
<translation>Minimale Feuchtigkeit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Minimum temperature</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: temperatureSensor, Type: settings, ID: {c86ae5d3-9335-4b6e-8231-bf3ed6670dff})</extracomment>
|
||||
<translation>Maximale Temperatur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open</source>
|
||||
<extracomment>The name of the ActionType ({9deb662d-2378-4345-a898-8742d41e43c1}) of ThingClass shutter
|
||||
----------
|
||||
The name of the ActionType ({120dc265-dbbb-4f19-9d31-c372c23479c0}) of ThingClass blind
|
||||
----------
|
||||
The name of the ActionType ({979e9c51-5a93-4635-85e3-01874306b229}) of ThingClass awning</extracomment>
|
||||
<translation>Geöffnet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Opening output</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: shutter, ActionType: openingOutput, ID: {cc547728-b309-4695-b355-49748ef2521c})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: shutter, EventType: openingOutput, ID: {cc547728-b309-4695-b355-49748ef2521c})
|
||||
----------
|
||||
The name of the StateType ({cc547728-b309-4695-b355-49748ef2521c}) of ThingClass shutter
|
||||
----------
|
||||
The name of the ParamType (ThingClass: blind, ActionType: openingOutput, ID: {b2dbf25c-27e5-4f7e-a57d-2ef6d087fa2b})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: blind, EventType: openingOutput, ID: {b2dbf25c-27e5-4f7e-a57d-2ef6d087fa2b})
|
||||
----------
|
||||
The name of the StateType ({b2dbf25c-27e5-4f7e-a57d-2ef6d087fa2b}) of ThingClass blind
|
||||
----------
|
||||
The name of the ParamType (ThingClass: awning, ActionType: openingOutput, ID: {4bb951a4-ea23-4cf0-9269-41d2c4eaf5a4})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: awning, EventType: openingOutput, ID: {4bb951a4-ea23-4cf0-9269-41d2c4eaf5a4})
|
||||
----------
|
||||
The name of the StateType ({4bb951a4-ea23-4cf0-9269-41d2c4eaf5a4}) of ThingClass awning</extracomment>
|
||||
<translation>Öffnender Ausgang</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Opening output changed</source>
|
||||
<extracomment>The name of the EventType ({cc547728-b309-4695-b355-49748ef2521c}) of ThingClass shutter
|
||||
----------
|
||||
The name of the EventType ({b2dbf25c-27e5-4f7e-a57d-2ef6d087fa2b}) of ThingClass blind
|
||||
----------
|
||||
The name of the EventType ({4bb951a4-ea23-4cf0-9269-41d2c4eaf5a4}) of ThingClass awning</extracomment>
|
||||
<translation>Öffnender Ausgang geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Power</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: irrigation, ActionType: power, ID: {0212a287-c5ae-4644-8803-adfdd8caeb9a})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: irrigation, EventType: power, ID: {0212a287-c5ae-4644-8803-adfdd8caeb9a})
|
||||
----------
|
||||
The name of the StateType ({0212a287-c5ae-4644-8803-adfdd8caeb9a}) of ThingClass irrigation
|
||||
----------
|
||||
The name of the ParamType (ThingClass: powerSwitch, ActionType: power, ID: {08087af6-6a3b-4e4a-ac6d-56f23ce63edf})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: powerSwitch, EventType: power, ID: {08087af6-6a3b-4e4a-ac6d-56f23ce63edf})
|
||||
----------
|
||||
The name of the StateType ({08087af6-6a3b-4e4a-ac6d-56f23ce63edf}) of ThingClass powerSwitch
|
||||
----------
|
||||
The name of the ParamType (ThingClass: heating, ActionType: power, ID: {409b635e-a754-4b5c-b3f0-d1c5a0fb3f03})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: heating, EventType: power, ID: {409b635e-a754-4b5c-b3f0-d1c5a0fb3f03})
|
||||
----------
|
||||
The name of the StateType ({409b635e-a754-4b5c-b3f0-d1c5a0fb3f03}) of ThingClass heating
|
||||
----------
|
||||
The name of the ParamType (ThingClass: light, ActionType: power, ID: {8b6e4a67-6522-408b-b676-8d2f09ed2d54})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: light, EventType: power, ID: {8b6e4a67-6522-408b-b676-8d2f09ed2d54})
|
||||
----------
|
||||
The name of the StateType ({8b6e4a67-6522-408b-b676-8d2f09ed2d54}) of ThingClass light
|
||||
----------
|
||||
The name of the ParamType (ThingClass: socket, ActionType: power, ID: {018038d7-1d02-4b17-8fe3-babca044b087})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: socket, EventType: power, ID: {018038d7-1d02-4b17-8fe3-babca044b087})
|
||||
----------
|
||||
The name of the StateType ({018038d7-1d02-4b17-8fe3-babca044b087}) of ThingClass socket</extracomment>
|
||||
<translation>Einschalten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Power changed</source>
|
||||
<extracomment>The name of the EventType ({409b635e-a754-4b5c-b3f0-d1c5a0fb3f03}) of ThingClass heating
|
||||
----------
|
||||
The name of the EventType ({8b6e4a67-6522-408b-b676-8d2f09ed2d54}) of ThingClass light
|
||||
----------
|
||||
The name of the EventType ({018038d7-1d02-4b17-8fe3-babca044b087}) of ThingClass socket</extracomment>
|
||||
<translation>Ein- oder ausgeschaltet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Power on/off</source>
|
||||
<extracomment>The name of the ActionType ({08087af6-6a3b-4e4a-ac6d-56f23ce63edf}) of ThingClass powerSwitch</extracomment>
|
||||
<translation>Ein- oder ausschalten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Powered on/off</source>
|
||||
<extracomment>The name of the EventType ({08087af6-6a3b-4e4a-ac6d-56f23ce63edf}) of ThingClass powerSwitch</extracomment>
|
||||
<translation>Ein- oder ausgeschaltet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set power</source>
|
||||
<extracomment>The name of the ActionType ({409b635e-a754-4b5c-b3f0-d1c5a0fb3f03}) of ThingClass heating
|
||||
----------
|
||||
The name of the ActionType ({8b6e4a67-6522-408b-b676-8d2f09ed2d54}) of ThingClass light
|
||||
----------
|
||||
The name of the ActionType ({018038d7-1d02-4b17-8fe3-babca044b087}) of ThingClass socket</extracomment>
|
||||
<translation>Ein- oder ausschalten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Soil moisture</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: moistureSensor, EventType: moisture, ID: {7a62e1d2-92f2-424c-876c-870478a4b2bd})
|
||||
----------
|
||||
The name of the StateType ({7a62e1d2-92f2-424c-876c-870478a4b2bd}) of ThingClass moistureSensor</extracomment>
|
||||
<translation>Feuchtigkeit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Soil moisture changed</source>
|
||||
<extracomment>The name of the EventType ({7a62e1d2-92f2-424c-876c-870478a4b2bd}) of ThingClass moistureSensor</extracomment>
|
||||
<translation>Feuchtigkeit geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Status</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: shutter, EventType: status, ID: {6d6e72dc-4d2b-4ec1-82c2-54405a682711})
|
||||
----------
|
||||
The name of the StateType ({6d6e72dc-4d2b-4ec1-82c2-54405a682711}) of ThingClass shutter
|
||||
----------
|
||||
The name of the ParamType (ThingClass: blind, EventType: status, ID: {5fdec1e0-51f6-48b9-b743-ba572504b2c1})
|
||||
----------
|
||||
The name of the StateType ({5fdec1e0-51f6-48b9-b743-ba572504b2c1}) of ThingClass blind
|
||||
----------
|
||||
The name of the ParamType (ThingClass: awning, EventType: status, ID: {ff6f2565-2a2e-4d34-b10f-d3f73b676399})
|
||||
----------
|
||||
The name of the StateType ({ff6f2565-2a2e-4d34-b10f-d3f73b676399}) of ThingClass awning</extracomment>
|
||||
<translation>Zustand</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Status changed</source>
|
||||
<extracomment>The name of the EventType ({6d6e72dc-4d2b-4ec1-82c2-54405a682711}) of ThingClass shutter
|
||||
----------
|
||||
The name of the EventType ({5fdec1e0-51f6-48b9-b743-ba572504b2c1}) of ThingClass blind
|
||||
----------
|
||||
The name of the EventType ({ff6f2565-2a2e-4d34-b10f-d3f73b676399}) of ThingClass awning</extracomment>
|
||||
<translation>Zustand geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Stop</source>
|
||||
<extracomment>The name of the ActionType ({db5f3332-1f4e-4f9e-84d2-93c5d7de315c}) of ThingClass shutter
|
||||
----------
|
||||
The name of the ActionType ({1a924c9a-5dcb-4b1c-8fd6-ab101098e007}) of ThingClass blind
|
||||
----------
|
||||
The name of the ActionType ({555cafe4-bd12-42c6-bab1-8cd59af6468e}) of ThingClass awning</extracomment>
|
||||
<translation>Stop</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Temperature</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: temperatureSensor, EventType: temperature, ID: {d0b6c4be-339e-4b0f-a234-0611b7565395})
|
||||
----------
|
||||
The name of the StateType ({d0b6c4be-339e-4b0f-a234-0611b7565395}) of ThingClass temperatureSensor</extracomment>
|
||||
<translation>Temperatur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Temperature changed</source>
|
||||
<extracomment>The name of the EventType ({d0b6c4be-339e-4b0f-a234-0611b7565395}) of ThingClass temperatureSensor</extracomment>
|
||||
<translation>Temperatur geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>nymea</source>
|
||||
<extracomment>The name of the vendor ({2062d64d-3232-433c-88bc-0d33c0ba2ba6})</extracomment>
|
||||
<translation>nymea</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic shutter</source>
|
||||
<extracomment>The name of the ThingClass ({7917c2e7-d7d2-4c47-a38d-41f7dd7693d9})</extracomment>
|
||||
<translation>Generischer Rolladen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic irrigation</source>
|
||||
<extracomment>The name of the ThingClass ({d013b980-20d5-4791-9c4f-b411c39241d7})</extracomment>
|
||||
<translation>Generische Bewässerung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set closing output</source>
|
||||
<extracomment>The name of the ActionType ({1c35df0e-4c41-455f-893a-0145377952a0}) of ThingClass shutter
|
||||
----------
|
||||
The name of the ActionType ({9b673430-572d-4a9c-85d3-dafadbe541cd}) of ThingClass blind
|
||||
----------
|
||||
The name of the ActionType ({59bfd575-709f-4e43-9726-de26e6d4ca8b}) of ThingClass awning</extracomment>
|
||||
<translation>Setze schließenden Ausgang</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set opening output</source>
|
||||
<extracomment>The name of the ActionType ({cc547728-b309-4695-b355-49748ef2521c}) of ThingClass shutter
|
||||
----------
|
||||
The name of the ActionType ({b2dbf25c-27e5-4f7e-a57d-2ef6d087fa2b}) of ThingClass blind
|
||||
----------
|
||||
The name of the ActionType ({4bb951a4-ea23-4cf0-9269-41d2c4eaf5a4}) of ThingClass awning</extracomment>
|
||||
<translation>Setze öffnenden Ausgang</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Turn on or off</source>
|
||||
<extracomment>The name of the ActionType ({0212a287-c5ae-4644-8803-adfdd8caeb9a}) of ThingClass irrigation</extracomment>
|
||||
<translation>Ein- oder ausschalten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Turned on or off</source>
|
||||
<extracomment>The name of the EventType ({0212a287-c5ae-4644-8803-adfdd8caeb9a}) of ThingClass irrigation</extracomment>
|
||||
<translation>Ein- oder ausgeschaltet</translation>
|
||||
<translation>Luftfeuchte geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Input value</source>
|
||||
|
|
@ -364,6 +209,211 @@ The name of the EventType ({a8223e65-e704-4f84-9bbe-d8fc42597047}) of ThingClass
|
|||
The name of the EventType ({fed37466-1264-4ac1-84fd-aff3a1f7ff04}) of ThingClass temperatureSensor</extracomment>
|
||||
<translation>Eingangswert geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maximum humidity</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: humiditySensor, Type: settings, ID: {10afc387-68d1-47ea-a816-0d1acad47b3c})</extracomment>
|
||||
<translation>Maximale Luftfeuchte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maximum moisture</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: moistureSensor, Type: settings, ID: {3426817d-065e-4cfc-aa21-bb434de684d6})</extracomment>
|
||||
<translation>Maximale Erdbodenfeuchte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maximum temperature</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: temperatureSensor, Type: settings, ID: {8b5947ab-127f-4995-853b-eeeb628811e3})</extracomment>
|
||||
<translation>Maximale Temperatur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Minimum humidity</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: humiditySensor, Type: settings, ID: {0218ffa9-3d49-4b25-a59f-c8831f190432})</extracomment>
|
||||
<translation>Minimale Luftfeuchtigkeit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Minimum moisture</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: moistureSensor, Type: settings, ID: {32153786-f1ae-4aa4-a84c-b9054102eb92})</extracomment>
|
||||
<translation>Minimale Erdbodenfeuchte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Minimum temperature</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: temperatureSensor, Type: settings, ID: {c86ae5d3-9335-4b6e-8231-bf3ed6670dff})</extracomment>
|
||||
<translation>Minimale Temperatur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Moving</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: venetianBlind, EventType: moving, ID: {6234c07e-4200-4f2c-8cbd-bff24c38c243})
|
||||
----------
|
||||
The name of the StateType ({6234c07e-4200-4f2c-8cbd-bff24c38c243}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the ParamType (ThingClass: extendedBlind, EventType: moving, ID: {941d1e1f-8dd7-4493-812f-6cefefd88c2e})
|
||||
----------
|
||||
The name of the StateType ({941d1e1f-8dd7-4493-812f-6cefefd88c2e}) of ThingClass extendedBlind</extracomment>
|
||||
<translation>Bewegung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Moving changed</source>
|
||||
<extracomment>The name of the EventType ({6234c07e-4200-4f2c-8cbd-bff24c38c243}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the EventType ({941d1e1f-8dd7-4493-812f-6cefefd88c2e}) of ThingClass extendedBlind</extracomment>
|
||||
<translation>Bewegung geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open</source>
|
||||
<extracomment>The name of the ActionType ({9deb662d-2378-4345-a898-8742d41e43c1}) of ThingClass shutter
|
||||
----------
|
||||
The name of the ActionType ({3e728e50-3d45-4035-b215-1e604cf3159b}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the ActionType ({5a7599fa-8351-4ed6-9b98-fa2f3be54304}) of ThingClass extendedBlind
|
||||
----------
|
||||
The name of the ActionType ({120dc265-dbbb-4f19-9d31-c372c23479c0}) of ThingClass blind
|
||||
----------
|
||||
The name of the ActionType ({979e9c51-5a93-4635-85e3-01874306b229}) of ThingClass awning</extracomment>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Opening output</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: shutter, ActionType: openingOutput, ID: {cc547728-b309-4695-b355-49748ef2521c})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: shutter, EventType: openingOutput, ID: {cc547728-b309-4695-b355-49748ef2521c})
|
||||
----------
|
||||
The name of the StateType ({cc547728-b309-4695-b355-49748ef2521c}) of ThingClass shutter
|
||||
----------
|
||||
The name of the ParamType (ThingClass: venetianBlind, ActionType: openingOutput, ID: {6041dacf-5303-4dc0-ba3c-7ecaa438f2dd})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: venetianBlind, EventType: openingOutput, ID: {6041dacf-5303-4dc0-ba3c-7ecaa438f2dd})
|
||||
----------
|
||||
The name of the StateType ({6041dacf-5303-4dc0-ba3c-7ecaa438f2dd}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the ParamType (ThingClass: extendedBlind, ActionType: openingOutput, ID: {e559f077-e904-4bbc-8ec3-344b814d2eab})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: extendedBlind, EventType: openingOutput, ID: {e559f077-e904-4bbc-8ec3-344b814d2eab})
|
||||
----------
|
||||
The name of the StateType ({e559f077-e904-4bbc-8ec3-344b814d2eab}) of ThingClass extendedBlind
|
||||
----------
|
||||
The name of the ParamType (ThingClass: blind, ActionType: openingOutput, ID: {b2dbf25c-27e5-4f7e-a57d-2ef6d087fa2b})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: blind, EventType: openingOutput, ID: {b2dbf25c-27e5-4f7e-a57d-2ef6d087fa2b})
|
||||
----------
|
||||
The name of the StateType ({b2dbf25c-27e5-4f7e-a57d-2ef6d087fa2b}) of ThingClass blind
|
||||
----------
|
||||
The name of the ParamType (ThingClass: awning, ActionType: openingOutput, ID: {4bb951a4-ea23-4cf0-9269-41d2c4eaf5a4})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: awning, EventType: openingOutput, ID: {4bb951a4-ea23-4cf0-9269-41d2c4eaf5a4})
|
||||
----------
|
||||
The name of the StateType ({4bb951a4-ea23-4cf0-9269-41d2c4eaf5a4}) of ThingClass awning</extracomment>
|
||||
<translation>Öffungsausgang geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Opening output changed</source>
|
||||
<extracomment>The name of the EventType ({cc547728-b309-4695-b355-49748ef2521c}) of ThingClass shutter
|
||||
----------
|
||||
The name of the EventType ({6041dacf-5303-4dc0-ba3c-7ecaa438f2dd}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the EventType ({e559f077-e904-4bbc-8ec3-344b814d2eab}) of ThingClass extendedBlind
|
||||
----------
|
||||
The name of the EventType ({b2dbf25c-27e5-4f7e-a57d-2ef6d087fa2b}) of ThingClass blind
|
||||
----------
|
||||
The name of the EventType ({4bb951a4-ea23-4cf0-9269-41d2c4eaf5a4}) of ThingClass awning</extracomment>
|
||||
<translation>Öffnungsausgang geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Percentage</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: venetianBlind, ActionType: percentage, ID: {33dc8019-336d-4d50-8d60-dff8508338ca})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: venetianBlind, EventType: percentage, ID: {33dc8019-336d-4d50-8d60-dff8508338ca})
|
||||
----------
|
||||
The name of the StateType ({33dc8019-336d-4d50-8d60-dff8508338ca}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the ParamType (ThingClass: extendedBlind, ActionType: percentage, ID: {181df603-d45f-4d3d-a358-97aa3e4ac0bd})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: extendedBlind, EventType: percentage, ID: {181df603-d45f-4d3d-a358-97aa3e4ac0bd})
|
||||
----------
|
||||
The name of the StateType ({181df603-d45f-4d3d-a358-97aa3e4ac0bd}) of ThingClass extendedBlind</extracomment>
|
||||
<translation>Prozent</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Percentage changed</source>
|
||||
<extracomment>The name of the EventType ({33dc8019-336d-4d50-8d60-dff8508338ca}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the EventType ({181df603-d45f-4d3d-a358-97aa3e4ac0bd}) of ThingClass extendedBlind</extracomment>
|
||||
<translation>Prozent geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Power</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: ventilation, ActionType: power, ID: {846711b7-ea5a-4c66-a267-001c60406509})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: ventilation, EventType: power, ID: {846711b7-ea5a-4c66-a267-001c60406509})
|
||||
----------
|
||||
The name of the StateType ({846711b7-ea5a-4c66-a267-001c60406509}) of ThingClass ventilation
|
||||
----------
|
||||
The name of the ParamType (ThingClass: irrigation, ActionType: power, ID: {0212a287-c5ae-4644-8803-adfdd8caeb9a})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: irrigation, EventType: power, ID: {0212a287-c5ae-4644-8803-adfdd8caeb9a})
|
||||
----------
|
||||
The name of the StateType ({0212a287-c5ae-4644-8803-adfdd8caeb9a}) of ThingClass irrigation
|
||||
----------
|
||||
The name of the ParamType (ThingClass: powerSwitch, ActionType: power, ID: {08087af6-6a3b-4e4a-ac6d-56f23ce63edf})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: powerSwitch, EventType: power, ID: {08087af6-6a3b-4e4a-ac6d-56f23ce63edf})
|
||||
----------
|
||||
The name of the StateType ({08087af6-6a3b-4e4a-ac6d-56f23ce63edf}) of ThingClass powerSwitch
|
||||
----------
|
||||
The name of the ParamType (ThingClass: heating, ActionType: power, ID: {409b635e-a754-4b5c-b3f0-d1c5a0fb3f03})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: heating, EventType: power, ID: {409b635e-a754-4b5c-b3f0-d1c5a0fb3f03})
|
||||
----------
|
||||
The name of the StateType ({409b635e-a754-4b5c-b3f0-d1c5a0fb3f03}) of ThingClass heating
|
||||
----------
|
||||
The name of the ParamType (ThingClass: light, ActionType: power, ID: {8b6e4a67-6522-408b-b676-8d2f09ed2d54})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: light, EventType: power, ID: {8b6e4a67-6522-408b-b676-8d2f09ed2d54})
|
||||
----------
|
||||
The name of the StateType ({8b6e4a67-6522-408b-b676-8d2f09ed2d54}) of ThingClass light
|
||||
----------
|
||||
The name of the ParamType (ThingClass: socket, ActionType: power, ID: {018038d7-1d02-4b17-8fe3-babca044b087})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: socket, EventType: power, ID: {018038d7-1d02-4b17-8fe3-babca044b087})
|
||||
----------
|
||||
The name of the StateType ({018038d7-1d02-4b17-8fe3-babca044b087}) of ThingClass socket</extracomment>
|
||||
<translation>Eingeschalten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Power changed</source>
|
||||
<extracomment>The name of the EventType ({409b635e-a754-4b5c-b3f0-d1c5a0fb3f03}) of ThingClass heating
|
||||
----------
|
||||
The name of the EventType ({8b6e4a67-6522-408b-b676-8d2f09ed2d54}) of ThingClass light
|
||||
----------
|
||||
The name of the EventType ({018038d7-1d02-4b17-8fe3-babca044b087}) of ThingClass socket</extracomment>
|
||||
<translation>Eingeschalten geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Power on/off</source>
|
||||
<extracomment>The name of the ActionType ({08087af6-6a3b-4e4a-ac6d-56f23ce63edf}) of ThingClass powerSwitch</extracomment>
|
||||
<translation>Eingeschalten Ein/Aus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Powered on/off</source>
|
||||
<extracomment>The name of the EventType ({08087af6-6a3b-4e4a-ac6d-56f23ce63edf}) of ThingClass powerSwitch</extracomment>
|
||||
<translation>Eingeschalten Ein/Aus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set angle</source>
|
||||
<extracomment>The name of the ActionType ({fcb700c4-5da8-4385-85b0-6616e807974e}) of ThingClass venetianBlind</extracomment>
|
||||
<translation>Setzte Winkel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set closing output</source>
|
||||
<extracomment>The name of the ActionType ({1c35df0e-4c41-455f-893a-0145377952a0}) of ThingClass shutter
|
||||
----------
|
||||
The name of the ActionType ({84dd2fa1-85fe-47f3-9e32-e6083432d39c}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the ActionType ({1a4a5839-a30d-4239-a124-63bfdc74a8f6}) of ThingClass extendedBlind
|
||||
----------
|
||||
The name of the ActionType ({9b673430-572d-4a9c-85d3-dafadbe541cd}) of ThingClass blind
|
||||
----------
|
||||
The name of the ActionType ({59bfd575-709f-4e43-9726-de26e6d4ca8b}) of ThingClass awning</extracomment>
|
||||
<translation>Setze Schließausgang</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set input value</source>
|
||||
<extracomment>The name of the ActionType ({ce64a425-d990-4fc1-966b-be6de445792b}) of ThingClass moistureSensor
|
||||
|
|
@ -374,13 +424,130 @@ The name of the ActionType ({fed37466-1264-4ac1-84fd-aff3a1f7ff04}) of ThingClas
|
|||
<translation>Setze Eingangswert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Accuracy (decimal places)</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: moistureSensor, Type: settings, ID: {3c967a68-9951-4c9a-b019-79b913e762b6})
|
||||
<source>Set opening output</source>
|
||||
<extracomment>The name of the ActionType ({cc547728-b309-4695-b355-49748ef2521c}) of ThingClass shutter
|
||||
----------
|
||||
The name of the ParamType (ThingClass: humiditySensor, Type: settings, ID: {38064841-6121-4862-a639-08fb0b778511})
|
||||
The name of the ActionType ({6041dacf-5303-4dc0-ba3c-7ecaa438f2dd}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the ParamType (ThingClass: temperatureSensor, Type: settings, ID: {3b543c3a-1fc0-45b5-8c07-600a6045f82e})</extracomment>
|
||||
<translation>Genauigkeit (Nachkommastellen)</translation>
|
||||
The name of the ActionType ({e559f077-e904-4bbc-8ec3-344b814d2eab}) of ThingClass extendedBlind
|
||||
----------
|
||||
The name of the ActionType ({b2dbf25c-27e5-4f7e-a57d-2ef6d087fa2b}) of ThingClass blind
|
||||
----------
|
||||
The name of the ActionType ({4bb951a4-ea23-4cf0-9269-41d2c4eaf5a4}) of ThingClass awning</extracomment>
|
||||
<translation>Setze Öffnungsausgang</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set percentage</source>
|
||||
<extracomment>The name of the ActionType ({33dc8019-336d-4d50-8d60-dff8508338ca}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the ActionType ({181df603-d45f-4d3d-a358-97aa3e4ac0bd}) of ThingClass extendedBlind</extracomment>
|
||||
<translation>Setze Prozent</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set power</source>
|
||||
<extracomment>The name of the ActionType ({409b635e-a754-4b5c-b3f0-d1c5a0fb3f03}) of ThingClass heating
|
||||
----------
|
||||
The name of the ActionType ({8b6e4a67-6522-408b-b676-8d2f09ed2d54}) of ThingClass light
|
||||
----------
|
||||
The name of the ActionType ({018038d7-1d02-4b17-8fe3-babca044b087}) of ThingClass socket</extracomment>
|
||||
<translation>Setze Eingeschalten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Soil moisture</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: moistureSensor, EventType: moisture, ID: {7a62e1d2-92f2-424c-876c-870478a4b2bd})
|
||||
----------
|
||||
The name of the StateType ({7a62e1d2-92f2-424c-876c-870478a4b2bd}) of ThingClass moistureSensor</extracomment>
|
||||
<translation>Erdbodenfeuchte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Soil moisture changed</source>
|
||||
<extracomment>The name of the EventType ({7a62e1d2-92f2-424c-876c-870478a4b2bd}) of ThingClass moistureSensor</extracomment>
|
||||
<translation>Erdbodenfeuchte geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Status</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: shutter, EventType: status, ID: {6d6e72dc-4d2b-4ec1-82c2-54405a682711})
|
||||
----------
|
||||
The name of the StateType ({6d6e72dc-4d2b-4ec1-82c2-54405a682711}) of ThingClass shutter
|
||||
----------
|
||||
The name of the ParamType (ThingClass: venetianBlind, EventType: status, ID: {6fb7826e-b6d8-42f8-b712-719496046436})
|
||||
----------
|
||||
The name of the StateType ({6fb7826e-b6d8-42f8-b712-719496046436}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the ParamType (ThingClass: extendedBlind, EventType: status, ID: {c2354d7e-198a-43ae-aa5f-c6710010c7e1})
|
||||
----------
|
||||
The name of the StateType ({c2354d7e-198a-43ae-aa5f-c6710010c7e1}) of ThingClass extendedBlind
|
||||
----------
|
||||
The name of the ParamType (ThingClass: blind, EventType: status, ID: {5fdec1e0-51f6-48b9-b743-ba572504b2c1})
|
||||
----------
|
||||
The name of the StateType ({5fdec1e0-51f6-48b9-b743-ba572504b2c1}) of ThingClass blind
|
||||
----------
|
||||
The name of the ParamType (ThingClass: awning, EventType: status, ID: {ff6f2565-2a2e-4d34-b10f-d3f73b676399})
|
||||
----------
|
||||
The name of the StateType ({ff6f2565-2a2e-4d34-b10f-d3f73b676399}) of ThingClass awning</extracomment>
|
||||
<translation>Status</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Status changed</source>
|
||||
<extracomment>The name of the EventType ({6d6e72dc-4d2b-4ec1-82c2-54405a682711}) of ThingClass shutter
|
||||
----------
|
||||
The name of the EventType ({6fb7826e-b6d8-42f8-b712-719496046436}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the EventType ({c2354d7e-198a-43ae-aa5f-c6710010c7e1}) of ThingClass extendedBlind
|
||||
----------
|
||||
The name of the EventType ({5fdec1e0-51f6-48b9-b743-ba572504b2c1}) of ThingClass blind
|
||||
----------
|
||||
The name of the EventType ({ff6f2565-2a2e-4d34-b10f-d3f73b676399}) of ThingClass awning</extracomment>
|
||||
<translation>Status geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Stop</source>
|
||||
<extracomment>The name of the ActionType ({db5f3332-1f4e-4f9e-84d2-93c5d7de315c}) of ThingClass shutter
|
||||
----------
|
||||
The name of the ActionType ({6e3eeb5d-d7ed-4175-9795-e76451e0a00b}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the ActionType ({ab67e4bf-c7b6-489b-9b49-3e0a1c7d33ca}) of ThingClass extendedBlind
|
||||
----------
|
||||
The name of the ActionType ({1a924c9a-5dcb-4b1c-8fd6-ab101098e007}) of ThingClass blind
|
||||
----------
|
||||
The name of the ActionType ({555cafe4-bd12-42c6-bab1-8cd59af6468e}) of ThingClass awning</extracomment>
|
||||
<translation>Stop</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Temperature</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: temperatureSensor, EventType: temperature, ID: {d0b6c4be-339e-4b0f-a234-0611b7565395})
|
||||
----------
|
||||
The name of the StateType ({d0b6c4be-339e-4b0f-a234-0611b7565395}) of ThingClass temperatureSensor</extracomment>
|
||||
<translation>Temperatur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Temperature changed</source>
|
||||
<extracomment>The name of the EventType ({d0b6c4be-339e-4b0f-a234-0611b7565395}) of ThingClass temperatureSensor</extracomment>
|
||||
<translation>Temperatur geändert</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Turn on or off</source>
|
||||
<extracomment>The name of the ActionType ({846711b7-ea5a-4c66-a267-001c60406509}) of ThingClass ventilation
|
||||
----------
|
||||
The name of the ActionType ({0212a287-c5ae-4644-8803-adfdd8caeb9a}) of ThingClass irrigation</extracomment>
|
||||
<translation>Schalte ein oder aus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Turned on or off</source>
|
||||
<extracomment>The name of the EventType ({846711b7-ea5a-4c66-a267-001c60406509}) of ThingClass ventilation
|
||||
----------
|
||||
The name of the EventType ({0212a287-c5ae-4644-8803-adfdd8caeb9a}) of ThingClass irrigation</extracomment>
|
||||
<translation>Ein- oder Ausgeschalten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Venetian blind</source>
|
||||
<extracomment>The name of the ThingClass ({e6b96ced-8d50-45da-91c8-792d364d2795})</extracomment>
|
||||
<translation>Jalousie</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>nymea</source>
|
||||
<extracomment>The name of the vendor ({2062d64d-3232-433c-88bc-0d33c0ba2ba6})</extracomment>
|
||||
<translation>nymea</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
|
|
|||
|
|
@ -3,10 +3,42 @@
|
|||
<TS version="2.1">
|
||||
<context>
|
||||
<name>GenericThings</name>
|
||||
<message>
|
||||
<source>Accuracy (decimal places)</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: moistureSensor, Type: settings, ID: {3c967a68-9951-4c9a-b019-79b913e762b6})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: humiditySensor, Type: settings, ID: {38064841-6121-4862-a639-08fb0b778511})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: temperatureSensor, Type: settings, ID: {3b543c3a-1fc0-45b5-8c07-600a6045f82e})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Angle</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: venetianBlind, ActionType: angle, ID: {fcb700c4-5da8-4385-85b0-6616e807974e})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: venetianBlind, EventType: angle, ID: {fcb700c4-5da8-4385-85b0-6616e807974e})
|
||||
----------
|
||||
The name of the StateType ({fcb700c4-5da8-4385-85b0-6616e807974e}) of ThingClass venetianBlind</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Angle changed</source>
|
||||
<extracomment>The name of the EventType ({fcb700c4-5da8-4385-85b0-6616e807974e}) of ThingClass venetianBlind</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Angle end to end time [MilliSecond]</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: venetianBlind, Type: thing, ID: {6c8340bf-7fd3-43e3-a75b-dfa2f6426e11})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Close</source>
|
||||
<extracomment>The name of the ActionType ({cf5303f1-67c7-4cef-b11c-eb9de6fc8a87}) of ThingClass shutter
|
||||
----------
|
||||
The name of the ActionType ({1c71f050-f6cb-4929-9c9d-7c262f77c143}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the ActionType ({97d6351d-7440-47f3-bdba-a31bb15368ac}) of ThingClass extendedBlind
|
||||
----------
|
||||
The name of the ActionType ({86e9cf21-7487-47c4-b4be-4a940d7235fb}) of ThingClass blind
|
||||
----------
|
||||
The name of the ActionType ({53b5ba77-9a34-4cd6-ad24-fb01fc465f98}) of ThingClass awning</extracomment>
|
||||
|
|
@ -20,6 +52,18 @@ The name of the ParamType (ThingClass: shutter, EventType: closingOutput, ID: {1
|
|||
----------
|
||||
The name of the StateType ({1c35df0e-4c41-455f-893a-0145377952a0}) of ThingClass shutter
|
||||
----------
|
||||
The name of the ParamType (ThingClass: venetianBlind, ActionType: closingOutput, ID: {84dd2fa1-85fe-47f3-9e32-e6083432d39c})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: venetianBlind, EventType: closingOutput, ID: {84dd2fa1-85fe-47f3-9e32-e6083432d39c})
|
||||
----------
|
||||
The name of the StateType ({84dd2fa1-85fe-47f3-9e32-e6083432d39c}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the ParamType (ThingClass: extendedBlind, ActionType: closingOutput, ID: {1a4a5839-a30d-4239-a124-63bfdc74a8f6})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: extendedBlind, EventType: closingOutput, ID: {1a4a5839-a30d-4239-a124-63bfdc74a8f6})
|
||||
----------
|
||||
The name of the StateType ({1a4a5839-a30d-4239-a124-63bfdc74a8f6}) of ThingClass extendedBlind
|
||||
----------
|
||||
The name of the ParamType (ThingClass: blind, ActionType: closingOutput, ID: {9b673430-572d-4a9c-85d3-dafadbe541cd})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: blind, EventType: closingOutput, ID: {9b673430-572d-4a9c-85d3-dafadbe541cd})
|
||||
|
|
@ -37,11 +81,22 @@ The name of the StateType ({59bfd575-709f-4e43-9726-de26e6d4ca8b}) of ThingClass
|
|||
<source>Closing output changed</source>
|
||||
<extracomment>The name of the EventType ({1c35df0e-4c41-455f-893a-0145377952a0}) of ThingClass shutter
|
||||
----------
|
||||
The name of the EventType ({84dd2fa1-85fe-47f3-9e32-e6083432d39c}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the EventType ({1a4a5839-a30d-4239-a124-63bfdc74a8f6}) of ThingClass extendedBlind
|
||||
----------
|
||||
The name of the EventType ({9b673430-572d-4a9c-85d3-dafadbe541cd}) of ThingClass blind
|
||||
----------
|
||||
The name of the EventType ({59bfd575-709f-4e43-9726-de26e6d4ca8b}) of ThingClass awning</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Closing time [MilliSecond]</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: venetianBlind, Type: thing, ID: {4c0bf07d-aaab-4f67-af65-00ceaefbaa84})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: extendedBlind, Type: thing, ID: {27a95b8d-7f97-441b-a3be-0646c517cb06})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic Things</source>
|
||||
<extracomment>The name of the plugin GenericThings ({b3188696-2585-4806-bf98-30ab576ce5c8})</extracomment>
|
||||
|
|
@ -57,6 +112,11 @@ The name of the EventType ({59bfd575-709f-4e43-9726-de26e6d4ca8b}) of ThingClass
|
|||
<extracomment>The name of the ThingClass ({17ee3657-6ad8-4ae2-8959-3cf66cec8d13})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic extended blind</source>
|
||||
<extracomment>The name of the ThingClass ({40aa9f3c-a23c-4f7f-8786-fcf3554f3e19})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic heating</source>
|
||||
<extracomment>The name of the ThingClass ({392854c4-3d14-4cf8-96cd-d933526bd197})</extracomment>
|
||||
|
|
@ -67,6 +127,11 @@ The name of the EventType ({59bfd575-709f-4e43-9726-de26e6d4ca8b}) of ThingClass
|
|||
<extracomment>The name of the ThingClass ({d295bc64-773c-42a9-83e2-80db5fa0d1ce})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic irrigation</source>
|
||||
<extracomment>The name of the ThingClass ({d013b980-20d5-4791-9c4f-b411c39241d7})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic light</source>
|
||||
<extracomment>The name of the ThingClass ({c50d3216-f307-4f9f-8190-4391510c385c})</extracomment>
|
||||
|
|
@ -82,6 +147,11 @@ The name of the EventType ({59bfd575-709f-4e43-9726-de26e6d4ca8b}) of ThingClass
|
|||
<extracomment>The name of the ThingClass ({57daa147-dd6f-4673-a757-d8f01a2054c7})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic shutter</source>
|
||||
<extracomment>The name of the ThingClass ({7917c2e7-d7d2-4c47-a38d-41f7dd7693d9})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic soil moisture sensor</source>
|
||||
<extracomment>The name of the ThingClass ({33e610cf-ff30-481b-9f0b-d6857bcd41a5})</extracomment>
|
||||
|
|
@ -92,6 +162,11 @@ The name of the EventType ({59bfd575-709f-4e43-9726-de26e6d4ca8b}) of ThingClass
|
|||
<extracomment>The name of the ThingClass ({cf3d65db-6f68-457b-968c-cfb66cbd5311})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic ventilation</source>
|
||||
<extracomment>The name of the ThingClass ({24af8dd3-ddf0-47f0-bf09-70fdfd8dceab})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Humidity</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: humiditySensor, EventType: humidity, ID: {925225d9-2965-444a-9c42-63c2873700fb})
|
||||
|
|
@ -104,6 +179,36 @@ The name of the StateType ({925225d9-2965-444a-9c42-63c2873700fb}) of ThingClass
|
|||
<extracomment>The name of the EventType ({925225d9-2965-444a-9c42-63c2873700fb}) of ThingClass humiditySensor</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Input value</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: moistureSensor, ActionType: input, ID: {ce64a425-d990-4fc1-966b-be6de445792b})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: moistureSensor, EventType: input, ID: {ce64a425-d990-4fc1-966b-be6de445792b})
|
||||
----------
|
||||
The name of the StateType ({ce64a425-d990-4fc1-966b-be6de445792b}) of ThingClass moistureSensor
|
||||
----------
|
||||
The name of the ParamType (ThingClass: humiditySensor, ActionType: input, ID: {a8223e65-e704-4f84-9bbe-d8fc42597047})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: humiditySensor, EventType: input, ID: {a8223e65-e704-4f84-9bbe-d8fc42597047})
|
||||
----------
|
||||
The name of the StateType ({a8223e65-e704-4f84-9bbe-d8fc42597047}) of ThingClass humiditySensor
|
||||
----------
|
||||
The name of the ParamType (ThingClass: temperatureSensor, ActionType: input, ID: {fed37466-1264-4ac1-84fd-aff3a1f7ff04})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: temperatureSensor, EventType: input, ID: {fed37466-1264-4ac1-84fd-aff3a1f7ff04})
|
||||
----------
|
||||
The name of the StateType ({fed37466-1264-4ac1-84fd-aff3a1f7ff04}) of ThingClass temperatureSensor</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Input value changed</source>
|
||||
<extracomment>The name of the EventType ({ce64a425-d990-4fc1-966b-be6de445792b}) of ThingClass moistureSensor
|
||||
----------
|
||||
The name of the EventType ({a8223e65-e704-4f84-9bbe-d8fc42597047}) of ThingClass humiditySensor
|
||||
----------
|
||||
The name of the EventType ({fed37466-1264-4ac1-84fd-aff3a1f7ff04}) of ThingClass temperatureSensor</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maximum humidity</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: humiditySensor, Type: settings, ID: {10afc387-68d1-47ea-a816-0d1acad47b3c})</extracomment>
|
||||
|
|
@ -134,10 +239,32 @@ The name of the StateType ({925225d9-2965-444a-9c42-63c2873700fb}) of ThingClass
|
|||
<extracomment>The name of the ParamType (ThingClass: temperatureSensor, Type: settings, ID: {c86ae5d3-9335-4b6e-8231-bf3ed6670dff})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Moving</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: venetianBlind, EventType: moving, ID: {6234c07e-4200-4f2c-8cbd-bff24c38c243})
|
||||
----------
|
||||
The name of the StateType ({6234c07e-4200-4f2c-8cbd-bff24c38c243}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the ParamType (ThingClass: extendedBlind, EventType: moving, ID: {941d1e1f-8dd7-4493-812f-6cefefd88c2e})
|
||||
----------
|
||||
The name of the StateType ({941d1e1f-8dd7-4493-812f-6cefefd88c2e}) of ThingClass extendedBlind</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Moving changed</source>
|
||||
<extracomment>The name of the EventType ({6234c07e-4200-4f2c-8cbd-bff24c38c243}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the EventType ({941d1e1f-8dd7-4493-812f-6cefefd88c2e}) of ThingClass extendedBlind</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open</source>
|
||||
<extracomment>The name of the ActionType ({9deb662d-2378-4345-a898-8742d41e43c1}) of ThingClass shutter
|
||||
----------
|
||||
The name of the ActionType ({3e728e50-3d45-4035-b215-1e604cf3159b}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the ActionType ({5a7599fa-8351-4ed6-9b98-fa2f3be54304}) of ThingClass extendedBlind
|
||||
----------
|
||||
The name of the ActionType ({120dc265-dbbb-4f19-9d31-c372c23479c0}) of ThingClass blind
|
||||
----------
|
||||
The name of the ActionType ({979e9c51-5a93-4635-85e3-01874306b229}) of ThingClass awning</extracomment>
|
||||
|
|
@ -151,6 +278,18 @@ The name of the ParamType (ThingClass: shutter, EventType: openingOutput, ID: {c
|
|||
----------
|
||||
The name of the StateType ({cc547728-b309-4695-b355-49748ef2521c}) of ThingClass shutter
|
||||
----------
|
||||
The name of the ParamType (ThingClass: venetianBlind, ActionType: openingOutput, ID: {6041dacf-5303-4dc0-ba3c-7ecaa438f2dd})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: venetianBlind, EventType: openingOutput, ID: {6041dacf-5303-4dc0-ba3c-7ecaa438f2dd})
|
||||
----------
|
||||
The name of the StateType ({6041dacf-5303-4dc0-ba3c-7ecaa438f2dd}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the ParamType (ThingClass: extendedBlind, ActionType: openingOutput, ID: {e559f077-e904-4bbc-8ec3-344b814d2eab})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: extendedBlind, EventType: openingOutput, ID: {e559f077-e904-4bbc-8ec3-344b814d2eab})
|
||||
----------
|
||||
The name of the StateType ({e559f077-e904-4bbc-8ec3-344b814d2eab}) of ThingClass extendedBlind
|
||||
----------
|
||||
The name of the ParamType (ThingClass: blind, ActionType: openingOutput, ID: {b2dbf25c-27e5-4f7e-a57d-2ef6d087fa2b})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: blind, EventType: openingOutput, ID: {b2dbf25c-27e5-4f7e-a57d-2ef6d087fa2b})
|
||||
|
|
@ -168,14 +307,46 @@ The name of the StateType ({4bb951a4-ea23-4cf0-9269-41d2c4eaf5a4}) of ThingClass
|
|||
<source>Opening output changed</source>
|
||||
<extracomment>The name of the EventType ({cc547728-b309-4695-b355-49748ef2521c}) of ThingClass shutter
|
||||
----------
|
||||
The name of the EventType ({6041dacf-5303-4dc0-ba3c-7ecaa438f2dd}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the EventType ({e559f077-e904-4bbc-8ec3-344b814d2eab}) of ThingClass extendedBlind
|
||||
----------
|
||||
The name of the EventType ({b2dbf25c-27e5-4f7e-a57d-2ef6d087fa2b}) of ThingClass blind
|
||||
----------
|
||||
The name of the EventType ({4bb951a4-ea23-4cf0-9269-41d2c4eaf5a4}) of ThingClass awning</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Percentage</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: venetianBlind, ActionType: percentage, ID: {33dc8019-336d-4d50-8d60-dff8508338ca})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: venetianBlind, EventType: percentage, ID: {33dc8019-336d-4d50-8d60-dff8508338ca})
|
||||
----------
|
||||
The name of the StateType ({33dc8019-336d-4d50-8d60-dff8508338ca}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the ParamType (ThingClass: extendedBlind, ActionType: percentage, ID: {181df603-d45f-4d3d-a358-97aa3e4ac0bd})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: extendedBlind, EventType: percentage, ID: {181df603-d45f-4d3d-a358-97aa3e4ac0bd})
|
||||
----------
|
||||
The name of the StateType ({181df603-d45f-4d3d-a358-97aa3e4ac0bd}) of ThingClass extendedBlind</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Percentage changed</source>
|
||||
<extracomment>The name of the EventType ({33dc8019-336d-4d50-8d60-dff8508338ca}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the EventType ({181df603-d45f-4d3d-a358-97aa3e4ac0bd}) of ThingClass extendedBlind</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Power</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: irrigation, ActionType: power, ID: {0212a287-c5ae-4644-8803-adfdd8caeb9a})
|
||||
<extracomment>The name of the ParamType (ThingClass: ventilation, ActionType: power, ID: {846711b7-ea5a-4c66-a267-001c60406509})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: ventilation, EventType: power, ID: {846711b7-ea5a-4c66-a267-001c60406509})
|
||||
----------
|
||||
The name of the StateType ({846711b7-ea5a-4c66-a267-001c60406509}) of ThingClass ventilation
|
||||
----------
|
||||
The name of the ParamType (ThingClass: irrigation, ActionType: power, ID: {0212a287-c5ae-4644-8803-adfdd8caeb9a})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: irrigation, EventType: power, ID: {0212a287-c5ae-4644-8803-adfdd8caeb9a})
|
||||
----------
|
||||
|
|
@ -225,6 +396,53 @@ The name of the EventType ({018038d7-1d02-4b17-8fe3-babca044b087}) of ThingClass
|
|||
<extracomment>The name of the EventType ({08087af6-6a3b-4e4a-ac6d-56f23ce63edf}) of ThingClass powerSwitch</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set angle</source>
|
||||
<extracomment>The name of the ActionType ({fcb700c4-5da8-4385-85b0-6616e807974e}) of ThingClass venetianBlind</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set closing output</source>
|
||||
<extracomment>The name of the ActionType ({1c35df0e-4c41-455f-893a-0145377952a0}) of ThingClass shutter
|
||||
----------
|
||||
The name of the ActionType ({84dd2fa1-85fe-47f3-9e32-e6083432d39c}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the ActionType ({1a4a5839-a30d-4239-a124-63bfdc74a8f6}) of ThingClass extendedBlind
|
||||
----------
|
||||
The name of the ActionType ({9b673430-572d-4a9c-85d3-dafadbe541cd}) of ThingClass blind
|
||||
----------
|
||||
The name of the ActionType ({59bfd575-709f-4e43-9726-de26e6d4ca8b}) of ThingClass awning</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set input value</source>
|
||||
<extracomment>The name of the ActionType ({ce64a425-d990-4fc1-966b-be6de445792b}) of ThingClass moistureSensor
|
||||
----------
|
||||
The name of the ActionType ({a8223e65-e704-4f84-9bbe-d8fc42597047}) of ThingClass humiditySensor
|
||||
----------
|
||||
The name of the ActionType ({fed37466-1264-4ac1-84fd-aff3a1f7ff04}) of ThingClass temperatureSensor</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set opening output</source>
|
||||
<extracomment>The name of the ActionType ({cc547728-b309-4695-b355-49748ef2521c}) of ThingClass shutter
|
||||
----------
|
||||
The name of the ActionType ({6041dacf-5303-4dc0-ba3c-7ecaa438f2dd}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the ActionType ({e559f077-e904-4bbc-8ec3-344b814d2eab}) of ThingClass extendedBlind
|
||||
----------
|
||||
The name of the ActionType ({b2dbf25c-27e5-4f7e-a57d-2ef6d087fa2b}) of ThingClass blind
|
||||
----------
|
||||
The name of the ActionType ({4bb951a4-ea23-4cf0-9269-41d2c4eaf5a4}) of ThingClass awning</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set percentage</source>
|
||||
<extracomment>The name of the ActionType ({33dc8019-336d-4d50-8d60-dff8508338ca}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the ActionType ({181df603-d45f-4d3d-a358-97aa3e4ac0bd}) of ThingClass extendedBlind</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set power</source>
|
||||
<extracomment>The name of the ActionType ({409b635e-a754-4b5c-b3f0-d1c5a0fb3f03}) of ThingClass heating
|
||||
|
|
@ -252,6 +470,14 @@ The name of the StateType ({7a62e1d2-92f2-424c-876c-870478a4b2bd}) of ThingClass
|
|||
----------
|
||||
The name of the StateType ({6d6e72dc-4d2b-4ec1-82c2-54405a682711}) of ThingClass shutter
|
||||
----------
|
||||
The name of the ParamType (ThingClass: venetianBlind, EventType: status, ID: {6fb7826e-b6d8-42f8-b712-719496046436})
|
||||
----------
|
||||
The name of the StateType ({6fb7826e-b6d8-42f8-b712-719496046436}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the ParamType (ThingClass: extendedBlind, EventType: status, ID: {c2354d7e-198a-43ae-aa5f-c6710010c7e1})
|
||||
----------
|
||||
The name of the StateType ({c2354d7e-198a-43ae-aa5f-c6710010c7e1}) of ThingClass extendedBlind
|
||||
----------
|
||||
The name of the ParamType (ThingClass: blind, EventType: status, ID: {5fdec1e0-51f6-48b9-b743-ba572504b2c1})
|
||||
----------
|
||||
The name of the StateType ({5fdec1e0-51f6-48b9-b743-ba572504b2c1}) of ThingClass blind
|
||||
|
|
@ -265,6 +491,10 @@ The name of the StateType ({ff6f2565-2a2e-4d34-b10f-d3f73b676399}) of ThingClass
|
|||
<source>Status changed</source>
|
||||
<extracomment>The name of the EventType ({6d6e72dc-4d2b-4ec1-82c2-54405a682711}) of ThingClass shutter
|
||||
----------
|
||||
The name of the EventType ({6fb7826e-b6d8-42f8-b712-719496046436}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the EventType ({c2354d7e-198a-43ae-aa5f-c6710010c7e1}) of ThingClass extendedBlind
|
||||
----------
|
||||
The name of the EventType ({5fdec1e0-51f6-48b9-b743-ba572504b2c1}) of ThingClass blind
|
||||
----------
|
||||
The name of the EventType ({ff6f2565-2a2e-4d34-b10f-d3f73b676399}) of ThingClass awning</extracomment>
|
||||
|
|
@ -274,6 +504,10 @@ The name of the EventType ({ff6f2565-2a2e-4d34-b10f-d3f73b676399}) of ThingClass
|
|||
<source>Stop</source>
|
||||
<extracomment>The name of the ActionType ({db5f3332-1f4e-4f9e-84d2-93c5d7de315c}) of ThingClass shutter
|
||||
----------
|
||||
The name of the ActionType ({6e3eeb5d-d7ed-4175-9795-e76451e0a00b}) of ThingClass venetianBlind
|
||||
----------
|
||||
The name of the ActionType ({ab67e4bf-c7b6-489b-9b49-3e0a1c7d33ca}) of ThingClass extendedBlind
|
||||
----------
|
||||
The name of the ActionType ({1a924c9a-5dcb-4b1c-8fd6-ab101098e007}) of ThingClass blind
|
||||
----------
|
||||
The name of the ActionType ({555cafe4-bd12-42c6-bab1-8cd59af6468e}) of ThingClass awning</extracomment>
|
||||
|
|
@ -291,95 +525,28 @@ The name of the StateType ({d0b6c4be-339e-4b0f-a234-0611b7565395}) of ThingClass
|
|||
<extracomment>The name of the EventType ({d0b6c4be-339e-4b0f-a234-0611b7565395}) of ThingClass temperatureSensor</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>nymea</source>
|
||||
<extracomment>The name of the vendor ({2062d64d-3232-433c-88bc-0d33c0ba2ba6})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic shutter</source>
|
||||
<extracomment>The name of the ThingClass ({7917c2e7-d7d2-4c47-a38d-41f7dd7693d9})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic irrigation</source>
|
||||
<extracomment>The name of the ThingClass ({d013b980-20d5-4791-9c4f-b411c39241d7})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set closing output</source>
|
||||
<extracomment>The name of the ActionType ({1c35df0e-4c41-455f-893a-0145377952a0}) of ThingClass shutter
|
||||
----------
|
||||
The name of the ActionType ({9b673430-572d-4a9c-85d3-dafadbe541cd}) of ThingClass blind
|
||||
----------
|
||||
The name of the ActionType ({59bfd575-709f-4e43-9726-de26e6d4ca8b}) of ThingClass awning</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set opening output</source>
|
||||
<extracomment>The name of the ActionType ({cc547728-b309-4695-b355-49748ef2521c}) of ThingClass shutter
|
||||
----------
|
||||
The name of the ActionType ({b2dbf25c-27e5-4f7e-a57d-2ef6d087fa2b}) of ThingClass blind
|
||||
----------
|
||||
The name of the ActionType ({4bb951a4-ea23-4cf0-9269-41d2c4eaf5a4}) of ThingClass awning</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Turn on or off</source>
|
||||
<extracomment>The name of the ActionType ({0212a287-c5ae-4644-8803-adfdd8caeb9a}) of ThingClass irrigation</extracomment>
|
||||
<extracomment>The name of the ActionType ({846711b7-ea5a-4c66-a267-001c60406509}) of ThingClass ventilation
|
||||
----------
|
||||
The name of the ActionType ({0212a287-c5ae-4644-8803-adfdd8caeb9a}) of ThingClass irrigation</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Turned on or off</source>
|
||||
<extracomment>The name of the EventType ({0212a287-c5ae-4644-8803-adfdd8caeb9a}) of ThingClass irrigation</extracomment>
|
||||
<extracomment>The name of the EventType ({846711b7-ea5a-4c66-a267-001c60406509}) of ThingClass ventilation
|
||||
----------
|
||||
The name of the EventType ({0212a287-c5ae-4644-8803-adfdd8caeb9a}) of ThingClass irrigation</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Input value</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: moistureSensor, ActionType: input, ID: {ce64a425-d990-4fc1-966b-be6de445792b})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: moistureSensor, EventType: input, ID: {ce64a425-d990-4fc1-966b-be6de445792b})
|
||||
----------
|
||||
The name of the StateType ({ce64a425-d990-4fc1-966b-be6de445792b}) of ThingClass moistureSensor
|
||||
----------
|
||||
The name of the ParamType (ThingClass: humiditySensor, ActionType: input, ID: {a8223e65-e704-4f84-9bbe-d8fc42597047})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: humiditySensor, EventType: input, ID: {a8223e65-e704-4f84-9bbe-d8fc42597047})
|
||||
----------
|
||||
The name of the StateType ({a8223e65-e704-4f84-9bbe-d8fc42597047}) of ThingClass humiditySensor
|
||||
----------
|
||||
The name of the ParamType (ThingClass: temperatureSensor, ActionType: input, ID: {fed37466-1264-4ac1-84fd-aff3a1f7ff04})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: temperatureSensor, EventType: input, ID: {fed37466-1264-4ac1-84fd-aff3a1f7ff04})
|
||||
----------
|
||||
The name of the StateType ({fed37466-1264-4ac1-84fd-aff3a1f7ff04}) of ThingClass temperatureSensor</extracomment>
|
||||
<source>Venetian blind</source>
|
||||
<extracomment>The name of the ThingClass ({e6b96ced-8d50-45da-91c8-792d364d2795})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Input value changed</source>
|
||||
<extracomment>The name of the EventType ({ce64a425-d990-4fc1-966b-be6de445792b}) of ThingClass moistureSensor
|
||||
----------
|
||||
The name of the EventType ({a8223e65-e704-4f84-9bbe-d8fc42597047}) of ThingClass humiditySensor
|
||||
----------
|
||||
The name of the EventType ({fed37466-1264-4ac1-84fd-aff3a1f7ff04}) of ThingClass temperatureSensor</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Set input value</source>
|
||||
<extracomment>The name of the ActionType ({ce64a425-d990-4fc1-966b-be6de445792b}) of ThingClass moistureSensor
|
||||
----------
|
||||
The name of the ActionType ({a8223e65-e704-4f84-9bbe-d8fc42597047}) of ThingClass humiditySensor
|
||||
----------
|
||||
The name of the ActionType ({fed37466-1264-4ac1-84fd-aff3a1f7ff04}) of ThingClass temperatureSensor</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Accuracy (decimal places)</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: moistureSensor, Type: settings, ID: {3c967a68-9951-4c9a-b019-79b913e762b6})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: humiditySensor, Type: settings, ID: {38064841-6121-4862-a639-08fb0b778511})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: temperatureSensor, Type: settings, ID: {3b543c3a-1fc0-45b5-8c07-600a6045f82e})</extracomment>
|
||||
<source>nymea</source>
|
||||
<extracomment>The name of the vendor ({2062d64d-3232-433c-88bc-0d33c0ba2ba6})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
|
|
|
|||
Loading…
Reference in New Issue