supla-device
Loading...
Searching...
No Matches
ElectricityMeter Class Reference
Inheritance diagram for ElectricityMeter:
Collaboration diagram for ElectricityMeter:

Public Member Functions

virtual void updateChannelValues ()
 
void setFwdActEnergy (int phase, unsigned _supla_int64_t energy)
 
void setRvrActEnergy (int phase, unsigned _supla_int64_t energy)
 
void setFwdReactEnergy (int phase, unsigned _supla_int64_t energy)
 
void setRvrReactEnergy (int phase, unsigned _supla_int64_t energy)
 
void setFwdBalancedEnergy (uint64_t energy)
 
void setRvrBalancedEnergy (uint64_t energy)
 
void setVoltage (int phase, unsigned _supla_int16_t voltage)
 
void setCurrent (int phase, unsigned _supla_int_t current)
 
void setFreq (unsigned _supla_int16_t freq)
 
void setPowerActive (int phase, int64_t power)
 
void setPowerReactive (int phase, int64_t power)
 
void setPowerApparent (int phase, int64_t power)
 
void setPowerFactor (int phase, _supla_int_t powerFactor)
 
void setPhaseAngle (int phase, _supla_int_t phaseAngle)
 
void setVoltagePhaseAngle12 (unsigned _supla_int16_t voltagePhaseAngle)
 
void setVoltagePhaseAngle13 (unsigned _supla_int16_t voltagePhaseAngle)
 
void setVoltagePhaseSequence (bool clockwise)
 
void setCurrentPhaseSequence (bool clockwise)
 
void clearVoltagePhaseSequenceFlag ()
 Clears voltage phase sequence flag and value, so it won't be presented at all.
 
void clearCurrentPhaseSequenceFlag ()
 Clears current phase sequence flag and value, so it won't be presented at all.
 
unsigned _supla_int64_t getFwdActEnergy (int phase)
 
unsigned _supla_int64_t getRvrActEnergy (int phase)
 
uint64_t getFwdBalancedActEnergy ()
 
uint64_t getRvrBalancedActEnergy ()
 
unsigned _supla_int64_t getFwdReactEnergy (int phase)
 
unsigned _supla_int64_t getRvrReactEnergy (int phase)
 
unsigned _supla_int16_t getVoltage (int phase)
 
unsigned _supla_int_t getCurrent (int phase)
 
unsigned _supla_int16_t getFreq ()
 
int64_t getPowerActive (int phase)
 
int64_t getPowerReactive (int phase)
 
int64_t getPowerApparent (int phase)
 
_supla_int_t getPowerFactor (int phase)
 
_supla_int_t getPhaseAngle (int phase)
 
uint16_t getVoltagePhaseAngle12 () const
 
uint16_t getVoltagePhaseAngle13 () const
 
bool isVoltagePhaseSequenceSet () const
 
bool isVoltagePhaseSequenceClockwise () const
 
bool isCurrentPhaseSequenceSet () const
 
bool isCurrentPhaseSequenceClockwise () const
 
void resetReadParameters ()
 
void resetReadParametersForPhase (int phase)
 
virtual void readValuesFromDevice ()
 
void onRegistered (Supla::Protocol::SuplaSrpc *suplaSrpc) override
 Method called each time when device successfully registers to Supla server.
 
void onLoadConfig (SuplaDeviceClass *sdc) override
 First method called on element in SuplaDevice.begin().
 
uint8_t applyChannelConfig (TSD_ChannelConfig *config, bool local) override
 
void fillChannelConfig (void *channelConfig, int *size) override
 
void onInit () override
 Third method called on element in SuplaDevice.begin()
 
void iterateAlways () override
 Method called on each SuplaDevice iteration.
 
virtual void resetStorage ()
 
int handleCalcfgFromServer (TSD_DeviceCalCfgRequest *request) override
 Handles CALCFG requests from server.
 
void handleAction (int event, int action) override
 
void setRefreshRate (unsigned int sec)
 
ChannelgetChannel () override
 
