1 #ifndef _DOORCONTROLLER_H_
2 #define _DOORCONTROLLER_H_
4 #include "SinricProRequest.h"
34 bool handleDoorController(SinricProRequest &request);
61 T& device =
static_cast<T&
>(*this);
63 DynamicJsonDocument eventMessage = device.prepareEvent(
"setMode", cause.c_str());
64 JsonObject event_value = eventMessage[
"payload"][
"value"];
65 state ? event_value[
"mode"] =
"Close" : event_value[
"mode"] =
"Open";
66 return device.sendEvent(eventMessage);
71 T &device =
static_cast<T &
>(*this);
74 if (request.action ==
"setMode" && doorCallback) {
75 String mode = request.request_value[
"mode"] |
"";
76 bool state = mode ==
"Close";
77 success = doorCallback(device.deviceId, state);
78 request.response_value[
"mode"] = state ?
"Close" :
"Open";
DoorController.
Definition: DoorController.h:11
bool sendDoorStateEvent(bool state, String cause="PHYSICAL_INTERACTION")
Send DoorState event to update actual door state on SinricPro Server.
Definition: DoorController.h:60
void onDoorState(DoorCallback cb)
Set callback function for onDoorState request.
Definition: DoorController.h:48
std::function< bool(const String &, bool &)> DoorCallback
Callback definition for onDoorState function.
Definition: DoorController.h:28