ESPHome 2026.3.0-dev
Loading...
Searching...
No Matches
current_based_cover.h
Go to the documentation of this file.
1#pragma once
2
7#include <cfloat>
8
9namespace esphome {
10namespace current_based {
11
13 public:
14 void setup() override;
15 void loop() override;
16 void dump_config() override;
17
19
21 void set_open_sensor(sensor::Sensor *open_sensor) { this->open_sensor_ = open_sensor; }
22 void set_open_moving_current_threshold(float open_moving_current_threshold) {
23 this->open_moving_current_threshold_ = open_moving_current_threshold;
24 }
25 void set_open_obstacle_current_threshold(float open_obstacle_current_threshold) {
26 this->open_obstacle_current_threshold_ = open_obstacle_current_threshold;
27 }
28 void set_open_duration(uint32_t open_duration) { this->open_duration_ = open_duration; }
29
31 void set_close_sensor(sensor::Sensor *close_sensor) { this->close_sensor_ = close_sensor; }
32 void set_close_moving_current_threshold(float close_moving_current_threshold) {
33 this->close_moving_current_threshold_ = close_moving_current_threshold;
34 }
35 void set_close_obstacle_current_threshold(float close_obstacle_current_threshold) {
36 this->close_obstacle_current_threshold_ = close_obstacle_current_threshold;
37 }
38 void set_close_duration(uint32_t close_duration) { this->close_duration_ = close_duration; }
39
40 void set_max_duration(uint32_t max_duration) { this->max_duration_ = max_duration; }
41 void set_obstacle_rollback(float obstacle_rollback) { this->obstacle_rollback_ = obstacle_rollback; }
42
43 void set_malfunction_detection(bool malfunction_detection) { this->malfunction_detection_ = malfunction_detection; }
44 void set_start_sensing_delay(uint32_t start_sensing_delay) { this->start_sensing_delay_ = start_sensing_delay; }
45
47
49
50 protected:
51 void control(const cover::CoverCall &call) override;
52 void stop_prev_trigger_();
53
54 bool is_at_target_() const;
55 bool is_opening_() const;
56 bool is_opening_blocked_() const;
57 bool is_closing_() const;
58 bool is_closing_blocked_() const;
59 bool is_initial_delay_finished_() const;
60
61 void direction_idle_(float new_position = FLT_MAX);
63
65
67
73
79
80 uint32_t max_duration_{UINT32_MAX};
85
88 uint32_t start_dir_time_{0};
89 uint32_t last_publish_time_{0};
91
93};
94
95} // namespace current_based
96} // namespace esphome
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
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7