supla-device
Loading...
Searching...
No Matches
Supla::Sensor::Container Class Reference
Inheritance diagram for Supla::Sensor::Container:
Collaboration diagram for Supla::Sensor::Container:

Public Member Functions

void setInternalLevelReporting (bool internalLevelReporting)
 Sets the internal level reporting flag.
 
bool isInternalLevelReporting () const
 Checks if the internal level reporting flag is enabled.
 
void iterateAlways () override
 Method called on each SuplaDevice iteration.
 
void onLoadConfig (SuplaDeviceClass *) override
 First method called on element in SuplaDevice.begin().
 
uint8_t applyChannelConfig (TSD_ChannelConfig *result, bool local=false) override
 
void fillChannelConfig (void *channelConfig, int *size) override
 
int handleCalcfgFromServer (TSD_DeviceCalCfgRequest *request) override
 Handles CALCFG requests from server.
 
void handleAction (int event, int action) override
 
void printConfig () const
 
void saveConfig ()
 
virtual int readNewValue ()
 
void setValue (int value)
 
bool isAlarmActive () const
 
bool isWarningActive () const
 
bool isInvalidSensorStateActive () const
 
bool isSoundAlarmOn () const
 
bool isExternalSoundAlarmOn () const
 Checks if the sound alarm was enabled for external source (other than container itself)
 
virtual void setReadIntervalMs (uint32_t timeMs)
 
void setWarningAboveLevel (int8_t warningAboveLevel)
 
int8_t getWarningAboveLevel () const
 
bool isWarningAboveLevelSet () const
 
void setAlarmAboveLevel (int8_t alarmAboveLevel)
 
int8_t getAlarmAboveLevel () const
 
bool isAlarmAboveLevelSet () const
 
void setWarningBelowLevel (int8_t warningBelowLevel)
 
int8_t getWarningBelowLevel () const
 
bool isWarningBelowLevelSet () const
 
void setAlarmBelowLevel (int8_t alarmBelowLevel)
 
int8_t getAlarmBelowLevel () const
 
bool isAlarmBelowLevelSet () const
 
void setMuteAlarmSoundWithoutAdditionalAuth (bool muteAlarmSoundWithoutAdditionalAuth)
 
bool isMuteAlarmSoundWithoutAdditionalAuth () const
 
bool setSensorData (uint8_t channelNumber, uint8_t fillLevel)
 Sets sensor data for given channel number.
 
void removeSensorData (uint8_t channelNumber)
 Removes sensor data for given channel number.
 
int getFillLevelForSensor (uint8_t channelNumber) const
 Returns fill level for sensor with given channel number.
 
bool isSensorDataUsed () const
 Checks if any sensor data is set.
 
bool isAlarmingUsed () const
 Checks if any alarm or warning level is set (both above and below)
 
void setSoundAlarmSupported (bool soundAlarmSupported)
 
bool isSoundAlarmSupported () const
 
void muteSoundAlarm ()
 Mutes the sound alarmm by clearing channel value flag, but does not clear soundAlarmActivated flag, so it requires to call setSoundAlarmOn with false, before new alarm sound will be started.
 
void setExternalSoundAlarmOn ()
 
void setExternalSoundAlarmOff ()
 
- 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 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 onInit ()
 Third 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 ()
 

Protected Member Functions

void updateConfigField (uint8_t *configField, int8_t value)
 
int8_t getHighestSensorValueAndUpdateState ()
 
void setAlarmActive (bool alarmActive)
 
void setWarningActive (bool warningActive)
 
void setInvalidSensorStateActive (bool invalidSensorStateActive)
 
void setSoundAlarmOn (uint8_t level)
 
bool checkSensorInvalidState (const int8_t currentFillLevel, const int8_t tolerance=0) const
 Checks if sensor is in invalid state.
 
enum SensorState getSensorState (const uint8_t channelNumber) const
 
- Protected Member Functions inherited from Supla::ElementWithChannelActions
virtual bool hasOcrConfig () const
 
virtual bool isOcrConfigMissing () const
 
virtual void clearOcrConfig ()
 

Protected Attributes

uint32_t lastReadTime = 0
 
uint32_t readIntervalMs = 1000
 
int8_t fillLevel = -1
 
bool soundAlarmSupported = false
 
uint8_t soundAlarmActivatedLevel = 0
 
bool externalSoundAlarm = false
 
bool sensorOfflineReported = false
 
ContainerConfig config = {}
 
- 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
 

Friends

class Supla::Html::ContainerParameters
 

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 ()
 
- Static Protected Attributes inherited from Supla::Element
static ElementfirstPtr = nullptr
 
static bool invalidatePtr = false
 

Member Function Documentation

◆ applyChannelConfig()

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

Reimplemented from Supla::ElementWithChannelActions.

◆ checkSensorInvalidState()

bool Container::checkSensorInvalidState ( const int8_t currentFillLevel,
const int8_t tolerance = 0 ) const
protected

Checks if sensor is in invalid state.

Sensor is in invalid state when sensor with lower fill then the reported fill level, is NOT active

Parameters
currentFillLevelcurrent fill level 0..100
toleranceadd tolerance to current fill level so i.e. if fill level is 92 and tolerance is 2, then sensor is in invalid state when it is NOT active and it's fill level is 90 or less.
Returns
true if any connected sensor is in invalid state

◆ fillChannelConfig()

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

Reimplemented from Supla::ElementWithChannelActions.

◆ getFillLevelForSensor()

int Container::getFillLevelForSensor ( uint8_t channelNumber) const

Returns fill level for sensor with given channel number.

Parameters
channelNumbersensor channel number
Returns
fill level for sensor in range 0-100. Value -1 means that given sensor is not set

◆ handleAction()

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

Implements Supla::ActionHandler.

◆ handleCalcfgFromServer()

int Container::handleCalcfgFromServer ( TSD_DeviceCalCfgRequest * request)
overridevirtual

Handles CALCFG requests from server.

Parameters
request
Returns
SUPLA_CALCFG_RESULT_* (see proto.h)

Reimplemented from Supla::Element.

◆ isAlarmingUsed()

bool Container::isAlarmingUsed ( ) const

Checks if any alarm or warning level is set (both above and below)

Returns
true if any alarm or warning level is set

◆ isExternalSoundAlarmOn()

bool Container::isExternalSoundAlarmOn ( ) const

Checks if the sound alarm was enabled for external source (other than container itself)

Returns
true if sound alarm is externally enabled

◆ isInternalLevelReporting()

bool Container::isInternalLevelReporting ( ) const

Checks if the internal level reporting flag is enabled.

Returns
true if internal level reporting is enabled

◆ isSensorDataUsed()

bool Container::isSensorDataUsed ( ) const

Checks if any sensor data is set.

Returns
true if any sensor data is set

◆ iterateAlways()

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

◆ onLoadConfig()

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

◆ removeSensorData()

void Container::removeSensorData ( uint8_t channelNumber)

Removes sensor data for given channel number.

Parameters
channelNumber

◆ setInternalLevelReporting()

void Container::setInternalLevelReporting ( bool internalLevelReporting)

Sets the internal level reporting flag.

When enabled, the container will report fill level by internal measument mechanism. Additional Fill Level Binary Sensors are used only as a backup. Default: false

Parameters
internalLevelReportingtrue to enable internal level reporting

◆ setSensorData()

bool Container::setSensorData ( uint8_t channelNumber,
uint8_t fillLevel )

Sets sensor data for given channel number.

Parameters
channelNumbersensor channel number
fillLevelsensor fill level in range 1-100
Returns
true if sensor data is set successfully, false if channel number is not set (i.e. all 10 slots are used)

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