diff --git a/debian/changelog b/debian/changelog index 2dcbe35..992389c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,8 @@ +nymea-plugins (0.21.0) UNRELEASED; urgency=medium + + + -- Michael Zanetti Thu, 09 Apr 2020 18:20:40 +0200 + nymea-plugins (0.20.0) xenial; urgency=medium diff --git a/debian/control b/debian/control index 540a10b..b5ddd07 100644 --- a/debian/control +++ b/debian/control @@ -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, diff --git a/debian/nymea-plugin-genericinterfaces.install.in b/debian/nymea-plugin-genericthings.install.in similarity index 71% rename from debian/nymea-plugin-genericinterfaces.install.in rename to debian/nymea-plugin-genericthings.install.in index 91f8311..055ac7d 100644 --- a/debian/nymea-plugin-genericinterfaces.install.in +++ b/debian/nymea-plugin-genericthings.install.in @@ -1 +1 @@ -usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_integrationplugingenericinterfaces.so +usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_integrationplugingenericthings.so diff --git a/genericinterfaces/genericinterfaces.pro b/genericinterfaces/genericinterfaces.pro deleted file mode 100644 index 90a9805..0000000 --- a/genericinterfaces/genericinterfaces.pro +++ /dev/null @@ -1,12 +0,0 @@ -include(../plugins.pri) - -TARGET = $$qtLibraryTarget(nymea_integrationplugingenericinterfaces) - -SOURCES += \ - integrationplugingenericinterfaces.cpp - -HEADERS += \ - integrationplugingenericinterfaces.h - - - diff --git a/genericinterfaces/integrationplugingenericinterfaces.cpp b/genericinterfaces/integrationplugingenericinterfaces.cpp deleted file mode 100644 index cf2f893..0000000 --- a/genericinterfaces/integrationplugingenericinterfaces.cpp +++ /dev/null @@ -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 . -* -* 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 - -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); -} diff --git a/genericinterfaces/integrationplugingenericinterfaces.json b/genericinterfaces/integrationplugingenericinterfaces.json deleted file mode 100644 index 48ab88e..0000000 --- a/genericinterfaces/integrationplugingenericinterfaces.json +++ /dev/null @@ -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 - } - ] - } - ] - } - ] -} diff --git a/genericinterfaces/translations/b3188696-2585-4806-bf98-30ab576ce5c8-en_US.ts b/genericinterfaces/translations/b3188696-2585-4806-bf98-30ab576ce5c8-en_US.ts deleted file mode 100644 index e842fcf..0000000 --- a/genericinterfaces/translations/b3188696-2585-4806-bf98-30ab576ce5c8-en_US.ts +++ /dev/null @@ -1,185 +0,0 @@ - - - - - GenericInterfaces - - Awning interface - The name of the ThingClass ({9e69585f-90ba-44e4-ad90-5b4bffbe345a}) - - - - Blind interface - The name of the ThingClass ({17ee3657-6ad8-4ae2-8959-3cf66cec8d13}) - - - - Close - 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 - - - - Closing output - 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 - - - - Closing output changed - 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 - - - - Generic Interfaces - The name of the plugin GenericInterfaces ({b3188696-2585-4806-bf98-30ab576ce5c8}) - - - - Heating interface - The name of the ThingClass ({392854c4-3d14-4cf8-96cd-d933526bd197}) - - - - Light interface - The name of the ThingClass ({c50d3216-f307-4f9f-8190-4391510c385c}) - - - - Open - 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 - - - - Opening output - 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 - - - - Opening output changed - 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 - - - - Power - 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 - - - - Power changed - 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 - - - - Set power - 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 - - - - Shutter interface - The name of the ThingClass ({7917c2e7-d7d2-4c47-a38d-41f7dd7693d9}) - - - - Socket interface - The name of the ThingClass ({4e7261af-a27b-4446-8346-914ea59f7547}) - - - - Status - 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 - - - - Status changed - 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 - - - - Stop - 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 - - - - nymea - The name of the vendor ({2062d64d-3232-433c-88bc-0d33c0ba2ba6}) - - - - diff --git a/genericthings/README.md b/genericthings/README.md new file mode 100644 index 0000000..94afb73 --- /dev/null +++ b/genericthings/README.md @@ -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. + diff --git a/genericthings/genericthings.pro b/genericthings/genericthings.pro new file mode 100644 index 0000000..126bf47 --- /dev/null +++ b/genericthings/genericthings.pro @@ -0,0 +1,12 @@ +include(../plugins.pri) + +TARGET = $$qtLibraryTarget(nymea_integrationplugingenericthings) + +SOURCES += \ + integrationplugingenericthings.cpp + +HEADERS += \ + integrationplugingenericthings.h + + + diff --git a/genericthings/integrationplugingenericthings.cpp b/genericthings/integrationplugingenericthings.cpp new file mode 100644 index 0000000..53b9478 --- /dev/null +++ b/genericthings/integrationplugingenericthings.cpp @@ -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 . +* +* 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 +#include + +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; +} diff --git a/genericinterfaces/integrationplugingenericinterfaces.h b/genericthings/integrationplugingenericthings.h similarity index 82% rename from genericinterfaces/integrationplugingenericinterfaces.h rename to genericthings/integrationplugingenericthings.h index 7e6be93..5e6f7f3 100644 --- a/genericinterfaces/integrationplugingenericinterfaces.h +++ b/genericthings/integrationplugingenericthings.h @@ -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 diff --git a/genericthings/integrationplugingenericthings.json b/genericthings/integrationplugingenericthings.json new file mode 100644 index 0000000..838be3e --- /dev/null +++ b/genericthings/integrationplugingenericthings.json @@ -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" + } + ] + } + ] + } + ] +} diff --git a/genericthings/translations/b3188696-2585-4806-bf98-30ab576ce5c8-de.ts b/genericthings/translations/b3188696-2585-4806-bf98-30ab576ce5c8-de.ts new file mode 100644 index 0000000..9c98b7c --- /dev/null +++ b/genericthings/translations/b3188696-2585-4806-bf98-30ab576ce5c8-de.ts @@ -0,0 +1,386 @@ + + + + + GenericThings + + Close + 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 + Schließen + + + Closing output + 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 + Schließender Ausgang + + + Closing output changed + 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 + Schließender Ausgang geändert + + + Generic Things + The name of the plugin GenericThings ({b3188696-2585-4806-bf98-30ab576ce5c8}) + Generische "Things" + + + Generic awning + The name of the ThingClass ({9e69585f-90ba-44e4-ad90-5b4bffbe345a}) + Generische Markise + + + Generic blind + The name of the ThingClass ({17ee3657-6ad8-4ae2-8959-3cf66cec8d13}) + Generischer Sichtschutz + + + Generic heating + The name of the ThingClass ({392854c4-3d14-4cf8-96cd-d933526bd197}) + Generische Heizung + + + Generic humidity sensor + The name of the ThingClass ({d295bc64-773c-42a9-83e2-80db5fa0d1ce}) + Generischer Feuchtigkeitssensor + + + Generic light + The name of the ThingClass ({c50d3216-f307-4f9f-8190-4391510c385c}) + Generisches Licht + + + Generic power socket + The name of the ThingClass ({4e7261af-a27b-4446-8346-914ea59f7547}) + Generische Steckdose + + + Generic power switch + The name of the ThingClass ({57daa147-dd6f-4673-a757-d8f01a2054c7}) + Generischer Ein-/Ausschalter + + + Generic soil moisture sensor + The name of the ThingClass ({33e610cf-ff30-481b-9f0b-d6857bcd41a5}) + Generischer Erdfeuchtigkeitssensor + + + Generic temperature sensor + The name of the ThingClass ({cf3d65db-6f68-457b-968c-cfb66cbd5311}) + Generischer Temperatursensor + + + Humidity + 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 + Luftfeuchtigkeit + + + Humidity changed + The name of the EventType ({925225d9-2965-444a-9c42-63c2873700fb}) of ThingClass humiditySensor + Luftfeuchtigkeit geändert + + + Maximum humidity + The name of the ParamType (ThingClass: humiditySensor, Type: settings, ID: {10afc387-68d1-47ea-a816-0d1acad47b3c}) + Maximale Luftfeuchtigkeit + + + Maximum moisture + The name of the ParamType (ThingClass: moistureSensor, Type: settings, ID: {3426817d-065e-4cfc-aa21-bb434de684d6}) + Maximale Feuchtigkeit + + + Maximum temperature + The name of the ParamType (ThingClass: temperatureSensor, Type: settings, ID: {8b5947ab-127f-4995-853b-eeeb628811e3}) + Maximale Temperatur + + + Minimum humidity + The name of the ParamType (ThingClass: humiditySensor, Type: settings, ID: {0218ffa9-3d49-4b25-a59f-c8831f190432}) + Minimale Luftfeuchtigkeit + + + Minimum moisture + The name of the ParamType (ThingClass: moistureSensor, Type: settings, ID: {32153786-f1ae-4aa4-a84c-b9054102eb92}) + Minimale Feuchtigkeit + + + Minimum temperature + The name of the ParamType (ThingClass: temperatureSensor, Type: settings, ID: {c86ae5d3-9335-4b6e-8231-bf3ed6670dff}) + Maximale Temperatur + + + Open + 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 + Geöffnet + + + Opening output + 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 + Öffnender Ausgang + + + Opening output changed + 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 + Öffnender Ausgang geändert + + + Power + 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 + Einschalten + + + Power changed + 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 + Ein- oder ausgeschaltet + + + Power on/off + The name of the ActionType ({08087af6-6a3b-4e4a-ac6d-56f23ce63edf}) of ThingClass powerSwitch + Ein- oder ausschalten + + + Powered on/off + The name of the EventType ({08087af6-6a3b-4e4a-ac6d-56f23ce63edf}) of ThingClass powerSwitch + Ein- oder ausgeschaltet + + + Set power + 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 + Ein- oder ausschalten + + + Soil moisture + 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 + Feuchtigkeit + + + Soil moisture changed + The name of the EventType ({7a62e1d2-92f2-424c-876c-870478a4b2bd}) of ThingClass moistureSensor + Feuchtigkeit geändert + + + Status + 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 + Zustand + + + Status changed + 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 + Zustand geändert + + + Stop + 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 + Stop + + + Temperature + 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 + Temperatur + + + Temperature changed + The name of the EventType ({d0b6c4be-339e-4b0f-a234-0611b7565395}) of ThingClass temperatureSensor + Temperatur geändert + + + nymea + The name of the vendor ({2062d64d-3232-433c-88bc-0d33c0ba2ba6}) + nymea + + + Generic shutter + The name of the ThingClass ({7917c2e7-d7d2-4c47-a38d-41f7dd7693d9}) + Generischer Rolladen + + + Generic irrigation + The name of the ThingClass ({d013b980-20d5-4791-9c4f-b411c39241d7}) + Generische Bewässerung + + + Set closing output + 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 + Setze schließenden Ausgang + + + Set opening output + 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 + Setze öffnenden Ausgang + + + Turn on or off + The name of the ActionType ({0212a287-c5ae-4644-8803-adfdd8caeb9a}) of ThingClass irrigation + Ein- oder ausschalten + + + Turned on or off + The name of the EventType ({0212a287-c5ae-4644-8803-adfdd8caeb9a}) of ThingClass irrigation + Ein- oder ausgeschaltet + + + Input value + 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 + Eingangswert + + + Input value changed + 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 + Eingangswert geändert + + + Set input value + 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 + Setze Eingangswert + + + Accuracy (decimal places) + 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}) + Genauigkeit (Nachkommastellen) + + + diff --git a/genericthings/translations/b3188696-2585-4806-bf98-30ab576ce5c8-en_US.ts b/genericthings/translations/b3188696-2585-4806-bf98-30ab576ce5c8-en_US.ts new file mode 100644 index 0000000..18005c2 --- /dev/null +++ b/genericthings/translations/b3188696-2585-4806-bf98-30ab576ce5c8-en_US.ts @@ -0,0 +1,386 @@ + + + + + GenericThings + + Close + 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 + + + + Closing output + 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 + + + + Closing output changed + 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 + + + + Generic Things + The name of the plugin GenericThings ({b3188696-2585-4806-bf98-30ab576ce5c8}) + + + + Generic awning + The name of the ThingClass ({9e69585f-90ba-44e4-ad90-5b4bffbe345a}) + + + + Generic blind + The name of the ThingClass ({17ee3657-6ad8-4ae2-8959-3cf66cec8d13}) + + + + Generic heating + The name of the ThingClass ({392854c4-3d14-4cf8-96cd-d933526bd197}) + + + + Generic humidity sensor + The name of the ThingClass ({d295bc64-773c-42a9-83e2-80db5fa0d1ce}) + + + + Generic light + The name of the ThingClass ({c50d3216-f307-4f9f-8190-4391510c385c}) + + + + Generic power socket + The name of the ThingClass ({4e7261af-a27b-4446-8346-914ea59f7547}) + + + + Generic power switch + The name of the ThingClass ({57daa147-dd6f-4673-a757-d8f01a2054c7}) + + + + Generic soil moisture sensor + The name of the ThingClass ({33e610cf-ff30-481b-9f0b-d6857bcd41a5}) + + + + Generic temperature sensor + The name of the ThingClass ({cf3d65db-6f68-457b-968c-cfb66cbd5311}) + + + + Humidity + 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 + + + + Humidity changed + The name of the EventType ({925225d9-2965-444a-9c42-63c2873700fb}) of ThingClass humiditySensor + + + + Maximum humidity + The name of the ParamType (ThingClass: humiditySensor, Type: settings, ID: {10afc387-68d1-47ea-a816-0d1acad47b3c}) + + + + Maximum moisture + The name of the ParamType (ThingClass: moistureSensor, Type: settings, ID: {3426817d-065e-4cfc-aa21-bb434de684d6}) + + + + Maximum temperature + The name of the ParamType (ThingClass: temperatureSensor, Type: settings, ID: {8b5947ab-127f-4995-853b-eeeb628811e3}) + + + + Minimum humidity + The name of the ParamType (ThingClass: humiditySensor, Type: settings, ID: {0218ffa9-3d49-4b25-a59f-c8831f190432}) + + + + Minimum moisture + The name of the ParamType (ThingClass: moistureSensor, Type: settings, ID: {32153786-f1ae-4aa4-a84c-b9054102eb92}) + + + + Minimum temperature + The name of the ParamType (ThingClass: temperatureSensor, Type: settings, ID: {c86ae5d3-9335-4b6e-8231-bf3ed6670dff}) + + + + Open + 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 + + + + Opening output + 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 + + + + Opening output changed + 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 + + + + Power + 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 + + + + Power changed + 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 + + + + Power on/off + The name of the ActionType ({08087af6-6a3b-4e4a-ac6d-56f23ce63edf}) of ThingClass powerSwitch + + + + Powered on/off + The name of the EventType ({08087af6-6a3b-4e4a-ac6d-56f23ce63edf}) of ThingClass powerSwitch + + + + Set power + 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 + + + + Soil moisture + 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 + + + + Soil moisture changed + The name of the EventType ({7a62e1d2-92f2-424c-876c-870478a4b2bd}) of ThingClass moistureSensor + + + + Status + 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 + + + + Status changed + 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 + + + + Stop + 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 + + + + Temperature + 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 + + + + Temperature changed + The name of the EventType ({d0b6c4be-339e-4b0f-a234-0611b7565395}) of ThingClass temperatureSensor + + + + nymea + The name of the vendor ({2062d64d-3232-433c-88bc-0d33c0ba2ba6}) + + + + Generic shutter + The name of the ThingClass ({7917c2e7-d7d2-4c47-a38d-41f7dd7693d9}) + + + + Generic irrigation + The name of the ThingClass ({d013b980-20d5-4791-9c4f-b411c39241d7}) + + + + Set closing output + 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 + + + + Set opening output + 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 + + + + Turn on or off + The name of the ActionType ({0212a287-c5ae-4644-8803-adfdd8caeb9a}) of ThingClass irrigation + + + + Turned on or off + The name of the EventType ({0212a287-c5ae-4644-8803-adfdd8caeb9a}) of ThingClass irrigation + + + + Input value + 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 + + + + Input value changed + 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 + + + + Set input value + 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 + + + + Accuracy (decimal places) + 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}) + + + + diff --git a/nymea-plugins.pro b/nymea-plugins.pro index 6f139a7..9a5d5ca 100644 --- a/nymea-plugins.pro +++ b/nymea-plugins.pro @@ -22,7 +22,7 @@ PLUGIN_DIRS = \ eq-3 \ flowercare \ genericelements \ - genericinterfaces \ + genericthings \ gpio \ httpcommander \ intertechno \