|
supla-device
|


Classes | |
| struct | ButtonListElement |
Public Member Functions | |
| RollerShutterInterface (bool tiltFunctionsEnabled=false) | |
| Constructor. | |
| virtual | ~RollerShutterInterface () |
| Destructor. | |
| RollerShutterInterface (const RollerShutterInterface &)=delete | |
| RollerShutterInterface & | operator= (const RollerShutterInterface &)=delete |
| void | addTiltFunctions () |
| Add tilt functions (facade blinds, vertical blinds) Changing of tilt functions will breake state storage. | |
| bool | isTiltFunctionsSupported () const |
| Check if tilt functions are supported. | |
| bool | isTiltFunctionEnabled () const |
| Check if tilt function is currently enabled. | |
| bool | isTiltConfigured () const |
| Check if tilting is configured (time and control modes are set and isTiltFunctionEnabled is true) | |
| bool | isTopReached () const |
| Check if top position (and tilt if applicable) is reached. | |
| bool | isBottomReached () const |
| Check if bottom position (and tilt if applicable) is reached. | |
| int32_t | handleNewValueFromServer (TSD_SuplaChannelNewValue *newValue) override |
| Handles "new value" request from server. | |
| void | handleAction (int event, int action) override |
| int | handleCalcfgFromServer (TSD_DeviceCalCfgRequest *request) override |
| Handles CALCFG requests from server. | |
| Supla::ApplyConfigResult | applyChannelConfig (TSD_ChannelConfig *result, bool local=false) override |
| void | fillChannelConfig (void *channelConfig, int *size, uint8_t configType) override |
| void | fillSuplaChannelNewValue (TSD_SuplaChannelNewValue *value) override |
| Fills TSD_SuplaChannelNewValue based on current state. | |
| virtual void | close () |
| virtual void | open () |
| virtual void | stop () |
| virtual void | moveUp () |
| virtual void | moveDown () |
| virtual void | setTargetPosition (int newPosition, int newTilt=UNKNOWN_POSITION) |
| void | setCurrentPosition (int newPosition, int newTilt=UNKNOWN_POSITION) |
| Set current roller shutter/facade blind position (and tilt) (0 = open; 100 = closed) | |
| void | setNotCalibrated () |
| void | setCalibrationOngoing (int calibrationTime=1) |
| void | setCalibrationFinished () |
| int | getCurrentPosition () const |
| Get current roller shutter position. | |
| int | getCurrentTilt () const |
| Get current tilt position. | |
| int | getTargetPosition () const |
| Get target roller shutter position. | |
| int | getTargetTilt () const |
| Get target tilt position. | |
| int | getCurrentDirection () const |
| Get current roller shutter movement direction. | |
| void | configComfortUpValue (uint8_t position) |
| void | configComfortDownValue (uint8_t position) |
| void | configComfortUpTiltValue (uint8_t position) |
| void | configComfortDownTiltValue (uint8_t position) |
| void | onInit () override |
| Third method called on element in SuplaDevice.begin() | |
| void | onLoadConfig (SuplaDeviceClass *sdc) override |
| First method called on element in SuplaDevice.begin(). | |
| void | saveConfig () |
| void | onLoadState () override |
| Second method called on element in SuplaDevice.begin(). | |
| void | onSaveState () override |
| Method called periodically during SuplaDevice iteration. | |
| void | purgeConfig () override |
| Removes all configration data related to the element from Storage::Config. | |
| void | iterateAlways () override |
| Method called on each SuplaDevice iteration. | |
| uint32_t | getClosingTimeMs () const |
| uint32_t | getOpeningTimeMs () const |
| uint32_t | getTiltingTimeMs () const |
| uint32_t | getTiltControlType () const |
| void | attach (Supla::Control::Button *up, Supla::Control::Button *down) |
| void | attach (Supla::Control::Button *button, bool upButton, bool asInternal) |
| virtual void | triggerCalibration () |
| void | setCalibrationNeeded () |
| bool | isCalibrationRequested () const |
| bool | isCalibrated () const |
| void | setRsConfigMotorUpsideDownEnabled (bool enable) |
| Enable/disable motor upside down configuration option. | |
| void | setRsConfigButtonsUpsideDownEnabled (bool enable) |
| Enable/disable buttons upside down configuration option. | |
| void | setRsConfigTimeMarginEnabled (bool enable) |
| Enable/disable time margin configuration option. | |
| void | setRsConfigMotorUpsideDownValue (uint8_t value) |
| Set motor upside down value. | |
| void | setRsConfigButtonsUpsideDownValue (uint8_t value) |
| Set buttons upside down value. | |
| void | setRsConfigTimeMarginValue (int8_t value) |
| Set time margin value. | |
| uint8_t | getMotorUpsideDown () const |
| uint8_t | getButtonsUpsideDown () const |
| int8_t | getTimeMargin () const |
| virtual bool | inMove () |
| virtual bool | isCalibrationInProgress () const |
| void | startCalibration (uint32_t timeMs) |
| void | stopCalibration () |
| bool | isCalibrationFailed () const |
| bool | isCalibrationLost () const |
| bool | isMotorProblem () const |
| bool | isFunctionSupported (int32_t channelFunction) const |
| bool | isAutoCalibrationSupported () const |
| void | setOpenCloseTime (uint32_t newClosingTimeMs, uint32_t newOpeningTimeMs) |
| void | setTiltingTime (uint32_t newTiltingTimeMs, bool local=true) |
| void | setTiltControlType (uint8_t newTiltControlType, bool local=true) |
| void | setCalibrationFailed (bool value) |
| void | setCalibrationLost (bool value) |
| void | setMotorProblem (bool value) |
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 | clearChannelConfigChangedFlag () |
| void | runAction (uint16_t event) const override |
| virtual bool | setAndSaveFunction (uint32_t channelFunction) |
| virtual bool | loadFunctionFromConfig () |
| virtual bool | saveConfigChangeFlag () const |
| virtual bool | loadConfigChangeFlag () |
| bool | isAnyUpdatePending () 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 | 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 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 () |
Static Public Member Functions | |
| static void | setRsStorageSaveDelay (int 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 | DeleteActionsTriggeredBy (const LocalAction *action) |
| static void | NullifyActionsHandledBy (const ActionHandler *client) |
| static ActionHandlerClient * | getClientListPtr () |
Protected Member Functions | |
| void | setupButtonActions (Supla::Control::Button *button, bool upButton, bool asInternal) |
| Configure additional buttons for roller shutter. | |
| bool | lastDirectionWasOpen () const |
| bool | lastDirectionWasClose () const |
| bool | isTimeSettingAvailable () const |
| bool | getCalibrate () const |
| void | setCalibrate (bool value) |
| void | printConfig () const |
| uint32_t | getTimeMarginValue (uint32_t fullTime) const |
Protected Member Functions inherited from Supla::ElementWithChannelActions | |
| bool | iterateConfigExchange () |
| int | getNextConfigType () const |
| Returns the next config type to be sent. | |
Protected Attributes | |
| uint8_t | flags = 0 |
| uint8_t | comfortDownValue = 20 |
| uint8_t | comfortUpValue = 80 |
| uint8_t | comfortUpTiltValue = 0 |
| uint8_t | comfortDownTiltValue = 100 |
| Directions | currentDirection = Directions::STOP_DIR |
| Directions | lastDirection = Directions::STOP_DIR |
| int16_t | currentPosition |
| int16_t | currentTilt |
| int8_t | targetPosition = STOP_POSITION |
| int8_t | targetTilt = UNKNOWN_POSITION |
| int16_t | lastPositionBeforeMovement = UNKNOWN_POSITION |
| int16_t | lastTiltBeforeMovement = UNKNOWN_POSITION |
| bool | newTargetPositionAvailable = false |
| RollerShutterConfig | rsConfig |
| TiltConfig | tiltConfig |
| ButtonListElement * | buttonList = nullptr |
| uint32_t | closingTimeMs = 0 |
| uint32_t | openingTimeMs = 0 |
| uint32_t | calibrationTime = 0 |
| uint32_t | lastUpdateTime = 0 |
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 |
Static Protected Attributes | |
| static int16_t | rsStorageSaveDelay = 5000 |
Static Protected Attributes inherited from Supla::Element | |
| static Element * | firstPtr = nullptr |
| static bool | invalidatePtr = false |
|
explicit |
Constructor.
Changing of tilt functions will breake state storage. So make sure that those functions are enabled before the first device startup. You can enable them in existing devices as well, but make sure that you don't have anything important in state storage (i.e. Electricity Meter data).
| tiltFunctionsEnabled | true if tilt functions should be added |
| void RollerShutterInterface::addTiltFunctions | ( | ) |
Add tilt functions (facade blinds, vertical blinds) Changing of tilt functions will breake state storage.
So make sure that those functions are enabled before the first device startup. You can enable them in existing devices as well, but make sure that you don't have anything important in state storage (i.e. Electricity Meter data).
|
overridevirtual |
Reimplemented from Supla::ElementWithChannelActions.
|
overridevirtual |
Reimplemented from Supla::ElementWithChannelActions.
|
overridevirtual |
Fills TSD_SuplaChannelNewValue based on current state.
| value | pointer to TSD_SuplaChannelNewValue which should be filled |
Reimplemented from Supla::Element.
| int RollerShutterInterface::getCurrentDirection | ( | ) | const |
Get current roller shutter movement direction.
| int RollerShutterInterface::getCurrentPosition | ( | ) | const |
Get current roller shutter position.
| int RollerShutterInterface::getCurrentTilt | ( | ) | const |
Get current tilt position.
| int RollerShutterInterface::getTargetPosition | ( | ) | const |
Get target roller shutter position.
| int RollerShutterInterface::getTargetTilt | ( | ) | const |
Get target tilt position.
|
overridevirtual |
Implements Supla::ActionHandler.
|
overridevirtual |
Handles CALCFG requests from server.
| request |
Reimplemented from Supla::Element.
|
overridevirtual |
Handles "new value" request from server.
| newValue | pointer to TSD_SuplaChannelNewValue |
Reimplemented from Supla::Element.
| bool RollerShutterInterface::isBottomReached | ( | ) | const |
Check if bottom position (and tilt if applicable) is reached.
| bool RollerShutterInterface::isTiltConfigured | ( | ) | const |
Check if tilting is configured (time and control modes are set and isTiltFunctionEnabled is true)
| bool RollerShutterInterface::isTiltFunctionEnabled | ( | ) | const |
Check if tilt function is currently enabled.
| bool RollerShutterInterface::isTiltFunctionsSupported | ( | ) | const |
Check if tilt functions are supported.
| bool RollerShutterInterface::isTopReached | ( | ) | const |
Check if top position (and tilt if applicable) is reached.
|
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.
Reimplemented in Supla::Control::TrippleButtonRollerShutter.
|
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.
| void RollerShutterInterface::setCurrentPosition | ( | int | newPosition, |
| int | newTilt = UNKNOWN_POSITION ) |
Set current roller shutter/facade blind position (and tilt) (0 = open; 100 = closed)
| newPosition | |
| newTilt |
| void RollerShutterInterface::setRsConfigButtonsUpsideDownEnabled | ( | bool | enable | ) |
Enable/disable buttons upside down configuration option.
If enabled, then buttons upside down can be set in configuration. If disabled, then buttons upside down can not be set in configuration.
| enable |
| void RollerShutterInterface::setRsConfigButtonsUpsideDownValue | ( | uint8_t | value | ) |
Set buttons upside down value.
Works only if buttons upside down configuration option is enabled.
| value | 0 - not set/not used, 1 - false, 2 - true |
| void RollerShutterInterface::setRsConfigMotorUpsideDownEnabled | ( | bool | enable | ) |
Enable/disable motor upside down configuration option.
If enabled, then motor upside down can be set in configuration. If disabled, then motor upside down can not be set in configuration.
| enable |
| void RollerShutterInterface::setRsConfigMotorUpsideDownValue | ( | uint8_t | value | ) |
Set motor upside down value.
Works only if motor upside down configuration option is enabled.
| value | 0 - not set/not used, 1 - false, 2 - true |
| void RollerShutterInterface::setRsConfigTimeMarginEnabled | ( | bool | enable | ) |
Enable/disable time margin configuration option.
If enabled, then time margin can be set in configuration. If disabled, then time margin can not be set in configuration.
| enable |
| void RollerShutterInterface::setRsConfigTimeMarginValue | ( | int8_t | value | ) |
Set time margin value.
Works only if time margin configuration option is enabled.
| value | -1 (use device specific default), 0 (not set/not used), 1 (no margin), > 1 (51% of opening/closing time added on extreme positions) |
|
protected |
Configure additional buttons for roller shutter.
| button | Button |
| upButton | true if button is up button, false if down |
| asInternal | true if buttons are internal (they will be inverted by upsideDown config) |
|
protected |
|
protected |