#pragma once #include "esphome/core/component.h" #include "esphome/components/tuya/tuya.h" #include "esphome/components/select/select.h" #include namespace esphome { namespace tuya { class TuyaSelect : public select::Select, public Component { public: void setup() override; void dump_config() override; void set_tuya_parent(Tuya *parent) { this->parent_ = parent; } void set_optimistic(bool optimistic) { this->optimistic_ = optimistic; } void set_select_id(uint8_t select_id, bool is_int) { this->select_id_ = select_id; this->is_int_ = is_int; } void set_select_mappings(std::vector mappings) { this->mappings_ = std::move(mappings); } protected: void control(const std::string &value) override; Tuya *parent_; bool optimistic_ = false; uint8_t select_id_; std::vector mappings_; bool is_int_ = false; }; } // namespace tuya } // namespace esphome