const ChannelgetChannel () const override
 Returns pointer to main channel.
 
void purgeConfig () override
 Removes all configration data related to the element from Storage::Config.
 
void enableChannelConfig ()
 
void addCtType (uint64_t ctType)
 
void addPhaseLedType (uint64_t ledType)
 
bool isCtTypeSupported (uint64_t ctType) const
 
int8_t getPhaseLedType () const
 
int32_t getLedVoltageLow () const
 
int32_t getLedVoltageHigh () const
 
int32_t getLedPowerLow () const
 
int32_t getLedPowerHigh () const
 
bool isPhaseLedTypeSupported (uint64_t ledType) const
 
- Public Member Functions inherited from Supla::ElementWithChannelActions
void addAction (uint16_t action, ActionHandler &client, uint16_t event, bool alwaysEnabled=false) override
 
void addAction (uint16_t action, ActionHandler *client, uint16_t event, bool alwaysEnabled=false) override
 
virtual void addAction (uint16_t action, ActionHandler &client, Supla::Condition *condition, bool alwaysEnabled=false)
 
virtual void addAction (uint16_t action, ActionHandler *client, Supla::Condition *condition, bool alwaysEnabled=false)
 
bool isEventAlreadyUsed (uint16_t event, bool ignoreAlwaysEnabled) override
 
void onRegistered (Supla::Protocol::SuplaSrpc *suplaSrpc) override
 Method called each time when device successfully registers to Supla server.
 
bool iterateConnected () override
 Method called on each SuplaDevice iteration when device is connected and registered to Supla server or other protocol.
 
void handleChannelConfigFinished () override
 Handles "channel config finished" message from server.
 
uint8_t handleChannelConfig (TSD_ChannelConfig *result, bool local) override
 Handles "set channel config" request from server.
 
void handleSetChannelConfigResult (TSDS_SetChannelConfigResult *result) override
 Handles "set channel config" reply from server.
 
void purgeConfig () override
 Removes all configration data related to the element from Storage::Config.
 
void clearChannelConfigChangedFlag ()
 
void runAction (uint16_t event) const override
 
virtual bool setAndSaveFunction (_supla_int_t channelFunction)
 
virtual bool loadFunctionFromConfig ()
 
virtual bool saveConfigChangeFlag ()
 
virtual bool loadConfigChangeFlag ()
 
bool isAnyUpdatePending () override
 Returns true if any update is pending.
 
virtual void fillChannelOcrConfig (void *channelConfig, int *size)
 
void triggerSetChannelConfig ()
 
- Public Member Functions inherited from Supla::Element
Elementnext ()
 Returns next Element from the list.
 
virtual void onLoadState ()
 Second method called on element in SuplaDevice.begin().
 
virtual void onSaveState ()
 Method called periodically during SuplaDevice iteration.
 
virtual bool iterateConnected (void *ptr)
 deprecated
 
virtual void onTimer ()
 Method called on timer interupt.
 
virtual void onFastTimer ()
 Method called on fast timer interupt.
 
virtual void onSoftReset ()
 Method called when device soft restart is triggered.
 
virtual void onDeviceConfigChange (uint64_t fieldBit)
 Method called when device config is changed.
 
virtual int32_t handleNewValueFromServer (TSD_SuplaChannelNewValue *newValue)
 Handles "new value" request from server.
 
virtual void fillSuplaChannelNewValue (TSD_SuplaChannelNewValue *value)
 Fills TSD_SuplaChannelNewValue based on current state.
 
virtual void handleGetChannelState (TDSC_ChannelState *channelState)
 Handles "get channel state (i)" request from server.
 
virtual uint8_t handleWeeklySchedule (TSD_ChannelConfig *newWeeklySchedule, bool altSchedule=false, bool local=false)
 Handles "set channel config" with "weekly schedule" type request from server.
 
int getChannelNumber () const
 Returns channel number.
 
int getSecondaryChannelNumber () const
 Returns secondary channel number.
 
virtual bool isOwnerOfSubDeviceId (int subDeviceId) const
 Returns true if element is owner of subDeviceId.
 
