19#ifndef SRC_SUPLA_CONTROL_ACTION_TRIGGER_H_
20#define SRC_SUPLA_CONTROL_ACTION_TRIGGER_H_
24#include <supla/action_handler.h>
25#include <supla/actions.h>
26#include <supla/at_channel.h>
27#include <supla/element.h>
35enum ActionHandlingType : uint8_t {
36 ActionHandlingType_RelayOnSuplaServer = 0,
37 ActionHandlingType_PublishAllDisableNone = 1,
38 ActionHandlingType_PublishAllDisableAll = 2
48 virtual ~ActionTrigger();
59 void setRelatedChannel(Element *);
60 void setRelatedChannel(
Channel *);
61 void setRelatedChannel(Element &);
62 void setRelatedChannel(
Channel &);
64 void handleAction(
int event,
int action)
override;
65 void activateAction(
int action)
override;
71 bool local =
false)
override;
76 void rebuildForAttachedButton();
77 void disableATCapability(uint32_t capToDisable);
78 void enableStateStorage();
80 static int actionTriggerCapToButtonEvent(uint32_t actionCap);
81 static int actionTriggerCapToActionId(uint32_t actionCap);
82 static int getActionTriggerCap(
int action);
84 bool isAnyActionEnabledOnServer()
const;
86 void setAlwaysUseOnClick1();
92 void addActionToButtonAndDisableIt(
int event,
int action);
93 void parseActiveActionsFromServer();
99 uint16_t localHandlerAction = 0;
100 uint32_t activeActionsFromServer = 0;
101 uint32_t disablesLocalOperation = 0;
102 uint32_t disabledCapabilities = 0;
106 ActionHandlingType actionHandlingType = ActionHandlingType_RelayOnSuplaServer;
107 bool storageEnabled =
false;
108 bool alwaysUseOnClick1 =
false;
110 bool localHandlerSwitchConfigured =
false;
Definition SuplaDevice.h:177
Definition local_action.h:27
Definition action_handler.h:21
Definition at_channel.h:25
void onSaveState() override
Method called periodically during SuplaDevice iteration.
Definition action_trigger.cpp:585
uint8_t handleChannelConfig(TSD_ChannelConfig *result, bool local=false) override
Handles "set channel config" request from server.
Definition action_trigger.cpp:316
const Supla::Channel * getChannel() const override
Returns pointer to main channel.
Definition action_trigger.cpp:64
void onRegistered(Supla::Protocol::SuplaSrpc *suplaSrpc=nullptr) override
Method called each time when device successfully registers to Supla server.
Definition action_trigger.cpp:199
void onInit() override
Third method called on element in SuplaDevice.begin().
Definition action_trigger.cpp:358
void onLoadState() override
Second method called on element in SuplaDevice.begin().
Definition action_trigger.cpp:631
void onLoadConfig(SuplaDeviceClass *) override
First method called on element in SuplaDevice.begin().
Definition action_trigger.cpp:592
Definition supla_srpc.h:61