1 #ifndef _LOCKCONTROLLER_H_
2 #define _LOCKCONTROLLER_H_
4 #include "SinricProRequest.h"
39 bool handleLockController(SinricProRequest &request);
54 lockStateCallback = cb;
68 T& device =
static_cast<T&
>(*this);
70 DynamicJsonDocument eventMessage = device.prepareEvent(
"setLockState", cause.c_str());
71 JsonObject event_value = eventMessage[
"payload"][
"value"];
72 state ? event_value[
"state"] =
"LOCKED" : event_value[
"state"] =
"UNLOCKED";
73 return device.sendEvent(eventMessage);
78 T &device =
static_cast<T &
>(*this);
82 if (request.action ==
"setLockState" && lockStateCallback) {
83 bool lockState = request.request_value[
"state"] ==
"lock" ? true :
false;
84 success = lockStateCallback(device.deviceId, lockState);
85 request.response_value[
"state"] = success ? lockState ?
"LOCKED" :
"UNLOCKED" :
"JAMMED";
LockController.
Definition: LockController.h:11
bool sendLockStateEvent(bool state, String cause="PHYSICAL_INTERACTION")
Send lockState event to SinricPro Server indicating actual lock state.
Definition: LockController.h:67
std::function< bool(const String &, bool &)> LockStateCallback
Callback definition for onLockState function.
Definition: LockController.h:33
void onLockState(LockStateCallback cb)
Set callback function for setLockState request.
Definition: LockController.h:53