8 #ifndef _SINRICFANUS_H_
9 #define _SINRICFANUS_H_
11 #include "SinricProDevice.h"
20 String getProductType() {
return SinricProDevice::getProductType() + String(
"FAN"); }
62 bool handleRequest(
const DeviceId &deviceId,
const char* action, JsonObject &request_value, JsonObject &response_value)
override;
68 SinricProFanUS::SinricProFanUS(
const DeviceId &deviceId) :
SinricProDevice(deviceId),
69 setRangeValueCallback(nullptr) {}
71 bool SinricProFanUS::handleRequest(
const DeviceId &deviceId,
const char* action, JsonObject &request_value, JsonObject &response_value) {
72 if (deviceId != this->deviceId)
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(deviceId, rangeValue);
81 response_value[
"rangeValue"] = limitValue(rangeValue, 1, 3);
85 if (actionString ==
"adjustRangeValue" && adjustRangeValueCallback) {
86 int rangeValueDelta = request_value[
"rangeValueDelta"] | 0;
87 success = adjustRangeValueCallback(deviceId, rangeValueDelta);
88 response_value[
"rangeValue"] = limitValue(rangeValueDelta, 1, 3);
102 setRangeValueCallback = cb;
112 adjustRangeValueCallback = cb;
125 DynamicJsonDocument eventMessage = prepareEvent(deviceId,
"setRangeValue", cause.c_str());
126 JsonObject event_value = eventMessage[
"payload"][
"value"];
127 event_value[
"rangeValue"] = rangeValue;
128 return sendEvent(eventMessage);