esphome 2025.7.0b5__py3-none-any.whl → 2025.7.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. esphome/components/api/homeassistant_service.h +13 -1
  2. esphome/components/e131/e131_packet.cpp +7 -1
  3. esphome/components/esp32/helpers.cpp +40 -0
  4. esphome/components/esp32_camera/__init__.py +22 -0
  5. esphome/components/esp8266/helpers.cpp +4 -0
  6. esphome/components/ethernet/ethernet_component.cpp +9 -2
  7. esphome/components/gpio/binary_sensor/__init__.py +15 -1
  8. esphome/components/libretiny/helpers.cpp +4 -0
  9. esphome/components/logger/__init__.py +2 -2
  10. esphome/components/lvgl/types.py +2 -2
  11. esphome/components/lvgl/widgets/meter.py +4 -1
  12. esphome/components/mqtt/mqtt_client.cpp +8 -4
  13. esphome/components/rp2040/helpers.cpp +4 -0
  14. esphome/components/speaker/media_player/audio_pipeline.cpp +14 -2
  15. esphome/components/speaker/media_player/audio_pipeline.h +1 -0
  16. esphome/components/voice_assistant/voice_assistant.cpp +52 -20
  17. esphome/components/voice_assistant/voice_assistant.h +11 -2
  18. esphome/components/web_server/__init__.py +14 -9
  19. esphome/components/web_server/ota/ota_web_server.cpp +21 -2
  20. esphome/components/web_server/web_server.cpp +6 -4
  21. esphome/components/web_server/web_server_v1.cpp +3 -1
  22. esphome/components/wifi/wifi_component_esp32_arduino.cpp +9 -22
  23. esphome/components/wireguard/wireguard.cpp +13 -3
  24. esphome/const.py +1 -1
  25. esphome/core/base_automation.h +2 -2
  26. esphome/core/component.cpp +2 -2
  27. esphome/core/event_pool.h +2 -2
  28. esphome/core/helpers.h +17 -0
  29. esphome/core/lock_free_queue.h +2 -7
  30. esphome/core/scheduler.cpp +1 -1
  31. esphome/core/scheduler.h +4 -3
  32. esphome/util.py +38 -0
  33. {esphome-2025.7.0b5.dist-info → esphome-2025.7.2.dist-info}/METADATA +1 -1
  34. {esphome-2025.7.0b5.dist-info → esphome-2025.7.2.dist-info}/RECORD +38 -38
  35. {esphome-2025.7.0b5.dist-info → esphome-2025.7.2.dist-info}/WHEEL +0 -0
  36. {esphome-2025.7.0b5.dist-info → esphome-2025.7.2.dist-info}/entry_points.txt +0 -0
  37. {esphome-2025.7.0b5.dist-info → esphome-2025.7.2.dist-info}/licenses/LICENSE +0 -0
  38. {esphome-2025.7.0b5.dist-info → esphome-2025.7.2.dist-info}/top_level.txt +0 -0
