ESPHome 2025.12.0-dev
Loading...
Searching...
No Matches
esphome::StatefulEntityBase< T > Class Template Reference

An entity that has a state. More...

#include <entity_base.h>

Inheritance diagram for esphome::StatefulEntityBase< T >:
esphome::EntityBase

Public Member Functions

virtual bool has_state () const
 
virtual const T & get_state () const
 
virtual T get_state_default (T default_value) const
 
void invalidate_state ()
 
void add_full_state_callback (std::function< void(optional< T > previous, optional< T > current)> &&callback)
 
void add_on_state_callback (std::function< void(T)> &&callback)
 
void set_trigger_on_initial_state (bool trigger_on_initial_state)
 
- 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)
 
ESPDEPRECATED("Use get_icon_ref() instead for better performance (avoids string copy). Will be removed in ESPHome 2026.5.0", "2025.11.0") std 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

bool set_state_ (const optional< T > &state)
 Set a new state for this entity.
 
- Protected Member Functions inherited from esphome::EntityBase
StringRef get_object_id_ref_for_api_ () const
 
void calc_object_id_ ()
 
bool is_object_id_dynamic_ () const
 Check if the object_id is dynamic (changes with MAC suffix)
 

Protected Attributes

optional< T > state_ {}
 
bool trigger_on_initial_state_ {true}
 
CallbackManager< void(optional< T > previous, optional< T > current)> * full_state_callbacks_ {}
 
CallbackManager< void(T)> * state_callbacks_ {}
 
- 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_ {}
 
Devicedevice_ {}
 
struct esphome::EntityBase::EntityFlags flags_
 

Detailed Description

template<typename T>
class esphome::StatefulEntityBase< T >

An entity that has a state.

Template Parameters
TThe type of the state

Definition at line 200 of file entity_base.h.

Member Function Documentation

◆ add_full_state_callback()

template<typename T >
void esphome::StatefulEntityBase< T >::add_full_state_callback ( std::function< void(optional< T > previous, optional< T > current)> && callback)
inline

Definition at line 207 of file entity_base.h.

◆ add_on_state_callback()

template<typename T >
void esphome::StatefulEntityBase< T >::add_on_state_callback ( std::function< void(T)> && callback)
inline

Definition at line 212 of file entity_base.h.

◆ get_state()

template<typename T >
virtual const T & esphome::StatefulEntityBase< T >::get_state ( ) const
inlinevirtual

Definition at line 203 of file entity_base.h.

◆ get_state_default()

template<typename T >
virtual T esphome::StatefulEntityBase< T >::get_state_default ( T default_value) const
inlinevirtual

Definition at line 204 of file entity_base.h.

◆ has_state()

template<typename T >
virtual bool esphome::StatefulEntityBase< T >::has_state ( ) const
inlinevirtual

Reimplemented in esphome::binary_sensor::BinarySensorInitiallyOff.

Definition at line 202 of file entity_base.h.

◆ invalidate_state()

template<typename T >
void esphome::StatefulEntityBase< T >::invalidate_state ( )
inline

Definition at line 205 of file entity_base.h.

◆ set_state_()

template<typename T >
bool esphome::StatefulEntityBase< T >::set_state_ ( const optional< T > & state)
inlineprotected

Set a new state for this entity.

This will trigger callbacks only if the new state is different from the previous.

Parameters
stateThe new state.
Returns
True if the state was changed, false if it was the same as before.

Definition at line 230 of file entity_base.h.

◆ set_trigger_on_initial_state()

template<typename T >
void esphome::StatefulEntityBase< T >::set_trigger_on_initial_state ( bool trigger_on_initial_state)
inline

Definition at line 218 of file entity_base.h.

Field Documentation

◆ full_state_callbacks_

template<typename T >
CallbackManager<void(optional<T> previous, optional<T> current)>* esphome::StatefulEntityBase< T >::full_state_callbacks_ {}
protected

Definition at line 247 of file entity_base.h.

◆ state_

template<typename T >
optional<T> esphome::StatefulEntityBase< T >::state_ {}
protected

Definition at line 223 of file entity_base.h.

◆ state_callbacks_

template<typename T >
CallbackManager<void(T)>* esphome::StatefulEntityBase< T >::state_callbacks_ {}
protected

Definition at line 248 of file entity_base.h.

◆ trigger_on_initial_state_

template<typename T >
bool esphome::StatefulEntityBase< T >::trigger_on_initial_state_ {true}
protected

Definition at line 245 of file entity_base.h.


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