|
ESPHome 2026.1.0-dev
|
Base-class for all selects. More...
#include <select.h>
Public Member Functions | |
| ESPDEPRECATED("Use current_option() instead of .state. Will be removed in 2026.5.0", "2025.11.0") std | Select ()=default |
| ~Select ()=default | |
| void | publish_state (const std::string &state) |
| void | publish_state (const char *state) |
| void | publish_state (size_t index) |
| const char * | current_option () const |
| Return the currently selected option (as const char* from flash). | |
| SelectCall | make_call () |
| Instantiate a SelectCall object to modify this select component's state. | |
| bool | has_option (const std::string &option) const |
| Return whether this select component contains the provided option. | |
| bool | has_option (const char *option) const |
| bool | has_index (size_t index) const |
| Return whether this select component contains the provided index offset. | |
| size_t | size () const |
| Return the number of options in this select component. | |
| optional< size_t > | index_of (const char *option, size_t len) const |
| Find the (optional) index offset of the provided option value. | |
| optional< size_t > | index_of (const std::string &option) const |
| optional< size_t > | index_of (const char *option) const |
| optional< size_t > | active_index () const |
| Return the (optional) index offset of the currently active option. | |
| optional< std::string > | at (size_t index) const |
| Return the (optional) option value at the provided index offset. | |
| const char * | option_at (size_t index) const |
| Return the option value at the provided index offset (as const char* from flash). | |
| void | add_on_state_callback (std::function< void(size_t)> &&callback) |
Public Member Functions inherited from esphome::EntityBase | |
| const StringRef & | get_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. | |
Data Fields | |
| SelectTraits | traits |
Protected Member Functions | |
| virtual void | control (size_t index) |
| Set the value of the select by index, this is an optional virtual method. | |
| virtual void | control (const std::string &value) |
| Set the value of the select, this is a virtual method that each select integration can implement. | |
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 | |
| size_t | active_index_ {0} |
| LazyCallbackManager< void(size_t)> | state_callback_ |
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_ {} |
| Device * | device_ {} |
| struct esphome::EntityBase::EntityFlags | flags_ |
Base-class for all selects.
A select can use publish_state to send out a new value.
|
default |
|
default |
| optional< size_t > esphome::select::Select::active_index | ( | ) | const |
Return the (optional) index offset of the currently active option.
Definition at line 68 of file select.cpp.
| void esphome::select::Select::add_on_state_callback | ( | std::function< void(size_t)> && | callback | ) |
Definition at line 43 of file select.cpp.
| optional< std::string > esphome::select::Select::at | ( | size_t | index | ) | const |
Return the (optional) option value at the provided index offset.
Definition at line 75 of file select.cpp.
|
inlineprotectedvirtual |
Set the value of the select, this is a virtual method that each select integration can implement.
IMPORTANT: At least ONE of the two control() methods must be overridden by derived classes. Overriding control(size_t) is PREFERRED as it avoids string conversions.
This method is called by control(size_t) when not overridden, or directly by external code. Default implementation converts to index and calls control(size_t).
| value | The value as validated by the caller. |
|
inlineprotectedvirtual |
Set the value of the select by index, this is an optional virtual method.
IMPORTANT: At least ONE of the two control() methods must be overridden by derived classes. Overriding this index-based version is PREFERRED as it avoids string conversions.
This method is called by the SelectCall when the index is already known. Default implementation converts to string and calls control(const std::string&).
| index | The index as validated by the SelectCall. |
Reimplemented in esphome::copy::CopySelect, esphome::demo::DemoSelect, esphome::es8388::ADCInputMicSelect, esphome::es8388::DacOutputSelect, esphome::ld2410::BaudRateSelect, esphome::ld2410::DistanceResolutionSelect, esphome::ld2410::LightOutControlSelect, esphome::ld2412::BaudRateSelect, esphome::ld2412::DistanceResolutionSelect, esphome::ld2412::LightOutControlSelect, esphome::ld2420::LD2420Select, esphome::ld2450::BaudRateSelect, esphome::ld2450::ZoneTypeSelect, esphome::logger::LoggerLevelSelect, esphome::lvgl::LVGLSelect, esphome::modbus_controller::ModbusSelect, esphome::seeed_mr24hpc1::ExistenceBoundarySelect, esphome::seeed_mr24hpc1::MotionBoundarySelect, esphome::seeed_mr24hpc1::SceneModeSelect, esphome::seeed_mr24hpc1::UnmanTimeSelect, esphome::seeed_mr60fda2::HeightThresholdSelect, esphome::seeed_mr60fda2::InstallHeightSelect, esphome::seeed_mr60fda2::SensitivitySelect, esphome::template_::TemplateSelect, and esphome::tuya::TuyaSelect.
| const char * esphome::select::Select::current_option | ( | ) | const |
Return the currently selected option (as const char* from flash).
Definition at line 41 of file select.cpp.
| bool esphome::select::Select::has_index | ( | size_t | index | ) | const |
Return whether this select component contains the provided index offset.
Definition at line 51 of file select.cpp.
| bool esphome::select::Select::has_option | ( | const char * | option | ) | const |
Definition at line 49 of file select.cpp.
| bool esphome::select::Select::has_option | ( | const std::string & | option | ) | const |
Return whether this select component contains the provided option.
Definition at line 47 of file select.cpp.
|
inline |
| optional< size_t > esphome::select::Select::index_of | ( | const char * | option, |
| size_t | len ) const |
Find the (optional) index offset of the provided option value.
Definition at line 58 of file select.cpp.
|
inline |
|
inline |
Instantiate a SelectCall object to modify this select component's state.
| const char * esphome::select::Select::option_at | ( | size_t | index | ) | const |
Return the option value at the provided index offset (as const char* from flash).
Definition at line 83 of file select.cpp.
| void esphome::select::Select::publish_state | ( | const char * | state | ) |
Definition at line 13 of file select.cpp.
| void esphome::select::Select::publish_state | ( | const std::string & | state | ) |
Definition at line 11 of file select.cpp.
| void esphome::select::Select::publish_state | ( | size_t | index | ) |
Definition at line 22 of file select.cpp.
| size_t esphome::select::Select::size | ( | ) | const |
Return the number of options in this select component.
Definition at line 53 of file select.cpp.
|
protected |
| SelectTraits esphome::select::Select::traits |