@@ -268,10 +268,10 @@ std::string WebServer::get_config_json() {
268
268
  return json::build_json([this](JsonObject root) {
269
269
  root["title"] = App.get_friendly_name().empty() ? App.get_name() : App.get_friendly_name();
270
270
  root["comment"] = App.get_comment();
271
- #ifdef USE_WEBSERVER_OTA
272
- root["ota"] = true; // web_server OTA platform is configured
271
+ #if defined(USE_WEBSERVER_OTA_DISABLED) || !defined(USE_WEBSERVER_OTA)
272
+ root["ota"] = false; // Note: USE_WEBSERVER_OTA_DISABLED only affects web_server, not captive_portal
273
273
  #else
274
- root["ota"] = false;
274
+ root["ota"] = true;
275
275
  #endif
276
276
  root["log"] = this->expose_log_;
277
277
  root["lang"] = "en";
@@ -1620,7 +1620,9 @@ void WebServer::handle_event_request(AsyncWebServerRequest *request, const UrlMa
1620
1620
  request->send(404);
1621
1621
  }
1622
1622
 
1623
- static std::string get_event_type(event::Event *event) { return event->last_event_type ? *event->last_event_type : ""; }
1623
+ static std::string get_event_type(event::Event *event) {
1624
+ return (event && event->last_event_type) ? *event->last_event_type : "";
1625
+ }
1624
1626
 
1625
1627
  std::string WebServer::event_state_json_generator(WebServer *web_server, void *source) {
1626
1628
  auto *event = static_cast<event::Event *>(source);
@@ -192,7 +192,9 @@ void WebServer::handle_index_request(AsyncWebServerRequest *request) {
192
192
 
193
193
  stream->print(F("</tbody></table><p>See <a href=\"https://esphome.io/web-api/index.html\">ESPHome Web API</a> for "
194
194
  "REST API documentation.</p>"));
195
- #ifdef USE_WEBSERVER_OTA
195
+ #if defined(USE_WEBSERVER_OTA) && !defined(USE_WEBSERVER_OTA_DISABLED)
196
+ // Show OTA form only if web_server OTA is not explicitly disabled
197
+ // Note: USE_WEBSERVER_OTA_DISABLED only affects web_server, not captive_portal
196
198
  stream->print(F("<h2>OTA Update</h2><form method=\"POST\" action=\"/update\" enctype=\"multipart/form-data\"><input "
197
199
  "type=\"file\" name=\"update\"><input type=\"submit\" value=\"Update\"></form>"));
198
200
  #endif
@@ -20,10 +20,6 @@
20
20
  #include "lwip/dns.h"
21
21
  #include "lwip/err.h"
22
22
 
23
- #ifdef CONFIG_LWIP_TCPIP_CORE_LOCKING
24
- #include "lwip/priv/tcpip_priv.h"
25
- #endif
26
-
27
23
  #include "esphome/core/application.h"
28
24
  #include "esphome/core/hal.h"
29
25
  #include "esphome/core/helpers.h"
@@ -295,25 +291,16 @@ bool WiFiComponent::wifi_sta_ip_config_(optional<ManualIP> manual_ip) {
295
291
  }
296
292
 
297
293
  if (!manual_ip.has_value()) {
298
- // sntp_servermode_dhcp lwip/sntp.c (Required to lock TCPIP core functionality!)
299
- // https://github.com/esphome/issues/issues/6591
300
- // https://github.com/espressif/arduino-esp32/issues/10526
301
- #ifdef CONFIG_LWIP_TCPIP_CORE_LOCKING
302
- if (!sys_thread_tcpip(LWIP_CORE_LOCK_QUERY_HOLDER)) {
303
- LOCK_TCPIP_CORE();
294
+ // sntp_servermode_dhcp lwip/sntp.c (Required to lock TCPIP core functionality!)
295
+ // https://github.com/esphome/issues/issues/6591
296
+ // https://github.com/espressif/arduino-esp32/issues/10526
297
+ {
298
+ LwIPLock lock;
299
+ // lwIP starts the SNTP client if it gets an SNTP server from DHCP. We don't need the time, and more importantly,
300
+ // the built-in SNTP client has a memory leak in certain situations. Disable this feature.
301
+ // https://github.com/esphome/issues/issues/2299
302
+ sntp_servermode_dhcp(false);
304
303
  }
305
- #endif
306
-
307
- // lwIP starts the SNTP client if it gets an SNTP server from DHCP. We don't need the time, and more importantly,
308
- // the built-in SNTP client has a memory leak in certain situations. Disable this feature.
309
- // https://github.com/esphome/issues/issues/2299
310
- sntp_servermode_dhcp(false);
311
-
312
- #ifdef CONFIG_LWIP_TCPIP_CORE_LOCKING
313
- if (sys_thread_tcpip(LWIP_CORE_LOCK_QUERY_HOLDER)) {
314
- UNLOCK_TCPIP_CORE();
315
- }
316
- #endif
317
304
 
318
305
  // No manual IP is set; use DHCP client
319
306
  if (dhcp_status != ESP_NETIF_DHCP_STARTED) {
@@ -8,6 +8,7 @@
8
8
  #include "esphome/core/log.h"
9
9
  #include "esphome/core/time.h"
10
10
  #include "esphome/components/network/util.h"
11
+ #include "esphome/core/helpers.h"
11
12
 
12
13
  #include <esp_wireguard.h>
13
14
  #include <esp_wireguard_err.h>
@@ -42,7 +43,10 @@ void Wireguard::setup() {
42
43
 
43
44
  this->publish_enabled_state();
44
45
 
45
- this->wg_initialized_ = esp_wireguard_init(&(this->wg_config_), &(this->wg_ctx_));
46
+ {
47
+ LwIPLock lock;
48
+ this->wg_initialized_ = esp_wireguard_init(&(this->wg_config_), &(this->wg_ctx_));
49
+ }
46
50
 
47
51
  if (this->wg_initialized_ == ESP_OK) {
48
52
  ESP_LOGI(TAG, "Initialized");
@@ -249,7 +253,10 @@ void Wireguard::start_connection_() {
249
253
  }
250
254
 
251
255
  ESP_LOGD(TAG, "Starting connection");
252
- this->wg_connected_ = esp_wireguard_connect(&(this->wg_ctx_));
256
+ {
257
+ LwIPLock lock;
258
+ this->wg_connected_ = esp_wireguard_connect(&(this->wg_ctx_));
259
+ }
253
260
 
254
261
  if (this->wg_connected_ == ESP_OK) {
255
262
  ESP_LOGI(TAG, "Connection started");
@@ -280,7 +287,10 @@ void Wireguard::start_connection_() {
280
287
  void Wireguard::stop_connection_() {
281
288
  if (this->wg_initialized_ == ESP_OK && this->wg_connected_ == ESP_OK) {
282
289
  ESP_LOGD(TAG, "Stopping connection");
283
- esp_wireguard_disconnect(&(this->wg_ctx_));
290
+ {
291
+ LwIPLock lock;
292
+ esp_wireguard_disconnect(&(this->wg_ctx_));
293
+ }
284
294
  this->wg_connected_ = ESP_FAIL;
285
295
  }
286
296
  }
esphome/const.py CHANGED
@@ -4,7 +4,7 @@ from enum import Enum
4
4
 
5
5
  from esphome.enum import StrEnum
6
6
 
7
- __version__ = "2025.7.0b5"
7
+ __version__ = "2025.7.2"
8
8
 
9
9
  ALLOWED_NAME_CHARS = "abcdefghijklmnopqrstuvwxyz0123456789-_"
10
10
  VALID_SUBSTITUTIONS_CHARACTERS = (
@@ -158,14 +158,14 @@ template<typename... Ts> class DelayAction : public Action<Ts...>, public Compon
158
158
  void play_complex(Ts... x) override {
159
159
  auto f = std::bind(&DelayAction<Ts...>::play_next_, this, x...);
160
160
  this->num_running_++;
161
- this->set_timeout(this->delay_.value(x...), f);
161
+ this->set_timeout("delay", this->delay_.value(x...), f);
162
162
  }
163
163
  float get_setup_priority() const override { return setup_priority::HARDWARE; }
164
164
 
165
165
  void play(Ts... x) override { /* ignore - see play_complex */
166
166
  }
167
167
 
168
- void stop() override { this->cancel_timeout(""); }
168
+ void stop() override { this->cancel_timeout("delay"); }
169
169
  };
170
170
 
171
171
  template<typename... Ts> class LambdaAction : public Action<Ts...> {
@@ -252,10 +252,10 @@ void Component::defer(const char *name, std::function<void()> &&f) { // NOLINT
252
252
  App.scheduler.set_timeout(this, name, 0, std::move(f));
253
253
  }
254
254
  void Component::set_timeout(uint32_t timeout, std::function<void()> &&f) { // NOLINT
255
- App.scheduler.set_timeout(this, "", timeout, std::move(f));
255
+ App.scheduler.set_timeout(this, static_cast<const char *>(nullptr), timeout, std::move(f));
256
256
  }
257
257
  void Component::set_interval(uint32_t interval, std::function<void()> &&f) { // NOLINT
258
- App.scheduler.set_interval(this, "", interval, std::move(f));
258
+ App.scheduler.set_interval(this, static_cast<const char *>(nullptr), interval, std::move(f));
259
259
  }
260
260
  void Component::set_retry(uint32_t initial_wait_time, uint8_t max_attempts, std::function<RetryResult(uint8_t)> &&f,
261
261
  float backoff_increase_factor) { // NOLINT
esphome/core/event_pool.h CHANGED
@@ -1,6 +1,6 @@
1
1
  #pragma once
2
2
 
3
- #if defined(USE_ESP32) || defined(USE_LIBRETINY)
3
+ #if defined(USE_ESP32)
4
4
 
5
5
  #include <atomic>
6
6
  #include <cstddef>
@@ -78,4 +78,4 @@ template<class T, uint8_t SIZE> class EventPool {
78
78
 
79
79
  } // namespace esphome
80
80
 
81
- #endif // defined(USE_ESP32) || defined(USE_LIBRETINY)
81
+ #endif // defined(USE_ESP32)
esphome/core/helpers.h CHANGED
@@ -683,6 +683,23 @@ class InterruptLock {
683
683
  #endif
684
684
  };
685
685
 
686
+ /** Helper class to lock the lwIP TCPIP core when making lwIP API calls from non-TCPIP threads.
687
+ *
688
+ * This is needed on multi-threaded platforms (ESP32) when CONFIG_LWIP_TCPIP_CORE_LOCKING is enabled.
689
+ * It ensures thread-safe access to lwIP APIs.
690
+ *
691
+ * @note This follows the same pattern as InterruptLock - platform-specific implementations in helpers.cpp
692
+ */
693
+ class LwIPLock {
694
+ public:
695
+ LwIPLock();
696
+ ~LwIPLock();
697
+
698
+ // Delete copy constructor and copy assignment operator to prevent accidental copying
699
+ LwIPLock(const LwIPLock &) = delete;
700
+ LwIPLock &operator=(const LwIPLock &) = delete;
701
+ };
702
+
686
703
  /** Helper class to request `loop()` to be called as fast as possible.
687
704
  *
688
705
  * Usually the ESPHome main loop runs at 60 Hz, sleeping in between invocations of `loop()` if necessary. When a higher
@@ -1,17 +1,12 @@
1
1
  #pragma once
2
2
 
3
- #if defined(USE_ESP32) || defined(USE_LIBRETINY)
3
+ #if defined(USE_ESP32)
4
4
 
5
5
  #include <atomic>
6
6
  #include <cstddef>
7
7
 
8
- #if defined(USE_ESP32)
9
8
  #include <freertos/FreeRTOS.h>
10
9
  #include <freertos/task.h>
11
- #elif defined(USE_LIBRETINY)
12
- #include <FreeRTOS.h>
13
- #include <task.h>
14
- #endif
15
10
 
16
11
  /*
17
12
  * Lock-free queue for single-producer single-consumer scenarios.
@@ -148,4 +143,4 @@ template<class T, uint8_t SIZE> class NotifyingLockFreeQueue : public LockFreeQu
148
143
 
149
144
  } // namespace esphome
150
145
 
151
- #endif // defined(USE_ESP32) || defined(USE_LIBRETINY)
146
+ #endif // defined(USE_ESP32)
@@ -446,7 +446,7 @@ bool HOT Scheduler::cancel_item_(Component *component, bool is_static_string, co
446
446
  // Helper to cancel items by name - must be called with lock held
447
447
  bool HOT Scheduler::cancel_item_locked_(Component *component, const char *name_cstr, SchedulerItem::Type type) {
448
448
  // Early return if name is invalid - no items to cancel
449
- if (name_cstr == nullptr || name_cstr[0] == '\0') {
449
+ if (name_cstr == nullptr) {
450
450
  return false;
451
451
  }
452
452
 
esphome/core/scheduler.h CHANGED
@@ -114,16 +114,17 @@ class Scheduler {
114
114
  name_is_dynamic = false;
115
115
  }
116
116
 
117
- if (!name || !name[0]) {
117
+ if (!name) {
118
+ // nullptr case - no name provided
118
119
  name_.static_name = nullptr;
119
120
  } else if (make_copy) {
120
- // Make a copy for dynamic strings
121
+ // Make a copy for dynamic strings (including empty strings)
121
122
  size_t len = strlen(name);
122
123
  name_.dynamic_name = new char[len + 1];
123
124
  memcpy(name_.dynamic_name, name, len + 1);
124
125
  name_is_dynamic = true;
125
126
  } else {
126
- // Use static string directly
127
+ // Use static string directly (including empty strings)
127
128
  name_.static_name = name;
128
129
  }
129
130
  }
esphome/util.py CHANGED
@@ -147,6 +147,13 @@ class RedirectText:
147
147
  continue
148
148
 
149
149
  self._write_color_replace(line)
150
+ # Check for flash size error and provide helpful guidance
151
+ if (
152
+ "Error: The program size" in line
153
+ and "is greater than maximum allowed" in line
154
+ and (help_msg := get_esp32_arduino_flash_error_help())
155
+ ):
156
+ self._write_color_replace(help_msg)
150
157
  else:
151
158
  self._write_color_replace(s)
152
159
 
@@ -309,3 +316,34 @@ def get_serial_ports() -> list[SerialPort]:
309
316
 
310
317
  result.sort(key=lambda x: x.path)
311
318
  return result
319
+
320
+
321
+ def get_esp32_arduino_flash_error_help() -> str | None:
322
+ """Returns helpful message when ESP32 with Arduino runs out of flash space."""
323
+ from esphome.core import CORE
324
+
325
+ if not (CORE.is_esp32 and CORE.using_arduino):
326
+ return None
327
+
328
+ from esphome.log import AnsiFore, color
329
+
330
+ return (
331
+ "\n"
332
+ + color(
333
+ AnsiFore.YELLOW,
334
+ "💡 TIP: Your ESP32 with Arduino framework has run out of flash space.\n",
335
+ )
336
+ + "\n"
337
+ + "To fix this, switch to the ESP-IDF framework which is more memory efficient:\n"
338
+ + "\n"
339
+ + "1. In your YAML configuration, modify the framework section:\n"
340
+ + "\n"
341
+ + " esp32:\n"
342
+ + " framework:\n"
343
+ + " type: esp-idf\n"
344
+ + "\n"
345
+ + "2. Clean build files and compile again\n"
346
+ + "\n"
347
+ + "Note: ESP-IDF uses less flash space and provides better performance.\n"
348
+ + "Some Arduino-specific libraries may need alternatives.\n\n"
349
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: esphome
3
- Version: 2025.7.0b5
3
+ Version: 2025.7.2
4
4
  Summary: ESPHome is a system to configure your microcontrollers by simple yet powerful configuration files and control them remotely through Home Automation systems.
5
5
  Author-email: The ESPHome Authors <esphome@openhomefoundation.org>
6
6
  License: MIT
@@ -5,7 +5,7 @@ esphome/codegen.py,sha256=H_WB4rj0uEowvlhEb31EjJQwutLQ5CQkJIsNgDK-wx8,1917
5
5
  esphome/config.py,sha256=b-Gh-DEx_pax0ZKqHTKb5gmMIvaQA71bJvE-15AI0JI,42211
6
6
  esphome/config_helpers.py,sha256=BpyuWRxj5edJGIW7VP4S59i4I8g8baSlWpNyu6nB_uM,5413
7
7
  esphome/config_validation.py,sha256=_SMAcS_AhMh0kaLki86hjPZp5b95culJZtQePqoL_fU,63712
8
- esphome/const.py,sha256=ZN5l8FPwSzYuD1F2D6mg8t8hInoTSQzYPVWPyLOnkA0,43369
8
+ esphome/const.py,sha256=KwAeVg3hE8JEHR5Yp_X1tHFZCxXbepoWToDGgrgEhJE,43367
9
9
  esphome/coroutine.py,sha256=HNBqqhaTbpvsOI19bTXltxJCMVtoeqZPe4qTf4CKkAc,9309
10
10
  esphome/cpp_generator.py,sha256=khmyuRIOc-ST9zIZjX7uOWLy9sSJhk4C2KexoBv51uk,31946
11
11
  esphome/cpp_helpers.py,sha256=P9FVGpid75_UcKxIf-sj7GbhWGQNRcBm_2XVF3r7NtU,3998
@@ -24,7 +24,7 @@ esphome/platformio_api.py,sha256=WxY2L0u_GW5wvSIu6rESf8AaFfB65E1xl_GH6ZyUjH4,120
24
24
  esphome/schema_extractors.py,sha256=DreGUyQlsltzxTEibqw1FDoYa2fOHx3OUhLGALcmnNc,2074
25
25
  esphome/storage_json.py,sha256=iN-i2VwUAd6tH8cPLTATUk_y_uZqzRW35iLTNqSxP6M,10544
26
26
  esphome/types.py,sha256=hnt4C_y0BR9PiWRluaDom1L_afl3lgMma8AMASbJAbM,394
27
- esphome/util.py,sha256=eIXhVyTcsgzUS9AwVmvlDgHDLuKsgFN-mjPO0SL87QQ,9298
27
+ esphome/util.py,sha256=g5r48Q8Wcb33XQ6ipiCYfR2UqPy33oC0bmUBB_Vo-bk,10670
28
28
  esphome/voluptuous_schema.py,sha256=tQUOLvVec6v4pxfWpa8CMgXqBqomuqUUYEJqCJOPhNs,9417
29
29
  esphome/vscode.py,sha256=pKBx_9jmQlRJB1xiqjWq2-pFhXae8VNSFGYoqxRBMkw,4279
30
30
  esphome/wizard.py,sha256=kOA1gdjgt1mCg5Le5ISOgrqo1s_craAHSIWxMZpc03U,15859
@@ -197,7 +197,7 @@ esphome/components/api/api_server.cpp,sha256=UeLT60naPcxqmvJlMR6MClnPl1gT1cggyeO
197
197
  esphome/components/api/api_server.h,sha256=fRTT9rZEIFzD3iI89Z9P7Dniw7lnuOCPk_exYqCsOoI,6513
198
198
  esphome/components/api/client.py,sha256=47VYbSUN7SO3vjRHA4tzLw3Zwr8yhkbfLg9K7ELRDf8,2188
199
199
  esphome/components/api/custom_api_device.h,sha256=HIOBfs2zP5lRIC9ur-Ae9zHkCa5ekV023uIa0oklpdo,7599
200
- esphome/components/api/homeassistant_service.h,sha256=_ie-fI8yZ5hJfssBwFcXZz4pLseqTdtJDZ7AQekFLpI,2814
200
+ esphome/components/api/homeassistant_service.h,sha256=DjziMNx7yMF_IbKqczm2j9tjIedLMTotPfnjdzF4ILM,3546
201
201
  esphome/components/api/list_entities.cpp,sha256=EMysqDt2yeMDwaiorf0taqF8pXCA0QAcnvviedNbFzI,3112
202
202
  esphome/components/api/list_entities.h,sha256=91kBP47ISJS7MQ9tg2kOmaYtLx-pPyquROzzBGkE66s,2898
203
203
  esphome/components/api/proto.cpp,sha256=vrXe3Hd1XWjzWi6osqMICAEEKNNx6A4GAo_KHQ7hRZA,2696
@@ -754,7 +754,7 @@ esphome/components/e131/e131.cpp,sha256=YhFvOOWbn1YyPjDFTSxc7EwCXlEIw6Om4hZk0l0w
754
754
  esphome/components/e131/e131.h,sha256=Jl31dU4Gm1qLwu8xtnMbfdvwNd7aQFh_n7r8sVuXIPk,1495
755
755
  esphome/components/e131/e131_addressable_light_effect.cpp,sha256=bp1YmqZdLbntbF4YDsVznC6vG_qDHLMLccsu1KOvjpY,3094
756
756
  esphome/components/e131/e131_addressable_light_effect.h,sha256=8bP6LD_WaT5Sww09FLFbUBSj1Uq5kPijjtrACZaNG9w,1232
757
- esphome/components/e131/e131_packet.cpp,sha256=uWwW6GchI8SvDQ6ZvzT7QoFZgErOnxu4ZoVShyJ6Kso,3751
757
+ esphome/components/e131/e131_packet.cpp,sha256=WF-cEPLwKNwH0eowaY-O65HCZxW7AoxAQ8IqBvUGMgM,3849
758
758
  esphome/components/ee895/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
759
759
  esphome/components/ee895/ee895.cpp,sha256=10PzDjVUXP0QanhtewV-0_k8t2ZV4PyH6fnylAQn3_o,3549
760
760
  esphome/components/ee895/ee895.h,sha256=PlW9Q8XFN6_V0SJxD3k-upafHEXvSLbvRb5JINp52RQ,1135
@@ -843,7 +843,7 @@ esphome/components/esp32/gpio_esp32_h2.py,sha256=1upnLmb8rTZFX0MaIApF9C_-OpQJ6Cg
843
843
  esphome/components/esp32/gpio_esp32_p4.py,sha256=yquY1Ck1o5EN2Gc2MQVqRE1-lyscn4fSxCT46BWHQBI,1329
844
844
  esphome/components/esp32/gpio_esp32_s2.py,sha256=QocrOirlaLAWrtzv9q4eE4jVOAf7u_gOxdTasTJ5zp8,2037
845
845
  esphome/components/esp32/gpio_esp32_s3.py,sha256=4LYI1EgQKe0HCWbVvEi5ltSdaoEUJoU260VSN0EHSc0,1753
846
- esphome/components/esp32/helpers.cpp,sha256=neIGHSu2K4WOVIpoicNdOPXvogbolhUHTzVjVhXetek,2151
846
+ esphome/components/esp32/helpers.cpp,sha256=j0V0-kI4Ww04BH5N5EfyRgQHks0q_OoH8mPJjSJRo9I,3694
847
847
  esphome/components/esp32/post_build.py.script,sha256=ZBsPNunx2BH4ZiRyXnjTP7D7eN289eGAK8I73zXyq5o,2239
848
848
  esphome/components/esp32/preferences.cpp,sha256=WpEG6PenHwrAIonuoV_chdDJriJXF5dcpIbuYfmaUCQ,6229
849
849
  esphome/components/esp32/preferences.h,sha256=9HIy-BOgjOXJiEgOizZ_Qb8-l6K4eb3VSPW8Y8ffuWM,165
@@ -884,7 +884,7 @@ esphome/components/esp32_ble_tracker/__init__.py,sha256=ccak0vxtH0cvun10HRGFJJHo
884
884
  esphome/components/esp32_ble_tracker/automation.h,sha256=0pDA6EX__f14sT0KJwcnqg7UOsueKjjegHPznQj9biw,3795
885
885
  esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp,sha256=HYiT04Lc7UUf6R8bU4dzXjukHIYXxpUENDF3pbWsyEw,33210
886
886
  esphome/components/esp32_ble_tracker/esp32_ble_tracker.h,sha256=XBjgf-yrkXGxoaQqTeAw70A59y8Th2c-57ctmhiuH18,11028
887
- esphome/components/esp32_camera/__init__.py,sha256=ZGtx71UgtqHIhdZJSKHQqv7zIgtpFu6MFHfzAkf6DWc,13457
887
+ esphome/components/esp32_camera/__init__.py,sha256=oTS6Kr0_1ErZCAUKTm-S5yUCbxOZo4UhtSDef0gNX00,14036
888
888
  esphome/components/esp32_camera/esp32_camera.cpp,sha256=LLGw2p5RsbO-lCFBqkZsuzitMex1N3y3bEoZhnMV7k4,17110
889
889
  esphome/components/esp32_camera/esp32_camera.h,sha256=ojiwjGpzUhYQepifWD2PyjByQklFRtQRTJrXFbZfSNM,7903
890
890
  esphome/components/esp32_camera_web_server/__init__.py,sha256=ViM-dcI4ld95yL1a3LuOO4H-eW_1GmcN7fHDlsyu3f8,938
@@ -925,7 +925,7 @@ esphome/components/esp8266/core.h,sha256=Gt8v8q9LxxHbKjf445vOk1iYXnRYCl4VogI7sdU
925
925
  esphome/components/esp8266/gpio.cpp,sha256=3T7h3PXtfdsRu-swTkyoZ3lxvNgmsJ_iUgo60zZY94E,5174
926
926
  esphome/components/esp8266/gpio.h,sha256=drRteE3plCa62g9xm25cXu1CngCh-SQh2eNduCRuJCs,1060
927
927
  esphome/components/esp8266/gpio.py,sha256=A2vOhpFK2674x2OJ8Ruy_c-Xfe2CWPVy2N3c4OBGYk4,6368
928
- esphome/components/esp8266/helpers.cpp,sha256=TJwyjQe2tKwYu1hiFbI3NGFe5vRV7Mkv8SCIJ2iJ7Wg,848
928
+ esphome/components/esp8266/helpers.cpp,sha256=U6xwUUXcUxMrgBwLqOR9YUzEiq8pSig-3lfMT_2pNHs,963
929
929
  esphome/components/esp8266/post_build.py.script,sha256=Hca2nrttn2jdYmFVnNxsgMNlEFk2pg8GKMB6CTppR_k,703
930
930
  esphome/components/esp8266/preferences.cpp,sha256=yQftUwxygorTst_x52P34JdgcNG8ycdSPmkt0ll8IEA,8230
931
931
  esphome/components/esp8266/preferences.h,sha256=9sx-Q5795dHCi6a3d_oE21INcrztnWw9CT0iqa1WZYE,220
@@ -941,7 +941,7 @@ esphome/components/esphome/ota/ota_esphome.cpp,sha256=nj1hd4fkGvKq95NYqhE9faG0pY
941
941
  esphome/components/esphome/ota/ota_esphome.h,sha256=MHd6DPavp08gfb-bcttjCiv3U60XMSTMDi2nPcN8Y7s,1140
942
942
  esphome/components/ethernet/__init__.py,sha256=xz_igz3-VfGgqLWQysq4WhsfxV38EUPmG9A5xKzCmhs,12444
943
943
  esphome/components/ethernet/esp_eth_phy_jl1101.c,sha256=WTNJ2eS0bxTqYu8Q4sk98ZyAO4A0xU8A2NXKTo37oLk,12156
944
- esphome/components/ethernet/ethernet_component.cpp,sha256=L9WpzkPpqUktDm_sUsP6n68gmWlKiusIFKuDw1bVDI0,25363
944
+ esphome/components/ethernet/ethernet_component.cpp,sha256=Dfa_8TBtFoTHEldo53wiBW-ianUbRLvfFwfhb4COSxc,25452
945
945
  esphome/components/ethernet/ethernet_component.h,sha256=7Z58ZRxFMQ0NyLG8Y2R6ORCZNz7ioDCZxwgj6nXSpwA,4635
946
946
  esphome/components/ethernet_info/__init__.py,sha256=LoiZr_nRyJfR5w1ZWOFppOVTQRwlgmHU-boDala2fLA,33
947
947
  esphome/components/ethernet_info/ethernet_info_text_sensor.cpp,sha256=nfP7xeusvbzee1KHfuipELWvF1vmuk_2e4G_NlLeJ3M,564
@@ -1044,7 +1044,7 @@ esphome/components/gp8403/output/__init__.py,sha256=3VX9AD0N0SRXdOfKJcMMgjCwA1-R
1044
1044
  esphome/components/gp8403/output/gp8403_output.cpp,sha256=FQPUa_ZMgLz7LNHy6N8sNUpnI2hwOIZTRrwWtjXrbGs,714
1045
1045
  esphome/components/gp8403/output/gp8403_output.h,sha256=wJd_-CtUSxw5ujhR21E1zCiB9hvpl3Ktt665D3iQLf4,598
1046
1046
  esphome/components/gpio/__init__.py,sha256=afIFpPG_fsom-8vYV1yRyvhSCFyASlAdraUCuztWQZ4,103
1047
- esphome/components/gpio/binary_sensor/__init__.py,sha256=_rb3IP-gt1Fq5wSoFG36L7YATLF4xX2dRNlDI9sM1kU,2295
1047
+ esphome/components/gpio/binary_sensor/__init__.py,sha256=Q0P2-6zpxSYg3MFW1vx5SeZju27C-kOc4G5nEtE8ugg,2893
1048
1048
  esphome/components/gpio/binary_sensor/gpio_binary_sensor.cpp,sha256=wVa5pNQMnUOO9RUovnf6G8MYQtKQoRSojA3MItHLnbg,3131
1049
1049
  esphome/components/gpio/binary_sensor/gpio_binary_sensor.h,sha256=ukwmyxJhiYXMczcT16zwdliTX5Brf8fdgDzid6l13wE,2000
1050
1050
  esphome/components/gpio/one_wire/__init__.py,sha256=oH6-6zy18pG_7iqzLegjh4AbjnbZHqBRZKHdHBI-828,714
@@ -1491,7 +1491,7 @@ esphome/components/libretiny/generate_components.py,sha256=kMj0goBdSijQNUrPQ6dNZ
1491
1491
  esphome/components/libretiny/gpio.py,sha256=xewTZ6ooaruY1ilnIxINgdNHpMg8iTdF1Gru1r68IRI,6393
1492
1492
  esphome/components/libretiny/gpio_arduino.cpp,sha256=7glFm8izBCFlxERstTvnKTqNax4I0Nmas7WVWFvgD1Y,2972
1493
1493
  esphome/components/libretiny/gpio_arduino.h,sha256=ZfU3FCDkgIWWKVWnuXwQZA2sbvJE9cct8BcRHe8b3pI,1054
1494
- esphome/components/libretiny/helpers.cpp,sha256=q7826WQMmJACvuRULv_7ahWzW2tKH-kB3O_FTQodWxw,974
1494
+ esphome/components/libretiny/helpers.cpp,sha256=Vt74p0CF_mRD-ZefyoD3aIGx82md5FDou0h6leXfw1s,1091
1495
1495
  esphome/components/libretiny/lt_component.cpp,sha256=ep3avHdRzi8mVe5VxuaEi11IPddTNfoyqcYiSZS9w1U,679
1496
1496
  esphome/components/libretiny/lt_component.h,sha256=9R1wDscC53rlxF1kmnxyzSJ0kG-6W_QzSxqJ0RAdKBk,756
1497
1497
  esphome/components/libretiny/preferences.cpp,sha256=K8ASTUzqZLBPZk2Iburm5WUJ6CzgE-X5dQluZruOOMI,5456
@@ -1550,7 +1550,7 @@ esphome/components/lock/__init__.py,sha256=z2ykcnNNmzRbri8sqwqQmbX0WtEkBV_Tazr1R
1550
1550
  esphome/components/lock/automation.h,sha256=7MU5AuJizydt7mKTr_uFsNleFI2jeBf7B_dNp3e8Fks,1771
1551
1551
  esphome/components/lock/lock.cpp,sha256=IyEt5xShAxMpmcn_GAPFv2lRCS-kr4MjjfExxfXuK-Q,3212
1552
1552
  esphome/components/lock/lock.h,sha256=p_t5cG-75MNGVM8zEyfKJlziSjeUiIbpYan3tlZG6W8,6042
1553
- esphome/components/logger/__init__.py,sha256=cbMgKmeOZDS_s2aIFshjAQQnluSiylYe9BfEv-fFymc,16201
1553
+ esphome/components/logger/__init__.py,sha256=6nw19OHeHlqIoSGqqxgeg5FzWkbyFILQh_Il1PqUQTs,16203
1554
1554
  esphome/components/logger/logger.cpp,sha256=aIra5ZZ5OEAPuqDgxZd3zkyAf46Jchht6mx-mcv380U,11704
1555
1555
  esphome/components/logger/logger.h,sha256=Tkdz9qoSTiyx6Ebp9jBUnGMXyxG1iH6LTJoJfguTOaA,14460
1556
1556
  esphome/components/logger/logger_esp32.cpp,sha256=NJddudDpsMP1fdV0mel8zXd7VNgMxqRIfarLp3uJPe0,6220
@@ -1600,7 +1600,7 @@ esphome/components/lvgl/schemas.py,sha256=fxD_8okg0EtPKHjdDl2x2buvjg0syEZPVudTk2
1600
1600
  esphome/components/lvgl/styles.py,sha256=692QwPARqDICFFSkgmBVS-M1mDyOxNg2AftYgU4ZrMY,3144
1601
1601
  esphome/components/lvgl/touchscreens.py,sha256=CntwVa1EUu6iBnxfvuv0rCYd_Njmf451CYdRqQyb9N4,1607
1602
1602
  esphome/components/lvgl/trigger.py,sha256=brfRjSE7-LXKBttQP7pG6W5A2KPzmFiNzQzeQiyW250,3463
1603
- esphome/components/lvgl/types.py,sha256=corOqfPfZtK1WtIUvJ8TOFLhjcn5vjTi5dJvwX-gCZI,6130
1603
+ esphome/components/lvgl/types.py,sha256=M-DJvNheEj7AVZgzfdFfcReXO5rk0TIKWntAQl97LZw,6134
1604
1604
  esphome/components/lvgl/binary_sensor/__init__.py,sha256=UaG5F3trL-S9P807PCbM2hHT4EUxAS0obSd6tlHXEoQ,1174
1605
1605
  esphome/components/lvgl/light/__init__.py,sha256=fyfI3RNQ67fA8yKhIirLg9ZLV4wFNMNvalqwqs04rqM,1006
1606
1606
  esphome/components/lvgl/light/lvgl_light.h,sha256=bNvnIYH7UrvVHgWxIIlP2XAfsmEVDzz2-aIA6DbR1iU,1231
@@ -1628,7 +1628,7 @@ esphome/components/lvgl/widgets/label.py,sha256=5xl1a6apdJgGKmkpL8m7RDASjaeKzjKT
1628
1628
  esphome/components/lvgl/widgets/led.py,sha256=qoe_kvZpoRkwbxz25Z66KQ__KLC2tfhAukChp1jdlDc,888
1629
1629
  esphome/components/lvgl/widgets/line.py,sha256=XwTZxoLeWb5_Bx4cRBjBxLd83DLGqFXSE8t9jNYasXk,1355
1630
1630
  esphome/components/lvgl/widgets/lv_bar.py,sha256=FbDNEL9huqeKGiE_nqyoB6BVPOCEsQd3YgO5m07SI3M,2274
1631
- esphome/components/lvgl/widgets/meter.py,sha256=ptMHG6LCky1jwtUcGODek0W94Ju9PWGPbkg91l3NyKA,11520
1631
+ esphome/components/lvgl/widgets/meter.py,sha256=PKanq-3YDwuFto25OVpgYQm61bWXMLMUo-7UPifGFOY,11680
1632
1632
  esphome/components/lvgl/widgets/msgbox.py,sha256=i98hz6RKJRMWQ4wz9T1qOHzmdmZ6yHDvHDeJ1T9_Gt0,5335
1633
1633
  esphome/components/lvgl/widgets/obj.py,sha256=6lKIfsdKLWIE8u_Lw0X0ChMCKcV8EZYF8WQKQEBCKYU,439
1634
1634
  esphome/components/lvgl/widgets/page.py,sha256=W7kQ1xfJLRMdy6wFKoA6tZxUXNKGBZWrjMw9OZRfLqA,5870
@@ -1957,7 +1957,7 @@ esphome/components/mqtt/mqtt_binary_sensor.cpp,sha256=wd5mAnBieyl8zNGoDwWbVFuaKZ
1957
1957
  esphome/components/mqtt/mqtt_binary_sensor.h,sha256=QwGVAYkOcEVkvNjtBu6JHJYXXwc-0AOTNIBS1otLzig,958
1958
1958
  esphome/components/mqtt/mqtt_button.cpp,sha256=REi-AtjplNU6eoAQClgS78-V6JUN3hx_p_UUDy4UvlQ,1509
1959
1959
  esphome/components/mqtt/mqtt_button.h,sha256=GJ6D6ANZgy3azdLjnHDhSrjuxEOSigYSjWs2J-akOPw,906
1960
- esphome/components/mqtt/mqtt_client.cpp,sha256=HRj5jMYuUGO2yxLjTkadnZInM5kNZE5zutoCJmtYWGk,26321
1960
+ esphome/components/mqtt/mqtt_client.cpp,sha256=vf0UF0UvBIkR1s-RYk0_pIqnTVr2VVOKT42WfphPVZ0,26345
1961
1961
  esphome/components/mqtt/mqtt_client.h,sha256=MLFPh-shnPx_3-76019kGxS97VhYRkrE6QtkRk8X2kU,16299
1962
1962
  esphome/components/mqtt/mqtt_climate.cpp,sha256=L62VSe9KWn8ELhfuNn4i8Hh841VdgL4hQsuH55ovwkk,16850
1963
1963
  esphome/components/mqtt/mqtt_climate.h,sha256=20FAWmZ-zk2RFakvRSyiZEHemo8kBKxPi3xDmJfzXLw,1805
@@ -2519,7 +2519,7 @@ esphome/components/rp2040/core.h,sha256=YA4WtdKTdnZxkpOUF4GwT3KMjsbFjH6j0y42Evet
2519
2519
  esphome/components/rp2040/gpio.cpp,sha256=8aewN0-fqru1W7zj_g6hnhh9gjMKOIMamGIzSZkbozU,3516
2520
2520
  esphome/components/rp2040/gpio.h,sha256=xIaLyJ0GLs2uNVxnYXweixWDW0nZ5bHmGCdCWQI55tA,1055
2521
2521
  esphome/components/rp2040/gpio.py,sha256=HTZYi8manLRjLcEOwwSd7tTTEKa7btRco-gYQYudN7I,2913
2522
- esphome/components/rp2040/helpers.cpp,sha256=_5EEiPRA4-VnU9Trok7sihILsGwLCwAJc5tRTOGlRog,1223
2522
+ esphome/components/rp2040/helpers.cpp,sha256=_aP4lVleiFzedUAAyJkEmddWld6B8zC0s7YIsCfWKjI,1337
2523
2523
  esphome/components/rp2040/post_build.py.script,sha256=JgNm6aGGA9LYGZEjzqr8EHiugKLU6h7fmmXFAhdBleI,699
2524
2524
  esphome/components/rp2040/preferences.cpp,sha256=nbQA47idH1JlXfTElIrtWtRwmJ656sWBf5Lwh37r2NI,4418
2525
2525
  esphome/components/rp2040/preferences.h,sha256=z7zFhLXLLmURu5RNaAlOpPIv2TnK8cvrGkGAyz0LvjM,216
@@ -2816,8 +2816,8 @@ esphome/components/speaker/__init__.py,sha256=2juDem8QadLMwzFp8Rvl-KeIbE-iIEsCtD
2816
2816
  esphome/components/speaker/automation.h,sha256=tVSTV49GvHk0bCEgLz3rNYFe8B1F0kXLgE-WihuRaV8,2320
2817
2817
  esphome/components/speaker/speaker.h,sha256=Y6EuDzsIx8GDcFeWnYXg4cXiBU-6CkmrRCaMpXQYiWo,4355
2818
2818
  esphome/components/speaker/media_player/__init__.py,sha256=QfJfrfwYuTEWJ_P3mVACjiATFPHSfDK-eJ0YOiSgatE,15441
2819
- esphome/components/speaker/media_player/audio_pipeline.cpp,sha256=VjodnH-hIPRtulk4iPt_oaym3qr_O2-fK3dyufenPnQ,22147
2820
- esphome/components/speaker/media_player/audio_pipeline.h,sha256=MYt7_kp4IJDSTnXWqLaXIkbbNkGx6F_imSryFo2UUkc,5000
2819
+ esphome/components/speaker/media_player/audio_pipeline.cpp,sha256=YspF1nK940wWOodZVtOMW7_E-rt2DzyCfz7iQuY9rhs,22411
2820
+ esphome/components/speaker/media_player/audio_pipeline.h,sha256=QAQGzGUnBjx7_WaZYGIuLKtrKrs7-f3YV329h2wahQM,5029
2821
2821
  esphome/components/speaker/media_player/automation.h,sha256=I8psUHnJ8T3fkM05h1yEYDxb0yWe6Vjz7i30OSVA3Is,683
2822
2822
  esphome/components/speaker/media_player/speaker_media_player.cpp,sha256=M_eFKuivv__swCA8xhWd4-cfNdrY2h8Vm8VfG8DUDZ8,22610
2823
2823
  esphome/components/speaker/media_player/speaker_media_player.h,sha256=qg7oX4bKiWWmVfiT5ZD4DdafLBGXmvXFuU5932m1nIo,5399
@@ -3371,8 +3371,8 @@ esphome/components/vl53l0x/sensor.py,sha256=qQVBjhMl_nGbzuAHY0Fz2GnG5TkNJLuyFRYm
3371
3371
  esphome/components/vl53l0x/vl53l0x_sensor.cpp,sha256=mBGggbztlCSvjPDA6IY3p1uBnziXdkaMKLCLWcZL0ok,15170
3372
3372
  esphome/components/vl53l0x/vl53l0x_sensor.h,sha256=_GZqT0tHSoYbqrHiC0_PAttk3cuHH9sy1lirQaIYfQU,2593
3373
3373
  esphome/components/voice_assistant/__init__.py,sha256=cYEmZoI6w05kMF_ZrFHgsvKOLGO1GIT-a3aUWqepNt4,15264
3374
- esphome/components/voice_assistant/voice_assistant.cpp,sha256=kPdneGHH-p3XzfgoQvk_8pYIcY_quszg7Ck6X-7_fYM,32996
3375
- esphome/components/voice_assistant/voice_assistant.h,sha256=M42wYACkOB90iIeejCXaFnqRZkETsEjjJSi7j_YZxg8,12381
3374
+ esphome/components/voice_assistant/voice_assistant.cpp,sha256=wxUOQJ91fgcRw0GuvTCHKp_DO07f6A3KJyN7zwVcGnA,33860
3375
+ esphome/components/voice_assistant/voice_assistant.h,sha256=dNPJHpjnu-kDlHD861cDmwxw0yYbCBOU4VM2J2opSN0,12475
3376
3376
  esphome/components/voltage_sampler/__init__.py,sha256=IU5YrROZSNyuAP1d6M_V3ZGAwNjXCHPcVy5nMjZ953Y,155
3377
3377
  esphome/components/voltage_sampler/voltage_sampler.h,sha256=Y67FLOpOzW29v29BRRyYgEmGZ_B8QnUUaqJMH6FA3jM,337
3378
3378
  esphome/components/wake_on_lan/__init__.py,sha256=-RYpXD02o3dlFnKzOCYk58bUbxfD2v-wj1ECywj-cgI,50
@@ -3387,16 +3387,16 @@ esphome/components/waveshare_epaper/display.py,sha256=213uq6fWqi9GprtzoNOf7DoRvb
3387
3387
  esphome/components/waveshare_epaper/waveshare_213v3.cpp,sha256=JgjLO94Q1InPblrcaPcGclCr01gynq8hYvbbYZD7OjY,7462
3388
3388
  esphome/components/waveshare_epaper/waveshare_epaper.cpp,sha256=fd6IvkLKlOtHujw_AWu03Y2E0E3IE9Iq_7v9FoukWkY,145214
3389
3389
  esphome/components/waveshare_epaper/waveshare_epaper.h,sha256=6INmEzibRGNKURBnmDt2svqTxNyZxHO3c1cmEte_ej8,24246
3390
- esphome/components/web_server/__init__.py,sha256=J0kfn2xVcdgKjtt5wHun3EOK1zpYgnuJwxewZpoHJ60,11087
3390
+ esphome/components/web_server/__init__.py,sha256=1tyHHcqqQnuXesu5sZwh8ahA_Ns1cUKj-24qXufH4pk,11491
3391
3391
  esphome/components/web_server/list_entities.cpp,sha256=yQ3skDSDFnnKsEpLdkyjzySmXOtrxzQ4sk8UW_K1Y-U,5972
3392
3392
  esphome/components/web_server/list_entities.h,sha256=afeebykHFeV1rLpywOSZqaPqfL-K-MkLByfJWrkrb-M,2561
3393
3393
  esphome/components/web_server/server_index_v2.h,sha256=cVFZzhvmwcUzN815XwYnx2L9zf5lH-MAZjolRearXdw,74968
3394
3394
  esphome/components/web_server/server_index_v3.h,sha256=5SZfSHDG4xAyXNBxUqs8-jSVwocgfRbNbTSMwzVl1io,476640
3395
- esphome/components/web_server/web_server.cpp,sha256=kQ_ItIqWFnjaviidmfZ3EKO3_vvntjK78gjK5Za4wp8,73515
3395
+ esphome/components/web_server/web_server.cpp,sha256=bwc2jb7b4-7mtrztGpW9SMWseuh38vHihViuUp5qsho,73613
3396
3396
  esphome/components/web_server/web_server.h,sha256=AGCOdOaZe7Xe5nCL4rHhqWNg-uo5cc6nu84vQr4GdrQ,21558
3397
- esphome/components/web_server/web_server_v1.cpp,sha256=fV-xD15gjGVd2g_u4aUF2RDJHANuvbn6qtokNUCTG7Y,7212
3397
+ esphome/components/web_server/web_server_v1.cpp,sha256=ZnFV1J2YAzAT2mtR-eeVgG1TSVpy953EF1yVKYdTcTg,7409
3398
3398
  esphome/components/web_server/ota/__init__.py,sha256=w4Ufe8mN-5r0913AODCjl9LlCKMpWRTFMSCEmLgRzxE,1018
3399
- esphome/components/web_server/ota/ota_web_server.cpp,sha256=kWTD9frcekWvhqau2T12yFUAku9r0CR2uDmmLUfvDxw,7279
3399
+ esphome/components/web_server/ota/ota_web_server.cpp,sha256=4c1BeJDlwT1YJCbnt4fYRzAVtJxDP3hvJkbYfetZX4E,8140
3400
3400
  esphome/components/web_server/ota/ota_web_server.h,sha256=ZZQHTxb21gqukibGei-om00MxpBD4Qyy031PXBMmjT8,604
3401
3401
  esphome/components/web_server_base/__init__.py,sha256=uM9rrhE1Pu_yvwfrLLHheh1ip_9mL2JSZC5NrrBdrj0,1281
3402
3402
  esphome/components/web_server_base/web_server_base.cpp,sha256=plEcGgYKFku3cSlv7rNAPC6GMWkjIflie3yVERoHDNA,876
@@ -3432,7 +3432,7 @@ esphome/components/wiegand/wiegand.h,sha256=gyg5szEK0okoeLBQR284k84xy-ln19kNIkeO
3432
3432
  esphome/components/wifi/__init__.py,sha256=PdteGKfa8FYdpGED8Gu9IXL2UzNmQX87jYDFTxHuCx8,18884
3433
3433
  esphome/components/wifi/wifi_component.cpp,sha256=qNfhYkXrEXRuRGEziFrkTngs4xpf20WOOJfbFLZxwuU,28904
3434
3434
  esphome/components/wifi/wifi_component.h,sha256=Lln0mi1o4inJUtn36DzBPhXAveh2P44bdf2vi97VNdc,15782
3435
- esphome/components/wifi/wifi_component_esp32_arduino.cpp,sha256=WML_usn-M6w5KIgoaj-yktTjH9HwsPZksMA7XFml00c,28017
3435
+ esphome/components/wifi/wifi_component_esp32_arduino.cpp,sha256=zsFcljPzCUiS-jw6Y0yjUEQFgO7O5HXkvrgY64nTGfs,27719
3436
3436
  esphome/components/wifi/wifi_component_esp8266.cpp,sha256=jnj9xvGct40-0MfbJlK3eJATbuPHold5QqbPisQQDdY,27514
3437
3437
  esphome/components/wifi/wifi_component_esp_idf.cpp,sha256=jMdD2INzgdSnff7-jnxBeG5xQQCOGk4y6UXPZ4sFOQE,35864
3438
3438
  esphome/components/wifi/wifi_component_libretiny.cpp,sha256=zjJ9XNGIsW0Q8fczMxYr4hQSX559wD-usw1NKRIKaJw,16144
@@ -3450,7 +3450,7 @@ esphome/components/wireguard/__init__.py,sha256=EFer9fT28hNCmf4x36e1m5icdIMueynA
3450
3450
  esphome/components/wireguard/binary_sensor.py,sha256=ufCoEUae0jzZoSjao1_L9zGe_fS6irjTaw5OEKJHQuE,1076
3451
3451
  esphome/components/wireguard/sensor.py,sha256=JUHo1XEl81N5hn2BYemaToa4t7aLKqjx_J36cLUj71I,823
3452
3452
  esphome/components/wireguard/text_sensor.py,sha256=WuCrOiKHRgljObCWDVZ2hfk7PYQUaiQ1X7E9lnoUODs,711
3453
- esphome/components/wireguard/wireguard.cpp,sha256=FD1KVju0qGBXqT4wkkA9ZU7llygmV1wUGN7qw0qQEtI,10328
3453
+ esphome/components/wireguard/wireguard.cpp,sha256=8XahOW_eGPgY4fL1vDwcpEkfel7NB5TiZ7-AyAbrwYc,10455
3454
3454
  esphome/components/wireguard/wireguard.h,sha256=BaaRAyqK0gP59f96D8w4gVBW43a4bMvAdYzmPTK4olc,4969
3455
3455
  esphome/components/wk2132_i2c/__init__.py,sha256=Vd-c0QRYTqxADFhwuTPjA_wnyqD5cZcHReN9vGTA1Nc,848
3456
3456
  esphome/components/wk2132_i2c/wk2132_i2c.cpp,sha256=u2T0Rtrasgnxxslaau20-fPA0Zo6NxysL54x3Mdqc9s,146
@@ -3597,10 +3597,10 @@ esphome/core/application.cpp,sha256=Tsl2sCS3awRjrJL5A9g2syW7s8tRwl1RtoCUhZUrQsI,
3597
3597
  esphome/core/application.h,sha256=upjEdRfEZWrH27s3PFYqmORG7Kd4SlbtexipPdYKwUk,21848
3598
3598
  esphome/core/area.h,sha256=mtFxmuv8fC2hArcey3cZ0F6hMXSO2QpFZ9Xv49z4rvk,393
3599
3599
  esphome/core/automation.h,sha256=UgoI-ebaL5YJ_cyRB-3ijHQxzt4cTbTaWw4eRGoOwBI,8627
3600
- esphome/core/base_automation.h,sha256=wAJu_yy1tDjwARdCZ312t7anzR9dBF_54qiXm1sy-_g,11216
3600
+ esphome/core/base_automation.h,sha256=C-6op63m-ghuaUy-q515XAx7iKjoxBFbQeRLmRtQGSM,11230
3601
3601
  esphome/core/color.cpp,sha256=gcFk-FTJzvrePzqgA5gvsXv8iWct0ykdVGx_ivrilR0,254
3602
3602
  esphome/core/color.h,sha256=K2iTTKgOgXcCm61S1f2P_k7YheKP654gUubWq5X0FhE,6647
3603
- esphome/core/component.cpp,sha256=rHgS2cukrb3ukBp74KtMEKc2n7U3D7oNLgPdpZrZvmA,16811
3603
+ esphome/core/component.cpp,sha256=ctFoir-YMeK3WQ_Tjg9QxizA0cjSYX1UaIp9mdE01Zc,16875
3604
3604
  esphome/core/component.h,sha256=Z1TYaQDGkoddm75zaPTQc_C0STpCCl200oDZsoc6yAk,17985
3605
3605
  esphome/core/component_iterator.cpp,sha256=VD_bSv474jQlKctKIzYSPUK8zpm01PJ1Fymix1c92Jg,11121
3606
3606
  esphome/core/component_iterator.h,sha256=-j9hGIY8mCmgq2nLuoG_IFY0lSoHkImXMEVtUKYpngA,3791
@@ -3614,12 +3614,12 @@ esphome/core/doxygen.h,sha256=9fAJ2T-1z96-NYnj63vQhsnKthHBrh3EqBnY0h3ZN-A,439
3614
3614
  esphome/core/entity_base.cpp,sha256=4JMAGN8w3bMW-kTchQxlbA-zS43NOdYhT1Fo0Celx78,2453
3615
3615
  esphome/core/entity_base.h,sha256=bzNEdGDbJsO0ijowJHmLMLeCN3mY1hqzWK4dF39bpik,6429
3616
3616
  esphome/core/entity_helpers.py,sha256=03-t7OcXa8L-_634OAEU9s-opgjoIKqC9acXHoXR6lA,8169
3617
- esphome/core/event_pool.h,sha256=TjA2sl_s5ScKC9d_5nssvImbPkpJJUWo5DDZwCaZ0QU,2457
3617
+ esphome/core/event_pool.h,sha256=X8_-72rODgpG9P_dSjezkJjFaaFvXy0cV42o6X-Vv1Q,2405
3618
3618
  esphome/core/gpio.h,sha256=kLkCnPxu4_1CsLR4BI_Baj1lDGoRIh8uubbwsIkJPIA,2575
3619
3619
  esphome/core/hal.h,sha256=Le0-vtdDylYCaE9i4yvrv5-Y5PB5xoL3PM2FfMJsIeA,970
3620
3620
  esphome/core/helpers.cpp,sha256=eyOYJWmMEcdX8dJ3RoIcl6MeOmc0C3cTPafZDTzQ4OM,20961
3621
- esphome/core/helpers.h,sha256=jhoCkhTlwqSVOXVNWK7RnIXgJQiu9QvbsZV-WmPWOTY,33362
3622
- esphome/core/lock_free_queue.h,sha256=S6QMMT8L8rG_qOzkTHWqcP9amok99hFhXGlZoj8C4XU,5104
3621
+ esphome/core/helpers.h,sha256=213N4rXgWCcuBB-aZDV9TW5UIYRzzGhU44YXWJz2Ys4,33961
3622
+ esphome/core/lock_free_queue.h,sha256=j3wSEyxqkjBDnCwEQd4ARHDubjSrLPxMAzZvqdNN2co,4953
3623
3623
  esphome/core/log.cpp,sha256=cc6JIMRlIEk7lCQa6JFrL6bTBZ89xWNLwf26AFNzKC0,1625
3624
3624
  esphome/core/log.h,sha256=Fb0_ORK0q-WV0i49gzb8i9_C38RUe8VILIdbu1Bel5M,6627
3625
3625
  esphome/core/log_const_en.h,sha256=zrLwl0tQmh1pkNB1bq8lqLdJKbo7_dFmppRI7hVKAf8,133
@@ -3628,8 +3628,8 @@ esphome/core/optional.h,sha256=uKMzglliXSA5eC3ujwrADmyt8m7X4WkBQcOL6p3ET7E,7144
3628
3628
  esphome/core/preferences.h,sha256=RxgWuAi-uo6SZiK8UKX4KTwVfIMnaaLvrZP2rqTn_mE,1959
3629
3629
  esphome/core/ring_buffer.cpp,sha256=6vOoKNjO4dSLYfqJYM8AXclpKgQOH6C79CqocwTSv-k,3526
3630
3630
  esphome/core/ring_buffer.h,sha256=4SeN2DYZLCHrLIjSPDsiAynIjwOoItiRUDO-u1wjq-o,2997
3631
- esphome/core/scheduler.cpp,sha256=EujNgcC6CgG_IGydPyylRB3qC4Q34cgcn7eIfqD1Zx0,19968
3632
- esphome/core/scheduler.h,sha256=Im_s45ic3Km2ejByqVfeTSMYWJDu6oAf3zVvn1EM_iw,8193
3631
+ esphome/core/scheduler.cpp,sha256=RsVXsvfljDcLytZ4sLQam4lLL2tNHSPrhg3LGS9YMcA,19944
3632
+ esphome/core/scheduler.h,sha256=BhP31NgW5qzoUdAs-jITMw-pv3OIGJk_ZVyFvqqANuU,8276
3633
3633
  esphome/core/string_ref.cpp,sha256=of1TYMY6t3t4HjjPLSiItuPSa62AMG0lK_CU2HS1RvM,242
3634
3634
  esphome/core/string_ref.h,sha256=Rd8HVBiUZrPA3TkPCwuAxGw91VX-e3Fky812OCNhNvA,5227
3635
3635
  esphome/core/time.cpp,sha256=ML3sAvlSgDaUkhbPmBkUkSFhGM78j0d7cL8CHAIgfow,7667
@@ -3655,9 +3655,9 @@ esphome/dashboard/util/itertools.py,sha256=8eLrWEWmICLtXNxkKdYPQV0c_N4GEz8m9Npnb
3655
3655
  esphome/dashboard/util/password.py,sha256=cQz3b9B-ijTe7zS6BeCW0hc3pWv6JjC78jmnycYYAh8,321
3656
3656
  esphome/dashboard/util/subprocess.py,sha256=T8EW6dbU4LPd2DG1dRrdh8li71tt6J1isn411poMhkk,1022
3657
3657
  esphome/dashboard/util/text.py,sha256=wwFtORlvHjsYkqb68IT-772LHAhWxT4OtnkIcPICQB0,317
3658
- esphome-2025.7.0b5.dist-info/licenses/LICENSE,sha256=HzEjkBInJe44L4WvAOPfhPJJDNj6YbnqFyvGWRzArGM,36664
3659
- esphome-2025.7.0b5.dist-info/METADATA,sha256=Hm8UwtfOHLC_vphdoULkU0CFP34c2qrxWMuIbubMGTs,3707
3660
- esphome-2025.7.0b5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
3661
- esphome-2025.7.0b5.dist-info/entry_points.txt,sha256=mIxVNuWtbYzeEcaWCl-AQ-97aBOWbnYBAK8nbF6P4M0,50
3662
- esphome-2025.7.0b5.dist-info/top_level.txt,sha256=0GSXEW3cnITpgG3qnsSMz0qoqJHAFyfw7Y8MVtEf1Yk,8
3663
- esphome-2025.7.0b5.dist-info/RECORD,,
3658
+ esphome-2025.7.2.dist-info/licenses/LICENSE,sha256=HzEjkBInJe44L4WvAOPfhPJJDNj6YbnqFyvGWRzArGM,36664
3659
+ esphome-2025.7.2.dist-info/METADATA,sha256=DPtrT8cCskiqvQyqD7C-Mb3Ahj9UEjYZciLgbs5ciuo,3705
3660
+ esphome-2025.7.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
3661
+ esphome-2025.7.2.dist-info/entry_points.txt,sha256=mIxVNuWtbYzeEcaWCl-AQ-97aBOWbnYBAK8nbF6P4M0,50
3662
+ esphome-2025.7.2.dist-info/top_level.txt,sha256=0GSXEW3cnITpgG3qnsSMz0qoqJHAFyfw7Y8MVtEf1Yk,8
3663
+ esphome-2025.7.2.dist-info/RECORD,,