52class RollerShutterInterface :
public ChannelElement,
public ActionHandler {
54 RollerShutterInterface();
55 virtual ~RollerShutterInterface();
57 RollerShutterInterface(
const RollerShutterInterface &) =
delete;
58 RollerShutterInterface &operator=(
const RollerShutterInterface &) =
delete;
61 void handleAction(
int event,
int action)
override;
64 bool local =
false)
override;
65 void fillChannelConfig(
void *channelConfig,
67 uint8_t configType)
override;
77 virtual void moveUp();
79 virtual void moveDown();
82 virtual void setTargetPosition(
int newPosition);
83 void setCurrentPosition(
int newPosition);
84 void setNotCalibrated();
88 void setCalibrationOngoing(
int calibrationTime = 1);
89 void setCalibrationFinished();
91 int getCurrentPosition()
const;
92 int getTargetPosition()
const;
95 int getCurrentDirection()
const;
97 void configComfortUpValue(uint8_t position);
98 void configComfortDownValue(uint8_t position);
108 uint32_t getClosingTimeMs()
const;
109 uint32_t getOpeningTimeMs()
const;
114 virtual void triggerCalibration();
115 void setCalibrationNeeded();
116 bool isCalibrationRequested()
const;
117 bool isCalibrated()
const;
119 void setRsConfigMotorUpsideDownEnabled(
bool enable);
120 void setRsConfigButtonsUpsideDownEnabled(
bool enable);
121 void setRsConfigTimeMarginEnabled(
bool enable);
123 void setRsConfigMotorUpsideDownValue(uint8_t value);
124 void setRsConfigButtonsUpsideDownValue(uint8_t value);
125 void setRsConfigTimeMarginValue(int8_t value);
127 uint8_t getMotorUpsideDown()
const;
128 uint8_t getButtonsUpsideDown()
const;
129 int8_t getTimeMargin()
const;
131 static void setRsStorageSaveDelay(
int delayMs);
133 virtual bool inMove();
134 virtual bool isCalibrationInProgress()
const;
135 bool isCalibrationFailed()
const;
136 bool isCalibrationLost()
const;
137 bool isMotorProblem()
const;
139 bool isFunctionSupported(int32_t channelFunction)
const;
140 bool isAutoCalibrationSupported()
const;
142 void setOpenCloseTime(uint32_t newClosingTimeMs, uint32_t newOpeningTimeMs);
144 void setCalibrationFailed(
bool value);
145 void setCalibrationLost(
bool value);
146 void setMotorProblem(
bool value);
151 bool asInternal =
true;
152 bool upButton =
true;
165 bool upButton,
bool asInternal);
168 bool lastDirectionWasOpen()
const;
169 bool lastDirectionWasClose()
const;
172 bool isTimeSettingAvailable()
const;
173 bool getCalibrate()
const;
174 void setCalibrate(
bool value);
176 void printConfig()
const;
177 uint32_t getTimeMarginValue(uint32_t fullTime)
const;
181 uint8_t comfortDownValue = 20;
182 uint8_t comfortUpValue = 80;
184 Directions currentDirection = Directions::STOP_DIR;
185 Directions lastDirection = Directions::STOP_DIR;
187 int8_t currentPosition = UNKNOWN_POSITION;
188 int8_t targetPosition = STOP_POSITION;
189 int8_t lastPositionBeforeMovement = UNKNOWN_POSITION;
190 bool newTargetPositionAvailable =
false;
192 RollerShutterConfig rsConfig;
196 uint32_t closingTimeMs = 0;
197 uint32_t openingTimeMs = 0;
201 uint32_t calibrationTime = 0;
202 uint32_t lastUpdateTime = 0;
204 static int16_t rsStorageSaveDelay;
void setupButtonActions(Supla::Control::Button *button, bool upButton, bool asInternal)
Configure additional buttons for roller shutter.
Definition roller_shutter_interface.cpp:901