ESPHome 2026.11.0-dev
Loading...
Searching...
No Matches
copy_select.cpp
Go to the documentation of this file.
1#include "copy_select.h"
2#include "esphome/core/log.h"
3
4namespace esphome::copy {
5
6ESPHOME_LOG_TAG(TAG, "copy.select");
7
9 source_->add_on_state_callback([this](size_t index) { this->publish_state(index); });
10
12
13 auto idx = this->source_->active_index();
14 if (idx.has_value())
15 this->publish_state(*idx);
16}
17
18void CopySelect::dump_config() { LOG_SELECT("", "Copy Select", this); }
19
20void CopySelect::control(size_t index) {
21 auto call = source_->make_call();
22 call.set_index(index);
23 call.perform();
24}
25
26} // namespace esphome::copy
void control(size_t index) override
select::Select * source_
Definition copy_select.h:17
void dump_config() override
SelectCall & set_index(size_t index)
void add_on_state_callback(F &&callback)
Definition select.h:73
SelectCall make_call()
Instantiate a SelectCall object to modify this select component's state.
Definition select.h:47
optional< size_t > active_index() const
Return the (optional) index offset of the currently active option.
Definition select.cpp:45
SelectTraits traits
Definition select.h:30
void publish_state(const std::string &state)
Definition select.h:35
void set_options(const SelectOptions &options)
Runtime lists: the pointer list is copied, as before; the strings must still outlive the select.
const SelectOptions & get_options() const
ESPHOME_LOG_TAG(TAG, "copy.binary_sensor")