1 #ifndef _BRIGHTNESSCONTROLLER_H_
2 #define _BRIGHTNESSCONTROLLER_H_
4 #include "SinricProRequest.h"
49 bool handleBrightnessController(SinricProRequest &request);
66 brightnessCallback = cb;
78 adjustBrightnessCallback = cb;
92 T& device =
static_cast<T&
>(*this);
94 DynamicJsonDocument eventMessage = device.prepareEvent(
"setBrightness", cause.c_str());
95 JsonObject event_value = eventMessage[
"payload"][
"value"];
96 event_value[
"brightness"] = brightness;
97 return device.sendEvent(eventMessage);
100 template <
typename T>
102 T &device =
static_cast<T &
>(*this);
103 bool success =
false;
105 if (brightnessCallback && request.action ==
"setBrightness") {
106 int brightness = request.request_value[
"brightness"];
107 success = brightnessCallback(device.deviceId, brightness);
108 request.response_value[
"brightness"] = brightness;
111 if (adjustBrightnessCallback && request.action ==
"adjustBrightness") {
112 int brightnessDelta = request.request_value[
"brightnessDelta"];
113 success = adjustBrightnessCallback(device.deviceId, brightnessDelta);
114 request.response_value[
"brightness"] = brightnessDelta;
BrightnessController.
Definition: BrightnessController.h:11
void onAdjustBrightness(AdjustBrightnessCallback cb)
Set callback function for adjustBrightness request.
Definition: BrightnessController.h:77
std::function< bool(const String &, int &)> AdjustBrightnessCallback
Callback definition for onAdjustBrightness function.
Definition: BrightnessController.h:42
bool sendBrightnessEvent(int brightness, String cause="PHYSICAL_INTERACTION")
Send setBrightness event to SinricPro Server indicating actual brightness.
Definition: BrightnessController.h:91
void onBrightness(BrightnessCallback cb)
Set callback function for setBrightness request.
Definition: BrightnessController.h:65
std::function< bool(const String &, int &)> BrightnessCallback
Callback definition for onBrightness function.
Definition: BrightnessController.h:27