|
ESPHome 2026.8.0-dev
|
Base class for all buttons. More...
#include <button.h>
Public Member Functions | |
| void | press () |
| Press this button. | |
| template<typename F > | |
| void | add_on_press_callback (F &&callback) |
| Set callback for state changes. | |
Public Member Functions inherited from esphome::EntityBase | |
| const StringRef & | get_name () const |
| bool | has_own_name () const |
| uint32_t | get_entity_key () const |
| ESPDEPRECATED ("Use get_entity_key() for the entity key sent to API clients, or " "make_entity_preference<T>() for preference storage. Will be removed in 2027.1.0.", "2026.8.0") uint32_t get_object_id_hash() const | |
| Returns the LEGACY object_id hash, unchanged from previous releases, so existing callers keep getting stable values (for example preference keys). | |
| 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 |
| template<typename T = int> | |
| StringRef | get_device_class_ref () const |
| template<typename T = int> | |
| std::string | get_device_class () const |
| ESPDEPRECATED ("Use get_device_class_to() instead. Will be removed in ESPHome 2026.9.0", "2026.3.0") StringRef get_device_class_ref() const | |
| ESPDEPRECATED("Use get_device_class_to() instead. Will be removed in ESPHome 2026.9.0", "2026.3.0") std StringRef | get_unit_of_measurement_ref () const |
| ESPDEPRECATED("Use get_unit_of_measurement_ref() instead for better performance (avoids string copy). Will be " "removed in ESPHome 2026.9.0", "2026.3.0") std const char * | get_icon_to (std::span< char, MAX_ICON_LENGTH > buffer) const |
| Get the unit of measurement as std::string (deprecated, prefer get_unit_of_measurement_ref()) | |
| template<typename T = int> | |
| StringRef | get_icon_ref () const |
| template<typename T = int> | |
| std::string | get_icon () const |
| ESPDEPRECATED ("Use get_icon_to() instead. Will be removed in ESPHome 2026.9.0", "2026.3.0") StringRef get_icon_ref() const | |
| ESPDEPRECATED("Use get_icon_to() instead. Will be removed in ESPHome 2026.9.0", "2026.3.0") std uint32_t | get_device_id () const |
| Device * | get_device () const |
| bool | has_state () const |
| void | set_has_state (bool state) |
| uint32_t | get_device_id_or_zero () const |
| Get this entity's device id, or 0 when devices are not compiled in (main device). | |
| 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.8.0") uint32_t get_preference_hash() | |
| Get the LEGACY preference key: FNV-1 hash of the sanitized object_id, XOR device_id. | |
| template<typename T > | |
| ESPPreferenceObject | make_entity_preference (uint32_t version=0) |
| Create a preference object for storing this entity's state/settings. | |
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 | |
| friend | void::setup () |
| friend | void::original_setup () |
| void | configure_entity_ (const char *name, uint32_t entity_key, uint32_t entity_fields) |
| Combined entity setup from codegen: set name, entity key, 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_entity_key_ () |
| uint32_t | calc_old_object_id_hash_ () const |
| Reconstruct the OLD (pre-2026.8.0) sanitized-object_id hash for preference keys. | |
| uint32_t | preference_key_base_ () const |
| Preference key base for this entity: raw-name entity key XOR device_id. | |
| uint32_t | old_preference_key_base_ () const |
| Legacy preference key base: sanitized-object_id hash XOR device_id. | |
Protected Attributes | |
| LazyCallbackManager< void()> | press_callback_ {} |
Protected Attributes inherited from esphome::EntityBase | |
| StringRef | name_ |
| uint32_t | entity_key_ {} |
| Device * | device_ {} |
| struct esphome::EntityBase::EntityFlags | flags_ |
| uint8_t | device_class_idx_ {} |
| uint8_t | uom_idx_ {} |
| uint8_t | icon_idx_ {} |
Base class for all buttons.
A button is just a momentary switch that does not have a state, only a trigger.
|
inline |
| 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.
|
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::ld6002b::LD6002BButton, 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.
|
protected |