esphome 2025.5.0b6__py3-none-any.whl → 2025.5.1__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.
@@ -4,11 +4,11 @@
4
4
  #include <cinttypes>
5
5
  #include <utility>
6
6
  #include "esphome/components/network/util.h"
7
+ #include "esphome/core/application.h"
7
8
  #include "esphome/core/entity_base.h"
8
9
  #include "esphome/core/hal.h"
9
10
  #include "esphome/core/log.h"
10
11
  #include "esphome/core/version.h"
11
- #include "esphome/core/application.h"
12
12
 
13
13
  #ifdef USE_DEEP_SLEEP
14
14
  #include "esphome/components/deep_sleep/deep_sleep_component.h"
@@ -153,7 +153,11 @@ void APIConnection::loop() {
153
153
  } else {
154
154
  this->last_traffic_ = App.get_loop_component_start_time();
155
155
  // read a packet
156
- this->read_message(buffer.data_len, buffer.type, &buffer.container[buffer.data_offset]);
156
+ if (buffer.data_len > 0) {
157
+ this->read_message(buffer.data_len, buffer.type, &buffer.container[buffer.data_offset]);
158
+ } else {
159
+ this->read_message(0, buffer.type, nullptr);
160
+ }
157
161
  if (this->remove_)
158
162
  return;
159
163
  }
@@ -15,8 +15,9 @@
15
15
  #ifdef USE_ARDUINO
16
16
  #include <Esp.h>
17
17
  #else
18
+ #if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 1, 0)
18
19
  #include <esp_clk_tree.h>
19
-
20
+ #endif
20
21
  void setup();
21
22
  void loop();
22
23
  #endif
