1 #ifndef _POWERLEVELCONTROLLER_H_
2 #define _POWERLEVELCONTROLLER_H_
4 #include "./SinricProRequest.h"
51 bool handlePowerLevelController(SinricProRequest &request);
66 setPowerLevelCallback = cb;
78 adjustPowerLevelCallback = cb;
93 T& device =
static_cast<T&
>(*this);
95 DynamicJsonDocument eventMessage = device.prepareEvent(
"setPowerLevel", cause.c_str());
96 JsonObject event_value = eventMessage[
"payload"][
"value"];
97 event_value[
"powerLevel"] = powerLevel;
98 return device.sendEvent(eventMessage);
101 template <
typename T>
103 T &device =
static_cast<T &
>(*this);
105 bool success =
false;
107 if (setPowerLevelCallback && request.action ==
"setPowerLevel") {
108 int powerLevel = request.request_value[
"powerLevel"];
109 success = setPowerLevelCallback(device.deviceId, powerLevel);
110 request.response_value[
"powerLevel"] = powerLevel;
113 if (adjustPowerLevelCallback && request.action ==
"adjustPowerLevel") {
114 int powerLevelDelta = request.request_value[
"powerLevelDelta"];
115 success = adjustPowerLevelCallback(device.deviceId, powerLevelDelta);
116 request.response_value[
"powerLevel"] = powerLevelDelta;
PowerLevelController.
Definition: PowerLevelController.h:11
void onPowerLevel(SetPowerLevelCallback cb)
Set callback function for setPowerLevel request.
Definition: PowerLevelController.h:65
void onAdjustPowerLevel(AdjustPowerLevelCallback cb)
Set callback function for adjustPowerLevel request.
Definition: PowerLevelController.h:76
std::function< bool(const String &, int &)> AdjustPowerLevelCallback
Definition for onAdjustPowerLevel callback.
Definition: PowerLevelController.h:44
std::function< bool(const String &, int &)> SetPowerLevelCallback
Definition for setPowerLevel callback.
Definition: PowerLevelController.h:28
bool sendPowerLevelEvent(int powerLevel, String cause="PHYSICAL_INTERACTION")
Send setPowerLevel event to SinricPro Server indicating actual power level.
Definition: PowerLevelController.h:91