ESPHome  2024.3.1
Public Member Functions | Data Fields | Protected Member Functions | Protected Attributes
esphome::cover::Cover Class Referenceabstract

Base class for all cover devices. More...

#include <cover.h>

Inheritance diagram for esphome::cover::Cover:
esphome::EntityBase esphome::EntityBase_DeviceClass esphome::am43::Am43Component esphome::copy::CopyCover esphome::current_based::CurrentBasedCover esphome::demo::DemoCover esphome::endstop::EndstopCover esphome::feedback::FeedbackCover esphome::he60r::HE60rCover esphome::template_::TemplateCover esphome::time_based::TimeBasedCover esphome::tuya::TuyaCover

Public Member Functions

 Cover ()
 
CoverCall make_call ()
 Construct a new cover call used to control the cover. More...
 
 ESPDEPRECATED ("open() is deprecated, use make_call().set_command_open() instead.", "2021.9") void open()
 Open the cover. More...
 
 ESPDEPRECATED ("close() is deprecated, use make_call().set_command_close() instead.", "2021.9") void close()
 Close the cover. More...
 
 ESPDEPRECATED ("stop() is deprecated, use make_call().set_command_stop().perform() instead.", "2021.9") void stop()
 Stop the cover. More...
 
void add_on_state_callback (std::function< void()> &&f)
 
void publish_state (bool save=true)
 Publish the current state of the cover. More...
 
virtual CoverTraits get_traits ()=0
 
bool is_fully_open () const
 Helper method to check if the cover is fully open. Equivalent to comparing .position against 1.0. More...
 
bool is_fully_closed () const
 Helper method to check if the cover is fully closed. Equivalent to comparing .position against 0.0. More...
 
- Public Member Functions inherited from esphome::EntityBase
const StringRefget_name () const
 
void set_name (const char *name)
 
bool has_own_name () const
 
std::string get_object_id () const
 
void set_object_id (const char *object_id)
 
uint32_t get_object_id_hash ()
 
bool is_internal () const
 
void set_internal (bool internal)
 
bool is_disabled_by_default () const
 
void set_disabled_by_default (bool disabled_by_default)
 
EntityCategory get_entity_category () const
 
void set_entity_category (EntityCategory entity_category)
 
std::string get_icon () const
 
void set_icon (const char *icon)
 
- Public Member Functions inherited from esphome::EntityBase_DeviceClass
std::string get_device_class ()
 Get the device class, using the manual override if set. More...
 
void set_device_class (const char *device_class)
 Manually set the device class. More...
 

Data Fields

CoverOperation current_operation {COVER_OPERATION_IDLE}
 The current operation of the cover (idle, opening, closing). More...
 
float position
 The position of the cover from 0.0 (fully closed) to 1.0 (fully open). More...
 
float tilt {COVER_OPEN}
 The current tilt value of the cover from 0.0 to 1.0. More...
 

Protected Member Functions

virtual void control (const CoverCall &call)=0
 
optional< CoverRestoreStaterestore_state_ ()
 
- Protected Member Functions inherited from esphome::EntityBase
virtual uint32_t hash_base ()
 The hash_base() function has been deprecated. More...
 
void calc_object_id_ ()
 

Protected Attributes

friend CoverCall
 
CallbackManager< void()> state_callback_ {}
 
ESPPreferenceObject rtc_
 
- Protected Attributes inherited from esphome::EntityBase
StringRef name_
 
const char * object_id_c_str_ {nullptr}
 
const char * icon_c_str_ {nullptr}
 
uint32_t object_id_hash_
 
bool has_own_name_ {false}
 
bool internal_ {false}
 
bool disabled_by_default_ {false}
 
EntityCategory entity_category_ {ENTITY_CATEGORY_NONE}
 
- Protected Attributes inherited from esphome::EntityBase_DeviceClass
const char * device_class_ {nullptr}
 Device class override. More...
 

Detailed Description

Base class for all cover devices.

Covers currently have three properties:

