8 #ifndef _SINRICFANUS_H_
9 #define _SINRICFANUS_H_
11 #include "SinricProDevice.h"
19 SinricProFanUS(
const char* deviceId,
unsigned long eventWaitTime=100);
62 bool handleRequest(
const char* deviceId,
const char* action, JsonObject &request_value, JsonObject &response_value)
override;
68 SinricProFanUS::SinricProFanUS(
const char* deviceId,
unsigned long eventWaitTime) :
SinricProDevice(deviceId, eventWaitTime),
69 setRangeValueCallback(nullptr) {}
71 bool SinricProFanUS::handleRequest(
const char* deviceId,
const char* action, JsonObject &request_value, JsonObject &response_value) {
72 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 (actionString ==
"setRangeValue" && setRangeValueCallback) {
79 int rangeValue = request_value[
"rangeValue"] | 0;
80 success = setRangeValueCallback(String(deviceId), rangeValue);
81 if (rangeValue < 1) rangeValue = 1;
82 if (rangeValue > 3) rangeValue = 3;
83 response_value[
"rangeValue"] = rangeValue;
87 if (actionString ==
"adjustRangeValue" && adjustRangeValueCallback) {
88 int rangeValueDelta = request_value[
"rangeValueDelta"] | 0;
89 success = adjustRangeValueCallback(String(deviceId), rangeValueDelta);
90 if (rangeValueDelta < 1) rangeValueDelta = 1;
91 if (rangeValueDelta > 3) rangeValueDelta = 3;
92 response_value[
"rangeValue"] = rangeValueDelta;
106 setRangeValueCallback = cb;
116 adjustRangeValueCallback = cb;
129 DynamicJsonDocument eventMessage = prepareEvent(deviceId,
"setRangeValue", cause.c_str());
130 JsonObject event_value = eventMessage[
"payload"][
"value"];
131 event_value[
"rangeValue"] = rangeValue;
132 return sendEvent(eventMessage);