ESPHome 2026.2.1
Loading...
Searching...
No Matches
esphome::button::Button Class Referenceabstract

Base class for all buttons. More...

#include <button.h>

Inheritance diagram for esphome::button::Button:
esphome::EntityBase esphome::EntityBase_DeviceClass esphome::atm90e32::ATM90E32ClearGainCalibrationButton esphome::atm90e32::ATM90E32ClearOffsetCalibrationButton esphome::atm90e32::ATM90E32ClearPowerOffsetCalibrationButton esphome::atm90e32::ATM90E32GainCalibrationButton esphome::atm90e32::ATM90E32OffsetCalibrationButton esphome::atm90e32::ATM90E32PowerOffsetCalibrationButton esphome::bl0940::CalibrationResetButton esphome::copy::CopyButton esphome::demo::DemoButton esphome::factory_reset::FactoryResetButton esphome::haier::SelfCleaningButton esphome::haier::SteriCleaningButton esphome::ld2410::FactoryResetButton esphome::ld2410::QueryButton esphome::ld2410::RestartButton esphome::ld2412::FactoryResetButton esphome::ld2412::QueryButton esphome::ld2412::RestartButton esphome::ld2412::StartDynamicBackgroundCorrectionButton esphome::ld2420::LD2420ApplyConfigButton esphome::ld2420::LD2420FactoryResetButton esphome::ld2420::LD2420RestartModuleButton esphome::ld2420::LD2420RevertConfigButton esphome::ld2450::FactoryResetButton esphome::ld2450::RestartButton esphome::micronova::MicroNovaButton esphome::output::OutputButton esphome::restart::RestartButton esphome::safe_mode::SafeModeButton esphome::seeed_mr24hpc1::CustomSetEndButton esphome::seeed_mr24hpc1::RestartButton esphome::seeed_mr60fda2::GetRadarParametersButton esphome::seeed_mr60fda2::ResetRadarButton esphome::shutdown::ShutdownButton esphome::template_::TemplateButton esphome::uart::UARTButton esphome::wake_on_lan::WakeOnLanButton

Public Member Functions

void press ()
 Press this button.
 
void add_on_press_callback (std::function< void()> &&callback)
 Set callback for state changes.
 
- Public Member Functions inherited from esphome::EntityBase
const StringRefget_name () const
 
void set_name (const char *name)
 
void set_name (const char *name, uint32_t object_id_hash)
 Set name with pre-computed object_id hash (avoids runtime hash calculation) Use hash=0 for dynamic names that need runtime calculation.
 
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 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)
 
Deviceget_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.
 
- Public Member Functions inherited from esphome::EntityBase_DeviceClass
ESPDEPRECATED("Use get_device_class_ref() instead for better performance (avoids string copy). Will be removed in " "ESPHome 2026.5.0", "2025.11.0") std void set_device_class (const char *device_class)
 Get the device class, using the manual override if set.
 
StringRef get_device_class_ref () const
 Get the device class as StringRef.
 

Protected Member Functions

virtual void press_action ()=0
 You should implement this virtual method if you want to create your own button.
 
- Protected Member Functions inherited from esphome::EntityBase
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

LazyCallbackManager< void()> press_callback_ {}
 
- Protected Attributes inherited from esphome::EntityBase
StringRef name_
 
const char * icon_c_str_ {nullptr}
 
uint32_t object_id_hash_ {}
 
Devicedevice_ {}
 
struct esphome::EntityBase::EntityFlags flags_
 
- Protected Attributes inherited from esphome::EntityBase_DeviceClass
const char * device_class_ {nullptr}
 Device class override.
 

Detailed Description

Base class for all buttons.

A button is just a momentary switch that does not have a state, only a trigger.

Definition at line 25 of file button.h.

Member Function Documentation

◆ add_on_press_callback()

void esphome::button::Button::add_on_press_callback ( std::function< void()> && callback)

Set callback for state changes.

Parameters
callbackThe void() callback.

Definition at line 23 of file button.cpp.

◆ press()

void esphome::button::Button::press ( )

Press this button.

This is called by the front-end.

For implementing buttons, please override press_action.

Definition at line 18 of file button.cpp.

◆ press_action()

virtual void esphome::button::Button::press_action ( )
protectedpure virtual

You should implement this virtual method if you want to create your own button.

Implemented in esphome::atm90e32::ATM90E32ClearGainCalibrationButton, esphome::atm90e32::ATM90E32ClearOffsetCalibrationButton, esphome::atm90e32::ATM90E32ClearPowerOffsetCalibrationButton, esphome::atm90e32::ATM90E32GainCalibrationButton, esphome::atm90e32::ATM90E32OffsetCalibrationButton, esphome::atm90e32::ATM90E32PowerOffsetCalibrationButton, esphome::bl0940::CalibrationResetButton, esphome::copy::CopyButton, esphome::demo::DemoButton, esphome::factory_reset::FactoryResetButton, esphome::haier::SelfCleaningButton, esphome::haier::SteriCleaningButton, esphome::ld2410::FactoryResetButton, esphome::ld2410::QueryButton, esphome::ld2410::RestartButton, esphome::ld2412::FactoryResetButton, esphome::ld2412::QueryButton, esphome::ld2412::RestartButton, esphome::ld2412::StartDynamicBackgroundCorrectionButton, esphome::ld2420::LD2420ApplyConfigButton, esphome::ld2420::LD2420FactoryResetButton, esphome::ld2420::LD2420RestartModuleButton, esphome::ld2420::LD2420RevertConfigButton, esphome::ld2450::FactoryResetButton, esphome::ld2450::RestartButton, esphome::micronova::MicroNovaButton, esphome::output::OutputButton, esphome::restart::RestartButton, esphome::safe_mode::SafeModeButton, esphome::seeed_mr24hpc1::CustomSetEndButton, esphome::seeed_mr24hpc1::RestartButton, esphome::seeed_mr60fda2::GetRadarParametersButton, esphome::seeed_mr60fda2::ResetRadarButton, esphome::shutdown::ShutdownButton, esphome::template_::TemplateButton, esphome::uart::UARTButton, and esphome::wake_on_lan::WakeOnLanButton.

Field Documentation

◆ press_callback_

LazyCallbackManager<void()> esphome::button::Button::press_callback_ {}
protected

Definition at line 44 of file button.h.


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