diff --git a/esphome/components/dynamic_lamp/dynamic_lamp.cpp b/esphome/components/dynamic_lamp/dynamic_lamp.cpp index ade35a498a..1264e478ba 100644 --- a/esphome/components/dynamic_lamp/dynamic_lamp.cpp +++ b/esphome/components/dynamic_lamp/dynamic_lamp.cpp @@ -6,6 +6,11 @@ #include #include #include +#include +#include +#include +#include + namespace esphome { namespace dynamic_lamp { @@ -88,8 +93,9 @@ void DynamicLamp::set_save_mode(uint8_t save_mode) { this->save_mode_ = save_mode; } -void DynamicLamp::set_available_outputs(std::string output_list) { +void DynamicLamp::set_available_outputs(std::list output_list) { uint8_t counter = 0; + /* std::vector v; char * token = strtok (&output_list[0],","); @@ -108,6 +114,17 @@ void DynamicLamp::set_available_outputs(std::string output_list) { }; counter++; } + */ + std::list::iterator output_it; + for (output_it = data.begin(); output_it != data.end(); ++output_it){ + this->available_outputs_[counter] = LinkedOutput{ + true, + static_cast(this->trim_(output_it.id)), + counter, + 0, 0, 1.0, false + }; + counter++; + } } uint8_t DynamicLamp::add_lamp() { diff --git a/esphome/components/dynamic_lamp/dynamic_lamp.h b/esphome/components/dynamic_lamp/dynamic_lamp.h index 2b7984b0ba..fb1379e0b1 100644 --- a/esphome/components/dynamic_lamp/dynamic_lamp.h +++ b/esphome/components/dynamic_lamp/dynamic_lamp.h @@ -1,6 +1,7 @@ #pragma once #include "esphome/core/component.h" +#include "esphome/components/output/float_output.h" namespace esphome { namespace dynamic_lamp { @@ -37,7 +38,7 @@ class DynamicLamp : public Component { void setup() override; void loop() override; void dump_config() override; - void set_available_outputs(std::string output_list); + void set_available_outputs(std::list output_list); void set_save_mode(uint8_t save_mode); protected: