diff --git a/genericthings/integrationplugingenericthings.cpp b/genericthings/integrationplugingenericthings.cpp
index 754a848..6ceb2b4 100644
--- a/genericthings/integrationplugingenericthings.cpp
+++ b/genericthings/integrationplugingenericthings.cpp
@@ -627,7 +627,22 @@ void IntegrationPluginGenericThings::executeAction(ThingActionInfo *info)
Q_ASSERT_X(false, "executeAction", QString("Unhandled actionTypeId: %1").arg(action.actionTypeId().toString()).toUtf8());
} else if (thing->thingClassId() == thermostatThingClassId) {
+ if (action.actionTypeId() == temperatureSensorInputActionTypeId) {
+
+ double targetTemperature = thing->stateValue(thermostatTargetTemperatureStateTypeId).toDouble();
+ double actualTemperature = action.param(thermostatTemperatureSensorInputActionTemperatureSensorInputParamTypeId).value().toDouble();
+ thing->setStateValue(temperatureSensorInputStateTypeId, actualTemperature);
+ double temperatureDifference = thing->setting(thermostatSettingsTemperatureDifferenceParamTypeId).toDouble();
+ if (actualTemperature <= (targetTemperature-temperatureDifference)) {
+ thing->setStateValue(thermostatPowerStateTypeId, true);
+ } else if (actualTemperature >= targetTemperature) {
+ thing->setStateValue(thermostatPowerStateTypeId, false);
+ }
+ info->finish(Thing::ThingErrorNoError);
+ return;
+ }
if (action.actionTypeId() == thermostatTargetTemperatureActionTypeId) {
+
thing->setStateValue(thermostatTargetTemperatureStateTypeId, action.param(thermostatTargetTemperatureActionTargetTemperatureParamTypeId).value());
info->finish(Thing::ThingErrorNoError);
return;
diff --git a/genericthings/integrationplugingenericthings.json b/genericthings/integrationplugingenericthings.json
index e9f0610..2812ec8 100644
--- a/genericthings/integrationplugingenericthings.json
+++ b/genericthings/integrationplugingenericthings.json
@@ -1036,7 +1036,32 @@
"displayName": "Generic thermostat",
"createMethods": ["user"],
"interfaces": ["thermostat", "heating"],
+ "settingsTypes": [
+ {
+ "id": "64bf308f-a543-4e02-b787-1a1714c1f978",
+ "name": "temperatureDifference",
+ "displayName": "Temperature difference",
+ "type": "double",
+ "unit": "DegreeCelsius",
+ "minValue": 0.00,
+ "defaultValue": 2.00
+ }
+ ],
"stateTypes": [
+ {
+ "id": "0f808803-0e63-47df-b024-9685998ba663",
+ "name": "temperatureSensorInput",
+ "displayName": "Temperature sensor input",
+ "displayNameEvent": "Temperature sensor input changed",
+ "displayNameAction": "Set temperature sensor input",
+ "type": "double",
+ "defaultValue": 0,
+ "minValue": -20,
+ "maxValue": 50,
+ "unit": "DegreeCelsius",
+ "writable": true,
+ "ioType": "analogOutput"
+ },
{
"id": "60169ebf-c1e3-41ed-a1bb-4b858e93ec50",
"name": "targetTemperature",
diff --git a/genericthings/translations/b3188696-2585-4806-bf98-30ab576ce5c8-de.ts b/genericthings/translations/b3188696-2585-4806-bf98-30ab576ce5c8-de.ts
index 11dfcaf..25fd04e 100644
--- a/genericthings/translations/b3188696-2585-4806-bf98-30ab576ce5c8-de.ts
+++ b/genericthings/translations/b3188696-2585-4806-bf98-30ab576ce5c8-de.ts
@@ -653,46 +653,46 @@ The name of the StateType ({9cd7e5ca-f8f8-48d5-9785-911ae75158c3}) of ThingClass
Angle end to end time [ms]The name of the ParamType (ThingClass: venetianBlind, Type: settings, ID: {6c8340bf-7fd3-43e3-a75b-dfa2f6426e11})
-
+ Winkel Endlage zu Endlage dauer [ms]Closing duration [ms]The name of the ParamType (ThingClass: venetianBlind, Type: settings, ID: {4c0bf07d-aaab-4f67-af65-00ceaefbaa84})
----------
The name of the ParamType (ThingClass: extendedBlind, Type: settings, ID: {27a95b8d-7f97-441b-a3be-0646c517cb06})
-
+ Schließzeit [ms]Garage door with position controlThe name of the ThingClass ({7341e689-4495-4422-851a-3e7c790394b8})
-
+ Garagentor mit LageeinstellungGeneric blind with position controlThe name of the ThingClass ({40aa9f3c-a23c-4f7f-8786-fcf3554f3e19})
-
+ Generisches Rollo mit LageneinstellungImpulseThe name of the ParamType (ThingClass: impulseGaragedooor, EventType: impulse, ID: {5ccaf0aa-01a4-441f-b6ca-18940da096a5})
----------
The name of the StateType ({5ccaf0aa-01a4-441f-b6ca-18940da096a5}) of ThingClass impulseGaragedooor
-
+ ImpulsImpulse based garage doorThe name of the ThingClass ({d6699a12-f4a6-4c50-951c-f4f1cd0501dc})
-
+ Impulsgesteuertes GaragentorImpulse changedThe name of the EventType ({5ccaf0aa-01a4-441f-b6ca-18940da096a5}) of ThingClass impulseGaragedooor
-
+ Impuls geändertImpulse durationThe name of the ParamType (ThingClass: impulseGaragedooor, Type: settings, ID: {962b356c-e975-4d33-b114-10f655eaf74c})
-
+ ImpulsdauerOpen position
@@ -701,103 +701,103 @@ The name of the StateType ({5ccaf0aa-01a4-441f-b6ca-18940da096a5}) of ThingClass
The name of the ParamType (ThingClass: extendedStatefulGaragedoor, EventType: percentage, ID: {f9244c14-0bc9-49ce-90a5-437e66245594})
----------
The name of the StateType ({f9244c14-0bc9-49ce-90a5-437e66245594}) of ThingClass extendedStatefulGaragedoor
-
+ Position offenOpen position changedThe name of the EventType ({f9244c14-0bc9-49ce-90a5-437e66245594}) of ThingClass extendedStatefulGaragedoor
-
+ Position offen geändertOpening duration [ms]The name of the ParamType (ThingClass: extendedStatefulGaragedoor, Type: settings, ID: {04fb7724-a870-4df9-a79e-fab693931238})
-
+ Öffnungsdauer [ms]OperateThe name of the ActionType ({ff5461c6-70fc-435e-8424-96fa59ed321e}) of ThingClass impulseGaragedooor
-
+ BetätigenSet open positionThe name of the ActionType ({f9244c14-0bc9-49ce-90a5-437e66245594}) of ThingClass extendedStatefulGaragedoor
-
+ Setze Position offenSimple garage doorThe name of the ThingClass ({572403b1-bc22-4620-8170-53147a546033})
-
+ Einfaches GaragentorStateThe name of the ParamType (ThingClass: extendedStatefulGaragedoor, EventType: state, ID: {0cc74edb-7116-47cf-953a-409933f26557})
----------
The name of the StateType ({0cc74edb-7116-47cf-953a-409933f26557}) of ThingClass extendedStatefulGaragedoor
-
+ StatusState changedThe name of the EventType ({0cc74edb-7116-47cf-953a-409933f26557}) of ThingClass extendedStatefulGaragedoor
-
+ Status geändertCO2The name of the ParamType (ThingClass: co2Sensor, EventType: co2, ID: {755c4c7f-093e-41dd-a38d-9ee18c9890d6})
----------
The name of the StateType ({755c4c7f-093e-41dd-a38d-9ee18c9890d6}) of ThingClass co2Sensor
-
+ CO2CO2 changedThe name of the EventType ({755c4c7f-093e-41dd-a38d-9ee18c9890d6}) of ThingClass co2Sensor
-
+ CO2 geändertGeneric CO2 sensorThe name of the ThingClass ({a58a2dae-4148-4a4d-ab34-2a11124454a0})
-
+ Generischer CO2-SensorGeneric pressure sensorThe name of the ThingClass ({9a8d804b-d1dc-450a-8c41-be491e5cdda0})
-
+ Generischer DrucksensorMaximum CO2The name of the ParamType (ThingClass: co2Sensor, Type: settings, ID: {a3029bee-8b13-4aed-8ebd-eaceb603f8ef})
-
+ Maximum CO2Maximum pressureThe name of the ParamType (ThingClass: pressureSensor, Type: settings, ID: {06e21251-8b4f-44a1-8504-6b51f8526bd0})
-
+ MaximaldruckMinimum CO2The name of the ParamType (ThingClass: co2Sensor, Type: settings, ID: {a0d8a6ec-599a-4ded-ae03-2950561f0b72})
-
+ Minimum CO2Minimum pressureThe name of the ParamType (ThingClass: pressureSensor, Type: settings, ID: {035e2619-f9c2-4e8f-95dd-f124ad9402d0})
-
+ MinimaldruckPressureThe name of the ParamType (ThingClass: pressureSensor, EventType: pressure, ID: {e645a979-1465-4592-b8b0-f4c123db0800})
----------
The name of the StateType ({e645a979-1465-4592-b8b0-f4c123db0800}) of ThingClass pressureSensor
-
+ DruckPressure changedThe name of the EventType ({e645a979-1465-4592-b8b0-f4c123db0800}) of ThingClass pressureSensor
-
+ Druck geändertGeneric thermostatThe name of the ThingClass ({6a34ba99-e5ec-4fc9-a61f-695ed8573fa1})
-
+ Generisches ThermostatOn/off
@@ -806,12 +806,12 @@ The name of the StateType ({e645a979-1465-4592-b8b0-f4c123db0800}) of ThingClass
The name of the ParamType (ThingClass: thermostat, EventType: power, ID: {1f6a0c39-4417-4e31-86db-9926cf81c345})
----------
The name of the StateType ({1f6a0c39-4417-4e31-86db-9926cf81c345}) of ThingClass thermostat
-
+ Ein/ausSet target temperatureThe name of the ActionType ({60169ebf-c1e3-41ed-a1bb-4b858e93ec50}) of ThingClass thermostat
-
+ Setze ZieltemperaturTarget temperature
@@ -820,22 +820,46 @@ The name of the StateType ({1f6a0c39-4417-4e31-86db-9926cf81c345}) of ThingClass
The name of the ParamType (ThingClass: thermostat, EventType: targetTemperature, ID: {60169ebf-c1e3-41ed-a1bb-4b858e93ec50})
----------
The name of the StateType ({60169ebf-c1e3-41ed-a1bb-4b858e93ec50}) of ThingClass thermostat
-
+ ZieltemperaturTarget temperature changedThe name of the EventType ({60169ebf-c1e3-41ed-a1bb-4b858e93ec50}) of ThingClass thermostat
-
+ Zieltemperature geändertTurn on/offThe name of the ActionType ({1f6a0c39-4417-4e31-86db-9926cf81c345}) of ThingClass thermostat
-
+ Schalte ein/ausTurned on/offThe name of the EventType ({1f6a0c39-4417-4e31-86db-9926cf81c345}) of ThingClass thermostat
-
+ Ein/aus geschalten
+
+
+ Set temperature sensor input
+ The name of the ActionType ({0f808803-0e63-47df-b024-9685998ba663}) of ThingClass thermostat
+ Setze Temperatursensoreingang
+
+
+ Temperature difference
+ The name of the ParamType (ThingClass: thermostat, Type: settings, ID: {64bf308f-a543-4e02-b787-1a1714c1f978})
+ Temperaturdifferenz
+
+
+ Temperature sensor input
+ The name of the ParamType (ThingClass: thermostat, ActionType: temperatureSensorInput, ID: {0f808803-0e63-47df-b024-9685998ba663})
+----------
+The name of the ParamType (ThingClass: thermostat, EventType: temperatureSensorInput, ID: {0f808803-0e63-47df-b024-9685998ba663})
+----------
+The name of the StateType ({0f808803-0e63-47df-b024-9685998ba663}) of ThingClass thermostat
+ Temperatursensoreingang
+
+
+ Temperature sensor input changed
+ The name of the EventType ({0f808803-0e63-47df-b024-9685998ba663}) of ThingClass thermostat
+ Temperatursensoreingang geändert
diff --git a/genericthings/translations/b3188696-2585-4806-bf98-30ab576ce5c8-en_US.ts b/genericthings/translations/b3188696-2585-4806-bf98-30ab576ce5c8-en_US.ts
index daf51c4..0e11f3d 100644
--- a/genericthings/translations/b3188696-2585-4806-bf98-30ab576ce5c8-en_US.ts
+++ b/genericthings/translations/b3188696-2585-4806-bf98-30ab576ce5c8-en_US.ts
@@ -837,6 +837,30 @@ The name of the StateType ({60169ebf-c1e3-41ed-a1bb-4b858e93ec50}) of ThingClass
The name of the EventType ({1f6a0c39-4417-4e31-86db-9926cf81c345}) of ThingClass thermostat
+
+ Set temperature sensor input
+ The name of the ActionType ({0f808803-0e63-47df-b024-9685998ba663}) of ThingClass thermostat
+
+
+
+ Temperature difference
+ The name of the ParamType (ThingClass: thermostat, Type: settings, ID: {64bf308f-a543-4e02-b787-1a1714c1f978})
+
+
+
+ Temperature sensor input
+ The name of the ParamType (ThingClass: thermostat, ActionType: temperatureSensorInput, ID: {0f808803-0e63-47df-b024-9685998ba663})
+----------
+The name of the ParamType (ThingClass: thermostat, EventType: temperatureSensorInput, ID: {0f808803-0e63-47df-b024-9685998ba663})
+----------
+The name of the StateType ({0f808803-0e63-47df-b024-9685998ba663}) of ThingClass thermostat
+
+
+
+ Temperature sensor input changed
+ The name of the EventType ({0f808803-0e63-47df-b024-9685998ba663}) of ThingClass thermostat
+
+ IntegrationPluginGenericThings