SinricPro Library
SinricProPowerMeter.h
1 #ifndef _SINRICPOWERMETER_H_
2 #define _SINRICPOWERMETER_H_
3 
46 #include "SinricProDevice.h"
47 
53  public:
54  SinricProPowerSensor(const char* deviceId, unsigned long eventWaitTime=100);
55  // event
56  bool sendPowerSensorEvent(float voltage, float current, float power=-1f, float apparentPower=-1f, float reactivePower=-1f, float factor=-1f, String cause = "PERIODIC_POLL");
57  private:
58 };
59 
60 SinricProPowerSensor::SinricProPowerSensor(const char* deviceId, unsigned long eventWaitTime) : SinricProDevice(deviceId, eventWaitTime) {}
61 
75 bool SinricProPowerSensor::sendPowerSensorEvent(float voltage, float current, float power, float apparentPower, float reactivePower, float factor, String cause) {
76  DynamicJsonDocument eventMessage = prepareEvent(deviceId, "devicePowerUsage", cause.c_str());
77  JsonObject event_value = eventMessage["payload"]["value"];
78  if (power == -1) power = voltage * current;
79  if (apparentPower != -1) factor = power / apparentPower;
80  event_value["voltage"] = voltage;
81  event_value["current"] = current;
82  event_value["power"] = power;
83  event_value["apparentPower"] = apparentPower;
84  event_value["reactivePower"] = reactivePower;
85  event_value["factor"] = factor;
86  return sendEvent(eventMessage);
87 }
88 
89 #endif
SinricProPowerSensor
Device to report power usage.
Definition: SinricProPowerMeter.h:52
SinricProPowerSensor::sendPowerSensorEvent
bool sendPowerSensorEvent(float voltage, float current, float power=-1f, float apparentPower=-1f, float reactivePower=-1f, float factor=-1f, String cause="PERIODIC_POLL")
Send PowerSensor event to SinricPro Server.
Definition: SinricProPowerMeter.h:75
SinricProDevice
Base class for all device types.
Definition: SinricProDevice.h:23