SinricPro Library
Loading...
Searching...
No Matches
Doorbell.h
1
#pragma once
2
3
#include "../EventLimiter.h"
4
#include "../SinricProStrings.h"
5
6
#include "../SinricProNamespace.h"
7
namespace
SINRICPRO_NAMESPACE {
8
9
FSTR(DOORBELL, DoorbellPress);
// "DoorbellPress"
10
FSTR(DOORBELL, state);
// "state"
11
FSTR(DOORBELL, pressed);
// "pressed"
12
17
template
<
typename
T>
18
class
Doorbell
{
19
public
:
20
Doorbell
();
21
bool
sendDoorbellEvent
(String
cause
=
FSTR_SINRICPRO_PHYSICAL_INTERACTION
);
22
private
:
23
EventLimiter event_limiter;
24
};
25
26
template
<
typename
T>
27
Doorbell<T>::Doorbell
()
28
: event_limiter(EVENT_LIMIT_SENSOR_STATE) {}
29
38
template
<
typename
T>
39
bool
Doorbell<T>::sendDoorbellEvent
(String
cause
) {
40
if
(event_limiter)
return
false
;
41
T*
device
=
static_cast<
T*
>
(
this
);
42
43
JsonDocument
eventMessage
=
device
->prepareEvent(
FSTR_DOORBELL_DoorbellPress
,
cause
.c_str());
44
JsonObject
event_value
=
eventMessage
[
FSTR_SINRICPRO_payload
][
FSTR_SINRICPRO_value
];
45
event_value
[
FSTR_DOORBELL_state
] =
FSTR_DOORBELL_pressed
;
46
return
device
->sendEvent(
eventMessage
);
47
}
48
49
}
// SINRICPRO_NAMESPACE
50
51
template
<
typename
T>
52
using
Doorbell = SINRICPRO_NAMESPACE::Doorbell<T>;
SINRICPRO_3_5_0::AirQualitySensor
AirQuality.
Definition
AirQualitySensor.h:19
SINRICPRO_3_5_0::Doorbell
Dorbell.
Definition
Doorbell.h:18
SINRICPRO_3_5_0::Doorbell::sendDoorbellEvent
bool sendDoorbellEvent(String cause=FSTR_SINRICPRO_PHYSICAL_INTERACTION)
Send Doorbell event to SinricPro Server indicating someone pressed the doorbell button.
Definition
Doorbell.h:39
esp8266-esp32-sdk
src
Capabilities
Doorbell.h
Generated by
1.9.8