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

Public Member Functions

 ManagedRelay (Supla::Io::IoPin outputPin, Channel &externalChannel, _supla_int_t functions=(0xFF ^ SUPLA_BIT_FUNC_CONTROLLINGTHEROLLERSHUTTER))
 
void setRuntimeActive (bool active)
 
void setStorageMode (bool active)
 
void setLogicalState (bool state)
 
void forceOff ()
 
void loadEngineConfigOnly ()
 
void purgeEngineConfigOnly ()
 
void refreshWeeklyScheduleCapabilities ()
 
bool isWeeklyScheduleConfigUsed () const
 
void setupButtonActions (Button *button)
 
void turnOn (_supla_int_t duration=0) override
 
void turnOff (_supla_int_t duration=0) override
 
bool isOn () override
 
void toggle (_supla_int_t duration=0) override
 
void handleAction (int event, int action) override
 
int32_t handleNewValueFromServer (TSD_SuplaChannelNewValue *newValue) override
 Handles "new value" request from server.
 
void iterateAlways () override
 Method called on each SuplaDevice iteration.
 
bool iterateConnected () override
 Method called on each SuplaDevice iteration when device is connected and registered to Supla server or other protocol.
 
bool setRuntimeFunction (uint32_t channelFunction) override
 Sets channel's function at runtime.
 
- Public Member Functions inherited from Supla::Control::Relay
 Relay (Supla::Io::IoPin outputPin, _supla_int_t functions=(0xFF ^ SUPLA_BIT_FUNC_CONTROLLINGTHEROLLERSHUTTER))
 
 Relay (Supla::Io::Base *io, int pin, bool highIsOn=true, _supla_int_t functions=(0xFF ^ SUPLA_BIT_FUNC_CONTROLLINGTHEROLLERSHUTTER))
 
 Relay (int pin, bool highIsOn=true, _supla_int_t functions=(0xFF ^ SUPLA_BIT_FUNC_CONTROLLINGTHEROLLERSHUTTER))
 
virtual Relay & setDefaultStateOn ()
 
virtual Relay & setDefaultStateOff ()
 
virtual Relay & setDefaultStateRestore ()
 
virtual Relay & setPreloadStateOnSoftReset (bool enabled=true)
 
virtual Relay & keepTurnOnDuration (bool keep=true)
 
virtual uint8_t pinOnValue ()
 
virtual uint8_t pinOffValue ()
 
void attach (Supla::Control::Button *)
 
void handleAction (int event, int action) override
 
void onLoadConfig (SuplaDeviceClass *sdc) override
 First method called on element in SuplaDevice.begin().
 
void purgeConfig () override
 Removes all configration data related to the element from Storage::Config.
 
void onInit () override
 Third 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.
 
void iterateAlways () override
 Method called on each SuplaDevice iteration.
 
bool iterateConnected () override
 Method called on each SuplaDevice iteration when device is connected and registered to Supla server or other protocol.
 
int32_t handleNewValueFromServer (TSD_SuplaChannelNewValue *newValue) override
 Handles "new value" request from server.
 
void onRegistered (Supla::Protocol::SuplaSrpc *suplaSrpc) override
 Method called each time when device successfully registers to Supla server.
 
Supla::ApplyConfigResult applyChannelConfig (TSD_ChannelConfig *result, bool local=false) override
 
void fillChannelConfig (void *channelConfig, int *size, uint8_t configType) override
 
bool getRemainingCountdownTimerSec (uint32_t *remainingSec) const override
 Returns remaining countdown timer time in seconds for an active relay countdown timer.
 
void fillSuplaChannelNewValue (TSD_SuplaChannelNewValue *value) override
 Fills TSD_SuplaChannelNewValue based on current state.
 
unsigned _supla_int_t getStoredTurnOnDurationMs ()
 
void setStoredTurnOnDurationMs (uint32_t durationMs)
 
bool isStaircaseFunction (uint32_t functionToCheck=0) const
 
