ESPHome 2025.10.0-dev
Loading...
Searching...
No Matches
esphome::EntityBase Class Reference

#include <entity_base.h>

Inheritance diagram for esphome::EntityBase:
esphome::StatefulEntityBase< bool > esphome::StatefulEntityBase< T > esphome::alarm_control_panel::AlarmControlPanel esphome::button::Button esphome::camera::Camera esphome::climate::Climate esphome::cover::Cover esphome::datetime::DateTimeBase esphome::event::Event esphome::fan::Fan esphome::light::LightState esphome::lock::Lock esphome::media_player::MediaPlayer esphome::number::Number esphome::select::Select esphome::sensor::Sensor esphome::switch_::Switch esphome::text::Text esphome::text_sensor::TextSensor esphome::update::UpdateEntity esphome::valve::Valve

Data Structures

struct  EntityFlags
 

Public Member Functions

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)
 
StringRef get_icon_ref () const
 
uint32_t get_device_id () const
 
void set_device (Device *device)
 
bool has_state () const
 
void set_has_state (bool state)
 
uint32_t get_preference_hash ()
 Get a unique hash for storing preferences/settings for this entity.
 

Protected Member Functions

StringRef get_object_id_ref_for_api_ () const
 
virtual uint32_t hash_base ()
 The hash_base() function has been deprecated.
 
void calc_object_id_ ()
 
bool is_object_id_dynamic_ () const
 Check if the object_id is dynamic (changes with MAC suffix)
 

Protected Attributes

StringRef name_
 
const char * object_id_c_str_ {nullptr}
 
const char * icon_c_str_ {nullptr}
 
uint32_t object_id_hash_ {}
 
Devicedevice_ {}
 
struct esphome::EntityBase::EntityFlags flags_
 

Detailed Description

Definition at line 27 of file entity_base.h.

Member Function Documentation

◆ calc_object_id_()

void esphome::EntityBase::calc_object_id_ ( )
protected

Definition at line 78 of file entity_base.cpp.

◆ get_device_id()

uint32_t esphome::EntityBase::get_device_id ( ) const
inline

Definition at line 73 of file entity_base.h.

◆ get_entity_category()

EntityCategory esphome::EntityBase::get_entity_category ( ) const
inline

Definition at line 54 of file entity_base.h.

◆ get_icon()

std::string esphome::EntityBase::get_icon ( ) const

Definition at line 30 of file entity_base.cpp.

◆ get_icon_ref()

StringRef esphome::EntityBase::get_icon_ref ( ) const
inline

Definition at line 62 of file entity_base.h.

◆ get_name()

const StringRef & esphome::EntityBase::get_name ( ) const

Definition at line 11 of file entity_base.cpp.

◆ get_object_id()

std::string esphome::EntityBase::get_object_id ( ) const

Definition at line 54 of file entity_base.cpp.

◆ get_object_id_hash()

uint32_t esphome::EntityBase::get_object_id_hash ( )

Definition at line 83 of file entity_base.cpp.

◆ get_object_id_ref_for_api_()

StringRef esphome::EntityBase::get_object_id_ref_for_api_ ( ) const
protected

Definition at line 63 of file entity_base.cpp.

◆ get_preference_hash()

uint32_t esphome::EntityBase::get_preference_hash ( )
inline

Get a unique hash for storing preferences/settings for this entity.

This method returns a hash that uniquely identifies the entity for the purpose of storing preferences (such as calibration, state, etc.). Unlike get_object_id_hash(), this hash also incorporates the device_id (if devices are enabled), ensuring uniqueness across multiple devices that may have entities with the same object_id.

Use this method when storing or retrieving preferences/settings that should be unique per device-entity pair. Use get_object_id_hash() when you need a hash that identifies the entity regardless of the device it belongs to.

For backward compatibility, if device_id is 0 (the main device), the hash is unchanged from previous versions, so existing single-device configurations will continue to work.

Returns
uint32_t The unique hash for preferences, including device_id if available.

Definition at line 105 of file entity_base.h.

◆ has_own_name()

bool esphome::EntityBase::has_own_name ( ) const
inline

Definition at line 34 of file entity_base.h.

◆ has_state()

bool esphome::EntityBase::has_state ( ) const
inline

Definition at line 83 of file entity_base.h.

◆ hash_base()

virtual uint32_t esphome::EntityBase::hash_base ( )
inlineprotectedvirtual

The hash_base() function has been deprecated.

It is kept in this class for now, to prevent external components from not compiling.

Definition at line 126 of file entity_base.h.

◆ is_disabled_by_default()

bool esphome::EntityBase::is_disabled_by_default ( ) const
inline

Definition at line 50 of file entity_base.h.

◆ is_internal()

bool esphome::EntityBase::is_internal ( ) const
inline

Definition at line 44 of file entity_base.h.

◆ is_object_id_dynamic_()

bool esphome::EntityBase::is_object_id_dynamic_ ( ) const
protected

Check if the object_id is dynamic (changes with MAC suffix)

Definition at line 49 of file entity_base.cpp.

◆ set_device()

void esphome::EntityBase::set_device ( Device * device)
inline

Definition at line 79 of file entity_base.h.

◆ set_disabled_by_default()

void esphome::EntityBase::set_disabled_by_default ( bool disabled_by_default)
inline

Definition at line 51 of file entity_base.h.

◆ set_entity_category()

void esphome::EntityBase::set_entity_category ( EntityCategory entity_category)
inline

Definition at line 55 of file entity_base.h.

◆ set_has_state()

void esphome::EntityBase::set_has_state ( bool state)
inline

Definition at line 86 of file entity_base.h.

◆ set_icon()

void esphome::EntityBase::set_icon ( const char * icon)

Definition at line 40 of file entity_base.cpp.

◆ set_internal()

void esphome::EntityBase::set_internal ( bool internal)
inline

Definition at line 45 of file entity_base.h.

◆ set_name()

void esphome::EntityBase::set_name ( const char * name)

Definition at line 12 of file entity_base.cpp.

◆ set_object_id()

void esphome::EntityBase::set_object_id ( const char * object_id)

Definition at line 72 of file entity_base.cpp.

Field Documentation

◆ device_

Device* esphome::EntityBase::device_ {}
protected

Definition at line 139 of file entity_base.h.

◆ flags_

struct esphome::EntityBase::EntityFlags esphome::EntityBase::flags_
protected

◆ icon_c_str_

const char* esphome::EntityBase::icon_c_str_ {nullptr}
protected

Definition at line 135 of file entity_base.h.

◆ name_

StringRef esphome::EntityBase::name_
protected

Definition at line 132 of file entity_base.h.

◆ object_id_c_str_

const char* esphome::EntityBase::object_id_c_str_ {nullptr}
protected

Definition at line 133 of file entity_base.h.

◆ object_id_hash_

uint32_t esphome::EntityBase::object_id_hash_ {}
protected

Definition at line 137 of file entity_base.h.


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