mirror of
https://github.com/esphome/esphome.git
synced 2025-09-09 14:52:20 +01:00
fix: update DynamicLamp to use availability state and improve warning handling
This commit is contained in:
@@ -85,7 +85,7 @@ void DynamicLamp::dump_config() {
|
|||||||
this->save_mode_ = 0;
|
this->save_mode_ = 0;
|
||||||
}
|
}
|
||||||
for (uint8_t i = 0; i < 16; i++) {
|
for (uint8_t i = 0; i < 16; i++) {
|
||||||
if (this->available_outputs_[i].active) {
|
if (this->available_outputs_[i].available) {
|
||||||
ESP_LOGCONFIG(TAG, "Using output with id %s as output number %" PRIu8 "", this->available_outputs_[i].output_id.c_str(), i);
|
ESP_LOGCONFIG(TAG, "Using output with id %s as output number %" PRIu8 "", this->available_outputs_[i].output_id.c_str(), i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -102,6 +102,7 @@ void DynamicLamp::add_available_output(output::FloatOutput * output, std::string
|
|||||||
}
|
}
|
||||||
this->available_outputs_[counter] = LinkedOutput{
|
this->available_outputs_[counter] = LinkedOutput{
|
||||||
true,
|
true,
|
||||||
|
false,
|
||||||
output_id,
|
output_id,
|
||||||
counter,
|
counter,
|
||||||
output,
|
output,
|
||||||
@@ -119,21 +120,21 @@ void DynamicLamp::add_lamp_(std::string name) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ESP_LOGW(TAG, "No more lamps available, max 16 lamps supported!");
|
ESP_LOGW(TAG, "No more lamps available, max 16 lamps supported!");
|
||||||
this->set_warning_state(true);
|
this->status_set_warning();
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DynamicLamp::add_lamp_output_(std::string lamp_name, LinkedOutput output) {
|
void DynamicLamp::add_lamp_output_(std::string lamp_name, LinkedOutput output) {
|
||||||
|
uint8_t i = 0;
|
||||||
while (i < 16) {
|
while (i < 16) {
|
||||||
if (this->active_lamps_[i].name == lamp_name) {
|
if (this->active_lamps_[i].name == lamp_name) {
|
||||||
this->active_lamps_[lamp_number].used_outputs[output.output_index] = true;
|
this->active_lamps_[i].used_outputs[output.output_index] = true;
|
||||||
output.in_use = true;
|
output.in_use = true;
|
||||||
ESP_LOGV(TAG, "Added output %s to lamp %s", output.output_id.c_str(), lamp_name.c_str());
|
ESP_LOGV(TAG, "Added output %s to lamp %s", output.output_id.c_str(), lamp_name.c_str());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
this->set_warning_state(true);
|
this->status_set_warning();
|
||||||
ESP_LOGW(TAG, "No lamp with name %s defined !", lamp_name.c_str());
|
ESP_LOGW(TAG, "No lamp with name %s defined !", lamp_name.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user