diff --git a/esphome/components/e131/e131.cpp b/esphome/components/e131/e131.cpp index d107d9f9fc..8a293e9067 100644 --- a/esphome/components/e131/e131.cpp +++ b/esphome/components/e131/e131.cpp @@ -31,6 +31,7 @@ void E131Component::setup() { if (!udp_->begin(PORT)) { ESP_LOGE(TAG, "Cannot bind E131 to %d.", PORT); mark_failed(); + return; } join_igmp_groups_(); diff --git a/esphome/components/wled/wled_light_effect.cpp b/esphome/components/wled/wled_light_effect.cpp index f161ea15e8..e06a23aacf 100644 --- a/esphome/components/wled/wled_light_effect.cpp +++ b/esphome/components/wled/wled_light_effect.cpp @@ -50,12 +50,13 @@ void WLEDLightEffect::apply(light::AddressableLight &it, const light::ESPColor & udp_.reset(new WiFiUDP()); if (!udp_->begin(port_)) { - ESP_LOGE(TAG, "Cannot bind WLEDLightEffect to %d.", port_); + ESP_LOGW(TAG, "Cannot bind WLEDLightEffect to %d.", port_); + return; } } + std::vector payload; while (uint16_t packet_size = udp_->parsePacket()) { - std::vector payload; payload.resize(packet_size); if (!udp_->read(&payload[0], payload.size())) { @@ -63,11 +64,12 @@ void WLEDLightEffect::apply(light::AddressableLight &it, const light::ESPColor & } if (!this->parse_frame_(it, &payload[0], payload.size())) { - ESP_LOGD(TAG, "Frame: Invalid (size=%zu, first=%c/%d).", payload.size(), payload[0], payload[0]); + ESP_LOGD(TAG, "Frame: Invalid (size=%zu, first=0x%02X).", payload.size(), payload[0]); continue; } } + // FIXME: Use roll-over safe arithmetic if (blank_at_ < millis()) { blank_all_leds_(it); blank_at_ = millis() + DEFAULT_BLANK_TIME;