For users: All cover operations must be performed over the .make_call() interface. To command a cover, use .make_call() to create a call object, set all properties you wish to set, and activate the command with .perform(). For reading out the current values of the cover, use the public .position, .tilt etc properties (these are read-only for users)

For integrations: Integrations must implement two methods: control() and get_traits(). Control will be called with the arguments supplied by the user and should be used to control all values of the cover. Also implement get_traits() to return what operations the cover supports.

Definition at line 111 of file cover.h.

Constructor & Destructor Documentation

◆ Cover()

esphome::cover::Cover::Cover ( )
explicit

Definition at line 34 of file cover.cpp.

Member Function Documentation

◆ add_on_state_callback()

void esphome::cover::Cover::add_on_state_callback ( std::function< void()> &&  f)

Definition at line 165 of file cover.cpp.

◆ control()

virtual void esphome::cover::Cover::control ( const CoverCall call)
protectedpure virtual

◆ ESPDEPRECATED() [1/3]

esphome::cover::Cover::ESPDEPRECATED ( "open() is  deprecated,
use make_call().set_command_open() instead."  ,
"2021.9"   
)

Open the cover.

This is a legacy method and may be removed later, please use .make_call() instead.

◆ ESPDEPRECATED() [2/3]

esphome::cover::Cover::ESPDEPRECATED ( "close() is  deprecated,
use make_call().set_command_close() instead."  ,
"2021.9"   
)

Close the cover.

This is a legacy method and may be removed later, please use .make_call() instead.

◆ ESPDEPRECATED() [3/3]

esphome::cover::Cover::ESPDEPRECATED ( "stop() is  deprecated,
use make_call().set_command_stop().perform() instead."  ,
"2021.9"   
)

Stop the cover.

This is a legacy method and may be removed later, please use .make_call() instead. As per solution from issue #2885 the call should include perform()

◆ get_traits()

virtual CoverTraits esphome::cover::Cover::get_traits ( )
pure virtual

◆ is_fully_closed()

bool esphome::cover::Cover::is_fully_closed ( ) const

Helper method to check if the cover is fully closed. Equivalent to comparing .position against 0.0.

Definition at line 209 of file cover.cpp.

◆ is_fully_open()

bool esphome::cover::Cover::is_fully_open ( ) const

Helper method to check if the cover is fully open. Equivalent to comparing .position against 1.0.

Definition at line 208 of file cover.cpp.

◆ make_call()

CoverCall esphome::cover::Cover::make_call ( )

Construct a new cover call used to control the cover.

Definition at line 149 of file cover.cpp.

◆ publish_state()

void esphome::cover::Cover::publish_state ( bool  save = true)

Publish the current state of the cover.

First set the .position, .tilt, etc values and then call this method to publish the state of the cover.

Parameters
saveWhether to save the updated values in RTC area.

Definition at line 166 of file cover.cpp.

◆ restore_state_()

optional< CoverRestoreState > esphome::cover::Cover::restore_state_ ( )
protected

Definition at line 200 of file cover.cpp.

Field Documentation

◆ CoverCall

friend esphome::cover::Cover::CoverCall
protected

Definition at line 167 of file cover.h.

◆ current_operation

CoverOperation esphome::cover::Cover::current_operation {COVER_OPERATION_IDLE}

The current operation of the cover (idle, opening, closing).

Definition at line 116 of file cover.h.

◆ position

float esphome::cover::Cover::position

The position of the cover from 0.0 (fully closed) to 1.0 (fully open).

For binary covers this is always equals to 0.0 or 1.0 (see also COVER_OPEN and COVER_CLOSED constants).

Definition at line 122 of file cover.h.

◆ rtc_

ESPPreferenceObject esphome::cover::Cover::rtc_
protected

Definition at line 175 of file cover.h.

◆ state_callback_

CallbackManager<void()> esphome::cover::Cover::state_callback_ {}
protected

Definition at line 173 of file cover.h.

◆ tilt

float esphome::cover::Cover::tilt {COVER_OPEN}

The current tilt value of the cover from 0.0 to 1.0.

Definition at line 124 of file cover.h.


The documentation for this class was generated from the following files: