Merge PR #255: New Plugin: Generic Things
commit
7be71df04c
|
|
@ -1,3 +1,8 @@
|
|||
nymea-plugins (0.21.0) UNRELEASED; urgency=medium
|
||||
|
||||
|
||||
-- Michael Zanetti <michael.zanetti@guh.io> Thu, 09 Apr 2020 18:20:40 +0200
|
||||
|
||||
nymea-plugins (0.20.0) xenial; urgency=medium
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -357,19 +357,18 @@ Description: nymea.io plugin for genericelements
|
|||
This package will install the nymea.io plugin for genericelements
|
||||
|
||||
|
||||
Package: nymea-plugin-genericinterfaces
|
||||
Package: nymea-plugin-genericthings
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends},
|
||||
${misc:Depends},
|
||||
nymea-plugins-translations,
|
||||
Description: nymea.io plugin for generic interfaces
|
||||
The nymea daemon is a plugin based IoT (Internet of Things) server. The
|
||||
server works like a translator for devices, things and services and
|
||||
allows them to interact.
|
||||
With the powerful rule engine you are able to connect any device available
|
||||
in the system and create individual scenes and behaviors for your environment.
|
||||
Replaces: nymea-plugin-genericinterfaces
|
||||
Conflicts: nymea-plugin-genericinterfaces
|
||||
Description: nymea.io plugin for generic things
|
||||
Use the generic things plugin to create visually appealing thing setups
|
||||
containing lights, shutter, sensors etc which are connected to GPIOs.
|
||||
.
|
||||
This package will install the nymea.io plugin for generic interfaces
|
||||
This package will install the nymea.io plugin for genericthings
|
||||
|
||||
|
||||
Package: nymea-plugin-gpio
|
||||
|
|
@ -1031,6 +1030,7 @@ Depends: nymea-plugin-anel,
|
|||
nymea-plugin-doorbird,
|
||||
nymea-plugin-eq-3,
|
||||
nymea-plugin-flowercare,
|
||||
nymea-plugin-genericthings,
|
||||
nymea-plugin-kodi,
|
||||
nymea-plugin-lgsmarttv,
|
||||
nymea-plugin-mailnotification,
|
||||
|
|
@ -1074,8 +1074,6 @@ Depends: nymea-plugin-boblight,
|
|||
nymea-plugin-udpcommander,
|
||||
nymea-plugin-tcpcommander,
|
||||
nymea-plugin-httpcommander,
|
||||
nymea-plugin-genericelements,
|
||||
nymea-plugin-genericinterfaces,
|
||||
nymea-plugin-avahimonitor,
|
||||
nymea-plugin-anel,
|
||||
nymea-plugin-gpio,
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_integrationplugingenericinterfaces.so
|
||||
usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_integrationplugingenericthings.so
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
include(../plugins.pri)
|
||||
|
||||
TARGET = $$qtLibraryTarget(nymea_integrationplugingenericinterfaces)
|
||||
|
||||
SOURCES += \
|
||||
integrationplugingenericinterfaces.cpp
|
||||
|
||||
HEADERS += \
|
||||
integrationplugingenericinterfaces.h
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,162 +0,0 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
*
|
||||
* Copyright 2013 - 2020, nymea GmbH
|
||||
* Contact: contact@nymea.io
|
||||
*
|
||||
* This file is part of nymea.
|
||||
* This project including source code and documentation is protected by
|
||||
* copyright law, and remains the property of nymea GmbH. All rights, including
|
||||
* reproduction, publication, editing and translation, are reserved. The use of
|
||||
* this project is subject to the terms of a license agreement to be concluded
|
||||
* with nymea GmbH in accordance with the terms of use of nymea GmbH, available
|
||||
* under https://nymea.io/license
|
||||
*
|
||||
* GNU Lesser General Public License Usage
|
||||
* Alternatively, this project may be redistributed and/or modified under the
|
||||
* terms of the GNU Lesser General Public License as published by the Free
|
||||
* Software Foundation; version 3. This project is distributed in the hope that
|
||||
* it will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this project. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* For any further details and any questions please contact us under
|
||||
* contact@nymea.io or see our FAQ/Licensing Information on
|
||||
* https://nymea.io/license/faq
|
||||
*
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
/*!
|
||||
\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 "integrationplugingenericinterfaces.h"
|
||||
#include "plugininfo.h"
|
||||
|
||||
#include <QDebug>
|
||||
|
||||
IntegrationPluginGenericInterfaces::IntegrationPluginGenericInterfaces()
|
||||
{
|
||||
}
|
||||
|
||||
void IntegrationPluginGenericInterfaces::setupThing(ThingSetupInfo *info)
|
||||
{
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
|
||||
void IntegrationPluginGenericInterfaces::executeAction(ThingActionInfo *info)
|
||||
{
|
||||
Thing *thing = info->thing();
|
||||
Action action = info->action();
|
||||
|
||||
if (thing->thingClassId() == awningThingClassId) {
|
||||
if (action.actionTypeId() == awningOpenActionTypeId) {
|
||||
thing->setStateValue(awningStatusStateTypeId, "Opening");
|
||||
thing->setStateValue(awningClosingOutputStateTypeId, false);
|
||||
thing->setStateValue(awningOpeningOutputStateTypeId, true);
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
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) {
|
||||
thing->setStateValue(awningStatusStateTypeId, "Closing");
|
||||
thing->setStateValue(awningOpeningOutputStateTypeId, false);
|
||||
thing->setStateValue(awningClosingOutputStateTypeId, true);
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
return info->finish(Thing::ThingErrorActionTypeNotFound);
|
||||
}
|
||||
|
||||
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) {
|
||||
thing->setStateValue(blindStatusStateTypeId, "Stopped");
|
||||
thing->setStateValue(blindOpeningOutputStateTypeId, false);
|
||||
thing->setStateValue(blindClosingOutputStateTypeId, false);
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
if (action.actionTypeId() == blindCloseActionTypeId) {
|
||||
thing->setStateValue(blindStatusStateTypeId, "Closing");
|
||||
thing->setStateValue(blindOpeningOutputStateTypeId, false);
|
||||
thing->setStateValue(blindClosingOutputStateTypeId, true);
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
return info->finish(Thing::ThingErrorActionTypeNotFound);
|
||||
}
|
||||
|
||||
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) {
|
||||
thing->setStateValue(shutterStatusStateTypeId, "Stopped");
|
||||
thing->setStateValue(shutterOpeningOutputStateTypeId, false);
|
||||
thing->setStateValue(shutterClosingOutputStateTypeId, false);
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
if (action.actionTypeId() == shutterCloseActionTypeId) {
|
||||
thing->setStateValue(shutterStatusStateTypeId, "Closing");
|
||||
thing->setStateValue(shutterOpeningOutputStateTypeId, false);
|
||||
thing->setStateValue(shutterClosingOutputStateTypeId, true);
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
return info->finish(Thing::ThingErrorActionTypeNotFound);
|
||||
}
|
||||
|
||||
if (thing->thingClassId() == socketThingClassId) {
|
||||
if (action.actionTypeId() == socketPowerActionTypeId) {
|
||||
thing->setStateValue(socketPowerStateTypeId, action.param(socketPowerActionPowerParamTypeId).value());
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
return info->finish(Thing::ThingErrorActionTypeNotFound);
|
||||
}
|
||||
|
||||
if (thing->thingClassId() == lightThingClassId) {
|
||||
if (action.actionTypeId() == lightPowerActionTypeId) {
|
||||
thing->setStateValue(lightPowerStateTypeId, action.param(lightPowerActionPowerParamTypeId).value());
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
return info->finish(Thing::ThingErrorActionTypeNotFound);
|
||||
}
|
||||
|
||||
if (thing->thingClassId() == heatingThingClassId) {
|
||||
if (action.actionTypeId() == heatingPowerActionTypeId) {
|
||||
thing->setStateValue(heatingPowerStateTypeId, action.param(heatingPowerActionPowerParamTypeId).value());
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
return info->finish(Thing::ThingErrorActionTypeNotFound);
|
||||
}
|
||||
return info->finish(Thing::ThingErrorThingClassNotFound);
|
||||
}
|
||||
|
|
@ -1,236 +0,0 @@
|
|||
{
|
||||
"name": "GenericInterfaces",
|
||||
"displayName": "Generic Interfaces",
|
||||
"id": "b3188696-2585-4806-bf98-30ab576ce5c8",
|
||||
"vendors": [
|
||||
{
|
||||
"name": "nymea",
|
||||
"displayName": "nymea",
|
||||
"id": "2062d64d-3232-433c-88bc-0d33c0ba2ba6",
|
||||
"thingClasses": [
|
||||
{
|
||||
"id": "9e69585f-90ba-44e4-ad90-5b4bffbe345a",
|
||||
"name": "awning",
|
||||
"displayName": "Awning interface",
|
||||
"createMethods": ["user"],
|
||||
"interfaces": ["awning"],
|
||||
"stateTypes": [
|
||||
{
|
||||
"id": "4bb951a4-ea23-4cf0-9269-41d2c4eaf5a4",
|
||||
"name": "openingOutput",
|
||||
"displayName": "Opening output",
|
||||
"displayNameEvent": "Opening output changed",
|
||||
"type": "bool",
|
||||
"defaultValue": false
|
||||
},
|
||||
{
|
||||
"id": "59bfd575-709f-4e43-9726-de26e6d4ca8b",
|
||||
"name": "closingOutput",
|
||||
"displayName": "Closing output",
|
||||
"displayNameEvent": "Closing output changed",
|
||||
"type": "bool",
|
||||
"defaultValue": false
|
||||
},
|
||||
{
|
||||
"id": "ff6f2565-2a2e-4d34-b10f-d3f73b676399",
|
||||
"name": "status",
|
||||
"displayName": "Status",
|
||||
"displayNameEvent": "Status changed",
|
||||
"type": "QString",
|
||||
"possibleValues": [
|
||||
"Opening",
|
||||
"Stopped",
|
||||
"Closing"
|
||||
],
|
||||
"defaultValue": "Stopped"
|
||||
}
|
||||
],
|
||||
"actionTypes": [
|
||||
{
|
||||
"id": "979e9c51-5a93-4635-85e3-01874306b229",
|
||||
"name": "open",
|
||||
"displayName": "Open"
|
||||
},
|
||||
{
|
||||
"id": "555cafe4-bd12-42c6-bab1-8cd59af6468e",
|
||||
"name": "stop",
|
||||
"displayName": "Stop"
|
||||
},
|
||||
{
|
||||
"id": "53b5ba77-9a34-4cd6-ad24-fb01fc465f98",
|
||||
"name": "close",
|
||||
"displayName": "Close"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "17ee3657-6ad8-4ae2-8959-3cf66cec8d13",
|
||||
"name": "blind",
|
||||
"displayName": "Blind interface",
|
||||
"createMethods": ["user"],
|
||||
"interfaces": ["blind"],
|
||||
"stateTypes": [
|
||||
{
|
||||
"id": "b2dbf25c-27e5-4f7e-a57d-2ef6d087fa2b",
|
||||
"name": "openingOutput",
|
||||
"displayName": "Opening output",
|
||||
"displayNameEvent": "Opening output changed",
|
||||
"type": "bool",
|
||||
"defaultValue": false
|
||||
},
|
||||
{
|
||||
"id": "9b673430-572d-4a9c-85d3-dafadbe541cd",
|
||||
"name": "closingOutput",
|
||||
"displayName": "Closing output",
|
||||
"displayNameEvent": "Closing output changed",
|
||||
"type": "bool",
|
||||
"defaultValue": false
|
||||
},
|
||||
{
|
||||
"id": "5fdec1e0-51f6-48b9-b743-ba572504b2c1",
|
||||
"name": "status",
|
||||
"displayName": "Status",
|
||||
"displayNameEvent": "Status changed",
|
||||
"type": "QString",
|
||||
"possibleValues": [
|
||||
"Opening",
|
||||
"Stopped",
|
||||
"Closing"
|
||||
],
|
||||
"defaultValue": "Stopped"
|
||||
}
|
||||
],
|
||||
"actionTypes": [
|
||||
{
|
||||
"id": "120dc265-dbbb-4f19-9d31-c372c23479c0",
|
||||
"name": "open",
|
||||
"displayName": "Open"
|
||||
},
|
||||
{
|
||||
"id": "1a924c9a-5dcb-4b1c-8fd6-ab101098e007",
|
||||
"name": "stop",
|
||||
"displayName": "Stop"
|
||||
},
|
||||
{
|
||||
"id": "86e9cf21-7487-47c4-b4be-4a940d7235fb",
|
||||
"name": "close",
|
||||
"displayName": "Close"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "7917c2e7-d7d2-4c47-a38d-41f7dd7693d9",
|
||||
"name": "shutter",
|
||||
"displayName": "Shutter interface",
|
||||
"createMethods": ["user"],
|
||||
"interfaces": ["shutter"],
|
||||
"stateTypes": [
|
||||
{
|
||||
"id": "cc547728-b309-4695-b355-49748ef2521c",
|
||||
"name": "openingOutput",
|
||||
"displayName": "Opening output",
|
||||
"displayNameEvent": "Opening output changed",
|
||||
"type": "bool",
|
||||
"defaultValue": false
|
||||
},
|
||||
{
|
||||
"id": "1c35df0e-4c41-455f-893a-0145377952a0",
|
||||
"name": "closingOutput",
|
||||
"displayName": "Closing output",
|
||||
"displayNameEvent": "Closing output changed",
|
||||
"type": "bool",
|
||||
"defaultValue": false
|
||||
},
|
||||
{
|
||||
"id": "6d6e72dc-4d2b-4ec1-82c2-54405a682711",
|
||||
"name": "status",
|
||||
"displayName": "Status",
|
||||
"displayNameEvent": "Status changed",
|
||||
"type": "QString",
|
||||
"possibleValues": [
|
||||
"Opening",
|
||||
"Stopped",
|
||||
"Closing"
|
||||
],
|
||||
"defaultValue": "Stopped"
|
||||
}
|
||||
],
|
||||
"actionTypes": [
|
||||
{
|
||||
"id": "9deb662d-2378-4345-a898-8742d41e43c1",
|
||||
"name": "open",
|
||||
"displayName": "Open"
|
||||
},
|
||||
{
|
||||
"id": "db5f3332-1f4e-4f9e-84d2-93c5d7de315c",
|
||||
"name": "stop",
|
||||
"displayName": "Stop"
|
||||
},
|
||||
{
|
||||
"id": "cf5303f1-67c7-4cef-b11c-eb9de6fc8a87",
|
||||
"name": "close",
|
||||
"displayName": "Close"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "4e7261af-a27b-4446-8346-914ea59f7547",
|
||||
"name": "socket",
|
||||
"displayName": "Socket interface",
|
||||
"createMethods": ["user"],
|
||||
"interfaces": ["powersocket"],
|
||||
"stateTypes": [
|
||||
{
|
||||
"id": "018038d7-1d02-4b17-8fe3-babca044b087",
|
||||
"name": "power",
|
||||
"displayName": "Power",
|
||||
"displayNameEvent": "Power changed",
|
||||
"displayNameAction": "Set power",
|
||||
"type": "bool",
|
||||
"defaultValue": false,
|
||||
"writable": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "c50d3216-f307-4f9f-8190-4391510c385c",
|
||||
"name": "light",
|
||||
"displayName": "Light interface",
|
||||
"createMethods": ["user"],
|
||||
"interfaces": ["light"],
|
||||
"stateTypes": [
|
||||
{
|
||||
"id": "8b6e4a67-6522-408b-b676-8d2f09ed2d54",
|
||||
"name": "power",
|
||||
"displayName": "Power",
|
||||
"displayNameEvent": "Power changed",
|
||||
"displayNameAction": "Set power",
|
||||
"type": "bool",
|
||||
"defaultValue": false,
|
||||
"writable": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "392854c4-3d14-4cf8-96cd-d933526bd197",
|
||||
"name": "heating",
|
||||
"displayName": "Heating interface",
|
||||
"createMethods": ["user"],
|
||||
"interfaces": ["heating"],
|
||||
"stateTypes": [
|
||||
{
|
||||
"id": "409b635e-a754-4b5c-b3f0-d1c5a0fb3f03",
|
||||
"name": "power",
|
||||
"displayName": "Power",
|
||||
"displayNameEvent": "Power changed",
|
||||
"displayNameAction": "Set power",
|
||||
"type": "bool",
|
||||
"defaultValue": false,
|
||||
"writable": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -1,185 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1">
|
||||
<context>
|
||||
<name>GenericInterfaces</name>
|
||||
<message>
|
||||
<source>Awning interface</source>
|
||||
<extracomment>The name of the ThingClass ({9e69585f-90ba-44e4-ad90-5b4bffbe345a})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Blind interface</source>
|
||||
<extracomment>The name of the ThingClass ({17ee3657-6ad8-4ae2-8959-3cf66cec8d13})</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 ({86e9cf21-7487-47c4-b4be-4a940d7235fb}) of ThingClass blind
|
||||
----------
|
||||
The name of the ActionType ({53b5ba77-9a34-4cd6-ad24-fb01fc465f98}) of ThingClass awning</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Closing output</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: shutter, EventType: closingOutput, ID: {1c35df0e-4c41-455f-893a-0145377952a0})
|
||||
----------
|
||||
The name of the StateType ({1c35df0e-4c41-455f-893a-0145377952a0}) of ThingClass shutter
|
||||
----------
|
||||
The name of the ParamType (ThingClass: blind, EventType: closingOutput, ID: {9b673430-572d-4a9c-85d3-dafadbe541cd})
|
||||
----------
|
||||
The name of the StateType ({9b673430-572d-4a9c-85d3-dafadbe541cd}) of ThingClass blind
|
||||
----------
|
||||
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 type="unfinished"></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 ({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>Generic Interfaces</source>
|
||||
<extracomment>The name of the plugin GenericInterfaces ({b3188696-2585-4806-bf98-30ab576ce5c8})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Heating interface</source>
|
||||
<extracomment>The name of the ThingClass ({392854c4-3d14-4cf8-96cd-d933526bd197})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Light interface</source>
|
||||
<extracomment>The name of the ThingClass ({c50d3216-f307-4f9f-8190-4391510c385c})</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 ({120dc265-dbbb-4f19-9d31-c372c23479c0}) of ThingClass blind
|
||||
----------
|
||||
The name of the ActionType ({979e9c51-5a93-4635-85e3-01874306b229}) of ThingClass awning</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Opening output</source>
|
||||
<extracomment>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, 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, EventType: openingOutput, ID: {4bb951a4-ea23-4cf0-9269-41d2c4eaf5a4})
|
||||
----------
|
||||
The name of the StateType ({4bb951a4-ea23-4cf0-9269-41d2c4eaf5a4}) of ThingClass awning</extracomment>
|
||||
<translation type="unfinished"></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 type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Power</source>
|
||||
<extracomment>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 type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Shutter interface</source>
|
||||
<extracomment>The name of the ThingClass ({7917c2e7-d7d2-4c47-a38d-41f7dd7693d9})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Socket interface</source>
|
||||
<extracomment>The name of the ThingClass ({4e7261af-a27b-4446-8346-914ea59f7547})</extracomment>
|
||||
<translation type="unfinished"></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 type="unfinished"></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 type="unfinished"></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 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>
|
||||
</context>
|
||||
</TS>
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
# Generic things
|
||||
|
||||
This plugin allows to create virtual generic things in nymea. Such things don't have any
|
||||
functionality on their own, but allow to create a visually appealing experience when
|
||||
using general purpose input and outputs, such as GPIOs.
|
||||
|
||||
## Set-up
|
||||
|
||||
First, set up a thing with generic inputs or outputs. For instance from the GPIO plugin.
|
||||
When done, set up the desired generic thing and use the things settings to connect
|
||||
the inputs and/or outputs accordingly.
|
||||
|
||||
### Example: A light switch on a digital output GPIO
|
||||
|
||||
First, set up the GPIO to control the light. Please refer to the documentation of the
|
||||
according plugin for this. Once the lights can be controlled by nymea using the raw
|
||||
GPIO toggle, set up a generic light from this plugin and go to the settings of the
|
||||
newly added generic light. In there, you'll find a section for Input/Output connections
|
||||
which can be used to connect the power state of this generic light to the GPIO that
|
||||
actually controls the light. The light can now be used like any other ready-made light
|
||||
device in nymea.
|
||||
|
||||
### Example: A soil moisture sensor on an analog input GPIO
|
||||
|
||||
First, set up the GPIO to receive the analog GPIO values from the sensor. Normally
|
||||
such an analog input GPIO will dispatch values from 0V to e.g. 3.3V, depending on the
|
||||
hardware. An input value of 0V normally refers to a soil moisture value of 0%, while
|
||||
an input value of 3.3V would refer to the maximum, that is 100% soil moisture. Once
|
||||
those input values are received in nymea, set up a generic soil moisture thing and
|
||||
go to its settings. In there you'll find the Input/Output connections section which
|
||||
allows to map this generic soil moisture sensure to the according GPIO input. Once
|
||||
this connection has been made, the generic soil moisture thing will represent the
|
||||
input from the GPIO in a nice sensor view.
|
||||
Some sensors might not support the full range from 0% to 100% and might output
|
||||
a value of 0V on a minimum soil moisture of e.g. 10% or might only be able to
|
||||
measure the soil moisture up to, say, 90%. Normally the sensor hardware would give
|
||||
that information in the data sheet or user guide. If this is the case, the appropriate
|
||||
input range can also be defined in the generic moisture sensor page.
|
||||
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
include(../plugins.pri)
|
||||
|
||||
TARGET = $$qtLibraryTarget(nymea_integrationplugingenericthings)
|
||||
|
||||
SOURCES += \
|
||||
integrationplugingenericthings.cpp
|
||||
|
||||
HEADERS += \
|
||||
integrationplugingenericthings.h
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,307 @@
|
|||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
*
|
||||
* Copyright 2013 - 2020, nymea GmbH
|
||||
* Contact: contact@nymea.io
|
||||
*
|
||||
* This file is part of nymea.
|
||||
* This project including source code and documentation is protected by
|
||||
* copyright law, and remains the property of nymea GmbH. All rights, including
|
||||
* reproduction, publication, editing and translation, are reserved. The use of
|
||||
* this project is subject to the terms of a license agreement to be concluded
|
||||
* with nymea GmbH in accordance with the terms of use of nymea GmbH, available
|
||||
* under https://nymea.io/license
|
||||
*
|
||||
* GNU Lesser General Public License Usage
|
||||
* Alternatively, this project may be redistributed and/or modified under the
|
||||
* terms of the GNU Lesser General Public License as published by the Free
|
||||
* Software Foundation; version 3. This project is distributed in the hope that
|
||||
* it will be useful, but WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this project. If not, see <https://www.gnu.org/licenses/>.
|
||||
*
|
||||
* For any further details and any questions please contact us under
|
||||
* contact@nymea.io or see our FAQ/Licensing Information on
|
||||
* https://nymea.io/license/faq
|
||||
*
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
/*!
|
||||
\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"
|
||||
|
||||
#include <QDebug>
|
||||
#include <QtMath>
|
||||
|
||||
IntegrationPluginGenericThings::IntegrationPluginGenericThings()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void IntegrationPluginGenericThings::setupThing(ThingSetupInfo *info)
|
||||
{
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
|
||||
void IntegrationPluginGenericThings::executeAction(ThingActionInfo *info)
|
||||
{
|
||||
Thing *thing = info->thing();
|
||||
Action action = info->action();
|
||||
|
||||
if (thing->thingClassId() == awningThingClassId) {
|
||||
if (action.actionTypeId() == awningOpenActionTypeId) {
|
||||
thing->setStateValue(awningStatusStateTypeId, "Opening");
|
||||
thing->setStateValue(awningClosingOutputStateTypeId, false);
|
||||
thing->setStateValue(awningOpeningOutputStateTypeId, true);
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
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) {
|
||||
thing->setStateValue(awningStatusStateTypeId, "Closing");
|
||||
thing->setStateValue(awningOpeningOutputStateTypeId, false);
|
||||
thing->setStateValue(awningClosingOutputStateTypeId, true);
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
if (action.actionTypeId() == awningOpeningOutputActionTypeId) {
|
||||
bool on = action.param(awningOpeningOutputActionOpeningOutputParamTypeId).value().toBool();
|
||||
thing->setStateValue(awningOpeningOutputStateTypeId, on);
|
||||
if (on) {
|
||||
thing->setStateValue(awningStatusStateTypeId, "Opening");
|
||||
thing->setStateValue(awningClosingOutputStateTypeId, false);
|
||||
} else {
|
||||
thing->setStateValue(awningStatusStateTypeId, "Stopped");
|
||||
}
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
if (action.actionTypeId() == awningClosingOutputActionTypeId) {
|
||||
bool on = action.param(awningClosingOutputActionClosingOutputParamTypeId).value().toBool();
|
||||
thing->setStateValue(awningClosingOutputStateTypeId, on);
|
||||
if (on) {
|
||||
thing->setStateValue(awningStatusStateTypeId, "Closing");
|
||||
thing->setStateValue(awningOpeningOutputStateTypeId, false);
|
||||
} else {
|
||||
thing->setStateValue(awningStatusStateTypeId, "Stopped");
|
||||
}
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
return info->finish(Thing::ThingErrorActionTypeNotFound);
|
||||
}
|
||||
|
||||
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) {
|
||||
thing->setStateValue(blindStatusStateTypeId, "Stopped");
|
||||
thing->setStateValue(blindOpeningOutputStateTypeId, false);
|
||||
thing->setStateValue(blindClosingOutputStateTypeId, false);
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
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) {
|
||||
bool on = action.param(blindOpeningOutputActionOpeningOutputParamTypeId).value().toBool();
|
||||
thing->setStateValue(blindOpeningOutputStateTypeId, on);
|
||||
if (on) {
|
||||
thing->setStateValue(blindStatusStateTypeId, "Opening");
|
||||
thing->setStateValue(blindClosingOutputStateTypeId, false);
|
||||
} else {
|
||||
thing->setStateValue(blindStatusStateTypeId, "Stopped");
|
||||
}
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
if (action.actionTypeId() == blindClosingOutputActionTypeId) {
|
||||
bool on = action.param(blindClosingOutputActionClosingOutputParamTypeId).value().toBool();
|
||||
thing->setStateValue(blindClosingOutputStateTypeId, on);
|
||||
if (on) {
|
||||
thing->setStateValue(blindStatusStateTypeId, "Closing");
|
||||
thing->setStateValue(blindOpeningOutputStateTypeId, false);
|
||||
} else {
|
||||
thing->setStateValue(blindStatusStateTypeId, "Stopped");
|
||||
}
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
return info->finish(Thing::ThingErrorActionTypeNotFound);
|
||||
}
|
||||
|
||||
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) {
|
||||
thing->setStateValue(shutterStatusStateTypeId, "Stopped");
|
||||
thing->setStateValue(shutterOpeningOutputStateTypeId, false);
|
||||
thing->setStateValue(shutterClosingOutputStateTypeId, false);
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
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) {
|
||||
bool on = action.param(shutterOpeningOutputActionOpeningOutputParamTypeId).value().toBool();
|
||||
thing->setStateValue(shutterOpeningOutputStateTypeId, on);
|
||||
if (on) {
|
||||
thing->setStateValue(shutterStatusStateTypeId, "Opening");
|
||||
thing->setStateValue(shutterClosingOutputStateTypeId, false);
|
||||
} else {
|
||||
thing->setStateValue(shutterStatusStateTypeId, "Stopped");
|
||||
}
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
if (action.actionTypeId() == shutterClosingOutputActionTypeId) {
|
||||
bool on = action.param(shutterClosingOutputActionClosingOutputParamTypeId).value().toBool();
|
||||
thing->setStateValue(shutterClosingOutputStateTypeId, on);
|
||||
if (on) {
|
||||
thing->setStateValue(shutterStatusStateTypeId, "Closing");
|
||||
thing->setStateValue(shutterOpeningOutputStateTypeId, false);
|
||||
} else {
|
||||
thing->setStateValue(shutterStatusStateTypeId, "Stopped");
|
||||
}
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
return info->finish(Thing::ThingErrorActionTypeNotFound);
|
||||
}
|
||||
|
||||
if (thing->thingClassId() == socketThingClassId) {
|
||||
if (action.actionTypeId() == socketPowerActionTypeId) {
|
||||
thing->setStateValue(socketPowerStateTypeId, action.param(socketPowerActionPowerParamTypeId).value());
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
return info->finish(Thing::ThingErrorActionTypeNotFound);
|
||||
}
|
||||
|
||||
if (thing->thingClassId() == lightThingClassId) {
|
||||
if (action.actionTypeId() == lightPowerActionTypeId) {
|
||||
thing->setStateValue(lightPowerStateTypeId, action.param(lightPowerActionPowerParamTypeId).value());
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
return info->finish(Thing::ThingErrorActionTypeNotFound);
|
||||
}
|
||||
|
||||
if (thing->thingClassId() == heatingThingClassId) {
|
||||
if (action.actionTypeId() == heatingPowerActionTypeId) {
|
||||
thing->setStateValue(heatingPowerStateTypeId, action.param(heatingPowerActionPowerParamTypeId).value());
|
||||
return info->finish(Thing::ThingErrorNoError);
|
||||
}
|
||||
return info->finish(Thing::ThingErrorActionTypeNotFound);
|
||||
}
|
||||
|
||||
if (thing->thingClassId() == powerSwitchThingClassId) {
|
||||
if (action.actionTypeId() == powerSwitchPowerActionTypeId) {
|
||||
thing->setStateValue(powerSwitchPowerStateTypeId, action.param(powerSwitchPowerActionPowerParamTypeId).value());
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (thing->thingClassId() == irrigationThingClassId) {
|
||||
if (action.actionTypeId() == irrigationPowerActionTypeId) {
|
||||
thing->setStateValue(irrigationPowerStateTypeId, action.param(irrigationPowerActionPowerParamTypeId).value());
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (thing->thingClassId() == ventilationThingClassId) {
|
||||
if (action.actionTypeId() == ventilationPowerActionTypeId) {
|
||||
thing->setStateValue(ventilationPowerStateTypeId, action.param(ventilationPowerActionPowerParamTypeId).value());
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (thing->thingClassId() == temperatureSensorThingClassId) {
|
||||
if (action.actionTypeId() == temperatureSensorInputActionTypeId) {
|
||||
double value = info->action().param(temperatureSensorInputActionInputParamTypeId).value().toDouble();
|
||||
thing->setStateValue(temperatureSensorInputStateTypeId, value);
|
||||
double min = info->thing()->setting(temperatureSensorSettingsMinTempParamTypeId).toDouble();
|
||||
double max = info->thing()->setting(temperatureSensorSettingsMaxTempParamTypeId).toDouble();
|
||||
double newValue = mapDoubleValue(value, 0, 1, min, max);
|
||||
double roundingFactor = qPow(10, info->thing()->setting(temperatureSensorSettingsAccuracyParamTypeId).toInt());
|
||||
newValue = qRound(newValue * roundingFactor) / roundingFactor;
|
||||
thing->setStateValue(temperatureSensorTemperatureStateTypeId, newValue);
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (thing->thingClassId() == humiditySensorThingClassId) {
|
||||
if (action.actionTypeId() == humiditySensorInputActionTypeId) {
|
||||
double value = info->action().param(humiditySensorInputActionInputParamTypeId).value().toDouble();
|
||||
thing->setStateValue(humiditySensorInputStateTypeId, value);
|
||||
double min = info->thing()->setting(humiditySensorSettingsMinHumidityParamTypeId).toDouble();
|
||||
double max = info->thing()->setting(humiditySensorSettingsMaxHumidityParamTypeId).toDouble();
|
||||
double newValue = mapDoubleValue(value, 0, 100, min, max);
|
||||
double roundingFactor = qPow(10, info->thing()->setting(humiditySensorSettingsAccuracyParamTypeId).toInt());
|
||||
newValue = qRound(newValue * roundingFactor) / roundingFactor;
|
||||
thing->setStateValue(humiditySensorHumidityStateTypeId, newValue);
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (thing->thingClassId() == moistureSensorThingClassId) {
|
||||
if (action.actionTypeId() == moistureSensorInputActionTypeId) {
|
||||
double value = info->action().param(moistureSensorInputActionInputParamTypeId).value().toDouble();
|
||||
thing->setStateValue(moistureSensorInputStateTypeId, value);
|
||||
double min = info->thing()->setting(moistureSensorSettingsMinMoistureParamTypeId).toDouble();
|
||||
double max = info->thing()->setting(moistureSensorSettingsMaxMoistureParamTypeId).toDouble();
|
||||
double newValue = mapDoubleValue(value, 0, 100, min, max);
|
||||
double roundingFactor = qPow(10, info->thing()->setting(moistureSensorSettingsAccuracyParamTypeId).toInt());
|
||||
newValue = qRound(newValue * roundingFactor) / roundingFactor;
|
||||
thing->setStateValue(moistureSensorMoistureStateTypeId, newValue);
|
||||
info->finish(Thing::ThingErrorNoError);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
return info->finish(Thing::ThingErrorThingClassNotFound);
|
||||
}
|
||||
|
||||
double IntegrationPluginGenericThings::mapDoubleValue(double value, double fromMin, double fromMax, double toMin, double toMax)
|
||||
{
|
||||
double percent = (value - fromMin) / (fromMax - fromMin);
|
||||
double toValue = toMin + (toMax - toMin) * percent;
|
||||
return toValue;
|
||||
}
|
||||
|
|
@ -28,22 +28,25 @@
|
|||
*
|
||||
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||
|
||||
#ifndef INTEGRATIONPLUGINGENERICINTERFACES_H
|
||||
#define INTEGRATIONPLUGINGENERICINTERFACES_H
|
||||
#ifndef INTEGRATIONPLUGINGENERICTHINGS_H
|
||||
#define INTEGRATIONPLUGINGENERICTHINGS_H
|
||||
|
||||
#include "integrations/integrationplugin.h"
|
||||
|
||||
class IntegrationPluginGenericInterfaces : public IntegrationPlugin
|
||||
class IntegrationPluginGenericThings: public IntegrationPlugin
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
Q_PLUGIN_METADATA(IID "io.nymea.IntegrationPlugin" FILE "integrationplugingenericinterfaces.json")
|
||||
Q_PLUGIN_METADATA(IID "io.nymea.IntegrationPlugin" FILE "integrationplugingenericthings.json")
|
||||
Q_INTERFACES(IntegrationPlugin)
|
||||
|
||||
public:
|
||||
explicit IntegrationPluginGenericInterfaces();
|
||||
explicit IntegrationPluginGenericThings();
|
||||
void setupThing(ThingSetupInfo *info) override;
|
||||
void executeAction(ThingActionInfo *info) override;
|
||||
|
||||
private:
|
||||
double mapDoubleValue(double value, double fromMin, double fromMax, double toMin, double toMax);
|
||||
};
|
||||
|
||||
#endif // INTEGRATIONPLUGINGENERICINTERFACES_H
|
||||
#endif // INTEGRATIONPLUGINGENERICTHINGS_H
|
||||
|
|
@ -0,0 +1,495 @@
|
|||
{
|
||||
"name": "GenericThings",
|
||||
"displayName": "Generic Things",
|
||||
"id": "b3188696-2585-4806-bf98-30ab576ce5c8",
|
||||
"vendors": [
|
||||
{
|
||||
"name": "nymea",
|
||||
"displayName": "nymea",
|
||||
"id": "2062d64d-3232-433c-88bc-0d33c0ba2ba6",
|
||||
"thingClasses": [
|
||||
{
|
||||
"id": "9e69585f-90ba-44e4-ad90-5b4bffbe345a",
|
||||
"name": "awning",
|
||||
"displayName": "Generic awning",
|
||||
"createMethods": ["user"],
|
||||
"interfaces": ["awning"],
|
||||
"stateTypes": [
|
||||
{
|
||||
"id": "4bb951a4-ea23-4cf0-9269-41d2c4eaf5a4",
|
||||
"name": "openingOutput",
|
||||
"displayName": "Opening output",
|
||||
"displayNameEvent": "Opening output changed",
|
||||
"displayNameAction": "Set opening output",
|
||||
"type": "bool",
|
||||
"defaultValue": false,
|
||||
"ioType": "digitalInput",
|
||||
"writable": true
|
||||
},
|
||||
{
|
||||
"id": "59bfd575-709f-4e43-9726-de26e6d4ca8b",
|
||||
"name": "closingOutput",
|
||||
"displayName": "Closing output",
|
||||
"displayNameEvent": "Closing output changed",
|
||||
"displayNameAction": "Set closing output",
|
||||
"type": "bool",
|
||||
"defaultValue": false,
|
||||
"ioType": "digitalInput",
|
||||
"writable": true
|
||||
},
|
||||
{
|
||||
"id": "ff6f2565-2a2e-4d34-b10f-d3f73b676399",
|
||||
"name": "status",
|
||||
"displayName": "Status",
|
||||
"displayNameEvent": "Status changed",
|
||||
"type": "QString",
|
||||
"possibleValues": [
|
||||
"Opening",
|
||||
"Stopped",
|
||||
"Closing"
|
||||
],
|
||||
"defaultValue": "Stopped"
|
||||
}
|
||||
],
|
||||
"actionTypes": [
|
||||
{
|
||||
"id": "979e9c51-5a93-4635-85e3-01874306b229",
|
||||
"name": "open",
|
||||
"displayName": "Open"
|
||||
},
|
||||
{
|
||||
"id": "555cafe4-bd12-42c6-bab1-8cd59af6468e",
|
||||
"name": "stop",
|
||||
"displayName": "Stop"
|
||||
},
|
||||
{
|
||||
"id": "53b5ba77-9a34-4cd6-ad24-fb01fc465f98",
|
||||
"name": "close",
|
||||
"displayName": "Close"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "17ee3657-6ad8-4ae2-8959-3cf66cec8d13",
|
||||
"name": "blind",
|
||||
"displayName": "Generic blind",
|
||||
"createMethods": ["user"],
|
||||
"interfaces": ["blind"],
|
||||
"stateTypes": [
|
||||
{
|
||||
"id": "b2dbf25c-27e5-4f7e-a57d-2ef6d087fa2b",
|
||||
"name": "openingOutput",
|
||||
"displayName": "Opening output",
|
||||
"displayNameEvent": "Opening output changed",
|
||||
"displayNameAction": "Set opening output",
|
||||
"type": "bool",
|
||||
"defaultValue": false,
|
||||
"ioType": "digitalInput",
|
||||
"writable": true
|
||||
},
|
||||
{
|
||||
"id": "9b673430-572d-4a9c-85d3-dafadbe541cd",
|
||||
"name": "closingOutput",
|
||||
"displayName": "Closing output",
|
||||
"displayNameEvent": "Closing output changed",
|
||||
"displayNameAction": "Set closing output",
|
||||
"type": "bool",
|
||||
"defaultValue": false,
|
||||
"ioType": "digitalInput",
|
||||
"writable": true
|
||||
},
|
||||
{
|
||||
"id": "5fdec1e0-51f6-48b9-b743-ba572504b2c1",
|
||||
"name": "status",
|
||||
"displayName": "Status",
|
||||
"displayNameEvent": "Status changed",
|
||||
"type": "QString",
|
||||
"possibleValues": [
|
||||
"Opening",
|
||||
"Stopped",
|
||||
"Closing"
|
||||
],
|
||||
"defaultValue": "Stopped"
|
||||
}
|
||||
],
|
||||
"actionTypes": [
|
||||
{
|
||||
"id": "120dc265-dbbb-4f19-9d31-c372c23479c0",
|
||||
"name": "open",
|
||||
"displayName": "Open"
|
||||
},
|
||||
{
|
||||
"id": "1a924c9a-5dcb-4b1c-8fd6-ab101098e007",
|
||||
"name": "stop",
|
||||
"displayName": "Stop"
|
||||
},
|
||||
{
|
||||
"id": "86e9cf21-7487-47c4-b4be-4a940d7235fb",
|
||||
"name": "close",
|
||||
"displayName": "Close"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "7917c2e7-d7d2-4c47-a38d-41f7dd7693d9",
|
||||
"name": "shutter",
|
||||
"displayName": "Generic shutter",
|
||||
"createMethods": ["user"],
|
||||
"interfaces": ["shutter"],
|
||||
"stateTypes": [
|
||||
{
|
||||
"id": "cc547728-b309-4695-b355-49748ef2521c",
|
||||
"name": "openingOutput",
|
||||
"displayName": "Opening output",
|
||||
"displayNameEvent": "Opening output changed",
|
||||
"displayNameAction": "Set opening output",
|
||||
"type": "bool",
|
||||
"defaultValue": false,
|
||||
"ioType": "digitalInput",
|
||||
"writable": true
|
||||
},
|
||||
{
|
||||
"id": "1c35df0e-4c41-455f-893a-0145377952a0",
|
||||
"name": "closingOutput",
|
||||
"displayName": "Closing output",
|
||||
"displayNameEvent": "Closing output changed",
|
||||
"displayNameAction": "Set closing output",
|
||||
"type": "bool",
|
||||
"defaultValue": false,
|
||||
"ioType": "digitalInput",
|
||||
"writable": true
|
||||
},
|
||||
{
|
||||
"id": "6d6e72dc-4d2b-4ec1-82c2-54405a682711",
|
||||
"name": "status",
|
||||
"displayName": "Status",
|
||||
"displayNameEvent": "Status changed",
|
||||
"type": "QString",
|
||||
"possibleValues": [
|
||||
"Opening",
|
||||
"Stopped",
|
||||
"Closing"
|
||||
],
|
||||
"defaultValue": "Stopped"
|
||||
}
|
||||
],
|
||||
"actionTypes": [
|
||||
{
|
||||
"id": "9deb662d-2378-4345-a898-8742d41e43c1",
|
||||
"name": "open",
|
||||
"displayName": "Open"
|
||||
},
|
||||
{
|
||||
"id": "db5f3332-1f4e-4f9e-84d2-93c5d7de315c",
|
||||
"name": "stop",
|
||||
"displayName": "Stop"
|
||||
},
|
||||
{
|
||||
"id": "cf5303f1-67c7-4cef-b11c-eb9de6fc8a87",
|
||||
"name": "close",
|
||||
"displayName": "Close"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "4e7261af-a27b-4446-8346-914ea59f7547",
|
||||
"name": "socket",
|
||||
"displayName": "Generic power socket",
|
||||
"createMethods": ["user"],
|
||||
"interfaces": ["powersocket"],
|
||||
"stateTypes": [
|
||||
{
|
||||
"id": "018038d7-1d02-4b17-8fe3-babca044b087",
|
||||
"name": "power",
|
||||
"displayName": "Power",
|
||||
"displayNameEvent": "Power changed",
|
||||
"displayNameAction": "Set power",
|
||||
"type": "bool",
|
||||
"defaultValue": false,
|
||||
"writable": true,
|
||||
"ioType": "digitalInput"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "c50d3216-f307-4f9f-8190-4391510c385c",
|
||||
"name": "light",
|
||||
"displayName": "Generic light",
|
||||
"createMethods": ["user"],
|
||||
"interfaces": ["light"],
|
||||
"stateTypes": [
|
||||
{
|
||||
"id": "8b6e4a67-6522-408b-b676-8d2f09ed2d54",
|
||||
"name": "power",
|
||||
"displayName": "Power",
|
||||
"displayNameEvent": "Power changed",
|
||||
"displayNameAction": "Set power",
|
||||
"type": "bool",
|
||||
"defaultValue": false,
|
||||
"writable": true,
|
||||
"ioType": "digitalInput"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "392854c4-3d14-4cf8-96cd-d933526bd197",
|
||||
"name": "heating",
|
||||
"displayName": "Generic heating",
|
||||
"createMethods": ["user"],
|
||||
"interfaces": ["heating"],
|
||||
"stateTypes": [
|
||||
{
|
||||
"id": "409b635e-a754-4b5c-b3f0-d1c5a0fb3f03",
|
||||
"name": "power",
|
||||
"displayName": "Power",
|
||||
"displayNameEvent": "Power changed",
|
||||
"displayNameAction": "Set power",
|
||||
"type": "bool",
|
||||
"defaultValue": false,
|
||||
"writable": true,
|
||||
"ioType": "digitalInput"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "57daa147-dd6f-4673-a757-d8f01a2054c7",
|
||||
"name": "powerSwitch",
|
||||
"displayName": "Generic power switch",
|
||||
"createMethods": ["user"],
|
||||
"interfaces": ["power"],
|
||||
"stateTypes": [
|
||||
{
|
||||
"id": "08087af6-6a3b-4e4a-ac6d-56f23ce63edf",
|
||||
"name": "power",
|
||||
"displayName": "Power",
|
||||
"displayNameEvent": "Powered on/off",
|
||||
"displayNameAction": "Power on/off",
|
||||
"type": "bool",
|
||||
"defaultValue": false,
|
||||
"writable": true,
|
||||
"ioType": "digitalInput"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "d013b980-20d5-4791-9c4f-b411c39241d7",
|
||||
"name": "irrigation",
|
||||
"displayName": "Generic irrigation",
|
||||
"createMethods": ["user"],
|
||||
"interfaces": ["irrigation"],
|
||||
"stateTypes": [
|
||||
{
|
||||
"id": "0212a287-c5ae-4644-8803-adfdd8caeb9a",
|
||||
"name": "power",
|
||||
"displayName": "Power",
|
||||
"displayNameEvent": "Turned on or off",
|
||||
"displayNameAction": "Turn on or off",
|
||||
"type": "bool",
|
||||
"defaultValue": false,
|
||||
"writable": true,
|
||||
"ioType": "digitalInput"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "24af8dd3-ddf0-47f0-bf09-70fdfd8dceab",
|
||||
"name": "ventilation",
|
||||
"displayName": "Generic ventilation",
|
||||
"createMethods": ["user"],
|
||||
"interfaces": ["ventilation"],
|
||||
"stateTypes": [
|
||||
{
|
||||
"id": "846711b7-ea5a-4c66-a267-001c60406509",
|
||||
"name": "power",
|
||||
"displayName": "Power",
|
||||
"displayNameEvent": "Turned on or off",
|
||||
"displayNameAction": "Turn on or off",
|
||||
"type": "bool",
|
||||
"defaultValue": false,
|
||||
"writable": true,
|
||||
"ioType": "digitalInput"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "cf3d65db-6f68-457b-968c-cfb66cbd5311",
|
||||
"name": "temperatureSensor",
|
||||
"displayName": "Generic temperature sensor",
|
||||
"createMethods": ["user"],
|
||||
"interfaces": ["temperaturesensor"],
|
||||
"settingsTypes": [
|
||||
{
|
||||
"id": "c86ae5d3-9335-4b6e-8231-bf3ed6670dff",
|
||||
"name": "minTemp",
|
||||
"displayName": "Minimum temperature",
|
||||
"type": "double",
|
||||
"defaultValue": -20,
|
||||
"unit": "DegreeCelsius"
|
||||
},
|
||||
{
|
||||
"id": "8b5947ab-127f-4995-853b-eeeb628811e3",
|
||||
"name": "maxTemp",
|
||||
"displayName": "Maximum temperature",
|
||||
"type": "double",
|
||||
"defaultValue": 50,
|
||||
"unit": "DegreeCelsius"
|
||||
},
|
||||
{
|
||||
"id": "3b543c3a-1fc0-45b5-8c07-600a6045f82e",
|
||||
"name": "accuracy",
|
||||
"displayName": "Accuracy (decimal places)",
|
||||
"type": "uint",
|
||||
"minValue": 0,
|
||||
"maxValue": 5,
|
||||
"defaultValue": 1
|
||||
}
|
||||
],
|
||||
"stateTypes": [
|
||||
{
|
||||
"id": "d0b6c4be-339e-4b0f-a234-0611b7565395",
|
||||
"name": "temperature",
|
||||
"displayName": "Temperature",
|
||||
"displayNameEvent": "Temperature changed",
|
||||
"type": "double",
|
||||
"unit": "DegreeCelsius",
|
||||
"defaultValue": 0
|
||||
},
|
||||
{
|
||||
"id": "fed37466-1264-4ac1-84fd-aff3a1f7ff04",
|
||||
"name": "input",
|
||||
"displayName": "Input value",
|
||||
"displayNameEvent": "Input value changed",
|
||||
"displayNameAction": "Set input value",
|
||||
"type": "double",
|
||||
"defaultValue": 0,
|
||||
"minValue": 0,
|
||||
"maxValue": 1,
|
||||
"writable": true,
|
||||
"ioType": "analogOutput"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "d295bc64-773c-42a9-83e2-80db5fa0d1ce",
|
||||
"name": "humiditySensor",
|
||||
"displayName": "Generic humidity sensor",
|
||||
"createMethods": ["user"],
|
||||
"interfaces": ["humiditysensor"],
|
||||
"settingsTypes": [
|
||||
{
|
||||
"id": "0218ffa9-3d49-4b25-a59f-c8831f190432",
|
||||
"name": "minHumidity",
|
||||
"displayName": "Minimum humidity",
|
||||
"type": "double",
|
||||
"defaultValue": 0,
|
||||
"unit": "Percentage"
|
||||
},
|
||||
{
|
||||
"id": "10afc387-68d1-47ea-a816-0d1acad47b3c",
|
||||
"name": "maxHumidity",
|
||||
"displayName": "Maximum humidity",
|
||||
"type": "double",
|
||||
"defaultValue": 100,
|
||||
"unit": "Percentage"
|
||||
},
|
||||
{
|
||||
"id": "38064841-6121-4862-a639-08fb0b778511",
|
||||
"name": "accuracy",
|
||||
"displayName": "Accuracy (decimal places)",
|
||||
"type": "uint",
|
||||
"minValue": 0,
|
||||
"maxValue": 5,
|
||||
"defaultValue": 1
|
||||
}
|
||||
],
|
||||
"stateTypes": [
|
||||
{
|
||||
"id": "925225d9-2965-444a-9c42-63c2873700fb",
|
||||
"name": "humidity",
|
||||
"displayName": "Humidity",
|
||||
"displayNameEvent": "Humidity changed",
|
||||
"type": "double",
|
||||
"unit": "Percentage",
|
||||
"defaultValue": 0,
|
||||
"minValue": 0,
|
||||
"maxValue": 100
|
||||
},
|
||||
{
|
||||
"id": "a8223e65-e704-4f84-9bbe-d8fc42597047",
|
||||
"name": "input",
|
||||
"displayName": "Input value",
|
||||
"displayNameEvent": "Input value changed",
|
||||
"displayNameAction": "Set input value",
|
||||
"type": "double",
|
||||
"defaultValue": 0,
|
||||
"minValue": 0,
|
||||
"maxValue": 100,
|
||||
"writable": true,
|
||||
"ioType": "analogOutput"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "33e610cf-ff30-481b-9f0b-d6857bcd41a5",
|
||||
"name": "moistureSensor",
|
||||
"displayName": "Generic soil moisture sensor",
|
||||
"createMethods": ["user"],
|
||||
"interfaces": ["moisturesensor"],
|
||||
"settingsTypes": [
|
||||
{
|
||||
"id": "32153786-f1ae-4aa4-a84c-b9054102eb92",
|
||||
"name": "minMoisture",
|
||||
"displayName": "Minimum moisture",
|
||||
"type": "double",
|
||||
"defaultValue": 0,
|
||||
"unit": "Percentage"
|
||||
},
|
||||
{
|
||||
"id": "3426817d-065e-4cfc-aa21-bb434de684d6",
|
||||
"name": "maxMoisture",
|
||||
"displayName": "Maximum moisture",
|
||||
"type": "double",
|
||||
"defaultValue": 100,
|
||||
"unit": "Percentage"
|
||||
},
|
||||
{
|
||||
"id": "3c967a68-9951-4c9a-b019-79b913e762b6",
|
||||
"name": "accuracy",
|
||||
"displayName": "Accuracy (decimal places)",
|
||||
"type": "uint",
|
||||
"minValue": 0,
|
||||
"maxValue": 5,
|
||||
"defaultValue": 1
|
||||
}
|
||||
],
|
||||
"stateTypes": [
|
||||
{
|
||||
"id": "7a62e1d2-92f2-424c-876c-870478a4b2bd",
|
||||
"name": "moisture",
|
||||
"displayName": "Soil moisture",
|
||||
"displayNameEvent": "Soil moisture changed",
|
||||
"type": "double",
|
||||
"unit": "Percentage",
|
||||
"minValue": 0,
|
||||
"maxValue": 100,
|
||||
"defaultValue": 0
|
||||
},
|
||||
{
|
||||
"id": "ce64a425-d990-4fc1-966b-be6de445792b",
|
||||
"name": "input",
|
||||
"displayName": "Input value",
|
||||
"displayNameEvent": "Input value changed",
|
||||
"displayNameAction": "Set input value",
|
||||
"type": "double",
|
||||
"defaultValue": 0,
|
||||
"minValue": 0,
|
||||
"maxValue": 100,
|
||||
"writable": true,
|
||||
"ioType": "analogOutput"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,386 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="de">
|
||||
<context>
|
||||
<name>GenericThings</name>
|
||||
<message>
|
||||
<source>Close</source>
|
||||
<extracomment>The name of the ActionType ({cf5303f1-67c7-4cef-b11c-eb9de6fc8a87}) of ThingClass shutter
|
||||
----------
|
||||
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>
|
||||
<translation>Schließen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Closing output</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: shutter, ActionType: closingOutput, ID: {1c35df0e-4c41-455f-893a-0145377952a0})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: shutter, EventType: closingOutput, ID: {1c35df0e-4c41-455f-893a-0145377952a0})
|
||||
----------
|
||||
The name of the StateType ({1c35df0e-4c41-455f-893a-0145377952a0}) of ThingClass shutter
|
||||
----------
|
||||
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})
|
||||
----------
|
||||
The name of the StateType ({9b673430-572d-4a9c-85d3-dafadbe541cd}) of ThingClass blind
|
||||
----------
|
||||
The name of the ParamType (ThingClass: awning, ActionType: closingOutput, ID: {59bfd575-709f-4e43-9726-de26e6d4ca8b})
|
||||
----------
|
||||
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>
|
||||
</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 ({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>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic Things</source>
|
||||
<extracomment>The name of the plugin GenericThings ({b3188696-2585-4806-bf98-30ab576ce5c8})</extracomment>
|
||||
<translation>Generische "Things"</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic awning</source>
|
||||
<extracomment>The name of the ThingClass ({9e69585f-90ba-44e4-ad90-5b4bffbe345a})</extracomment>
|
||||
<translation>Generische Markise</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic blind</source>
|
||||
<extracomment>The name of the ThingClass ({17ee3657-6ad8-4ae2-8959-3cf66cec8d13})</extracomment>
|
||||
<translation>Generischer Sichtschutz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic heating</source>
|
||||
<extracomment>The name of the ThingClass ({392854c4-3d14-4cf8-96cd-d933526bd197})</extracomment>
|
||||
<translation>Generische Heizung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic humidity sensor</source>
|
||||
<extracomment>The name of the ThingClass ({d295bc64-773c-42a9-83e2-80db5fa0d1ce})</extracomment>
|
||||
<translation>Generischer Feuchtigkeitssensor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic light</source>
|
||||
<extracomment>The name of the ThingClass ({c50d3216-f307-4f9f-8190-4391510c385c})</extracomment>
|
||||
<translation>Generisches Licht</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic power socket</source>
|
||||
<extracomment>The name of the ThingClass ({4e7261af-a27b-4446-8346-914ea59f7547})</extracomment>
|
||||
<translation>Generische Steckdose</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic power switch</source>
|
||||
<extracomment>The name of the ThingClass ({57daa147-dd6f-4673-a757-d8f01a2054c7})</extracomment>
|
||||
<translation>Generischer Ein-/Ausschalter</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>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic temperature sensor</source>
|
||||
<extracomment>The name of the ThingClass ({cf3d65db-6f68-457b-968c-cfb66cbd5311})</extracomment>
|
||||
<translation>Generischer Temperatursensor</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>
|
||||
</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>
|
||||
</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>Eingangswert</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>Eingangswert geändert</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>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})
|
||||
----------
|
||||
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 (Nachkommastellen)</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
|
@ -0,0 +1,386 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1">
|
||||
<context>
|
||||
<name>GenericThings</name>
|
||||
<message>
|
||||
<source>Close</source>
|
||||
<extracomment>The name of the ActionType ({cf5303f1-67c7-4cef-b11c-eb9de6fc8a87}) of ThingClass shutter
|
||||
----------
|
||||
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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Closing output</source>
|
||||
<extracomment>The name of the ParamType (ThingClass: shutter, ActionType: closingOutput, ID: {1c35df0e-4c41-455f-893a-0145377952a0})
|
||||
----------
|
||||
The name of the ParamType (ThingClass: shutter, EventType: closingOutput, ID: {1c35df0e-4c41-455f-893a-0145377952a0})
|
||||
----------
|
||||
The name of the StateType ({1c35df0e-4c41-455f-893a-0145377952a0}) of ThingClass shutter
|
||||
----------
|
||||
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})
|
||||
----------
|
||||
The name of the StateType ({9b673430-572d-4a9c-85d3-dafadbe541cd}) of ThingClass blind
|
||||
----------
|
||||
The name of the ParamType (ThingClass: awning, ActionType: closingOutput, ID: {59bfd575-709f-4e43-9726-de26e6d4ca8b})
|
||||
----------
|
||||
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 type="unfinished"></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 ({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>Generic Things</source>
|
||||
<extracomment>The name of the plugin GenericThings ({b3188696-2585-4806-bf98-30ab576ce5c8})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic awning</source>
|
||||
<extracomment>The name of the ThingClass ({9e69585f-90ba-44e4-ad90-5b4bffbe345a})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic blind</source>
|
||||
<extracomment>The name of the ThingClass ({17ee3657-6ad8-4ae2-8959-3cf66cec8d13})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic heating</source>
|
||||
<extracomment>The name of the ThingClass ({392854c4-3d14-4cf8-96cd-d933526bd197})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic humidity sensor</source>
|
||||
<extracomment>The name of the ThingClass ({d295bc64-773c-42a9-83e2-80db5fa0d1ce})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic light</source>
|
||||
<extracomment>The name of the ThingClass ({c50d3216-f307-4f9f-8190-4391510c385c})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic power socket</source>
|
||||
<extracomment>The name of the ThingClass ({4e7261af-a27b-4446-8346-914ea59f7547})</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic power switch</source>
|
||||
<extracomment>The name of the ThingClass ({57daa147-dd6f-4673-a757-d8f01a2054c7})</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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Generic temperature sensor</source>
|
||||
<extracomment>The name of the ThingClass ({cf3d65db-6f68-457b-968c-cfb66cbd5311})</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})
|
||||
----------
|
||||
The name of the StateType ({925225d9-2965-444a-9c42-63c2873700fb}) of ThingClass humiditySensor</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Humidity changed</source>
|
||||
<extracomment>The name of the EventType ({925225d9-2965-444a-9c42-63c2873700fb}) of ThingClass humiditySensor</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>
|
||||
<translation type="unfinished"></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 type="unfinished"></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 type="unfinished"></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 type="unfinished"></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 type="unfinished"></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 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 ({120dc265-dbbb-4f19-9d31-c372c23479c0}) of ThingClass blind
|
||||
----------
|
||||
The name of the ActionType ({979e9c51-5a93-4635-85e3-01874306b229}) of ThingClass awning</extracomment>
|
||||
<translation type="unfinished"></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 type="unfinished"></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 type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Power on/off</source>
|
||||
<extracomment>The name of the ActionType ({08087af6-6a3b-4e4a-ac6d-56f23ce63edf}) of ThingClass powerSwitch</extracomment>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Powered on/off</source>
|
||||
<extracomment>The name of the EventType ({08087af6-6a3b-4e4a-ac6d-56f23ce63edf}) of ThingClass powerSwitch</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
|
||||
----------
|
||||
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 type="unfinished"></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 type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Soil moisture changed</source>
|
||||
<extracomment>The name of the EventType ({7a62e1d2-92f2-424c-876c-870478a4b2bd}) of ThingClass moistureSensor</extracomment>
|
||||
<translation type="unfinished"></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 type="unfinished"></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 type="unfinished"></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 type="unfinished"></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 type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Temperature changed</source>
|
||||
<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>
|
||||
<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>
|
||||
<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>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>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
|
@ -22,7 +22,7 @@ PLUGIN_DIRS = \
|
|||
eq-3 \
|
||||
flowercare \
|
||||
genericelements \
|
||||
genericinterfaces \
|
||||
genericthings \
|
||||
gpio \
|
||||
httpcommander \
|
||||
intertechno \
|
||||
|
|
|
|||
Loading…
Reference in New Issue