virtual const ChannelgetSecondaryChannel () const
 Returns pointer to secondary channel.
 
virtual ChannelgetSecondaryChannel ()
 
virtual void generateKey (char *output, const char *key) const
 Generates key used for Config.
 
ElementdisableChannelState ()
 Disables channel state (i) function.
 
bool isChannelStateEnabled () const
 Returns true if channel state (i) function is enabled.
 
void setInitialCaption (const char *caption, bool secondaryChannel=false)
 Sets initial caption.
 
void setDefaultFunction (int32_t defaultFunction)
 Sets default channel's function.
 
- Public Member Functions inherited from Supla::LocalAction
virtual ActionHandlerClientgetHandlerForFirstClient (uint16_t event)
 
virtual ActionHandlerClientgetHandlerForClient (ActionHandler *client, uint16_t event)
 
virtual void disableOtherClients (const ActionHandler &client, uint16_t event)
 
virtual void enableOtherClients (const ActionHandler &client, uint16_t event)
 
virtual void disableOtherClients (const ActionHandler *client, uint16_t event)
 
virtual void enableOtherClients (const ActionHandler *client, uint16_t event)
 
virtual void disableAction (int32_t action, ActionHandler *client, int32_t event)
 
virtual void enableAction (int32_t action, ActionHandler *client, int32_t event)
 
virtual bool disableActionsInConfigMode ()
 
- Public Member Functions inherited from Supla::ActionHandler
virtual void activateAction (int action)
 
virtual bool deleteClient ()
 
virtual ActionHandlergetRealClient ()
 

Static Public Member Functions

static unsigned _supla_int64_t getFwdActEnergy (const TElectricityMeter_ExtendedValue_V3 &emValue, int phase)
 
static unsigned _supla_int64_t getRvrActEnergy (const TElectricityMeter_ExtendedValue_V3 &emValue, int phase)
 
static uint64_t getFwdBalancedActEnergy (const TElectricityMeter_ExtendedValue_V3 &emValue)
 
static uint64_t getRvrBalancedActEnergy (const TElectricityMeter_ExtendedValue_V3 &emValue)
 
static unsigned _supla_int64_t getFwdReactEnergy (const TElectricityMeter_ExtendedValue_V3 &emValue, int phase)
 
static unsigned _supla_int64_t getRvrReactEnergy (const TElectricityMeter_ExtendedValue_V3 &emValue, int phase)
 
static unsigned _supla_int16_t getVoltage (const TElectricityMeter_ExtendedValue_V3 &emValue, int phase)
 
static unsigned _supla_int_t getCurrent (const TElectricityMeter_ExtendedValue_V3 &emValue, int phase)
 
static unsigned _supla_int16_t getFreq (const TElectricityMeter_ExtendedValue_V3 &emValue)
 
static int64_t getPowerActive (const TElectricityMeter_ExtendedValue_V3 &emValue, int phase)
 
static int64_t getPowerReactive (const TElectricityMeter_ExtendedValue_V3 &emValue, int phase)
 
static int64_t getPowerApparent (const TElectricityMeter_ExtendedValue_V3 &emValue, int phase)
 
static _supla_int_t getPowerFactor (const TElectricityMeter_ExtendedValue_V3 &emValue, int phase)
 
static _supla_int_t getPhaseAngle (const TElectricityMeter_ExtendedValue_V3 &emValue, int phase)
 
static uint16_t getVoltagePhaseAngle12 (const TElectricityMeter_ExtendedValue_V3 &emValue)
 
static uint16_t getVoltagePhaseAngle13 (const TElectricityMeter_ExtendedValue_V3 &emValue)
 
static bool isVoltagePhaseSequenceSet (const TElectricityMeter_ExtendedValue_V3 &emValue)
 
static bool isVoltagePhaseSequenceClockwise (const TElectricityMeter_ExtendedValue_V3 &emValue)
 
static bool isCurrentPhaseSequenceSet (const TElectricityMeter_ExtendedValue_V3 &emValue)
 
