8 #ifndef _SINRICDIMSWITCH_H_
9 #define _SINRICDIMSWITCH_H_
11 #include "SinricProDevice.h"
60 bool handleRequest(
const char* deviceId,
const char* action, JsonObject &request_value, JsonObject &response_value)
override;
66 SinricProDimSwitch::SinricProDimSwitch(
const char* deviceId,
unsigned long eventWaitTime) :
SinricProDevice(deviceId, eventWaitTime),
67 setPowerLevelCallback(nullptr),
68 adjustPowerLevelCallback(nullptr) {}
70 bool SinricProDimSwitch::handleRequest(
const char* deviceId,
const char* action, JsonObject &request_value, JsonObject &response_value) {
71 if (strcmp(deviceId, this->deviceId) != 0)
return false;
73 if (SinricProDevice::handleRequest(deviceId, action, request_value, response_value))
return true;
76 String actionString = String(action);
78 if (setPowerLevelCallback && actionString ==
"setPowerLevel") {
79 int powerLevel = request_value[
"powerLevel"];
80 success = setPowerLevelCallback(String(deviceId), powerLevel);
81 response_value[
"powerLevel"] = powerLevel;
84 if (adjustPowerLevelCallback && actionString ==
"adjustPowerLevel") {
85 int powerLevelDelta = request_value[
"powerLevelDelta"];
86 success = adjustPowerLevelCallback(String(deviceId), powerLevelDelta);
87 response_value[
"powerLevel"] = powerLevelDelta;
99 setPowerLevelCallback = cb;
109 adjustPowerLevelCallback = cb;
122 DynamicJsonDocument eventMessage = prepareEvent(deviceId,
"setPowerLevel", cause.c_str());
123 JsonObject event_value = eventMessage[
"payload"][
"value"];
124 event_value[
"powerLevel"] = powerLevel;
125 return sendEvent(eventMessage);