|
ESPHome 2026.10.0-dev
|
Base class for all cover devices. More...
#include <cover.h>
Public Member Functions | |
| Cover () | |
| CoverCall | make_call () |
| Construct a new cover call used to control the cover. | |
| template<typename F > | |
| void | add_on_state_callback (F &&f) |
| void | publish_state (bool save=true) |
| Publish the current state of the cover. | |
| 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. | |
| bool | is_fully_closed () const |
| Helper method to check if the cover is fully closed. Equivalent to comparing .position against 0.0. | |
Public Member Functions inherited from esphome::EntityBase | |
| const StringRef & | get_name () const |
| bool | has_own_name () const |
| uint32_t | get_object_id_hash () const |
| StringRef | get_object_id_to (std::span< char, OBJECT_ID_MAX_LEN > buf) const |
| Get object_id with zero heap allocation For static case: returns StringRef to internal storage (buffer unused) For dynamic case: formats into buffer and returns StringRef to buffer. | |
| size_t | write_object_id_to (char *buf, size_t buf_size) const |
| Write object_id directly to buffer, returns length written (excluding null) Useful for building compound strings without intermediate buffer. | |
| bool | is_internal () const |
| ESPDEPRECATED ("set_internal() is undefined behavior at runtime — components and Home Assistant are NOT " "notified. Use the 'internal:' YAML key instead. Will be removed in 2027.3.0.", "2026.3.0") void set_internal(bool internal) | |
| bool | is_disabled_by_default () const |
| EntityCategory | get_entity_category () const |
| const char * | get_device_class_to (std::span< char, MAX_DEVICE_CLASS_LENGTH > buffer) const |
| StringRef | get_unit_of_measurement_ref () const |
| const char * | get_icon_to (std::span< char, MAX_ICON_LENGTH > buffer) const |
| uint32_t | get_device_id () const |
| Device * | get_device () const |
| bool | has_state () const |
| void | set_has_state (bool state) |
| ESPDEPRECATED ("Use make_entity_preference<T>() instead, or preferences won't be migrated. " "See https://github.com/esphome/backlog/issues/85. Will be removed in 2027.1.0.", "2026.7.0") uint32_t get_preference_hash() | |
| Get a unique hash for storing preferences/settings for this entity. | |
| template<typename T > | |
| ESPPreferenceObject | make_entity_preference (uint32_t version=0) |
| Create a preference object for storing this entity's state/settings. | |
Data Fields | |
| CoverOperation | current_operation {COVER_OPERATION_IDLE} |
| The current operation of the cover (idle, opening, closing). | |
| float | position |
| The position of the cover from 0.0 (fully closed) to 1.0 (fully open). | |
| float | tilt {COVER_OPEN} |
| The current tilt value of the cover from 0.0 to 1.0. | |
Protected Member Functions | |
| virtual void | control (const CoverCall &call)=0 |
| optional< CoverRestoreState > | restore_state_ () |
Protected Member Functions inherited from esphome::EntityBase | |
| friend | void::setup () |
| friend | void::original_setup () |
| void | configure_entity_ (const char *name, uint32_t object_id_hash, uint32_t entity_fields) |
| Combined entity setup from codegen: set name, object_id hash, entity string indices, and flags. | |
| void | set_device_ (Device *device) |
| ESPPreferenceObject | make_entity_preference_ (size_t size, uint32_t version) |
| Non-template helper for make_entity_preference() to avoid code bloat. | |
| void | calc_object_id_ () |
Protected Attributes | |
| friend | CoverCall |
| LazyCallbackManager< void()> | state_callback_ {} |
| ESPPreferenceObject | rtc_ |
Protected Attributes inherited from esphome::EntityBase | |
| StringRef | name_ |
| uint32_t | object_id_hash_ {} |
| Device * | device_ {} |
| struct esphome::EntityBase::EntityFlags | flags_ |
| uint8_t | device_class_idx_ {} |
| uint8_t | uom_idx_ {} |
| uint8_t | icon_idx_ {} |
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.
|
inline |
|
protectedpure virtual |
Implemented in esphome::am43::Am43Component, esphome::copy::CopyCover, esphome::current_based::CurrentBasedCover, esphome::demo::DemoCover, esphome::endstop::EndstopCover, esphome::feedback::FeedbackCover, esphome::he60r::HE60rCover, esphome::hoermann_hcp::HoermannHcpCover, esphome::template_::TemplateCover, esphome::time_based::TimeBasedCover, esphome::tormatic::Tormatic, and esphome::tuya::TuyaCover.
|
pure virtual |
Implemented in esphome::am43::Am43Component, esphome::copy::CopyCover, esphome::current_based::CurrentBasedCover, esphome::demo::DemoCover, esphome::endstop::EndstopCover, esphome::feedback::FeedbackCover, esphome::he60r::HE60rCover, esphome::hoermann_hcp::HoermannHcpCover, esphome::template_::TemplateCover, esphome::time_based::TimeBasedCover, esphome::tormatic::Tormatic, and esphome::tuya::TuyaCover.
|
inline |
|
inline |
|
inline |
| void esphome::cover::Cover::publish_state | ( | bool | save = true | ) |
|
protected |
| CoverOperation esphome::cover::Cover::current_operation {COVER_OPERATION_IDLE} |
| float esphome::cover::Cover::position |
|
protected |
|
protected |
| float esphome::cover::Cover::tilt {COVER_OPEN} |