bool isImpulseFunction (uint32_t functionToCheck=0) const
 
void disableCountdownTimerFunction ()
 
void enableCountdownTimerFunction ()
 
bool isCountdownTimerFunctionEnabled () const
 
void setMinimumAllowedDurationMs (uint32_t durationMs)
 
bool isDefaultRelatedMeterChannelSet () const
 
uint32_t getCurrentValueFromMeter () const
 
void setDefaultRelatedMeterChannelNo (int channelNo)
 
void setTurnOffWhenEmptyAggregator (bool turnOff)
 
void setOvercurrentThreshold (uint32_t value)
 Set overcurrent threshold.
 
uint32_t getOvercurrentThreshold () const
 Get overcurrent threshold.
 
void setOvercurrentMaxAllowed (uint32_t value)
 Set overcurrent max level allowed.
 
uint32_t getOvercurrentMaxAllowed () const
 Get overcurrent max level allowed.
 
void setDefaultStaircaseDurationMs (uint16_t durationMs)
 Set default duration for staircase timer function.
 
void setDefaultImpulseDurationMs (uint16_t durationMs)
 Set default duration for impulse functions (controlling gate, door etc.)
 
bool setRuntimeFunction (uint32_t channelFunction) override
 Sets channel's function at runtime.
 
bool setAndSaveFunction (uint32_t channelFunction) override
 
void setRestartTimerOnToggle (bool restart)
 Set restart timer on toggle for staircase and impulse functions.
 
bool isRestartTimerOnToggle () const
 Get restart timer on toggle for staircase and impulse functions.
 
bool isFullyInitialized () const
 
void enableCyclicMode (uint32_t turnOnTimeMs, uint32_t turnOffTimeMs)
 Enable automatic cyclic relay operation.
 
void disableCyclicMode ()
 
bool isCyclicMode () const
 
bool isWeeklyScheduleSupported () const
 
Relay & setWeeklyScheduleAvailable (bool available=true)
 
bool isWeeklyScheduleAvailable () const
 
Relay & setAutomaticModeSupported (bool supported=true)
 
bool isAutomaticModeSupported () const
 
bool isAutomaticMode () const
 
bool setAutomaticMode (bool enabled)
 
bool setWeeklyScheduleController (WeeklyScheduleController *controller, WeeklyScheduleConfigHandler *configHandler=nullptr, WeeklyScheduleProgramSource *programSource=nullptr)
 
- 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
 ElementWithChannelActions (ElementMode mode=ElementMode::Registered)
 
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, uint16_t event, Supla::Condition *condition, bool alwaysEnabled=false)
 Adds a conditional local action for a specific event.
 
virtual void addAction (uint16_t action, ActionHandler *client, uint16_t event, Supla::Condition *condition, bool alwaysEnabled=false)
 Pointer variant of addAction(action, client, event, condition).
 
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 handleChannelConfigFinished () override
 Handles "channel config finished" message from server.
 
void handleChannelConfigFinished (int channelNumber) override
 Handles "channel config finished" for a specific channel.
 
uint8_t handleChannelConfig (TSD_ChannelConfig *result, bool local=false) override
 Handles "set channel config" request from server.
 
uint8_t handleWeeklySchedule (TSD_ChannelConfig *result, bool altSchedule=false, bool local=false) override
 Handles "set channel config" with "weekly schedule" type request from server.
 
void handleSetChannelConfigResult (TSDS_SetChannelConfigResult *result) override
 Handles "set channel config" reply from server.
 
void runAction (uint16_t event) const override
 
void runAction (uint16_t event, const ActionAllowList &allowOnlyActions) const override
 
bool isAnyUpdatePending () const override
 Returns true if any update is pending.
 
void triggerSetChannelConfig (int configType=SUPLA_CONFIG_TYPE_DEFAULT, bool localChange=false)
 
virtual bool iterateConnected (void *ptr)
 deprecated
 
- Public Member Functions inherited from Supla::Element
 Element (ElementMode mode=ElementMode::Registered)
 
virtual Control::ActionTrigger * getActionTrigger ()
 
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 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 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.
 
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 ()
 
const Channel * getChannelByChannelNumber (int channelNumber) const
 Returns pointer to the channel matching channelNumber.
 
Channel * getChannelByChannelNumber (int channelNumber)
 
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 bool hasEnabledAction (uint16_t event, uint16_t action) const
 
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 ()
 

Additional Inherited Members

- Static Public Member Functions inherited from Supla::Control::Relay
static void setRelayStorageSaveDelay (uint32_t delayMs)
 
- 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 DeleteActionsHandledByExcept (const ActionHandler *client, const ActionAllowList &preservedActions)
 
static void DeleteActionsTriggeredBy (const LocalAction *action)
 
static void DeleteAction (const LocalAction *trigger, const ActionHandler *client, uint16_t event, uint16_t action)
 
static void NullifyActionsHandledBy (const ActionHandler *client)
 
static ActionHandlerClient * getClientListPtr ()
 
- Protected Member Functions inherited from Supla::Control::Relay
 Relay (Supla::Io::IoPin outputPin, _supla_int_t functions, Supla::Channel &externalChannel, ElementMode mode)
 
void applyDuration (int32_t durationMs, bool turnOn)
 
void setOvercurrentThreshold (uint32_t value, bool local)
 
virtual void setNewChannelValue (bool value)
 
virtual void fillDefaultWeeklySchedule (TChannelConfig_WeeklySchedule *schedule)
 
virtual bool canUseWeeklySchedule () const
 
virtual bool isWeeklyScheduleProgramModeSupported (uint8_t mode) const
 
bool isWeeklyScheduleProgramModeAvailable (uint8_t mode) const
 
bool isWeeklyScheduleProgramModeApplicable (uint8_t mode) const
 
bool hasAnyWeeklyScheduleProgramModeAvailable () const
 
virtual void iterateAutomaticMode ()
 
void saveConfig () const
 
void loadRelayConfigOnly ()
 
bool ensureNativeWeeklyScheduleController ()
 
void updateWeeklyScheduleCapabilities ()
 
void updateAutomaticModeCapability ()
 
void purgeRelayConfigOnly ()
 
void updateTimerValue ()
 
void emitCountdownTimerActionIfNeeded ()
 
void updateRelayHvacAggregator ()
 
bool isManualActionAllowed (bool turnOn) const
 
bool isManualForcedModeSupported () const
 
bool setManualForcedMode (uint8_t mode)
 
void disableWeeklySchedule ()
 
void applyWeeklyScheduleProgram (uint8_t programMode, bool programChanged)
 
virtual bool applyWeeklyScheduleState (bool on)
 
void notifyWeeklyScheduleManualAction ()
 
- Protected Member Functions inherited from Supla::ChannelElement
 ChannelElement (Channel &externalChannel, ElementMode mode)
 
- Protected Member Functions inherited from Supla::ElementWithChannelActions
virtual bool loadFunctionFromConfig ()
 
virtual bool shouldProcessChannelFunctionFromConfig () const
 
bool setAndSaveConfigChangeFlag (bool value)
 
virtual bool saveConfigChangeFlag () const
 
virtual bool loadConfigChangeFlag ()
 
void clearChannelConfigChangedFlag ()
 
void markChannelConfigReceived (int configType)
 
void markAllChannelConfigsReceived ()
 
bool isChannelConfigFinishedReceived () const
 
bool isLocalChannelConfigChangePending (int configType) const
 
bool iterateConfigExchange ()
 
int getNextConfigType () const
 Returns the next config type to be sent.
 
int getNextLocalConfigType () const
 
bool setLocalConfigChange (int configType, bool value=true)
 
void clearLocalConfigChanges (int configType, int secondConfigType=-1)
 
uint8_t getUsedLocalConfigTypes () const
 
- Protected Attributes inherited from Supla::Control::Relay
uint32_t durationMs = 0
 
uint32_t storedTurnOnDurationMs = 0
 
uint32_t durationTimestamp = 0
 
uint32_t turnOffDurationForCycle = 0
 
uint16_t defaultStaircaseDurationMs = 10000
 
uint16_t defaultImpulseDurationMs = 500
 
uint32_t overcurrentThreshold = 0
 
uint32_t overcurrentMaxAllowed = 0
 
uint32_t overcurrentActiveTimestamp = 0
 
uint32_t overcurrentCheckTimestamp = 0
 
uint32_t timerUpdateTimestamp = 0
 
uint32_t lastCountdownTimerRemainingSec = UINT32_MAX
 
uint32_t postponeCommTimestamp = 0
 
ButtonListElement * buttonList = nullptr
 
uint16_t minimumAllowedDurationMs = 0
 
int16_t defaultRelatedMeterChannelNo = -1
 
RuntimeFlags runtimeFlags
 
int8_t stateOnInit = STATE_ON_INIT_OFF
 
Supla::Io::IoPin outputPin
 
WeeklyScheduleComponents weeklyScheduleComponents
 
- Protected Attributes inherited from Supla::ChannelElement
unsigned char ownedChannelStorage [sizeof(Channel)] = {}
 
Channel & channel
 
bool ownsChannel = false
 
- Protected Attributes inherited from Supla::ElementWithChannelActions
ChannelConfigState channelConfigState: 4
 
uint8_t setChannelConfigAttempts: 2
 
uint8_t configFinishedReceived: 1
 
uint8_t reserved: 1
 
ConfigTypesBitmap locallyChangedConfigTypes
 
ConfigTypesBitmap usedConfigTypes
 
ConfigTypesBitmap receivedConfigTypes
 
- Protected Attributes inherited from Supla::Element
bool registeredElement = true
 
Element * nextPtr = nullptr
 
- Static Protected Attributes inherited from Supla::Control::Relay
static uint16_t relayStorageSaveDelay = 5000
 
- Static Protected Attributes inherited from Supla::Element
static Element * firstPtr = nullptr
 
static bool invalidatePtr = false
 

Member Function Documentation

◆ handleAction()

void Supla::Control::ManagedRelay::handleAction ( int event,
int action )
overridevirtual

Implements Supla::ActionHandler.

◆ handleNewValueFromServer()

int32_t Supla::Control::ManagedRelay::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.

◆ isOn()

bool Supla::Control::ManagedRelay::isOn ( )
overridevirtual

Reimplemented from Supla::Control::Relay.

◆ iterateAlways()

void Supla::Control::ManagedRelay::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.

◆ iterateConnected()

bool Supla::Control::ManagedRelay::iterateConnected ( )
overridevirtual

Method called on each SuplaDevice iteration when device is connected and registered to Supla server or other protocol.

Returns
true when element didn't communicate with server and next element should be iterated instead. false otherwise.

Reimplemented from Supla::ElementWithChannelActions.

◆ setRuntimeFunction()

bool Supla::Control::ManagedRelay::setRuntimeFunction ( uint32_t newFunction)
overridevirtual

Sets channel's function at runtime.

Elements which require additional runtime setup after a function change should override this method. The default implementation calls setFunction().

Parameters
newFunction
Returns
true if function was changed, false otherwise

Reimplemented from Supla::Element.

◆ toggle()

void Supla::Control::ManagedRelay::toggle ( _supla_int_t duration = 0)
overridevirtual

Reimplemented from Supla::Control::Relay.

◆ turnOff()

void Supla::Control::ManagedRelay::turnOff ( _supla_int_t duration = 0)
overridevirtual

Reimplemented from Supla::Control::Relay.

◆ turnOn()

void Supla::Control::ManagedRelay::turnOn ( _supla_int_t duration = 0)
overridevirtual

Reimplemented from Supla::Control::Relay.


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