SinricPro Library
Loading...
Searching...
No Matches
AirQualitySensor.h
1#pragma once
2
3#include "../EventLimiter.h"
4#include "../SinricProStrings.h"
5
6#include "../SinricProNamespace.h"
7namespace SINRICPRO_NAMESPACE {
8
9FSTR(AIRQUALITY, airQuality); // "airQuality"
10FSTR(AIRQUALITY, pm1); // "pm1"
11FSTR(AIRQUALITY, pm2_5); // "pm2_5"
12FSTR(AIRQUALITY, pm10); // "pm10"
13
18template <typename T>
20 public:
22 bool sendAirQualityEvent(int pm1 = 0, int pm2_5 = 0, int pm10 = 0, String cause = FSTR_SINRICPRO_PERIODIC_POLL);
23 private:
24 EventLimiter event_limiter;
25};
26
27template <typename T>
29: event_limiter (EVENT_LIMIT_SENSOR_VALUE) {}
30
42template <typename T>
43bool AirQualitySensor<T>::sendAirQualityEvent(int pm1, int pm2_5, int pm10, String cause) {
44 if (event_limiter) return false;
45 T* device = static_cast<T*>(this);
46
47 JsonDocument eventMessage = device->prepareEvent(FSTR_AIRQUALITY_airQuality, cause.c_str());
48 JsonObject event_value = eventMessage[FSTR_SINRICPRO_payload][FSTR_SINRICPRO_value];
49
50 event_value[FSTR_AIRQUALITY_pm1] = pm1;
51 event_value[FSTR_AIRQUALITY_pm2_5] = pm2_5;
52 event_value[FSTR_AIRQUALITY_pm10] = pm10;
53
54 return device->sendEvent(eventMessage);
55}
56
57} // SINRICPRO_NAMESPACE
58
59template <typename T>
60using AirQualitySensor = SINRICPRO_NAMESPACE::AirQualitySensor<T>;
AirQuality.
Definition AirQualitySensor.h:19
bool sendAirQualityEvent(int pm1=0, int pm2_5=0, int pm10=0, String cause=FSTR_SINRICPRO_PERIODIC_POLL)
Sending air quality to SinricPro server.
Definition AirQualitySensor.h:43