From de716494f87ba26842bca0e2089407f518499f54 Mon Sep 17 00:00:00 2001 From: kvanbiesen Date: Wed, 14 Oct 2026 00:45:55 +0200 Subject: [PATCH 1/2] Enhance MAC address validation logic Add validation for empty MAC address in CT002 component. --- esphome/components/ct002/ct002.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/esphome/components/ct002/ct002.cpp b/esphome/components/ct002/ct002.cpp index 58d4213b..fbb688ff 100644 --- a/esphome/components/ct002/ct002.cpp +++ b/esphome/components/ct002/ct002.cpp @@ -569,6 +569,7 @@ bool CT002Component::validate_ct_mac_(const std::vector &fields) co if (this->ct_mac_.empty()) return true; if (fields.size() < 4) return false; std::string req(fields[3]); + if (req.empty() || req == "000000000000") return true; for (auto &c : req) c = static_cast(std::tolower(c)); std::string cfg(this->ct_mac_); for (auto &c : cfg) c = static_cast(std::tolower(c)); From e27e258198dd574ec98cc18adaa706d56d738fcf Mon Sep 17 00:00:00 2001 From: kvanbiesen Date: Wed, 14 Oct 2026 00:46:57 +0200 Subject: [PATCH 2/2] Allow empty CT MAC in _ct_mac_matches method --- src/astrameter/ct002/ct002.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/astrameter/ct002/ct002.py b/src/astrameter/ct002/ct002.py index edd8783a..08984702 100644 --- a/src/astrameter/ct002/ct002.py +++ b/src/astrameter/ct002/ct002.py @@ -1316,6 +1316,8 @@ def _ct_mac_matches(self, request: CT002Request) -> bool: """Whether *request* names the CT MAC we are configured to answer for.""" if not self.ct_mac: return True + if request.ct_mac in ("", "000000000000"): + return True return bool(request.ct_mac) and request.ct_mac.lower() == self.ct_mac.lower() async def _safe_handle_request(