SinricPro Library
Loading...
Searching...
No Matches
PowerSensor.h
1#pragma once
2
3#include "../EventLimiter.h"
4#include "../SinricProStrings.h"
5
6#include "../SinricProNamespace.h"
7namespace SINRICPRO_NAMESPACE {
8
9FSTR(POWERSENSOR, powerUsage); // "powerUsage"
10FSTR(POWERSENSOR, startTime); // "startTime"
11FSTR(POWERSENSOR, voltage); // "voltage"
12FSTR(POWERSENSOR, current); // "current"
13FSTR(POWERSENSOR, power); // "power"
14FSTR(POWERSENSOR, apparentPower); // "apparentPower"
15FSTR(POWERSENSOR, reactivePower); // "reactivePower"
16FSTR(POWERSENSOR, factor); // "factor"
17FSTR(POWERSENSOR, wattHours); // "wattHours"
18
23template <typename T>
25public:
27 bool sendPowerSensorEvent(float voltage, float current, float power = -1.0f, float apparentPower = -1.0f, float reactivePower = -1.0f, float factor = -1.0f, String cause = FSTR_SINRICPRO_PERIODIC_POLL);
28
29private:
30 EventLimiter event_limiter;
31 unsigned long startTime = 0;
32 unsigned long lastPower = 0;
33 float getWattHours(unsigned long currentTimestamp);
34};
35
36template <typename T>
38: event_limiter(EVENT_LIMIT_SENSOR_VALUE) {}
39
53template <typename T>
80
81template <typename T>
83 if (startTime)
84 return (currentTimestamp - startTime) * lastPower / 3600.0f;
85 return 0;
86}
87
88} // SINRICPRO_NAMESPACE
89
90template <typename T>
91using PowerSensor = SINRICPRO_NAMESPACE::PowerSensor<T>;
AirQuality.
Definition AirQualitySensor.h:19
PowerSensor.
Definition PowerSensor.h:24
bool sendPowerSensorEvent(float voltage, float current, float power=-1.0f, float apparentPower=-1.0f, float reactivePower=-1.0f, float factor=-1.0f, String cause=FSTR_SINRICPRO_PERIODIC_POLL)
Send PowerSensor event to SinricPro Server.
Definition PowerSensor.h:54