ESPHome 2026.5.0b1
Loading...
Searching...
No Matches
current_based_cover.h
Go to the documentation of this file.
1#pragma once
2
7#include <cfloat>
8
10
12 public:
13 void setup() override;
14 void loop() override;
15 void dump_config() override;
16
18
20 void set_open_sensor(sensor::Sensor *open_sensor) { this->open_sensor_ = open_sensor; }
21 void set_open_moving_current_threshold(float open_moving_current_threshold) {
22 this->open_moving_current_threshold_ = open_moving_current_threshold;
23 }
24 void set_open_obstacle_current_threshold(float open_obstacle_current_threshold) {
25 this->open_obstacle_current_threshold_ = open_obstacle_current_threshold;
26 }
27 void set_open_duration(uint32_t open_duration) { this->open_duration_ = open_duration; }
28
30 void set_close_sensor(sensor::Sensor *close_sensor) { this->close_sensor_ = close_sensor; }
31 void set_close_moving_current_threshold(float close_moving_current_threshold) {
32 this->close_moving_current_threshold_ = close_moving_current_threshold;
33 }
34 void set_close_obstacle_current_threshold(float close_obstacle_current_threshold) {
35 this->close_obstacle_current_threshold_ = close_obstacle_current_threshold;
36 }
37 void set_close_duration(uint32_t close_duration) { this->close_duration_ = close_duration; }
38
39 void set_max_duration(uint32_t max_duration) { this->max_duration_ = max_duration; }
40 void set_obstacle_rollback(float obstacle_rollback) { this->obstacle_rollback_ = obstacle_rollback; }
41
42 void set_malfunction_detection(bool malfunction_detection) { this->malfunction_detection_ = malfunction_detection; }
43 void set_start_sensing_delay(uint32_t start_sensing_delay) { this->start_sensing_delay_ = start_sensing_delay; }
44
46
48
49 protected:
50 void control(const cover::CoverCall &call) override;
51 void stop_prev_trigger_();
52
53 bool is_at_target_() const;
54 bool is_opening_() const;
55 bool is_opening_blocked_() const;
56 bool is_closing_() const;
57 bool is_closing_blocked_() const;
58 bool is_initial_delay_finished_() const;
59
60 void direction_idle_(float new_position = FLT_MAX);
62
64
66
72
78
83 float obstacle_rollback_{0.0f};
84
90
92};
93
94} // namespace esphome::current_based
Base class for all cover devices.
Definition cover.h:110
void start_direction_(cover::CoverOperation dir)
void set_open_moving_current_threshold(float open_moving_current_threshold)
void set_close_obstacle_current_threshold(float close_obstacle_current_threshold)
void set_close_sensor(sensor::Sensor *close_sensor)
void set_start_sensing_delay(uint32_t start_sensing_delay)
void set_close_duration(uint32_t close_duration)
void set_open_duration(uint32_t open_duration)
void set_open_sensor(sensor::Sensor *open_sensor)
void set_close_moving_current_threshold(float close_moving_current_threshold)
void control(const cover::CoverCall &call) override
void set_open_obstacle_current_threshold(float open_obstacle_current_threshold)
void set_obstacle_rollback(float obstacle_rollback)
void set_malfunction_detection(bool malfunction_detection)
void direction_idle_(float new_position=FLT_MAX)
Base-class for all sensors.
Definition sensor.h:47
CoverOperation
Enum encoding the current operation of a cover.
Definition cover.h:79
@ COVER_OPERATION_OPENING
The cover is currently opening.
Definition cover.h:83
static void uint32_t