hueplusplus 1.2.0
Loading...
Searching...
No Matches
CLIPSensors.h
Go to the documentation of this file.
1
22#ifndef INCLUDE_HUEPLUSPLUS_CLIP_SENSORS_H
23#define INCLUDE_HUEPLUSPLUS_CLIP_SENSORS_H
24
25#include "Sensor.h"
26
27namespace hueplusplus
28{
29namespace sensors
30{
32class BaseCLIP : public BaseDevice
33{
34public:
38 bool isOn() const;
44 void setOn(bool on);
45
47 bool hasBatteryState() const;
51 int getBatteryState() const;
57 void setBatteryState(int percent);
58
61 bool isReachable() const;
62
64 bool hasURL() const;
66 std::string getURL() const;
72 void setURL(const std::string& url);
73
78
79protected:
81 explicit BaseCLIP(Sensor sensor) : BaseDevice(std::move(sensor)) { }
82};
83
85class CLIPSwitch : public BaseCLIP
86{
87public:
89 explicit CLIPSwitch(Sensor sensor) : BaseCLIP(std::move(sensor)) { }
90
92 int getButtonEvent() const;
98 void setButtonEvent(int code);
99
101 static constexpr const char* typeStr = "CLIPSwitch";
102};
103
106{
107public:
109 explicit CLIPOpenClose(Sensor sensor) : BaseCLIP(std::move(sensor)) { }
110
112 bool isOpen() const;
120 void setOpen(bool open);
121
123 static constexpr const char* typeStr = "CLIPOpenClose";
124};
125
126detail::ConditionHelper<bool> makeCondition(const CLIPOpenClose& sensor);
127
129class CLIPPresence : public BaseCLIP
130{
131public:
133 explicit CLIPPresence(Sensor sensor) : BaseCLIP(std::move(sensor)) { }
134
136 bool getPresence() const;
142 void setPresence(bool presence);
143
145 static constexpr const char* typeStr = "CLIPPresence";
146};
147
150{
151public:
153 explicit CLIPTemperature(Sensor sensor) : BaseCLIP(std::move(sensor)) { }
154
157 int getTemperature() const;
164 void setTemperature(int temperature);
165
167 static constexpr const char* typeStr = "CLIPTemperature";
168};
169
171class CLIPHumidity : public BaseCLIP
172{
173public:
175 explicit CLIPHumidity(Sensor sensor) : BaseCLIP(std::move(sensor)) { }
176
179 int getHumidity() const;
186 void setHumidity(int humidity);
187
189 static constexpr const char* typeStr = "CLIPHumidity";
190};
191
192detail::ConditionHelper<int> makeCondition(const CLIPHumidity& sensor);
193
196{
197public:
199 explicit CLIPLightLevel(Sensor sensor) : BaseCLIP(std::move(sensor)) { }
200
202 int getDarkThreshold() const;
209 void setDarkThreshold(int threshold);
210
212 int getThresholdOffset() const;
219 void setThresholdOffset(int offset);
220
223 int getLightLevel() const;
230 void setLightLevel(int level);
232 bool isDark() const;
236 bool isDaylight() const;
237
239 static constexpr const char* typeStr = "CLIPLightLevel";
240};
241
246{
247public:
249 explicit CLIPGenericFlag(Sensor sensor) : BaseCLIP(std::move(sensor)) { }
250
252 bool getFlag() const;
258 void setFlag(bool flag);
259
261 static constexpr const char* typeStr = "CLIPGenericFlag";
262};
263
264detail::ConditionHelper<bool> makeCondition(const CLIPGenericFlag& sensor);
265
270{
271public:
273 explicit CLIPGenericStatus(Sensor sensor) : BaseCLIP(std::move(sensor)) { }
274
276 int getStatus() const;
282 void setStatus(int status);
283
285 static constexpr const char* typeStr = "CLIPGenericStatus";
286};
287
288detail::ConditionHelper<int> makeCondition(const CLIPGenericStatus& sensor);
289
290} // namespace sensors
291} // namespace hueplusplus
292
293#endif
Base class for physical devices connected to the bridge (sensor or light).
Definition BaseDevice.h:36
Class for generic or unknown sensor types.
Definition Sensor.h:60
Common methods for CLIP sensors.
Definition CLIPSensors.h:33
bool hasBatteryState() const
Check whether the sensor has a battery state.
Definition CLIPSensors.cpp:39
void setOn(bool on)
Enable or disable sensor.
Definition CLIPSensors.cpp:35
bool hasURL() const
Check whether the sensor has a URL.
Definition CLIPSensors.cpp:56
void setBatteryState(int percent)
Set battery state.
Definition CLIPSensors.cpp:47
BaseCLIP(Sensor sensor)
Protected constructor to be used by subclasses.
Definition CLIPSensors.h:81
void setURL(const std::string &url)
Set sensor URL.
Definition CLIPSensors.cpp:64
std::string getURL() const
Get sensor URL.
Definition CLIPSensors.cpp:60
bool isOn() const
Check if sensor is on.
Definition CLIPSensors.cpp:30
int getBatteryState() const
Get battery state.
Definition CLIPSensors.cpp:43
time::AbsoluteTime getLastUpdated() const
Get time of last status update.
Definition CLIPSensors.cpp:69
bool isReachable() const
Check whether the sensor is reachable.
Definition CLIPSensors.cpp:51
CLIP sensor for a generic 3rd party sensor.
Definition CLIPSensors.h:246
CLIPGenericFlag(Sensor sensor)
Construct from generic sensor.
Definition CLIPSensors.h:249
void setFlag(bool flag)
Set flag.
Definition CLIPSensors.cpp:193
bool getFlag() const
Get boolean flag.
Definition CLIPSensors.cpp:189
static constexpr const char * typeStr
CLIPGenericFlag sensor type name.
Definition CLIPSensors.h:261
CLIP sensor for a generic 3rd party status.
Definition CLIPSensors.h:270
CLIPGenericStatus(Sensor sensor)
Construct from generic sensor.
Definition CLIPSensors.h:273
static constexpr const char * typeStr
CLIPGenericStatus sensor type name.
Definition CLIPSensors.h:285
void setStatus(int status)
Set sensor status.
Definition CLIPSensors.cpp:210
int getStatus() const
Get sensor status.
Definition CLIPSensors.cpp:205
CLIP sensor for humidity.
Definition CLIPSensors.h:172
CLIPHumidity(Sensor sensor)
Construct from generic sensor.
Definition CLIPSensors.h:175
void setHumidity(int humidity)
Set humidity.
Definition CLIPSensors.cpp:136
int getHumidity() const
Get measured humidity.
Definition CLIPSensors.cpp:132
static constexpr const char * typeStr
CLIPHumidity sensor type name.
Definition CLIPSensors.h:189
CLIP sensor for light level.
Definition CLIPSensors.h:196
int getThresholdOffset() const
Get offset over dark threshold to detect daylight.
Definition CLIPSensors.cpp:157
bool isDark() const
Check whether light level is below dark threshold.
Definition CLIPSensors.cpp:177
void setThresholdOffset(int offset)
Set offset to detect daylight.
Definition CLIPSensors.cpp:162
int getLightLevel() const
Get measured light level.
Definition CLIPSensors.cpp:167
void setDarkThreshold(int threshold)
Set threshold to detect darkness.
Definition CLIPSensors.cpp:153
int getDarkThreshold() const
Get threshold to detect darkness.
Definition CLIPSensors.cpp:148
static constexpr const char * typeStr
CLIPLightLevel sensor type name.
Definition CLIPSensors.h:239
bool isDaylight() const
Check whether light level is above light threshold.
Definition CLIPSensors.cpp:182
void setLightLevel(int level)
Set measured light level.
Definition CLIPSensors.cpp:172
CLIPLightLevel(Sensor sensor)
Construct from generic sensor.
Definition CLIPSensors.h:199
CLIP sensor detecting whether a contact is open or closed.
Definition CLIPSensors.h:106
static constexpr const char * typeStr
CLIPOpenClose sensor type name.
Definition CLIPSensors.h:123
void setOpen(bool open)
Set switch state.
Definition CLIPSensors.cpp:97
bool isOpen() const
Check whether the switch is open.
Definition CLIPSensors.cpp:93
CLIPOpenClose(Sensor sensor)
Construct from generic sensor.
Definition CLIPSensors.h:109
CLIP sensor to detect presence.
Definition CLIPSensors.h:130
CLIPPresence(Sensor sensor)
Construct from generic sensor.
Definition CLIPSensors.h:133
bool getPresence() const
Check whether presence was detected.
Definition CLIPSensors.cpp:110
static constexpr const char * typeStr
CLIPPresence sensor type name.
Definition CLIPSensors.h:145
void setPresence(bool presence)
Set presence state.
Definition CLIPSensors.cpp:114
CLIP sensor for button presses.
Definition CLIPSensors.h:86
static constexpr const char * typeStr
CLIPSwitch sensor type name.
Definition CLIPSensors.h:101
CLIPSwitch(Sensor sensor)
Construct from generic sensor.
Definition CLIPSensors.h:89
void setButtonEvent(int code)
Set the button event code.
Definition CLIPSensors.cpp:86
int getButtonEvent() const
Get the code of the last switch event.
Definition CLIPSensors.cpp:82
CLIP sensor for temperature.
Definition CLIPSensors.h:150
void setTemperature(int temperature)
Set temperature.
Definition CLIPSensors.cpp:125
int getTemperature() const
Get measured temperature.
Definition CLIPSensors.cpp:121
static constexpr const char * typeStr
CLIPTemperature sensor type name.
Definition CLIPSensors.h:167
CLIPTemperature(Sensor sensor)
Construct from generic sensor.
Definition CLIPSensors.h:153
One-time, absolute time point.
Definition TimePattern.h:73
detail::ConditionHelper< bool > makeCondition(const CLIPOpenClose &sensor)
Definition CLIPSensors.cpp:103
Namespace for the hueplusplus library.
Definition Action.h:28