1 #ifndef _COLORTEMPERATURECONTROLLER_H_
2 #define _COLORTEMPERATURECONTROLLER_H_
4 #include "SinricProRequest.h"
66 bool handleColorTemperatureController(SinricProRequest &request);
68 private : SinricProDeviceInterface *device;
83 colorTemperatureCallback = cb;
95 increaseColorTemperatureCallback = cb;
105 template <
typename T>
107 decreaseColorTemperatureCallback = cb;
119 template <
typename T>
121 T& device =
static_cast<T&
>(*this);
123 DynamicJsonDocument eventMessage = device.prepareEvent(
"setColorTemperature", cause.c_str());
124 JsonObject event_value = eventMessage[
"payload"][
"value"];
125 event_value[
"colorTemperature"] = colorTemperature;
126 return device.sendEvent(eventMessage);
129 template <
typename T>
131 T &device =
static_cast<T &
>(*this);
133 bool success =
false;
135 if (colorTemperatureCallback && request.action ==
"setColorTemperature") {
136 int colorTemperature = request.request_value[
"colorTemperature"];
137 success = colorTemperatureCallback(device.deviceId, colorTemperature);
138 request.response_value[
"colorTemperature"] = colorTemperature;
141 if (increaseColorTemperatureCallback && request.action ==
"increaseColorTemperature") {
142 int colorTemperature = 1;
143 success = increaseColorTemperatureCallback(device.deviceId, colorTemperature);
144 request.response_value[
"colorTemperature"] = colorTemperature;
147 if (decreaseColorTemperatureCallback && request.action ==
"decreaseColorTemperature") {
148 int colorTemperature = -1;
149 success = decreaseColorTemperatureCallback(device.deviceId, colorTemperature);
150 request.response_value[
"colorTemperature"] = colorTemperature;
ColorTemperatureController.
Definition: ColorTemperatureController.h:11
void onDecreaseColorTemperature(DecreaseColorTemperatureCallback cb)
Set callback function for decreaseColorTemperature request.
Definition: ColorTemperatureController.h:106
void onIncreaseColorTemperature(IncreaseColorTemperatureCallback cb)
Set callback function for increaseColorTemperature request.
Definition: ColorTemperatureController.h:94
void onColorTemperature(ColorTemperatureCallback cb)
Set callback function for setColorTemperature request.
Definition: ColorTemperatureController.h:82
bool sendColorTemperatureEvent(int colorTemperature, String cause="PHYSICAL_INTERACTION")
Send setColorTemperature event to SinricPro Server indicating actual color temperature.
Definition: ColorTemperatureController.h:120
std::function< bool(const String &, int &)> ColorTemperatureCallback
Callback definition for onColorTemperature function.
Definition: ColorTemperatureController.h:27
std::function< bool(const String &, int &)> DecreaseColorTemperatureCallback
Callback definition for onDecreaseColorTemperature function.
Definition: ColorTemperatureController.h:57
std::function< bool(const String &, int &)> IncreaseColorTemperatureCallback
Callback definition for onIncreaseColorTemperature function.
Definition: ColorTemperatureController.h:42