diff --git a/debian/control b/debian/control
index a408178..0560e40 100644
--- a/debian/control
+++ b/debian/control
@@ -86,6 +86,18 @@ Description: nymea integration plugin for generic irrigation systems
means, like GPIOs or other types of relays.
+Package: nymea-plugin-generic-lights
+Architecture: any
+Depends: ${shlibs:Depends},
+ ${misc:Depends},
+Conflicts: nymea-plugin-genericthings
+Description: nymea integration plugin for generic lights
+ This package contains the nymea integration plugin for generic lights.
+ They can be used to represent lights in nymea which are controlled via
+ some on/off switches like smart plugs, GPIOs, relays or more complex systems
+ like MQTT.
+
+
Package: nymea-plugin-generic-sensors
Architecture: any
Depends: ${shlibs:Depends},
@@ -131,6 +143,7 @@ Depends: ${shlibs:Depends},
nymea-plugin-generic-garages,
nymea-plugin-generic-heatingcooling,
nymea-plugin-generic-irrigation,
+ nymea-plugin-generic-lights,
nymea-plugin-generic-sensors,
nymea-plugin-generic-shading,
nymea-plugin-generic-thing,
diff --git a/debian/nymea-plugin-generic-lights.install.in b/debian/nymea-plugin-generic-lights.install.in
new file mode 100644
index 0000000..c19fdc2
--- /dev/null
+++ b/debian/nymea-plugin-generic-lights.install.in
@@ -0,0 +1,2 @@
+usr/lib/@DEB_HOST_MULTIARCH@/nymea/plugins/libnymea_integrationplugingenericlights.so
+genericlights/translations/*qm usr/share/nymea/translations/
diff --git a/genericenergy/integrationplugingenericenergy.cpp b/genericenergy/integrationplugingenericenergy.cpp
index 5e5cf3e..a1c497a 100644
--- a/genericenergy/integrationplugingenericenergy.cpp
+++ b/genericenergy/integrationplugingenericenergy.cpp
@@ -89,13 +89,6 @@ void IntegrationPluginGenericEnergy::executeAction(ThingActionInfo *info)
} else {
Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
}
- } else if (thing->thingClassId() == lightThingClassId) {
- if (action.actionTypeId() == lightPowerActionTypeId) {
- thing->setStateValue(lightPowerStateTypeId, action.param(lightPowerActionPowerParamTypeId).value());
- return info->finish(Thing::ThingErrorNoError);
- } else {
- Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
- }
} else if (thing->thingClassId() == impulseSmartMeterThingClassId) {
if (action.actionTypeId() == impulseSmartMeterImpulseInputActionTypeId) {
bool value = info->action().param(impulseSmartMeterImpulseInputActionImpulseInputParamTypeId).value().toBool();
diff --git a/genericenergy/integrationplugingenericenergy.json b/genericenergy/integrationplugingenericenergy.json
index 946ad98..3767668 100644
--- a/genericenergy/integrationplugingenericenergy.json
+++ b/genericenergy/integrationplugingenericenergy.json
@@ -28,26 +28,6 @@
}
]
},
- {
- "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": "c3123967-f741-4fe1-a0d4-9a3e405d7e52",
"name": "impulseSmartMeter",
diff --git a/genericlights/README.md b/genericlights/README.md
new file mode 100644
index 0000000..f610ead
--- /dev/null
+++ b/genericlights/README.md
@@ -0,0 +1,11 @@
+# Generic lights
+
+This plugin allows to create generic lights in nymea. Such lights don't have any
+functionality on their own, but allow to create a light things which are controlled
+using general purpose input and outputs, such as GPIOs, smart plugs or MQTT.
+
+## Set-up
+
+First, set up a thing with generic inputs or outputs. For instance from the GPIO or MQTT plugins.
+When done, set up the desired generic light and use the things settings to connect
+the inputs and/or outputs or nymea scripts to fill in the thing states accordingly.
diff --git a/genericlights/genericlights.pro b/genericlights/genericlights.pro
new file mode 100644
index 0000000..a38696a
--- /dev/null
+++ b/genericlights/genericlights.pro
@@ -0,0 +1,10 @@
+include(../plugins.pri)
+
+SOURCES += \
+ integrationplugingenericlights.cpp
+
+HEADERS += \
+ integrationplugingenericlights.h
+
+
+
diff --git a/genericlights/integrationplugingenericlights.cpp b/genericlights/integrationplugingenericlights.cpp
new file mode 100644
index 0000000..0a30de8
--- /dev/null
+++ b/genericlights/integrationplugingenericlights.cpp
@@ -0,0 +1,105 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+*
+*
+* 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
+*
+* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+#include "integrationplugingenericlights.h"
+#include "plugininfo.h"
+
+#include
+#include
+
+IntegrationPluginGenericLights::IntegrationPluginGenericLights()
+{
+
+}
+
+void IntegrationPluginGenericLights::setupThing(ThingSetupInfo *info)
+{
+ info->finish(Thing::ThingErrorNoError);
+}
+
+void IntegrationPluginGenericLights::executeAction(ThingActionInfo *info)
+{
+ Thing *thing = info->thing();
+ Action action = info->action();
+
+ if (thing->thingClassId() == lightThingClassId) {
+ if (action.actionTypeId() == lightPowerActionTypeId) {
+ thing->setStateValue(lightPowerStateTypeId, action.param(lightPowerActionPowerParamTypeId).value());
+ return info->finish(Thing::ThingErrorNoError);
+ } else {
+ Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
+ }
+ } else if (thing->thingClassId() == dimmableLightThingClassId) {
+ if (action.actionTypeId() == dimmableLightPowerActionTypeId) {
+ thing->setStateValue(dimmableLightPowerStateTypeId, action.param(dimmableLightPowerActionPowerParamTypeId).value());
+ return info->finish(Thing::ThingErrorNoError);
+ } else if (action.actionTypeId() == dimmableLightBrightnessActionTypeId) {
+ thing->setStateValue(dimmableLightBrightnessStateTypeId, action.param(dimmableLightBrightnessActionBrightnessParamTypeId).value());
+ return info->finish(Thing::ThingErrorNoError);
+ } else {
+ Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
+ }
+
+ } else if (thing->thingClassId() == colorTemperatureLightThingClassId) {
+ if (action.actionTypeId() == colorTemperatureLightPowerActionTypeId) {
+ thing->setStateValue(colorTemperatureLightPowerStateTypeId, action.param(colorTemperatureLightPowerActionPowerParamTypeId).value());
+ return info->finish(Thing::ThingErrorNoError);
+ } else if (action.actionTypeId() == colorTemperatureLightBrightnessActionTypeId) {
+ thing->setStateValue(colorTemperatureLightBrightnessStateTypeId, action.param(colorTemperatureLightBrightnessActionBrightnessParamTypeId).value());
+ return info->finish(Thing::ThingErrorNoError);
+ } else if (action.actionTypeId() == colorTemperatureLightColorTemperatureActionTypeId) {
+ thing->setStateValue(colorTemperatureLightColorTemperatureStateTypeId, action.param(colorTemperatureLightColorTemperatureActionColorTemperatureParamTypeId).value());
+ return info->finish(Thing::ThingErrorNoError);
+ } else {
+ Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
+ }
+
+ } else if (thing->thingClassId() == colorLightThingClassId) {
+ if (action.actionTypeId() == colorLightPowerActionTypeId) {
+ thing->setStateValue(colorLightPowerStateTypeId, action.param(colorLightPowerActionPowerParamTypeId).value());
+ return info->finish(Thing::ThingErrorNoError);
+ } else if (action.actionTypeId() == colorLightBrightnessActionTypeId) {
+ thing->setStateValue(colorLightBrightnessStateTypeId, action.param(colorLightBrightnessActionBrightnessParamTypeId).value());
+ return info->finish(Thing::ThingErrorNoError);
+ } else if (action.actionTypeId() == colorLightColorTemperatureActionTypeId) {
+ thing->setStateValue(colorLightColorTemperatureStateTypeId, action.param(colorLightColorTemperatureActionColorTemperatureParamTypeId).value());
+ return info->finish(Thing::ThingErrorNoError);
+ } else if (action.actionTypeId() == colorLightColorActionTypeId) {
+ thing->setStateValue(colorLightColorStateTypeId, action.param(colorLightColorActionColorParamTypeId).value());
+ return info->finish(Thing::ThingErrorNoError);
+ } else {
+ Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
+ }
+
+ } else {
+ Q_ASSERT_X(false, "executeAction", QString("Unhandled thingClassId: %1").arg(thing->thingClassId().toString()).toUtf8());
+ }
+}
diff --git a/genericlights/integrationplugingenericlights.h b/genericlights/integrationplugingenericlights.h
new file mode 100644
index 0000000..67bcff0
--- /dev/null
+++ b/genericlights/integrationplugingenericlights.h
@@ -0,0 +1,53 @@
+/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
+*
+* 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
+*
+* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
+
+#ifndef INTEGRATIONPLUGINGENERICLIGHTS_H
+#define INTEGRATIONPLUGINGENERICLIGHTS_H
+
+#include "integrations/integrationplugin.h"
+#include "plugintimer.h"
+#include "extern-plugininfo.h"
+
+#include
+
+class IntegrationPluginGenericLights: public IntegrationPlugin
+{
+ Q_OBJECT
+
+ Q_PLUGIN_METADATA(IID "io.nymea.IntegrationPlugin" FILE "integrationplugingenericlights.json")
+ Q_INTERFACES(IntegrationPlugin)
+
+public:
+ explicit IntegrationPluginGenericLights();
+ void setupThing(ThingSetupInfo *info) override;
+ void executeAction(ThingActionInfo *info) override;
+};
+
+#endif // INTEGRATIONPLUGINGENERIClights_H
diff --git a/genericlights/integrationplugingenericlights.json b/genericlights/integrationplugingenericlights.json
new file mode 100644
index 0000000..518fe3f
--- /dev/null
+++ b/genericlights/integrationplugingenericlights.json
@@ -0,0 +1,167 @@
+{
+ "name": "genericLights",
+ "displayName": "Generic lights",
+ "id": "8b803622-0e48-4987-970e-927d92ad18d5",
+ "vendors": [
+ {
+ "name": "nymea",
+ "displayName": "nymea",
+ "id": "2062d64d-3232-433c-88bc-0d33c0ba2ba6",
+ "thingClasses": [
+ {
+ "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": "fdfbd11f-bd99-4876-8254-7f91f96ca4fc",
+ "name": "dimmableLight",
+ "displayName": "Generic dimmable light",
+ "createMethods": ["user"],
+ "interfaces": ["dimmablelight"],
+ "stateTypes": [
+ {
+ "id": "74535080-b6d9-41db-8e35-ef90e9042b75",
+ "name": "power",
+ "displayName": "Power",
+ "displayNameEvent": "Power changed",
+ "displayNameAction": "Set power",
+ "type": "bool",
+ "defaultValue": false,
+ "writable": true,
+ "ioType": "digitalInput"
+ },
+ {
+ "id": "88786787-8025-4967-b7a6-f3b670216ac0",
+ "name": "brightness",
+ "displayName": "Brightness",
+ "displayNameEvent": "Brightness changed",
+ "displayNameAction": "Set brightness",
+ "type": "int",
+ "minValue": 0,
+ "maxValue": 100,
+ "defaultValue": 100,
+ "writable": true,
+ "ioType": "analogInput"
+ }
+ ]
+ },
+ {
+ "id": "34ee15f7-8e94-4927-bfd2-7123aac0b1be",
+ "name": "colorTemperatureLight",
+ "displayName": "Generic color temperature light",
+ "createMethods": ["user"],
+ "interfaces": ["colortemperaturelight"],
+ "stateTypes": [
+ {
+ "id": "316c8852-6e53-4404-891a-83c1f0fa0c84",
+ "name": "power",
+ "displayName": "Power",
+ "displayNameEvent": "Power changed",
+ "displayNameAction": "Set power",
+ "type": "bool",
+ "defaultValue": false,
+ "writable": true,
+ "ioType": "digitalInput"
+ },
+ {
+ "id": "76b54a6d-fae9-4cb6-8603-a3a615e153f9",
+ "name": "brightness",
+ "displayName": "Brightness",
+ "displayNameEvent": "Brightness changed",
+ "displayNameAction": "Set brightness",
+ "type": "int",
+ "minValue": 0,
+ "maxValue": 100,
+ "defaultValue": 100,
+ "writable": true,
+ "ioType": "analogInput"
+ },
+ {
+ "id": "3a2459ed-af20-4ea0-8bd7-97b59be594f7",
+ "name": "colorTemperature",
+ "displayName": "Color temperature",
+ "displayNameEvent": "Color temperature changed",
+ "displayNameAction": "Set color temperature",
+ "type": "int",
+ "writable": true,
+ "minValue": 0,
+ "maxValue": 100,
+ "defaultValue": 50
+ }
+ ]
+ },
+ {
+ "id": "886a856d-1373-4fff-ac34-dbdfa5531c2a",
+ "name": "colorLight",
+ "displayName": "Generic color light",
+ "createMethods": ["user"],
+ "interfaces": ["colorlight"],
+ "stateTypes": [
+ {
+ "id": "1a366728-e67c-4767-b125-bec5dd6515f5",
+ "name": "power",
+ "displayName": "Power",
+ "displayNameEvent": "Power changed",
+ "displayNameAction": "Set power",
+ "type": "bool",
+ "defaultValue": false,
+ "writable": true,
+ "ioType": "digitalInput"
+ },
+ {
+ "id": "392e418c-d1e0-45ae-ba90-0fbc53227d70",
+ "name": "brightness",
+ "displayName": "Brightness",
+ "displayNameEvent": "Brightness changed",
+ "displayNameAction": "Set brightness",
+ "type": "int",
+ "minValue": 0,
+ "maxValue": 100,
+ "defaultValue": 100,
+ "writable": true,
+ "ioType": "analogInput"
+ },
+ {
+ "id": "4db6a6d9-f7f4-4dca-85c4-4f5f8e57c897",
+ "name": "colorTemperature",
+ "displayName": "Color temperature",
+ "displayNameEvent": "Color temperature changed",
+ "displayNameAction": "Set color temperature",
+ "type": "int",
+ "writable": true,
+ "minValue": 0,
+ "maxValue": 100,
+ "defaultValue": 50
+ },
+ {
+ "id": "ecce80e5-c992-49cd-bd67-7721d2efad2b",
+ "name": "color",
+ "displayName": "color",
+ "displayNameEvent": "Color changed",
+ "displayNameAction": "Set color",
+ "type": "QColor",
+ "writable": true,
+ "defaultValue": "#FFFFFF"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/genericlights/translations/8b803622-0e48-4987-970e-927d92ad18d5-en_US.ts b/genericlights/translations/8b803622-0e48-4987-970e-927d92ad18d5-en_US.ts
new file mode 100644
index 0000000..c430c36
--- /dev/null
+++ b/genericlights/translations/8b803622-0e48-4987-970e-927d92ad18d5-en_US.ts
@@ -0,0 +1,157 @@
+
+
+
+
+ genericLights
+
+
+
+
+
+
+
+ Brightness
+ The name of the ParamType (ThingClass: colorLight, ActionType: brightness, ID: {392e418c-d1e0-45ae-ba90-0fbc53227d70})
+----------
+The name of the StateType ({392e418c-d1e0-45ae-ba90-0fbc53227d70}) of ThingClass colorLight
+----------
+The name of the ParamType (ThingClass: colorTemperatureLight, ActionType: brightness, ID: {76b54a6d-fae9-4cb6-8603-a3a615e153f9})
+----------
+The name of the StateType ({76b54a6d-fae9-4cb6-8603-a3a615e153f9}) of ThingClass colorTemperatureLight
+----------
+The name of the ParamType (ThingClass: dimmableLight, ActionType: brightness, ID: {88786787-8025-4967-b7a6-f3b670216ac0})
+----------
+The name of the StateType ({88786787-8025-4967-b7a6-f3b670216ac0}) of ThingClass dimmableLight
+
+
+
+
+
+
+
+ Color temperature
+ The name of the ParamType (ThingClass: colorLight, ActionType: colorTemperature, ID: {4db6a6d9-f7f4-4dca-85c4-4f5f8e57c897})
+----------
+The name of the StateType ({4db6a6d9-f7f4-4dca-85c4-4f5f8e57c897}) of ThingClass colorLight
+----------
+The name of the ParamType (ThingClass: colorTemperatureLight, ActionType: colorTemperature, ID: {3a2459ed-af20-4ea0-8bd7-97b59be594f7})
+----------
+The name of the StateType ({3a2459ed-af20-4ea0-8bd7-97b59be594f7}) of ThingClass colorTemperatureLight
+
+
+
+
+ Generic color light
+ The name of the ThingClass ({886a856d-1373-4fff-ac34-dbdfa5531c2a})
+
+
+
+
+ Generic color temperature light
+ The name of the ThingClass ({34ee15f7-8e94-4927-bfd2-7123aac0b1be})
+
+
+
+
+ Generic dimmable light
+ The name of the ThingClass ({fdfbd11f-bd99-4876-8254-7f91f96ca4fc})
+
+
+
+
+ Generic light
+ The name of the ThingClass ({c50d3216-f307-4f9f-8190-4391510c385c})
+
+
+
+
+ Generic lights
+ The name of the plugin genericLights ({8b803622-0e48-4987-970e-927d92ad18d5})
+
+
+
+
+
+
+
+
+
+
+
+ Power
+ The name of the ParamType (ThingClass: colorLight, ActionType: power, ID: {1a366728-e67c-4767-b125-bec5dd6515f5})
+----------
+The name of the StateType ({1a366728-e67c-4767-b125-bec5dd6515f5}) of ThingClass colorLight
+----------
+The name of the ParamType (ThingClass: colorTemperatureLight, ActionType: power, ID: {316c8852-6e53-4404-891a-83c1f0fa0c84})
+----------
+The name of the StateType ({316c8852-6e53-4404-891a-83c1f0fa0c84}) of ThingClass colorTemperatureLight
+----------
+The name of the ParamType (ThingClass: dimmableLight, ActionType: power, ID: {74535080-b6d9-41db-8e35-ef90e9042b75})
+----------
+The name of the StateType ({74535080-b6d9-41db-8e35-ef90e9042b75}) of ThingClass dimmableLight
+----------
+The name of the ParamType (ThingClass: light, ActionType: power, ID: {8b6e4a67-6522-408b-b676-8d2f09ed2d54})
+----------
+The name of the StateType ({8b6e4a67-6522-408b-b676-8d2f09ed2d54}) of ThingClass light
+
+
+
+
+
+
+ Set brightness
+ The name of the ActionType ({392e418c-d1e0-45ae-ba90-0fbc53227d70}) of ThingClass colorLight
+----------
+The name of the ActionType ({76b54a6d-fae9-4cb6-8603-a3a615e153f9}) of ThingClass colorTemperatureLight
+----------
+The name of the ActionType ({88786787-8025-4967-b7a6-f3b670216ac0}) of ThingClass dimmableLight
+
+
+
+
+ Set color
+ The name of the ActionType ({ecce80e5-c992-49cd-bd67-7721d2efad2b}) of ThingClass colorLight
+
+
+
+
+
+ Set color temperature
+ The name of the ActionType ({4db6a6d9-f7f4-4dca-85c4-4f5f8e57c897}) of ThingClass colorLight
+----------
+The name of the ActionType ({3a2459ed-af20-4ea0-8bd7-97b59be594f7}) of ThingClass colorTemperatureLight
+
+
+
+
+
+
+
+ Set power
+ The name of the ActionType ({1a366728-e67c-4767-b125-bec5dd6515f5}) of ThingClass colorLight
+----------
+The name of the ActionType ({316c8852-6e53-4404-891a-83c1f0fa0c84}) of ThingClass colorTemperatureLight
+----------
+The name of the ActionType ({74535080-b6d9-41db-8e35-ef90e9042b75}) of ThingClass dimmableLight
+----------
+The name of the ActionType ({8b6e4a67-6522-408b-b676-8d2f09ed2d54}) of ThingClass light
+
+
+
+
+
+ color
+ The name of the ParamType (ThingClass: colorLight, ActionType: color, ID: {ecce80e5-c992-49cd-bd67-7721d2efad2b})
+----------
+The name of the StateType ({ecce80e5-c992-49cd-bd67-7721d2efad2b}) of ThingClass colorLight
+
+
+
+
+ nymea
+ The name of the vendor ({2062d64d-3232-433c-88bc-0d33c0ba2ba6})
+
+
+
+
diff --git a/nymea-plugins-genericthings.pro b/nymea-plugins-genericthings.pro
index 65bda2c..35eef61 100644
--- a/nymea-plugins-genericthings.pro
+++ b/nymea-plugins-genericthings.pro
@@ -7,6 +7,7 @@ PLUGIN_DIRS = \
genericgarages \
genericheatingcooling \
genericirrigation \
+ genericlights \
genericsensors \
genericshading \
genericthing \