ESPHome 2026.1.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
 
ESPDEPRECATED("object_id mangles names and all object_id methods are planned for removal " "(see https://github.com/esphome/backlog/issues/76). " "Now is the time to stop using object_id. If still needed, use get_object_id_to() " "which will remain available longer. get_object_id() will be removed in 2026.7.0", "2025.12.0") std void set_object_id (const char *object_id)
 
void set_name_and_object_id (const char *name, const char *object_id)
 
uint32_t get_object_id_hash ()
 
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
 
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

virtual bool set_new_state (const optional< T > &new_state)
 Set a new state for this entity.
 
- Protected Member Functions inherited from esphome::EntityBase
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 209 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 216 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 221 of file entity_base.h.

◆ get_state()

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

Definition at line 212 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 213 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 211 of file entity_base.h.

◆ invalidate_state()

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

Definition at line 214 of file entity_base.h.

◆ set_new_state()

template<typename T >
virtual bool esphome::StatefulEntityBase< T >::set_new_state ( const optional< T > & new_state)
inlineprotectedvirtual

Set a new state for this entity.

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

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

Reimplemented in esphome::binary_sensor::BinarySensor.

Definition at line 239 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 227 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 256 of file entity_base.h.

◆ state_

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

Definition at line 232 of file entity_base.h.

◆ state_callbacks_

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

Definition at line 257 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 254 of file entity_base.h.


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