1 #ifndef _COLORCONTROLLER_H_
2 #define _COLORCONTROLLER_H_
4 #include "SinricProRequest.h"
31 using ColorCallback = std::function<bool(
const String &,
byte &,
byte &,
byte &)>;
34 bool sendColorEvent(
byte r,
byte g,
byte b, String cause =
"PHYSICAL_INTERACTION");
37 bool handleColorController(SinricProRequest &request);
69 T& device =
static_cast<T&
>(*this);
71 DynamicJsonDocument eventMessage = device.prepareEvent(
"setColor", cause.c_str());
72 JsonObject event_color = eventMessage[
"payload"][
"value"].createNestedObject(
"color");
76 return device.sendEvent(eventMessage);
81 T &device =
static_cast<T &
>(*this);
85 if (colorCallback && request.action ==
"setColor") {
86 unsigned char r, g, b;
87 r = request.request_value[
"color"][
"r"];
88 g = request.request_value[
"color"][
"g"];
89 b = request.request_value[
"color"][
"b"];
90 success = colorCallback(device.deviceId, r, g, b);
91 request.response_value.createNestedObject(
"color");
92 request.response_value[
"color"][
"r"] = r;
93 request.response_value[
"color"][
"g"] = g;
94 request.response_value[
"color"][
"b"] = b;
ColorController.
Definition: ColorController.h:11
void onColor(ColorCallback cb)
Set callback function for setColor request.
Definition: ColorController.h:52
bool sendColorEvent(byte r, byte g, byte b, String cause="PHYSICAL_INTERACTION")
Send setColor event to SinricPro Server indicating actual color.
Definition: ColorController.h:68
std::function< bool(const String &, byte &, byte &, byte &)> ColorCallback
Callback definition for onColor function.
Definition: ColorController.h:31