|
ESPHome 2025.12.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 std::string &option) const |
| Find the (optional) index offset of the provided option value. | |
| 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(std::string, 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 |
| 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. | |
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 | |
| 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 | |
| size_t | active_index_ {0} |
| CallbackManager< void(std::string, 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 72 of file select.cpp.
| void esphome::select::Select::add_on_state_callback | ( | std::function< void(std::string, size_t)> && | callback | ) |
Definition at line 45 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 79 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 43 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 53 of file select.cpp.
| bool esphome::select::Select::has_option | ( | const char * | option | ) | const |
Definition at line 51 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 49 of file select.cpp.
| optional< size_t > esphome::select::Select::index_of | ( | const char * | option | ) | const |
Definition at line 62 of file select.cpp.
| optional< size_t > esphome::select::Select::index_of | ( | const std::string & | option | ) | const |
Find the (optional) index offset of the provided option value.
Definition at line 60 of file select.cpp.
|
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 87 of file select.cpp.
| void esphome::select::Select::publish_state | ( | const char * | state | ) |
Definition at line 14 of file select.cpp.
| void esphome::select::Select::publish_state | ( | const std::string & | state | ) |
Definition at line 12 of file select.cpp.
| void esphome::select::Select::publish_state | ( | size_t | index | ) |
Definition at line 23 of file select.cpp.
| size_t esphome::select::Select::size | ( | ) | const |
Return the number of options in this select component.
Definition at line 55 of file select.cpp.
|
protected |
| SelectTraits esphome::select::Select::traits |