|
supla-device
|
ValveBase class is used to handle SUPLA_CHANNEL_TYPE_VALVE_OPENCLOSE and SUPLA_CHANNEL_TYPE_VALVE_PERCENTAGE channels. More...
#include <valve_base.h>


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. | |
| Supla::ApplyConfigResult | applyChannelConfig (TSD_ChannelConfig *result, bool local=false) override |
| void | fillChannelConfig (void *channelConfig, int *size, uint8_t configType) 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 () |
| 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. | |
| void | setDefaultCloseValveOnFloodType (uint8_t type) |
| Set default close valve on flood type. | |
Public Member Functions inherited from Supla::ChannelElement | |
| ChannelElement (int channelNumber=-1) | |
| Channel * | getChannel () override |
| const Channel * | getChannel () 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 | runAction (uint16_t event) const override |
| bool | isAnyUpdatePending () const override |
| Returns true if any update is pending. | |
| void | triggerSetChannelConfig (int configType=SUPLA_CONFIG_TYPE_DEFAULT) |
Public Member Functions inherited from Supla::Element | |
| Element * | next () |
| 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 Channel * | getSecondaryChannel () const |
| Returns pointer to secondary channel. | |
| virtual Channel * | getSecondaryChannel () |
| virtual void | generateKey (char *output, const char *key) const |
| Generates key used for Config. | |
| Element & | disableChannelState () |
| 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. | |
| bool | setDefaultFunction (uint32_t defaultFunction) |
| Sets default channel's function. | |
| bool | setFunction (uint32_t newFunction) |
| Sets channel's function. | |
| virtual void | onFunctionChange (uint32_t currentFunction, uint32_t newFunction) |
| Called when channel function changes. | |
Public Member Functions inherited from Supla::LocalAction | |
| virtual ActionHandlerClient * | getHandlerForFirstClient (uint16_t event) |
| virtual ActionHandlerClient * | getHandlerForClient (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 ActionHandler * | getRealClient () |
Protected Attributes | |
| ValveConfig | config = {} |
| uint32_t | lastSensorsCheckTimestamp = 0 |
| uint32_t | lastUpdateTimestamp = 0 |
| uint32_t | lastCmdTimestamp = 0 |
| uint32_t | ignoreManuallyOpenedTimeMs = 30000 |
| uint8_t | lastOpenLevelState = 0 |
| uint8_t | defaultCloseValveOnFloodType = SUPLA_VALVE_CLOSE_ON_FLOOD_TYPE_NONE |
| bool | previousSensorState [SUPLA_VALVE_SENSOR_MAX] = {} |
Protected Attributes inherited from Supla::ChannelElement | |
| Channel | channel |
Protected Attributes inherited from Supla::ElementWithChannelActions | |
| Supla::ChannelConfigState | channelConfigState |
| uint8_t | setChannelConfigAttempts = 0 |
| ConfigTypesBitmap | usedConfigTypes |
| ConfigTypesBitmap | receivedConfigTypes |
Protected Attributes inherited from Supla::Element | |
| Element * | nextPtr = nullptr |
Additional Inherited Members | |
Static Public Member Functions inherited from Supla::Element | |
| static Element * | begin () |
| Returns first Element (based on creation order) | |
| static Element * | last () |
| Returns last Element (based on creation order) | |
| static Element * | getElementByChannelNumber (int channelNumber) |
| Returns Element by channel number. | |
| static Element * | getOwnerOfSubDeviceId (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 ActionHandlerClient * | getClientListPtr () |
Protected Member Functions inherited from Supla::ElementWithChannelActions | |
| virtual bool | setAndSaveFunction (uint32_t channelFunction) |
| virtual bool | loadFunctionFromConfig () |
| virtual bool | saveConfigChangeFlag () const |
| virtual bool | loadConfigChangeFlag () |
| void | clearChannelConfigChangedFlag () |
| bool | iterateConfigExchange () |
| int | getNextConfigType () const |
| Returns the next config type to be sent. | |
Static Protected Attributes inherited from Supla::Element | |
| static Element * | firstPtr = nullptr |
| static bool | invalidatePtr = false |
ValveBase class is used to handle SUPLA_CHANNEL_TYPE_VALVE_OPENCLOSE and SUPLA_CHANNEL_TYPE_VALVE_PERCENTAGE channels.
|
explicit |
Constructor.
| openClose | true = openClose valve (two state), false = operates on 0-100 range |
| bool ValveBase::addSensor | ( | uint8_t | channelNumber | ) |
Add sensor to the channel's configuration.
It will trigger setChannelConfig message to server.
| channelNumber | channel number of a binary sensor |
|
overridevirtual |
Reimplemented from Supla::ElementWithChannelActions.
|
overridevirtual |
Reimplemented from Supla::ElementWithChannelActions.
|
virtual |
Get value from device or any other interface.
Implementation of this method should get the valve level. OpenClose valve: 0 = closed, >= 1 = open
|
overridevirtual |
Implementation of ActionHandler::handleAction.
Valve supports following actions:
| event | ID of event which triggered action (ignored) (see events.h) |
| action | ID of action (see actions.h) |
Implements Supla::ActionHandler.
|
overridevirtual |
Handles "new value" request from server.
| newValue | pointer to TSD_SuplaChannelNewValue |
Reimplemented from Supla::Element.
| bool ValveBase::isFloodDetected | ( | ) |
Check all sensors and return true if flood is detected.
|
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.
|
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.
|
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.
| sdc |
Reimplemented from Supla::Element.
|
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.
|
overridevirtual |
Method called periodically during SuplaDevice iteration.
It should provide state saving for this elemnet to Storage
Reimplemented from Supla::Element.
|
overridevirtual |
Removes all configration data related to the element from Storage::Config.
Reimplemented from Supla::ElementWithChannelActions.
| bool ValveBase::removeSensor | ( | uint8_t | channelNumber | ) |
Remove sensor from the channel's configuration.
It will trigger setChannelConfig message to server.
| channelNumber | channel number of a binary sensor |
| void ValveBase::saveConfig | ( | bool | local = true | ) |
Save current configuration to Config.
| local | true = will call setChannelConfig to server |
| void ValveBase::setDefaultCloseValveOnFloodType | ( | uint8_t | type | ) |
Set default close valve on flood type.
Default value is SUPLA_VALVE_CLOSE_ON_FLOOD_TYPE_NONE
| type | SUPLA_VALVE_CLOSE_ON_FLOOD_TYPE_* |
| 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().
| timeMs | time in milliseconds |
|
virtual |
Set value on device or any other interface.
Implementation of this method should set the valve level. OpenClose valve: 0 = closed, >= 1 = open
| openLevel | 0-100 (0 = closed, 100 = fully open) |
| void ValveBase::setValve | ( | uint8_t | openLevel | ) |
Set valve.
OpenClose valve: 0 = closed, >= 1 = open
| openLevel | 0-100 (0 = closed, 100 = fully open) |