@@ -63,7 +64,13 @@ uint32_t arch_get_cpu_cycle_count() { return cpu_hal_get_cycle_count(); }
63
64
  uint32_t arch_get_cpu_freq_hz() {
64
65
  uint32_t freq = 0;
65
66
  #ifdef USE_ESP_IDF
67
+ #if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 1, 0)
66
68
  esp_clk_tree_src_get_freq_hz(SOC_MOD_CLK_CPU, ESP_CLK_TREE_SRC_FREQ_PRECISION_CACHED, &freq);
69
+ #else
70
+ rtc_cpu_freq_config_t config;
71
+ rtc_clk_cpu_freq_get_config(&config);
72
+ freq = config.freq_mhz * 1000000U;
73
+ #endif
67
74
  #elif defined(USE_ARDUINO)
68
75
  freq = ESP.getCpuFreqMHz() * 1000000;
69
76
  #endif
@@ -24,6 +24,7 @@ from esphome.const import (
24
24
  CONF_HARDWARE_UART,
25
25
  CONF_ID,
26
26
  CONF_LEVEL,
27
+ CONF_LOGGER,
27
28
  CONF_LOGS,
28
29
  CONF_ON_MESSAGE,
29
30
  CONF_TAG,
@@ -247,6 +248,7 @@ CONFIG_SCHEMA = cv.All(
247
248
  async def to_code(config):
248
249
  baud_rate = config[CONF_BAUD_RATE]
249
250
  level = config[CONF_LEVEL]
251
+ CORE.data.setdefault(CONF_LOGGER, {})[CONF_LEVEL] = level
250
252
  initial_level = LOG_LEVELS[config.get(CONF_INITIAL_LEVEL, level)]
251
253
  log = cg.new_Pvariable(
252
254
  config[CONF_ID],
@@ -5,7 +5,7 @@ from esphome.const import CONF_LEVEL, CONF_LOGGER, ENTITY_CATEGORY_CONFIG, ICON_
5
5
  from esphome.core import CORE
6
6
  from esphome.cpp_helpers import register_component, register_parented
7
7
 
8
- from .. import CONF_LOGGER_ID, LOG_LEVEL_SEVERITY, Logger, logger_ns
8
+ from .. import CONF_LOGGER_ID, LOG_LEVELS, Logger, logger_ns
9
9
 
10
10
  CODEOWNERS = ["@clydebarrow"]
11
11
 
@@ -21,9 +21,10 @@ CONFIG_SCHEMA = select.select_schema(
21
21
 
22
22
 
23
23
  async def to_code(config):
24
- levels = LOG_LEVEL_SEVERITY
25
- index = levels.index(CORE.config[CONF_LOGGER][CONF_LEVEL])
24
+ parent = await cg.get_variable(config[CONF_LOGGER_ID])
25
+ levels = list(LOG_LEVELS)
26
+ index = levels.index(CORE.data[CONF_LOGGER][CONF_LEVEL])
26
27
  levels = levels[: index + 1]
27
28
  var = await select.new_select(config, options=levels)
28
- await register_parented(var, config[CONF_LOGGER_ID])
29
+ await register_parented(var, parent)
29
30
  await register_component(var, config)
@@ -36,29 +36,43 @@ from .types import (
36
36
  # this will be populated later, in __init__.py to avoid circular imports.
37
37
  WIDGET_TYPES: dict = {}
38
38
 
39
+ TIME_TEXT_SCHEMA = cv.Schema(
40
+ {
41
+ cv.Required(CONF_TIME_FORMAT): cv.string,
42
+ cv.GenerateID(CONF_TIME): cv.templatable(cv.use_id(RealTimeClock)),
43
+ }
44
+ )
45
+
46
+ PRINTF_TEXT_SCHEMA = cv.All(
47
+ cv.Schema(
48
+ {
49
+ cv.Required(CONF_FORMAT): cv.string,
50
+ cv.Optional(CONF_ARGS, default=list): cv.ensure_list(cv.lambda_),
51
+ },
52
+ ),
53
+ validate_printf,
54
+ )
55
+
56
+
57
+ def _validate_text(value):
58
+ """
59
+ Do some sanity checking of the format to get better error messages
60
+ than using cv.Any
61
+ """
62
+ if value is None:
63
+ raise cv.Invalid("No text specified")
64
+ if isinstance(value, dict):
65
+ if CONF_TIME_FORMAT in value:
66
+ return TIME_TEXT_SCHEMA(value)
67
+ return PRINTF_TEXT_SCHEMA(value)
68
+
69
+ return cv.templatable(cv.string)(value)
70
+
71
+
39
72
  # A schema for text properties
40
73
  TEXT_SCHEMA = cv.Schema(
41
74
  {
42
- cv.Optional(CONF_TEXT): cv.Any(
43
- cv.All(
44
- cv.Schema(
45
- {
46
- cv.Required(CONF_FORMAT): cv.string,
47
- cv.Optional(CONF_ARGS, default=list): cv.ensure_list(
48
- cv.lambda_
49
- ),
50
- },
51
- ),
52
- validate_printf,
53
- ),
54
- cv.Schema(
55
- {
56
- cv.Required(CONF_TIME_FORMAT): cv.string,
57
- cv.GenerateID(CONF_TIME): cv.templatable(cv.use_id(RealTimeClock)),
58
- }
59
- ),
60
- cv.templatable(cv.string),
61
- )
75
+ cv.Optional(CONF_TEXT): _validate_text,
62
76
  }
63
77
  )
64
78
 
@@ -147,7 +147,11 @@ bool StreamingModel::perform_streaming_inference(const int8_t features[PREPROCES
147
147
  this->recent_streaming_probabilities_[this->last_n_index_] = output->data.uint8[0]; // probability;
148
148
  this->unprocessed_probability_status_ = true;
149
149
  }
150
- this->ignore_windows_ = std::min(this->ignore_windows_ + 1, 0);
150
+ if (this->recent_streaming_probabilities_[this->last_n_index_] < this->probability_cutoff_) {
151
+ // Only increment ignore windows if less than the probability cutoff; this forces the model to "cool-off" from a
152
+ // previous detection and calling ``reset_probabilities`` so it avoids duplicate detections
153
+ this->ignore_windows_ = std::min(this->ignore_windows_ + 1, 0);
154
+ }
151
155
  }
152
156
  return true;
153
157
  }
@@ -75,7 +75,7 @@ class PNGFormat(Format):
75
75
 
76
76
  def actions(self):
77
77
  cg.add_define("USE_ONLINE_IMAGE_PNG_SUPPORT")
78
- cg.add_library("pngle", "1.0.2")
78
+ cg.add_library("pngle", "1.1.0")
79
79
 
80
80
 
81
81
  IMAGE_FORMATS = {
@@ -34,12 +34,32 @@ static void init_callback(pngle_t *pngle, uint32_t w, uint32_t h) {
34
34
  * @param h The height of the rectangle to draw.
35
35
  * @param rgba The color to paint the rectangle in.
36
36
  */
37
- static void draw_callback(pngle_t *pngle, uint32_t x, uint32_t y, uint32_t w, uint32_t h, uint8_t rgba[4]) {
37
+ static void draw_callback(pngle_t *pngle, uint32_t x, uint32_t y, uint32_t w, uint32_t h, const uint8_t rgba[4]) {
38
38
  PngDecoder *decoder = (PngDecoder *) pngle_get_user_data(pngle);
39
39
  Color color(rgba[0], rgba[1], rgba[2], rgba[3]);
40
40
  decoder->draw(x, y, w, h, color);
41
41
  }
42
42
 
43
+ PngDecoder::PngDecoder(OnlineImage *image) : ImageDecoder(image) {
44
+ {
45
+ pngle_t *pngle = this->allocator_.allocate(1, PNGLE_T_SIZE);
46
+ if (!pngle) {
47
+ ESP_LOGE(TAG, "Failed to allocate memory for PNGLE engine!");
48
+ return;
49
+ }
50
+ memset(pngle, 0, PNGLE_T_SIZE);
51
+ pngle_reset(pngle);
52
+ this->pngle_ = pngle;
53
+ }
54
+ }
55
+
56
+ PngDecoder::~PngDecoder() {
57
+ if (this->pngle_) {
58
+ pngle_reset(this->pngle_);
59
+ this->allocator_.deallocate(this->pngle_, PNGLE_T_SIZE);
60
+ }
61
+ }
62
+
43
63
  int PngDecoder::prepare(size_t download_size) {
44
64
  ImageDecoder::prepare(download_size);
45
65
  if (!this->pngle_) {
@@ -1,7 +1,8 @@
1
1
  #pragma once
2
2
 
3
- #include "image_decoder.h"
4
3
  #include "esphome/core/defines.h"
4
+ #include "esphome/core/helpers.h"
5
+ #include "image_decoder.h"
5
6
  #ifdef USE_ONLINE_IMAGE_PNG_SUPPORT
6
7
  #include <pngle.h>
7
8
 
@@ -18,13 +19,14 @@ class PngDecoder : public ImageDecoder {
18
19
  *
19
20
  * @param display The image to decode the stream into.
20
21
  */
21
- PngDecoder(OnlineImage *image) : ImageDecoder(image), pngle_(pngle_new()) {}
22
- ~PngDecoder() override { pngle_destroy(this->pngle_); }
22
+ PngDecoder(OnlineImage *image);
23
+ ~PngDecoder() override;
23
24
 
24
25
  int prepare(size_t download_size) override;
25
26
  int HOT decode(uint8_t *buffer, size_t size) override;
26
27
 
27
28
  protected:
29
+ RAMAllocator<pngle_t> allocator_;
28
30
  pngle_t *pngle_;
29
31
  };
30
32
 
@@ -174,6 +174,16 @@ AudioPipelineState AudioPipeline::process_state() {
174
174
  }
175
175
  }
176
176
 
177
+ if ((event_bits & EventGroupBits::READER_MESSAGE_ERROR)) {
178
+ xEventGroupClearBits(this->event_group_, EventGroupBits::READER_MESSAGE_ERROR);
179
+ return AudioPipelineState::ERROR_READING;
180
+ }
181
+
182
+ if ((event_bits & EventGroupBits::DECODER_MESSAGE_ERROR)) {
183
+ xEventGroupClearBits(this->event_group_, EventGroupBits::DECODER_MESSAGE_ERROR);
184
+ return AudioPipelineState::ERROR_DECODING;
185
+ }
186
+
177
187
  if ((event_bits & EventGroupBits::READER_MESSAGE_FINISHED) &&
178
188
  (!(event_bits & EventGroupBits::READER_MESSAGE_LOADED_MEDIA_TYPE) &&
179
189
  (event_bits & EventGroupBits::DECODER_MESSAGE_FINISHED))) {
@@ -203,16 +213,6 @@ AudioPipelineState AudioPipeline::process_state() {
203
213
  return AudioPipelineState::STOPPED;
204
214
  }
205
215
 
206
- if ((event_bits & EventGroupBits::READER_MESSAGE_ERROR)) {
207
- xEventGroupClearBits(this->event_group_, EventGroupBits::READER_MESSAGE_ERROR);
208
- return AudioPipelineState::ERROR_READING;
209
- }
210
-
211
- if ((event_bits & EventGroupBits::DECODER_MESSAGE_ERROR)) {
212
- xEventGroupClearBits(this->event_group_, EventGroupBits::DECODER_MESSAGE_ERROR);
213
- return AudioPipelineState::ERROR_DECODING;
214
- }
215
-
216
216
  if (this->pause_state_) {
217
217
  return AudioPipelineState::PAUSED;
218
218
  }
@@ -54,8 +54,8 @@ async def to_code(config):
54
54
  cg.add(var.set_select_mappings(list(options_map.keys())))
55
55
  parent = await cg.get_variable(config[CONF_TUYA_ID])
56
56
  cg.add(var.set_tuya_parent(parent))
57
- if enum_datapoint := config.get(CONF_ENUM_DATAPOINT, None) is not None:
57
+ if (enum_datapoint := config.get(CONF_ENUM_DATAPOINT, None)) is not None:
58
58
  cg.add(var.set_select_id(enum_datapoint, False))
59
- if int_datapoint := config.get(CONF_INT_DATAPOINT, None) is not None:
59
+ if (int_datapoint := config.get(CONF_INT_DATAPOINT, None)) is not None:
60
60
  cg.add(var.set_select_id(int_datapoint, True))
61
61
  cg.add(var.set_optimistic(config[CONF_OPTIMISTIC]))
esphome/const.py CHANGED
@@ -1,6 +1,6 @@
1
1
  """Constants used by esphome."""
2
2
 
3
- __version__ = "2025.5.0b6"
3
+ __version__ = "2025.5.1"
4
4
 
5
5
  ALLOWED_NAME_CHARS = "abcdefghijklmnopqrstuvwxyz0123456789-_"
6
6
  VALID_SUBSTITUTIONS_CHARACTERS = (
esphome/core/helpers.h CHANGED
@@ -1,6 +1,7 @@
1
1
  #pragma once
2
2
 
3
3
  #include <cmath>
4
+ #include <cstdint>
4
5
  #include <cstring>
5
6
  #include <functional>
6
7
  #include <limits>
esphome/core/string_ref.h CHANGED
@@ -1,5 +1,6 @@
1
1
  #pragma once
2
2
 
3
+ #include <cstdint>
3
4
  #include <cstring>
4
5
  #include <iterator>
5
6
  #include <memory>
@@ -601,10 +601,12 @@ class DownloadListRequestHandler(BaseHandler):
601
601
  loop = asyncio.get_running_loop()
602
602
  try:
603
603
  downloads_json = await loop.run_in_executor(None, self._get, configuration)
604
- except vol.Invalid:
604
+ except vol.Invalid as exc:
605
+ _LOGGER.exception("Error while fetching downloads", exc_info=exc)
605
606
  self.send_error(404)
606
607
  return
607
608
  if downloads_json is None:
609
+ _LOGGER.error("Configuration %s not found", configuration)
608
610
  self.send_error(404)
609
611
  return
610
612
  self.set_status(200)
@@ -618,14 +620,17 @@ class DownloadListRequestHandler(BaseHandler):
618
620
  if storage_json is None:
619
621
  return None
620
622
 
621
- config = yaml_util.load_yaml(settings.rel_path(configuration))
623
+ try:
624
+ config = yaml_util.load_yaml(settings.rel_path(configuration))
622
625
 
623
- if const.CONF_EXTERNAL_COMPONENTS in config:
624
- from esphome.components.external_components import (
625
- do_external_components_pass,
626
- )
626
+ if const.CONF_EXTERNAL_COMPONENTS in config:
627
+ from esphome.components.external_components import (
628
+ do_external_components_pass,
629
+ )
627
630
 
628
- do_external_components_pass(config)
631
+ do_external_components_pass(config)
632
+ except vol.Invalid:
633
+ _LOGGER.info("Could not parse `external_components`, skipping")
629
634
 
630
635
  from esphome.components.esp32 import VARIANTS as ESP32_VARIANTS
631
636
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: esphome
3
- Version: 2025.5.0b6
3
+ Version: 2025.5.1
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=GePHUM7xdXb_Pil59SHVsXg2F4VBPgkH-Fz2PDX8Z54,1873
5
5
  esphome/config.py,sha256=-SoMrYNlKL85sYK_t_UQXKEKm-xrZYhyRqwiUpBXyXE,39896
6
6
  esphome/config_helpers.py,sha256=MKf_wzO35nn41FvigXE0iYKDslPgL2ruf8R-EPtTT2I,3256
7
7
  esphome/config_validation.py,sha256=vEDw3u5jfyZbELimFLjTK5YuupBwKI8Np8HUo7oqpoo,61434
8
- esphome/const.py,sha256=z8MZoQ3buzPapKv7JbgoThPie_p0bu_MEQuRZDBhKs8,41482
8
+ esphome/const.py,sha256=aaeYPUtcOBNoZIeBpzK2voqOgBCVyz1j2PGgRWEzHR0,41480
9
9
  esphome/coroutine.py,sha256=j_14z8dIIzIBeuNO30D4c1RJvMMt1xZFZ58Evd-EvJA,9344
10
10
  esphome/cpp_generator.py,sha256=39sLZ_f7UKrTOKKG5PVNQ6ucSRJFP0FYEhDN82DCO6Y,31377
11
11
  esphome/cpp_helpers.py,sha256=6C2vNbOIhZKi43xRVlk5hp9GfshfBn-rc5D_ZFUEYaE,4801
@@ -182,7 +182,7 @@ esphome/components/apds9960/apds9960.h,sha256=oFrXPQrPDS16gNSVdN1n6SKuvjwc9LdvpK
182
182
  esphome/components/apds9960/binary_sensor.py,sha256=MvCYb6pTgOU48TMm_YhN6uHKkoFKFvhma3lwQQD9xfM,787
183
183
  esphome/components/apds9960/sensor.py,sha256=vUPm5H_IFROftGlMJWfgqSzm0IeLpYh5DvtA_DL1Amk,872
184
184
  esphome/components/api/__init__.py,sha256=eDf1EuKrpeQ9bu3KDim5VvwDaAekzBGFXQJV50mPXf4,10459
185
- esphome/components/api/api_connection.cpp,sha256=OkutLz8Yg0ybxQJoXTVRpzpsJng8NZ1MnyjUEdbEfN8,68927
185
+ esphome/components/api/api_connection.cpp,sha256=JTQC3LIV5VG8BbJDcGckbIed1gC8FhU5yKyN43nmtUc,69030
186
186
  esphome/components/api/api_connection.h,sha256=JvnTtRbBOJatkjeAra--7MY72cQooeiYo7B3paOKhg4,21419
187
187
  esphome/components/api/api_frame_helper.cpp,sha256=bFmRYeRiIXxyevKcziDvjKjI0ofvFT5-44U0Ux6zJDA,38336
188
188
  esphome/components/api/api_frame_helper.h,sha256=TT3s7f4tWwhEJ9yhB2osU9R7f34MD8MO6EFAOeyq0Zk,8214
@@ -799,7 +799,7 @@ esphome/components/es8311/es8311_const.h,sha256=bUBF4DJ28DcLPHznvh30Guewi65mSqQb
799
799
  esphome/components/esp32/__init__.py,sha256=69TidRc1h15dsAP4Mrx7dnAJGpumJKsYr50Fc-kg25E,33238
800
800
  esphome/components/esp32/boards.py,sha256=BSabIM_DaDXFkPvGemv_3mcqFgEUt2lAnxN5EFpCO9U,52725
801
801
  esphome/components/esp32/const.py,sha256=2yxLQg3p2-S3nRL6-zsF_dICrP_6waUfY5k8EFsoyVM,966
802
- esphome/components/esp32/core.cpp,sha256=ACJvAXS9GaW5pXKhera-kdrx3s_wPULjkja444MSV1s,2633
802
+ esphome/components/esp32/core.cpp,sha256=7O7S5bJPNUeX8ge1mxpyZ1WzxTf1fFDCRK3P5UxZvq8,2865
803
803
  esphome/components/esp32/gpio.cpp,sha256=29SanxYKoiTw2sdn93X5Y0uigKJlhaApu6Jc-pJLXpY,6607
804
804
  esphome/components/esp32/gpio.h,sha256=fIPLaMPSodwS4anI4DdOrWPee3pHR3GLHLSTlwPuRzY,1298
805
805
  esphome/components/esp32/gpio.py,sha256=18VkjM_PA_Ux7jV_XG6HDLYGO9bj5vPUBTvU_rcP6GY,7229
@@ -1498,7 +1498,7 @@ esphome/components/lock/__init__.py,sha256=Ggh0T9KdTDyqmAeDzbmAYxnJzVVWkij2KylJt
1498
1498
  esphome/components/lock/automation.h,sha256=7MU5AuJizydt7mKTr_uFsNleFI2jeBf7B_dNp3e8Fks,1771
1499
1499
  esphome/components/lock/lock.cpp,sha256=IyEt5xShAxMpmcn_GAPFv2lRCS-kr4MjjfExxfXuK-Q,3212
1500
1500
  esphome/components/lock/lock.h,sha256=kFFccTAu56e6PhZVATW0NznOj0M7VByEn9gc6l5M3eA,6042
1501
- esphome/components/logger/__init__.py,sha256=aqw-pN0QJ6J9OgqHFdnfuk6tPchfqVcVn2gFfyVuwAY,14743
1501
+ esphome/components/logger/__init__.py,sha256=OOKS7yGtVaqIBoA0Y36mwNlK2H8182uDdy4cGPZwajA,14822
1502
1502
  esphome/components/logger/logger.cpp,sha256=9dxWxuHgWpwMiD27CuQgXbkGMiC3Uc84iglwj67OSP0,10485
1503
1503
  esphome/components/logger/logger.h,sha256=73V1H5FoZCpFmVUGlNG2FNev4Zgp7F9tFBhnOKdMrD8,13021
1504
1504
  esphome/components/logger/logger_esp32.cpp,sha256=SOLN5oHiVbnItxw4wdhvNdeunwgY7FR5j752fEt9__M,6101
@@ -1508,7 +1508,7 @@ esphome/components/logger/logger_libretiny.cpp,sha256=-GTn0YT2m2X2JS4H2R6w7kXUWz
1508
1508
  esphome/components/logger/logger_rp2040.cpp,sha256=7X29d8hO65NIYS7fZoeyCR0oXC2LQcNuSAFtlvSniYw,991
1509
1509
  esphome/components/logger/task_log_buffer.cpp,sha256=De8xetK8CYpQtjyt0jashw97IejgtRdBcuT1uHOmnPo,4616
1510
1510
  esphome/components/logger/task_log_buffer.h,sha256=6E-H7Pe914Y-kPpfJJWlN7xtHoIPUpwoCNMCkrp1S4Y,2670
1511
- esphome/components/logger/select/__init__.py,sha256=v1Q-6bYRZRd_VXRF93kcqDCvY0x3fuYzJrkCq-uqzoE,991
1511
+ esphome/components/logger/select/__init__.py,sha256=a24OApXDycQ2ZtUrWtbdVpwicKRIhGqpJSyibhCQ6eE,1022
1512
1512
  esphome/components/logger/select/logger_level_select.cpp,sha256=VTInyo463i-Qoin4c251e0nXKhsgTkixlQ1rwE1EC3s,627
1513
1513
  esphome/components/logger/select/logger_level_select.h,sha256=rjUmIsZKszI8fK4FH--jkpmW4aDMNewiz8GOQoCtyn8,442
1514
1514
  esphome/components/ltr390/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1540,7 +1540,7 @@ esphome/components/lvgl/lvgl_esphome.cpp,sha256=YqbEb-zHjPptK9H9x157ozIJIpiefho0
1540
1540
  esphome/components/lvgl/lvgl_esphome.h,sha256=8a5DaKfK0jWa1dQsA0bC0aw_RoPrLXC5vcBzVi4CCXU,13927
1541
1541
  esphome/components/lvgl/lvgl_hal.h,sha256=aZqWpSmKKAB-ZfNxxgxjgASTtLpAZjXJKuoTiPB0qqU,431
1542
1542
  esphome/components/lvgl/lvgl_proxy.h,sha256=JPmVBVh5zD5nraJCN7PqXVmQQlc4CPJe_X9tA6IAtXQ,547
1543
- esphome/components/lvgl/schemas.py,sha256=NhbLKOS93LT4MWYmIP63VqaxamqzLx24GnFiPeVhg0A,16227
1543
+ esphome/components/lvgl/schemas.py,sha256=QySqz2vz4pON2HSBCHp-8tH19T7xrVUvRyoB3820aos,16398
1544
1544
  esphome/components/lvgl/styles.py,sha256=HTqSzCIy2WUZhhChafVhBeVEemWqFfNyWtXII34XI7k,3010
1545
1545
  esphome/components/lvgl/touchscreens.py,sha256=CntwVa1EUu6iBnxfvuv0rCYd_Njmf451CYdRqQyb9N4,1607
1546
1546
  esphome/components/lvgl/trigger.py,sha256=nk36OgqEQWuSwFsTHprM-bhIjh15bh3NyrsK-ffqGsw,3442
@@ -1741,7 +1741,7 @@ esphome/components/micro_wake_word/automation.h,sha256=7Wx_ys9SK_coI1ychdtHTkxyE
1741
1741
  esphome/components/micro_wake_word/micro_wake_word.cpp,sha256=vNqDK32iVXHxxa9UF7NrN_hHWsatRkirM-RtrzioDXU,17495
1742
1742
  esphome/components/micro_wake_word/micro_wake_word.h,sha256=OUgT_KQB4Lr9JWuSKAn1PgtlhhR5f98LKoIzFL-nzyI,4200
1743
1743
  esphome/components/micro_wake_word/preprocessor_settings.h,sha256=q-bNGC0UjUmx4WVvjI-T3RhPJHiMoT65NSlBs2YRX8s,1299
1744
- esphome/components/micro_wake_word/streaming_model.cpp,sha256=Ssug0HYwwMmaAxzqQvQO_9isX8J18zkaUUxbOw7z2iE,10481
1744
+ esphome/components/micro_wake_word/streaming_model.cpp,sha256=fsVovrBmKkF6wLPbDzIH3aoQDbFGDb-T4mdzQU-GFIU,10804
1745
1745
  esphome/components/micro_wake_word/streaming_model.h,sha256=2AT76eAKIGqtEFiNtsMARTTVOXxjjjRnxgYBZOumdM0,6170
1746
1746
  esphome/components/micronova/__init__.py,sha256=iPElnW5XWXLEvZe1wWqgbRY_xhqiQNI7SB521tVJkXI,2668
1747
1747
  esphome/components/micronova/micronova.cpp,sha256=gc0xDasM0sBvU6BNnT24ArBJ1bgrnoPcq9dWLuFbTD8,5297
@@ -2051,7 +2051,7 @@ esphome/components/one_wire/one_wire.cpp,sha256=bkAEEIDm3cCPM4RqDs-ZSZ4Moxbm7Fm8
2051
2051
  esphome/components/one_wire/one_wire.h,sha256=QyYHANwfSz3xx9EKFtgxi2VRlzSQdfubyWXqZcuIzPI,1249
2052
2052
  esphome/components/one_wire/one_wire_bus.cpp,sha256=gDFELdtwfDzOFevUJplZReGTSd8ggtxMZlysIOaunEw,2374
2053
2053
  esphome/components/one_wire/one_wire_bus.h,sha256=eFNPYr6zduzj3HPiR4OIl6rzeWbN06E2BiPMws6NsFc,1626
2054
- esphome/components/online_image/__init__.py,sha256=Xq5yjzakmBtOmX-F354EXds6A9l0K7QUWNbuOyn0Bao,6231
2054
+ esphome/components/online_image/__init__.py,sha256=4MHDLi0iGBTuDS3ns5EjkaiTcN6Qr2q-cRD1_il1z2c,6231
2055
2055
  esphome/components/online_image/bmp_image.cpp,sha256=3juptNvpk8tL5iyOlB2hKsJRPOH47Rn5liDBn1Cpi-s,4513
2056
2056
  esphome/components/online_image/bmp_image.h,sha256=oOqxJ_6eC_73pQ5funjNB36tYWUZkHPagoo0XWJe_v8,933
2057
2057
  esphome/components/online_image/image_decoder.cpp,sha256=p_693Ac8F-vs2n_1AZ7E57HBfLhAeeBWYpI3tDy6rnE,2215
@@ -2060,8 +2060,8 @@ esphome/components/online_image/jpeg_image.cpp,sha256=1qDTfzp7H6oxuRVBVXXgglourm
2060
2060
  esphome/components/online_image/jpeg_image.h,sha256=RxlXrSxgd_j7tXYMGdkU1gVmkWB6Jc0YHuq13NrY9fc,741
2061
2061
  esphome/components/online_image/online_image.cpp,sha256=NpXUoKdbIJRdPcY5tQ-fxa6WLpTYeRs8sHJnNP2M2pA,10585
2062
2062
  esphome/components/online_image/online_image.h,sha256=40F0zWRI0p6A8pFfQdQ1eD5tnwgCxBDbeNcpCHgeUzk,7177
2063
- esphome/components/online_image/png_image.cpp,sha256=ysXfjX05YPuZaG0wxHg0EiPlj3HlddQqUdDG25W1jpY,2432
2064
- esphome/components/online_image/png_image.h,sha256=oDyTIkyOB2MiKxZ9YmctwN7sbc_E7Qz0PvFxWg9Lip8,783
2063
+ esphome/components/online_image/png_image.cpp,sha256=HjglIePX4mMDlXMVjxfJJagYGLpnZCH9kyF-gH9BIc0,2922
2064
+ esphome/components/online_image/png_image.h,sha256=8hu7kw5nCP_uFSRk8JItr3_zZoXMSoe-xFV7Omd0H_c,776
2065
2065
  esphome/components/opentherm/__init__.py,sha256=akuY6Z1QUybE_yrD3Yg6_GWQDQE5U5nO018OBxSCMco,5479
2066
2066
  esphome/components/opentherm/automation.h,sha256=7Ob3hTNE0lwAO7jdJf2nuTzTPU__FI5psfn8j-4edsQ,627
2067
2067
  esphome/components/opentherm/const.py,sha256=MercQyNt4vj245_74-O-ZULGjq19jux99aVFteiEVEU,244
@@ -2741,7 +2741,7 @@ esphome/components/speaker/__init__.py,sha256=2juDem8QadLMwzFp8Rvl-KeIbE-iIEsCtD
2741
2741
  esphome/components/speaker/automation.h,sha256=tVSTV49GvHk0bCEgLz3rNYFe8B1F0kXLgE-WihuRaV8,2320
2742
2742
  esphome/components/speaker/speaker.h,sha256=Y6EuDzsIx8GDcFeWnYXg4cXiBU-6CkmrRCaMpXQYiWo,4355
2743
2743
  esphome/components/speaker/media_player/__init__.py,sha256=bVvoKj9yiG0MOWFrMLAwnxdNjq8kxqUYRuokiCv7m4c,15264
2744
- esphome/components/speaker/media_player/audio_pipeline.cpp,sha256=KCo7Ujy9IZsViBQ4WotYJ3OrjwaNx7iXH1j6A9NRcww,22362
2744
+ esphome/components/speaker/media_player/audio_pipeline.cpp,sha256=UYIc3ntV98vTADPj7CJLerSguhVQGScCOdtCOdMZ0pU,22362
2745
2745
  esphome/components/speaker/media_player/audio_pipeline.h,sha256=MYt7_kp4IJDSTnXWqLaXIkbbNkGx6F_imSryFo2UUkc,5000
2746
2746
  esphome/components/speaker/media_player/automation.h,sha256=I8psUHnJ8T3fkM05h1yEYDxb0yWe6Vjz7i30OSVA3Is,683
2747
2747
  esphome/components/speaker/media_player/speaker_media_player.cpp,sha256=JpsDQjfEPZHuTofYzCcM92H5KkULyrua_z63mORqnDU,22668
@@ -3146,7 +3146,7 @@ esphome/components/tuya/light/tuya_light.h,sha256=uZ6FGnQ8IVXI6G7GpXs_QDcEzudqct
3146
3146
  esphome/components/tuya/number/__init__.py,sha256=IJkUx89TiMNS2IwTLk6h_awtXqYP97wgWYw-ENGNq0Y,3188
3147
3147
  esphome/components/tuya/number/tuya_number.cpp,sha256=hsTOxp3yV7CXeIXKzaShMuloSFHbHpyzJYP0EaNShnk,3084
3148
3148
  esphome/components/tuya/number/tuya_number.h,sha256=scGw2WHoxcRkjwoLyW7yKNc2ZRVf4BeWnWnOYdWA7qQ,1125
3149
- esphome/components/tuya/select/__init__.py,sha256=nETAOB8I9-g5AhJ9GxqF7kS7ojQp3hBKNCqIV94NXgg,2015
3149
+ esphome/components/tuya/select/__init__.py,sha256=MGCSbYVB3JFJieImChsNAdQ07Shwzi-l6tJX5tNZB6Q,2019
3150
3150
  esphome/components/tuya/select/tuya_select.cpp,sha256=7D2NQX29LDndyWzroQVjq2k9uQ4BtivtHmsUS98FdEw,1893
3151
3151
  esphome/components/tuya/select/tuya_select.h,sha256=QQI1gglXhgfYri9CRc5sxzVHg2UVZFDyKYoBwMr5WPw,924
3152
3152
  esphome/components/tuya/sensor/__init__.py,sha256=H301WiiVq8f3F84PJpJZojRgHnmW9TpLZwMLmLfpJB4,903
@@ -3505,7 +3505,7 @@ esphome/core/entity_helpers.py,sha256=s5lYCG5hu_1SROtSWgzI0T6802l5-I8udGy1_6HNSd
3505
3505
  esphome/core/gpio.h,sha256=kLkCnPxu4_1CsLR4BI_Baj1lDGoRIh8uubbwsIkJPIA,2575
3506
3506
  esphome/core/hal.h,sha256=e3qFkax3jfncEusf3kwXCts0Ai7D4XspJgh-VqVDcK4,844
3507
3507
  esphome/core/helpers.cpp,sha256=jdQr3nSMOj6bIFColDaxMa3_BsyL4gHi0FzeXNY5-rw,25140
3508
- esphome/core/helpers.h,sha256=Glb9nMEmRl9rQElEy8sXkqNmUdwHdnGA4raehWkB8wI,30298
3508
+ esphome/core/helpers.h,sha256=qGssN0aPZbEyt8PrqZ-I8bd_N7RuBN4KhzM-qdkagPA,30317
3509
3509
  esphome/core/log.cpp,sha256=MDCx87ytW6Fz6basxYUpagkubFzUKO1ysvU5RXbXoII,1581
3510
3510
  esphome/core/log.h,sha256=hnRVgv7LjfmCpFAFa5Trt_HmmChAm64j8a9c_N3GQXw,6493
3511
3511
  esphome/core/macros.h,sha256=yNx3-Dq7tSRe40Ip_Kbhp9e6w7oDhxlWlGBDLRlZaUI,244
@@ -3516,7 +3516,7 @@ esphome/core/ring_buffer.h,sha256=4SeN2DYZLCHrLIjSPDsiAynIjwOoItiRUDO-u1wjq-o,29
3516
3516
  esphome/core/scheduler.cpp,sha256=RUoEer5bFG8e7AH5sKa_aeeVyGHYIhOnpv6P5lNDIWw,11179
3517
3517
  esphome/core/scheduler.h,sha256=zdC14yXpXrj54c4kUQMqDmnEHBdJlfrTLR1YRfPQDtE,2161
3518
3518
  esphome/core/string_ref.cpp,sha256=of1TYMY6t3t4HjjPLSiItuPSa62AMG0lK_CU2HS1RvM,242
3519
- esphome/core/string_ref.h,sha256=uPLS1v13VMOltkXO3bL3owdX9P3s9CMnhVtkaphTdDQ,5208
3519
+ esphome/core/string_ref.h,sha256=Rd8HVBiUZrPA3TkPCwuAxGw91VX-e3Fky812OCNhNvA,5227
3520
3520
  esphome/core/time.cpp,sha256=70xJvr0_ytMWtkxyT8gSkGgPGekzKiKUs08-7-FHNd0,7602
3521
3521
  esphome/core/time.h,sha256=aQd7M_tO2X5ErvjTxpB6LmvdwJQjGlEfaqYe8rMkYWY,4347
3522
3522
  esphome/core/util.cpp,sha256=gbTBqOdLxWIxv9h8HFrLPZ96HZI6PBY-WBB_gdiqEts,774
@@ -3530,7 +3530,7 @@ esphome/dashboard/dns.py,sha256=VrItOGoZO1xBUQr3AXekYtGzzpPxCfxB7h97qt7ixk0,1545
3530
3530
  esphome/dashboard/entries.py,sha256=SWKJRQ7Zrm9dNm_yt34Ws1RY7rN1YgQysuU0lId7fq8,15666
3531
3531
  esphome/dashboard/enum.py,sha256=rlQFVVxyBt5Iw7OL0o9F8D5LGgw23tbvi-KYjzP0QUQ,597
3532
3532
  esphome/dashboard/settings.py,sha256=1iIGNTgU7xg6xvjazHYq8UHC6JXocKjKlsed0cQ-nkw,2858
3533
- esphome/dashboard/web_server.py,sha256=0y10H6tnPzSHh9x7UdBkz1I9F2JDQ-DAQ9DB8NR79kI,43417
3533
+ esphome/dashboard/web_server.py,sha256=j5VGWK0A3phInRgMAo_cXCUbOmRqM2BzDXaJd15xgfQ,43714
3534
3534
  esphome/dashboard/status/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3535
3535
  esphome/dashboard/status/mdns.py,sha256=jAjLuysjr29HUGA0Y_IQp4D1Qm-d3yHdHY6K00gUCD4,4775
3536
3536
  esphome/dashboard/status/mqtt.py,sha256=2QOq1vgwJCHW5uL_hqmi_R5fX5OTeTJUHx7c0pMLQKE,2578
@@ -3541,9 +3541,9 @@ esphome/dashboard/util/itertools.py,sha256=8eLrWEWmICLtXNxkKdYPQV0c_N4GEz8m9Npnb
3541
3541
  esphome/dashboard/util/password.py,sha256=cQz3b9B-ijTe7zS6BeCW0hc3pWv6JjC78jmnycYYAh8,321
3542
3542
  esphome/dashboard/util/subprocess.py,sha256=T8EW6dbU4LPd2DG1dRrdh8li71tt6J1isn411poMhkk,1022
3543
3543
  esphome/dashboard/util/text.py,sha256=ENDnfN4O0NdA3CKVJjQYabFbwbrsIhVKrAMQe53qYu4,534
3544
- esphome-2025.5.0b6.dist-info/licenses/LICENSE,sha256=HzEjkBInJe44L4WvAOPfhPJJDNj6YbnqFyvGWRzArGM,36664
3545
- esphome-2025.5.0b6.dist-info/METADATA,sha256=juubwFWfs4-YMLyGr0_9ZgEbuIkLZIZupcqKS7PIb7I,3626
3546
- esphome-2025.5.0b6.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
3547
- esphome-2025.5.0b6.dist-info/entry_points.txt,sha256=mIxVNuWtbYzeEcaWCl-AQ-97aBOWbnYBAK8nbF6P4M0,50
3548
- esphome-2025.5.0b6.dist-info/top_level.txt,sha256=0GSXEW3cnITpgG3qnsSMz0qoqJHAFyfw7Y8MVtEf1Yk,8
3549
- esphome-2025.5.0b6.dist-info/RECORD,,
3544
+ esphome-2025.5.1.dist-info/licenses/LICENSE,sha256=HzEjkBInJe44L4WvAOPfhPJJDNj6YbnqFyvGWRzArGM,36664
3545
+ esphome-2025.5.1.dist-info/METADATA,sha256=GX_xJDGoIHf3pu64vKzwCTcKXeX8Z-0Oit_cUOKauiA,3624
3546
+ esphome-2025.5.1.dist-info/WHEEL,sha256=DnLRTWE75wApRYVsjgc6wsVswC54sMSJhAEd4xhDpBk,91
3547
+ esphome-2025.5.1.dist-info/entry_points.txt,sha256=mIxVNuWtbYzeEcaWCl-AQ-97aBOWbnYBAK8nbF6P4M0,50
3548
+ esphome-2025.5.1.dist-info/top_level.txt,sha256=0GSXEW3cnITpgG3qnsSMz0qoqJHAFyfw7Y8MVtEf1Yk,8
3549
+ esphome-2025.5.1.dist-info/RECORD,,