supla-device
Loading...
Searching...
No Matches
ValveBase Class Reference

ValveBase class is used to handle SUPLA_CHANNEL_TYPE_VALVE_OPENCLOSE and SUPLA_CHANNEL_TYPE_VALVE_PERCENTAGE channels. More...

#include <valve_base.h>

Inheritance diagram for ValveBase:
Collaboration diagram for ValveBase:

Public Member Functions

 ValveBase (bool openClose=true)
 Constructor.
 
void onInit () override
 Third method called on element in SuplaDevice.begin()
 
void iterateAlways () override
 Method called on each SuplaDevice iteration.
 
void onLoadConfig (SuplaDeviceClass *) override
 First method called on element in SuplaDevice.begin().
 
void onLoadState () override
 Second method called on element in SuplaDevice.begin().
 
void onSaveState () override
 Method called periodically during SuplaDevice iteration.
 
uint8_t applyChannelConfig (TSD_ChannelConfig *result, bool local=false) override
 
void fillChannelConfig (void *channelConfig, int *size) override
 
int32_t handleNewValueFromServer (TSD_SuplaChannelNewValue *newValue) override
 Handles "new value" request from server.
 
void purgeConfig () override
 Removes all configration data related to the element from Storage::Config.
 
void handleAction (int event, int action) override
 Implementation of ActionHandler::handleAction.
 
void openValve ()
 Open valve.
 
void closeValve ()
 Close valve.
 
void setValve (uint8_t openLevel)
 Set valve.
 
bool isFloodDetected () const
 Check all sensors and return true if flood is detected.
 
void printConfig () const
 Print current configuration in logs (for debug purpose)
 
void saveConfig (bool local=true)
 Save current configuration to Config.
 
virtual void setValueOnDevice (uint8_t openLevel)
 Set value on device or any other interface.
 
virtual uint8_t getValueOpenStateFromDevice ()
 Get value from device or any other interface.
 
bool addSensor (uint8_t channelNumber)
 Add sensor to the channel's configuration.
 
bool removeSensor (uint8_t channelNumber)
 Remove sensor from the channel's configuration.
 
void setIgnoreManuallyOpenedTimeMs (uint32_t timeMs)
 Set ignore manually opened time in milliseconds.
 
- Public Member Functions inherited from Supla::ChannelElement
 ChannelElement (int channelNumber=-1)
 
ChannelgetChannel () override
 
const ChannelgetChannel () const override
 Returns pointer to main channel.
 
- 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 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 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 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 int handleCalcfgFromServer (TSD_DeviceCalCfgRequest *request)
 Handles CALCFG requests 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 ()
 

Protected Attributes

ValveConfig config = {}
 
uint32_t lastSensorsCheckTimestamp = 0
 
uint32_t lastUpdateTimestamp = 0
 
uint32_t lastCmdTimestamp = 0
 
uint32_t ignoreManuallyOpenedTimeMs = 30000
 
uint8_t lastOpenLevelState = 0
 
- Protected Attributes inherited from Supla::ChannelElement
Channel channel
 
- 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

- 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 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
 

Detailed Description

ValveBase class is used to handle SUPLA_CHANNEL_TYPE_VALVE_OPENCLOSE and SUPLA_CHANNEL_TYPE_VALVE_PERCENTAGE channels.

Constructor & Destructor Documentation

◆ ValveBase()

ValveBase::ValveBase ( bool openClose = true)
explicit

Constructor.

Parameters
openClosetrue = openClose valve (two state), false = operates on 0-100 range

Member Function Documentation

◆ addSensor()

bool ValveBase::addSensor ( uint8_t channelNumber)

Add sensor to the channel's configuration.

It will trigger setChannelConfig message to server.

Parameters
channelNumberchannel number of a binary sensor
Returns
true if sensor was added, false otherwise (list is full, channel is not a binary sensor)

◆ applyChannelConfig()

uint8_t ValveBase::applyChannelConfig ( TSD_ChannelConfig * result,
bool local = false )
overridevirtual

Reimplemented from Supla::ElementWithChannelActions.

◆ fillChannelConfig()

void ValveBase::fillChannelConfig ( void * channelConfig,
int * size )
overridevirtual

Reimplemented from Supla::ElementWithChannelActions.

◆ getValueOpenStateFromDevice()

uint8_t ValveBase::getValueOpenStateFromDevice ( )
virtual

Get value from device or any other interface.

Implementation of this method should get the valve level. OpenClose valve: 0 = closed, >= 1 = open

Returns
0-100 (0 = closed, 100 = fully open)

◆ handleAction()

void ValveBase::handleAction ( int event,
int action )
overridevirtual

Implementation of ActionHandler::handleAction.

Valve supports following actions:

  • OPEN
  • CLOSE
  • TOGGLE
Parameters
eventID of event which triggered action (ignored) (see events.h)
actionID of action (see actions.h)

Implements Supla::ActionHandler.

◆ handleNewValueFromServer()

int32_t ValveBase::handleNewValueFromServer ( TSD_SuplaChannelNewValue * newValue)
overridevirtual

Handles "new value" request from server.

Parameters
newValuepointer to TSD_SuplaChannelNewValue
Returns
-1 - don't send reply to server 0 - success==false 1 - success==true

Reimplemented from Supla::Element.

◆ isFloodDetected()

bool ValveBase::isFloodDetected ( ) const

Check all sensors and return true if flood is detected.

Returns
true if flood is detected

◆ iterateAlways()

void ValveBase::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 ValveBase::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 ValveBase::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.

◆ onLoadState()

void ValveBase::onLoadState ( )
overridevirtual

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

Method called during state Storage initialization (i.e. read from EEPROM, FRAM). Called only if Storage class is configured.

Reimplemented from Supla::Element.

◆ onSaveState()

void ValveBase::onSaveState ( )
overridevirtual

Method called periodically during SuplaDevice iteration.

It should provide state saving for this elemnet to Storage

Reimplemented from Supla::Element.

◆ purgeConfig()

void ValveBase::purgeConfig ( )
overridevirtual

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

Reimplemented from Supla::ElementWithChannelActions.

◆ removeSensor()

bool ValveBase::removeSensor ( uint8_t channelNumber)

Remove sensor from the channel's configuration.

It will trigger setChannelConfig message to server.

Parameters
channelNumberchannel number of a binary sensor
Returns
true if sensor was removed, false otherwise (missing on a list)

◆ saveConfig()

void ValveBase::saveConfig ( bool local = true)

Save current configuration to Config.

Parameters
localtrue = will call setChannelConfig to server

◆ setIgnoreManuallyOpenedTimeMs()

void ValveBase::setIgnoreManuallyOpenedTimeMs ( uint32_t timeMs)

Set ignore manually opened time in milliseconds.

Default value is 30000 (30 seconds). Defines time for how long "manually opened" error check will be ignored since last command was executed (from server, MQTT, etc., local buttons). Time is calculated since last call to openValve(), closeValve(), or setValve().

Parameters
timeMstime in milliseconds

◆ setValueOnDevice()

void ValveBase::setValueOnDevice ( uint8_t openLevel)
virtual

Set value on device or any other interface.

Implementation of this method should set the valve level. OpenClose valve: 0 = closed, >= 1 = open

Parameters
openLevel0-100 (0 = closed, 100 = fully open)

◆ setValve()

void ValveBase::setValve ( uint8_t openLevel)

Set valve.

OpenClose valve: 0 = closed, >= 1 = open

Parameters
openLevel0-100 (0 = closed, 100 = fully open)

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