|
supla-device
|
Virtual binary sensor with explicit logical state control. More...
#include <virtual_binary.h>


Public Member Functions | |
| VirtualBinary (bool keepStateInStorage=false) | |
| bool | getValue () override |
| void | onInit () override |
| Third method called on element in SuplaDevice.begin(). | |
| void | iterateAlways () override |
| Method called on each SuplaDevice iteration. | |
| void | handleAction (int event, int action) override |
| void | onLoadState () override |
| Second method called on element in SuplaDevice.begin(). | |
| void | onSaveState () override |
| Method called periodically during SuplaDevice iteration. | |
| void | set () |
| Sets the logical state to ON. | |
| void | clear () |
| Sets the logical state to OFF. | |
| void | toggle () |
| Toggles the logical state. | |
| void | setUseConfiguredTimeout (bool useConfiguredTimeout) |
| Enables or disables timeout auto-application from the configured channel timeout value. | |
| void | setKeepStateInStorage (bool) |
| Configures whether the logical state should be persisted in storage. | |
| Public Member Functions inherited from Supla::Sensor::BinaryBase | |
| Channel * | getChannel () override |
| const Channel * | getChannel () const override |
| Returns pointer to main channel. | |
| void | onLoadConfig (SuplaDeviceClass *) override |
| First method called on element in SuplaDevice.begin(). | |
| Supla::ApplyConfigResult | applyChannelConfig (TSD_ChannelConfig *config, bool local=false) override |
| bool | isServerInvertLogic () const |
| Get the invert logic setting. | |
| bool | setServerInvertLogic (bool invertLogic, bool local=true) |
| Set the invert logic. | |
| uint16_t | getTimeoutDs () const |
| Get the timeout in deciseconds (1 == 0.1 s). | |
| bool | setTimeoutDs (uint16_t timeoutDs, bool local=true) |
| Set the timeout in deciseconds (1 == 0.1 s). | |
| uint16_t | getFilteringTimeMs () const |
| Get the filtering time in ms. | |
| bool | setFilteringTimeMs (uint16_t filteringTimeMs, bool local=true) |
| Set the filtering time in ms. | |
| uint8_t | getSensitivity () const |
| Get the sensitivity. | |
| bool | setSensitivity (uint8_t sensitivity, bool local=true) |
| Set the sensitivity. | |
| uint8_t | getAlarmMuted () const |
| Get the alarm muted state. | |
| bool | setAlarmMuted (uint8_t alarmMuted, bool local=true) |
| Set the alarm muted state. | |
| void | setReadIntervalMs (uint32_t intervalMs) |
| Set the read interval in ms. | |
| void | purgeConfig () override |
| Purge the configuration. | |
| void | fillChannelConfig (void *channelConfig, int *size, uint8_t configType) override |
| Fill the channel config. | |
| 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 | 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 | isStateStorageMigrationNeeded () const |
| Method called after onInit() to check if state storage migration is needed. | |
| 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 int | handleCalcfgFromServer (TSD_DeviceCalCfgRequest *request) |
| Handles CALCFG requests from server. | |
| virtual uint32_t | getCalcfgPendingTimeoutMs (TSD_DeviceCalCfgRequest *request) const |
| Returns timeout in milliseconds for CALCFG requests that become pending. | |
| 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 Member Functions | |
| void | setLogicalState (bool logicalState, bool fromTimeout=false) |
| Protected Member Functions inherited from Supla::Sensor::BinaryBase | |
| void | saveConfig () |
| void | printConfig () |
| void | printConfig (const TChannelConfig_BinarySensor *serverConfig) |
| 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. | |
Protected Attributes | |
| bool | state = false |
| bool | keepStateInStorage = false |
| uint32_t | stateChangeTimeMs = 0 |
| bool | clearedByTimeout = false |
| bool | useConfiguredTimeout = true |
| Protected Attributes inherited from Supla::Sensor::BinaryBase | |
| uint32_t | lastReadTime = 0 |
| uint32_t | readIntervalMs = 100 |
| BinarySensorChannel | channel |
| BinarySensorConfig | config |
| 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 () |
| Static Protected Attributes inherited from Supla::Element | |
| static Element * | firstPtr = nullptr |
| static bool | invalidatePtr = false |
Virtual binary sensor with explicit logical state control.
The class stores the logical state internally and mirrors it to the channel value taking server inverted logic into account. It can also auto-clear the state after the configured timeout, unless timeout handling is disabled with setUseConfiguredTimeout(false).
|
overridevirtual |
Implements Supla::Sensor::BinaryBase.
|
overridevirtual |
Implements Supla::ActionHandler.
|
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::Sensor::BinaryBase.
|
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 |
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.
| void Supla::Sensor::VirtualBinary::setKeepStateInStorage | ( | bool | keepStateInStorage | ) |
Configures whether the logical state should be persisted in storage.
This should be set only before SuplaDevice.begin(). Changing it later can break the stored state layout.
| void Supla::Sensor::VirtualBinary::setUseConfiguredTimeout | ( | bool | useConfiguredTimeout | ) |
Enables or disables timeout auto-application from the configured channel timeout value.
When disabled, the timeout value is still available via getters, but the sensor will not auto-clear itself in iterateAlways().