3#include "../SinricProRequest.h"
4#include "../EventLimiter.h"
5#include "../SinricProStrings.h"
7#include "../SinricProNamespace.h"
8namespace SINRICPRO_NAMESPACE {
10FSTR(THERMOSTAT, setThermostatMode);
11FSTR(THERMOSTAT, thermostatMode);
12FSTR(THERMOSTAT, targetTemperature);
13FSTR(THERMOSTAT, temperature);
14FSTR(THERMOSTAT, adjustTargetTemperature);
82 bool handleThermostatController(SinricProRequest &
request);
85 EventLimiter event_limiter_thermostatMode;
86 EventLimiter event_limiter_targetTemperature;
94: event_limiter_thermostatMode(EVENT_LIMIT_STATE)
95, event_limiter_targetTemperature(EVENT_LIMIT_STATE) {
96 T*
device =
static_cast<T*
>(
this);
109 thermostatModeCallback =
cb;
121 targetTemperatureCallback =
cb;
133 adjustTargetTemperatureCallback =
cb;
147 if (event_limiter_thermostatMode)
return false;
148 T*
device =
static_cast<T*
>(
this);
167 if (event_limiter_targetTemperature)
return false;
168 T*
device =
static_cast<T*
>(
this);
178 T*
device =
static_cast<T*
>(
this);
189 success = targetTemperatureCallback(device->deviceId, temperature);
190 request.response_value[FSTR_THERMOSTAT_temperature] = temperature;
194 if (request.action == FSTR_THERMOSTAT_adjustTargetTemperature && adjustTargetTemperatureCallback) {
195 float temperatureDelta = request.request_value[FSTR_THERMOSTAT_temperature];
196 success = adjustTargetTemperatureCallback(device->deviceId, temperatureDelta);
197 request.response_value[FSTR_THERMOSTAT_temperature] = temperatureDelta;
201 if (request.action == FSTR_THERMOSTAT_setThermostatMode && thermostatModeCallback) {
202 String thermostatMode = request.request_value[FSTR_THERMOSTAT_thermostatMode] |
"";
203 success = thermostatModeCallback(device->deviceId, thermostatMode);
204 request.response_value[FSTR_THERMOSTAT_thermostatMode] = thermostatMode;
214using ThermostatController = SINRICPRO_NAMESPACE::ThermostatController<T>;
AirQuality.
Definition AirQualitySensor.h:19
ThermostatController.
Definition ThermostatController.h:70
void onTargetTemperature(SetTargetTemperatureCallback cb)
Set callback function for targetTemperature request.
Definition ThermostatController.h:120
void onThermostatMode(ThermostatModeCallback cb)
Set callback function for setThermostatMode request.
Definition ThermostatController.h:108
bool sendTargetTemperatureEvent(float temperature, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
Send targetTemperature event to report target temperature change.
Definition ThermostatController.h:166
void onAdjustTargetTemperature(AdjustTargetTemperatureCallback cb)
Set callback function for adjustTargetTemperature request.
Definition ThermostatController.h:132
bool sendThermostatModeEvent(String thermostatMode, String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
Send thermostatMode event to report a the new mode the device has been set to.
Definition ThermostatController.h:146
std::function< bool(const String &, float &)> SetTargetTemperatureCallback
Callback definition for onTargetTemperature function.
Definition ThermostatController.h:46
std::function< bool(const String &, String &)> ThermostatModeCallback
Callback definition for onThermostatMode function.
Definition ThermostatController.h:30
std::function< bool(const String &, float &)> AdjustTargetTemperatureCallback
Callback definition for onAdjustTargetTemperature function.
Definition ThermostatController.h:62