1 #ifndef _POWERSTATECONTROLLER_H_
2 #define _POWERSTATECONTROLLER_H_
4 #include "SinricProRequest.h"
33 bool handlePowerStateController(SinricProRequest &request);
48 powerStateCallback = cb;
62 T& device =
static_cast<T&
>(*this);
64 DynamicJsonDocument eventMessage = device.prepareEvent(
"setPowerState", cause.c_str());
65 JsonObject event_value = eventMessage[
"payload"][
"value"];
66 event_value[
"state"] = state ?
"On" :
"Off";
67 return device.sendEvent(eventMessage);
72 T &device =
static_cast<T &
>(*this);
76 if (request.action ==
"setPowerState" && powerStateCallback) {
77 bool powerState = request.request_value[
"state"] ==
"On" ? true :
false;
79 success = powerStateCallback(device.deviceId, powerState);
80 request.response_value[
"state"] = powerState ?
"On" :
"Off";
PowerStateController.
Definition: PowerStateController.h:11
void onPowerState(PowerStateCallback cb)
Set callback function for powerState request.
Definition: PowerStateController.h:47
bool sendPowerStateEvent(bool state, String cause="PHYSICAL_INTERACTION")
Send setPowerState event to SinricPro Server indicating actual power state.
Definition: PowerStateController.h:61
std::function< bool(const String &, bool &)> PowerStateCallback
Callback definition for onPowerState function.
Definition: PowerStateController.h:27