From 5abdff81c1801dd31ab1e1b18951037b4dfc9caf Mon Sep 17 00:00:00 2001 From: Oliver Kleinecke Date: Wed, 19 Feb 2025 19:58:30 +0100 Subject: [PATCH] fix: optimize lamp inclusion check in read_timers_to_log method of DynamicLampComponent --- esphome/components/dynamic_lamp/dynamic_lamp.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/esphome/components/dynamic_lamp/dynamic_lamp.cpp b/esphome/components/dynamic_lamp/dynamic_lamp.cpp index 7271236b97..cb93bd11ee 100644 --- a/esphome/components/dynamic_lamp/dynamic_lamp.cpp +++ b/esphome/components/dynamic_lamp/dynamic_lamp.cpp @@ -328,7 +328,14 @@ void DynamicLampComponent::read_timers_to_log() { this->fram_->read((0x4000 + (i * 64)), reinterpret_cast(&timer), 64); std::string lamp_names_str = ""; for (uint8_t j = 0; j < 16; j++) { - bool lamp_included = static_cast(timer.lamp_list[j / 8] & (1 << (j % 8))); + uint8_t k = 0; + uint8_t l = j; + if (j > 7) { + k = 1; + l = j - 8; + } + //bool lamp_included = static_cast(timer.lamp_list[j / 8] & (1 << (j % 8))); + bool lamp_included = static_cast(timer.lamp_list[k] & (1 << l)); if (lamp_included == true && this->active_lamps_[j].active == true) { if (lamp_names_str.length() > 0) { lamp_names_str += ", ";