static bool isCurrentPhaseSequenceClockwise (const TElectricityMeter_ExtendedValue_V3 &emValue)
 
static unsigned _supla_int64_t getTotalFwdActEnergy (const TElectricityMeter_ExtendedValue_V3 &emValue)
 
static unsigned _supla_int64_t getTotalRvrActEnergy (const TElectricityMeter_ExtendedValue_V3 &emValue)
 
static bool isVoltagePhaseAngle12Used (const TElectricityMeter_ExtendedValue_V3 &emValue)
 
static bool isVoltagePhaseAngle13Used (const TElectricityMeter_ExtendedValue_V3 &emValue)
 
static bool isFwdActEnergyUsed (const TElectricityMeter_ExtendedValue_V3 &emValue)
 
static bool isRvrActEnergyUsed (const TElectricityMeter_ExtendedValue_V3 &emValue)
 
static bool isFwdReactEnergyUsed (const TElectricityMeter_ExtendedValue_V3 &emValue)
 
static bool isRvrReactEnergyUsed (const TElectricityMeter_ExtendedValue_V3 &emValue)
 
static bool isFwdBalancedActEnergyUsed (const TElectricityMeter_ExtendedValue_V3 &emValue)
 
static bool isRvrBalancedActEnergyUsed (const TElectricityMeter_ExtendedValue_V3 &emValue)
 
static bool isVoltageUsed (const TElectricityMeter_ExtendedValue_V3 &emValue)
 
static bool isCurrentUsed (const TElectricityMeter_ExtendedValue_V3 &emValue)
 
static bool isFreqUsed (const TElectricityMeter_ExtendedValue_V3 &emValue)
 
static bool isPowerActiveUsed (const TElectricityMeter_ExtendedValue_V3 &emValue)
 
static bool isPowerReactiveUsed (const TElectricityMeter_ExtendedValue_V3 &emValue)
 
static bool isPowerApparentUsed (const TElectricityMeter_ExtendedValue_V3 &emValue)
 
static bool isPowerFactorUsed (const TElectricityMeter_ExtendedValue_V3 &emValue)
 
static bool isPhaseAngleUsed (const TElectricityMeter_ExtendedValue_V3 &emValue)
 
- Static Public Member Functions inherited from Supla::Element
static Elementbegin ()
 Returns first Element (based on creation order)
 
static Elementlast ()
 Returns last Element (based on creation order)
 
static ElementgetElementByChannelNumber (int channelNumber)
 Returns Element by channel number.
 
static ElementgetOwnerOfSubDeviceId (int subDeviceId)
 Returns Element which owns given subDeviceId.
 
static bool IsAnyUpdatePending ()
 Checks if any element has pending update for remote server.
 
static void NotifyElementsAboutConfigChange (uint64_t fieldBit)
 Notifies all elements about device config change.
 
static bool IsInvalidPtrSet ()
 When "invalid pointer" is set, previously obtained Element pointer may be invalid.
 
static void ClearInvalidPtr ()
 Clears "invalid pointer" flag.
 
- Static Public Member Functions inherited from Supla::LocalAction
static void DeleteActionsHandledBy (const ActionHandler *client)
 
static void DeleteActionsTriggeredBy (const LocalAction *action)
 
static void NullifyActionsHandledBy (const ActionHandler *client)
 
static ActionHandlerClientgetClientListPtr ()
 

Protected Attributes

TElectricityMeter_ExtendedValue_V3 emValue = {}
 
ChannelExtended extChannel
 
uint32_t lastChannelUpdateTime = 0
 
uint32_t rawCurrent [MAX_PHASES] = {}
 
int64_t rawActivePower [MAX_PHASES] = {}
 
int64_t rawReactivePower [MAX_PHASES] = {}
 
int64_t rawApparentPower [MAX_PHASES] = {}
 
uint32_t lastReadTime = 0
 
uint16_t refreshRateSec = 5
 
bool valueChanged = false
 
bool currentMeasurementAvailable = false
 
bool powerActiveMeasurementAvailable = false
 
bool powerReactiveMeasurementAvailable = false
 
bool powerApparentMeasurementAvailable = false
 
uint64_t availableCtTypes = 0
 
uint64_t availablePhaseLedTypes = 0
 
bool channelConfigUsed = false
 
int8_t usedCtType = -1
 
int8_t usedPhaseLedType = -1
 
int32_t ledVoltageLow = 21000
 
int32_t ledVoltageHigh = 25000
 
int32_t ledPowerLow = -5000
 
int32_t ledPowerHigh = 5000
 
- Protected Attributes inherited from Supla::ElementWithChannelActions
Supla::ChannelConfigState channelConfigState
 
bool configFinishedReceived = false
 
uint8_t setChannelConfigAttempts = 0
 
- Protected Attributes inherited from Supla::Element
ElementnextPtr = nullptr
 

Additional Inherited Members

- Protected Member Functions inherited from Supla::ElementWithChannelActions
virtual bool hasOcrConfig () const
 
virtual bool isOcrConfigMissing () const
 
virtual void clearOcrConfig ()
 
- Static Protected Attributes inherited from Supla::Element
static ElementfirstPtr = nullptr
 
static bool invalidatePtr = false
 

Member Function Documentation

◆ applyChannelConfig()

uint8_t Supla::Sensor::ElectricityMeter::applyChannelConfig ( TSD_ChannelConfig * config,
bool local )
overridevirtual

Reimplemented from Supla::ElementWithChannelActions.

◆ fillChannelConfig()

void Supla::Sensor::ElectricityMeter::fillChannelConfig ( void * channelConfig,
int * size )
overridevirtual

Reimplemented from Supla::ElementWithChannelActions.

◆ getChannel() [1/2]

const Supla::Channel * Supla::Sensor::ElectricityMeter::getChannel ( ) const
overridevirtual

Returns pointer to main channel.

Returns
pointer to main channel, nullptr if element has no channel

Reimplemented from Supla::Element.

◆ getChannel() [2/2]

Supla::Channel * Supla::Sensor::ElectricityMeter::getChannel ( )
overridevirtual

Reimplemented from Supla::Element.

◆ handleAction()

void Supla::Sensor::ElectricityMeter::handleAction ( int event,
int action )
overridevirtual

Implements Supla::ActionHandler.

◆ handleCalcfgFromServer()

int Supla::Sensor::ElectricityMeter::handleCalcfgFromServer ( TSD_DeviceCalCfgRequest * request)
overridevirtual

Handles CALCFG requests from server.

Parameters
request
Returns
SUPLA_CALCFG_RESULT_* (see proto.h)

Reimplemented from Supla::Element.

◆ iterateAlways()

void Supla::Sensor::ElectricityMeter::iterateAlways ( )
overridevirtual

Method called on each SuplaDevice iteration.

It should provide all actions that have to be executed periodically regardless of network state.

Reimplemented from Supla::Element.

◆ onInit()

void Supla::Sensor::ElectricityMeter::onInit ( )
overridevirtual

Third method called on element in SuplaDevice.begin()

Method called during SuplaDevice initialization. I.e. load initial state, initialize pins etc.

Reimplemented from Supla::Element.

◆ onLoadConfig()

void Supla::Sensor::ElectricityMeter::onLoadConfig ( SuplaDeviceClass * sdc)
overridevirtual

First method called on element in SuplaDevice.begin().

Called only if Config Storage class is configured. Element should read its configration in this method.

Parameters
sdc

Reimplemented from Supla::Element.

◆ onRegistered()

void Supla::Sensor::ElectricityMeter::onRegistered ( Supla::Protocol::SuplaSrpc * suplaSrpc)
overridevirtual

Method called each time when device successfully registers to Supla server.

Parameters
suplaSrpc

Reimplemented from Supla::Element.

◆ purgeConfig()

void Supla::Sensor::ElectricityMeter::purgeConfig ( )
overridevirtual

Removes all configration data related to the element from Storage::Config.

Reimplemented from Supla::Element.


The documentation for this class was generated from the following files: