esphome 2024.10.0b2__py3-none-any.whl → 2024.10.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.
@@ -45,7 +45,7 @@ CONFIG_SCHEMA = cv.All(
45
45
  cv.Optional(CONF_SERVICE_UUID): esp32_ble_tracker.bt_uuid,
46
46
  cv.Optional(CONF_IBEACON_MAJOR): cv.uint16_t,
47
47
  cv.Optional(CONF_IBEACON_MINOR): cv.uint16_t,
48
- cv.Optional(CONF_IBEACON_UUID): cv.uuid,
48
+ cv.Optional(CONF_IBEACON_UUID): esp32_ble_tracker.bt_uuid,
49
49
  }
50
50
  )
51
51
  .extend(esp32_ble_tracker.ESP_BLE_DEVICE_SCHEMA)
@@ -79,7 +79,7 @@ async def to_code(config):
79
79
  cg.add(var.set_service_uuid128(uuid128))
80
80
 
81
81
  if ibeacon_uuid := config.get(CONF_IBEACON_UUID):
82
- ibeacon_uuid = esp32_ble_tracker.as_hex_array(str(ibeacon_uuid))
82
+ ibeacon_uuid = esp32_ble_tracker.as_reversed_hex_array(ibeacon_uuid)
83
83
  cg.add(var.set_ibeacon_uuid(ibeacon_uuid))
84
84
 
85
85
  if (ibeacon_major := config.get(CONF_IBEACON_MAJOR)) is not None:
@@ -395,6 +395,13 @@ ARDUINO_FRAMEWORK_SCHEMA = cv.All(
395
395
  cv.Optional(CONF_VERSION, default="recommended"): cv.string_strict,
396
396
  cv.Optional(CONF_SOURCE): cv.string_strict,
397
397
  cv.Optional(CONF_PLATFORM_VERSION): _parse_platform_version,
398
+ cv.Optional(CONF_ADVANCED, default={}): cv.Schema(
399
+ {
400
+ cv.Optional(
401
+ CONF_IGNORE_EFUSE_CUSTOM_MAC, default=False
402
+ ): cv.boolean,
403
+ }
404
+ ),
398
405
  }
399
406
  ),
400
407
  _arduino_check_versions,
@@ -494,6 +501,9 @@ async def to_code(config):
494
501
  conf = config[CONF_FRAMEWORK]
495
502
  cg.add_platformio_option("platform", conf[CONF_PLATFORM_VERSION])
496
503
 
504
+ if CONF_ADVANCED in conf and conf[CONF_ADVANCED][CONF_IGNORE_EFUSE_CUSTOM_MAC]:
505
+ cg.add_define("USE_ESP32_IGNORE_EFUSE_CUSTOM_MAC")
506
+
497
507
  add_extra_script(
498
508
  "post",
499
509
  "post_build.py",
@@ -540,8 +550,6 @@ async def to_code(config):
540
550
  for name, value in conf[CONF_SDKCONFIG_OPTIONS].items():
541
551
  add_idf_sdkconfig_option(name, RawSdkconfigValue(value))
542
552
 
543
- if conf[CONF_ADVANCED][CONF_IGNORE_EFUSE_CUSTOM_MAC]:
544
- cg.add_define("USE_ESP32_IGNORE_EFUSE_CUSTOM_MAC")
545
553
  if conf[CONF_ADVANCED].get(CONF_IGNORE_EFUSE_MAC_CRC):
546
554
  add_idf_sdkconfig_option("CONFIG_ESP_MAC_IGNORE_MAC_CRC_ERROR", True)
547
555
  if (framework_ver.major, framework_ver.minor) >= (4, 4):
@@ -16,7 +16,7 @@ from .const import KEY_HOST
16
16
  from .gpio import host_pin_to_code # noqa
17
17
 
18
18
  CODEOWNERS = ["@esphome/core", "@clydebarrow"]
19
- AUTO_LOAD = ["network"]
19
+ AUTO_LOAD = ["network", "preferences"]
20
20
 
21
21
 
22
22
  def set_core_data(config):
@@ -46,7 +46,7 @@ from .const import (
46
46
 
47
47
  _LOGGER = logging.getLogger(__name__)
48
48
  CODEOWNERS = ["@kuba2k2"]
49
- AUTO_LOAD = []
49
+ AUTO_LOAD = ["preferences"]
50
50
 
51
51
 
52
52
  def _detect_variant(value):
@@ -33,7 +33,7 @@ from .schemas import (
33
33
  FLEX_OBJ_SCHEMA,
34
34
  GRID_CELL_SCHEMA,
35
35
  LAYOUT_SCHEMAS,
36
- STATE_SCHEMA,
36
+ STYLE_SCHEMA,
37
37
  WIDGET_TYPES,
38
38
  any_widget_schema,
39
39
  container_schema,
@@ -323,7 +323,7 @@ CONFIG_SCHEMA = (
323
323
  ),
324
324
  cv.Optional(df.CONF_STYLE_DEFINITIONS): cv.ensure_list(
325
325
  cv.Schema({cv.Required(CONF_ID): cv.declare_id(lv_style_t)})
326
- .extend(STATE_SCHEMA)
326
+ .extend(STYLE_SCHEMA)
327
327
  .extend(
328
328
  {
329
329
  cv.Optional(df.CONF_GRID_CELL_X_ALIGN): grid_alignments,
@@ -267,6 +267,9 @@ def angle(value):
267
267
  return int(cv.float_range(0.0, 360.0)(cv.angle(value)) * 10)
268
268
 
269
269
 
270
+ lv_angle = LValidator(angle, uint32)
271
+
272
+
270
273
  @schema_extractor("one_of")
271
274
  def size_validator(value):
272
275
  """A size in one axis - one of "size_content", a number (pixels) or a percentage"""
@@ -403,6 +406,7 @@ class TextValidator(LValidator):
403
406
  lv_text = TextValidator()
404
407
  lv_float = LValidator(cv.float_, cg.float_)
405
408
  lv_int = LValidator(cv.int_, cg.int_)
409
+ lv_positive_int = LValidator(cv.positive_int, cg.int_)
406
410
  lv_brightness = LValidator(cv.percentage, cg.float_, retmapper=lambda x: int(x * 255))
407
411
 
408
412
 
@@ -91,7 +91,7 @@ STYLE_PROPS = {
91
91
  "arc_opa": lvalid.opacity,
92
92
  "arc_color": lvalid.lv_color,
93
93
  "arc_rounded": lvalid.lv_bool,
94
- "arc_width": cv.positive_int,
94
+ "arc_width": lvalid.lv_positive_int,
95
95
  "anim_time": lvalid.lv_milliseconds,
96
96
  "bg_color": lvalid.lv_color,
97
97
  "bg_grad": lv_gradient,
@@ -111,7 +111,7 @@ STYLE_PROPS = {
111
111
  "border_side": df.LvConstant(
112
112
  "LV_BORDER_SIDE_", "NONE", "TOP", "BOTTOM", "LEFT", "RIGHT", "INTERNAL"
113
113
  ).several_of,
114
- "border_width": cv.positive_int,
114
+ "border_width": lvalid.lv_positive_int,
115
115
  "clip_corner": lvalid.lv_bool,
116
116
  "color_filter_opa": lvalid.opacity,
117
117
  "height": lvalid.size,
@@ -134,11 +134,11 @@ STYLE_PROPS = {
134
134
  "pad_right": lvalid.pixels,
135
135
  "pad_top": lvalid.pixels,
136
136
  "shadow_color": lvalid.lv_color,
137
- "shadow_ofs_x": cv.int_,
138
- "shadow_ofs_y": cv.int_,
137
+ "shadow_ofs_x": lvalid.lv_int,
138
+ "shadow_ofs_y": lvalid.lv_int,
139
139
  "shadow_opa": lvalid.opacity,
140
- "shadow_spread": cv.int_,
141
- "shadow_width": cv.positive_int,
140
+ "shadow_spread": lvalid.lv_int,
141
+ "shadow_width": lvalid.lv_positive_int,
142
142
  "text_align": df.LvConstant(
143
143
  "LV_TEXT_ALIGN_", "LEFT", "CENTER", "RIGHT", "AUTO"
144
144
  ).one_of,
@@ -150,7 +150,7 @@ STYLE_PROPS = {
150
150
  "text_letter_space": cv.positive_int,
151
151
  "text_line_space": cv.positive_int,
152
152
  "text_opa": lvalid.opacity,
153
- "transform_angle": lvalid.angle,
153
+ "transform_angle": lvalid.lv_angle,
154
154
  "transform_height": lvalid.pixels_or_percent,
155
155
  "transform_pivot_x": lvalid.pixels_or_percent,
156
156
  "transform_pivot_y": lvalid.pixels_or_percent,
@@ -26,7 +26,7 @@ from .gpio import rp2040_pin_to_code # noqa
26
26
 
27
27
  _LOGGER = logging.getLogger(__name__)
28
28
  CODEOWNERS = ["@jesserockz"]
29
- AUTO_LOAD = []
29
+ AUTO_LOAD = ["preferences"]
30
30
 
31
31
 
32
32
  def set_core_data(config):
@@ -23,6 +23,8 @@ static const size_t SEND_BUFFER_SIZE = INPUT_BUFFER_SIZE * sizeof(int16_t);
23
23
  static const size_t RECEIVE_SIZE = 1024;
24
24
  static const size_t SPEAKER_BUFFER_SIZE = 16 * RECEIVE_SIZE;
25
25
 
26
+ VoiceAssistant::VoiceAssistant() { global_voice_assistant = this; }
27
+
26
28
  float VoiceAssistant::get_setup_priority() const { return setup_priority::AFTER_CONNECTION; }
27
29
 
28
30
  bool VoiceAssistant::start_udp_socket_() {
@@ -68,12 +70,6 @@ bool VoiceAssistant::start_udp_socket_() {
68
70
  return true;
69
71
  }
70
72
 
71
- void VoiceAssistant::setup() {
72
- ESP_LOGCONFIG(TAG, "Setting up Voice Assistant...");
73
-
74
- global_voice_assistant = this;
75
- }
76
-
77
73
  bool VoiceAssistant::allocate_buffers_() {
78
74
  if (this->send_buffer_ != nullptr) {
79
75
  return true; // Already allocated
@@ -437,16 +433,18 @@ void VoiceAssistant::loop() {
437
433
 
438
434
  #ifdef USE_SPEAKER
439
435
  void VoiceAssistant::write_speaker_() {
440
- if (this->speaker_buffer_size_ > 0) {
441
- size_t write_chunk = std::min<size_t>(this->speaker_buffer_size_, 4 * 1024);
442
- size_t written = this->speaker_->play(this->speaker_buffer_, write_chunk);
443
- if (written > 0) {
444
- memmove(this->speaker_buffer_, this->speaker_buffer_ + written, this->speaker_buffer_size_ - written);
445
- this->speaker_buffer_size_ -= written;
446
- this->speaker_buffer_index_ -= written;
447
- this->set_timeout("speaker-timeout", 5000, [this]() { this->speaker_->stop(); });
448
- } else {
449
- ESP_LOGV(TAG, "Speaker buffer full, trying again next loop");
436
+ if ((this->speaker_ != nullptr) && (this->speaker_buffer_ != nullptr)) {
437
+ if (this->speaker_buffer_size_ > 0) {
438
+ size_t write_chunk = std::min<size_t>(this->speaker_buffer_size_, 4 * 1024);
439
+ size_t written = this->speaker_->play(this->speaker_buffer_, write_chunk);
440
+ if (written > 0) {
441
+ memmove(this->speaker_buffer_, this->speaker_buffer_ + written, this->speaker_buffer_size_ - written);
442
+ this->speaker_buffer_size_ -= written;
443
+ this->speaker_buffer_index_ -= written;
444
+ this->set_timeout("speaker-timeout", 5000, [this]() { this->speaker_->stop(); });
445
+ } else {
446
+ ESP_LOGV(TAG, "Speaker buffer full, trying again next loop");
447
+ }
450
448
  }
451
449
  }
452
450
  }
@@ -776,16 +774,20 @@ void VoiceAssistant::on_event(const api::VoiceAssistantEventResponse &msg) {
776
774
  }
777
775
  case api::enums::VOICE_ASSISTANT_TTS_STREAM_START: {
778
776
  #ifdef USE_SPEAKER
779
- this->wait_for_stream_end_ = true;
780
- ESP_LOGD(TAG, "TTS stream start");
781
- this->defer([this] { this->tts_stream_start_trigger_->trigger(); });
777
+ if (this->speaker_ != nullptr) {
778
+ this->wait_for_stream_end_ = true;
779
+ ESP_LOGD(TAG, "TTS stream start");
780
+ this->defer([this] { this->tts_stream_start_trigger_->trigger(); });
781
+ }
782
782
  #endif
783
783
  break;
784
784
  }
785
785
  case api::enums::VOICE_ASSISTANT_TTS_STREAM_END: {
786
786
  #ifdef USE_SPEAKER
787
- this->stream_ended_ = true;
788
- ESP_LOGD(TAG, "TTS stream end");
787
+ if (this->speaker_ != nullptr) {
788
+ this->stream_ended_ = true;
789
+ ESP_LOGD(TAG, "TTS stream end");
790
+ }
789
791
  #endif
790
792
  break;
791
793
  }
@@ -806,14 +808,16 @@ void VoiceAssistant::on_event(const api::VoiceAssistantEventResponse &msg) {
806
808
 
807
809
  void VoiceAssistant::on_audio(const api::VoiceAssistantAudio &msg) {
808
810
  #ifdef USE_SPEAKER // We should never get to this function if there is no speaker anyway
809
- if (this->speaker_buffer_index_ + msg.data.length() < SPEAKER_BUFFER_SIZE) {
810
- memcpy(this->speaker_buffer_ + this->speaker_buffer_index_, msg.data.data(), msg.data.length());
811
- this->speaker_buffer_index_ += msg.data.length();
812
- this->speaker_buffer_size_ += msg.data.length();
813
- this->speaker_bytes_received_ += msg.data.length();
814
- ESP_LOGV(TAG, "Received audio: %u bytes from API", msg.data.length());
815
- } else {
816
- ESP_LOGE(TAG, "Cannot receive audio, buffer is full");
811
+ if ((this->speaker_ != nullptr) && (this->speaker_buffer_ != nullptr)) {
812
+ if (this->speaker_buffer_index_ + msg.data.length() < SPEAKER_BUFFER_SIZE) {
813
+ memcpy(this->speaker_buffer_ + this->speaker_buffer_index_, msg.data.data(), msg.data.length());
814
+ this->speaker_buffer_index_ += msg.data.length();
815
+ this->speaker_buffer_size_ += msg.data.length();
816
+ this->speaker_bytes_received_ += msg.data.length();
817
+ ESP_LOGV(TAG, "Received audio: %u bytes from API", msg.data.length());
818
+ } else {
819
+ ESP_LOGE(TAG, "Cannot receive audio, buffer is full");
820
+ }
817
821
  }
818
822
  #endif
819
823
  }
@@ -91,7 +91,8 @@ struct Configuration {
91
91
 
92
92
  class VoiceAssistant : public Component {
93
93
  public:
94
- void setup() override;
94
+ VoiceAssistant();
95
+
95
96
  void loop() override;
96
97
  float get_setup_priority() const override;
97
98
  void start_streaming();
@@ -249,7 +250,7 @@ class VoiceAssistant : public Component {
249
250
  #ifdef USE_SPEAKER
250
251
  void write_speaker_();
251
252
  speaker::Speaker *speaker_{nullptr};
252
- uint8_t *speaker_buffer_;
253
+ uint8_t *speaker_buffer_{nullptr};
253
254
  size_t speaker_buffer_index_{0};
254
255
  size_t speaker_buffer_size_{0};
255
256
  size_t speaker_bytes_received_{0};
@@ -281,8 +282,8 @@ class VoiceAssistant : public Component {
281
282
  float volume_multiplier_;
282
283
  uint32_t conversation_timeout_;
283
284
 
284
- uint8_t *send_buffer_;
285
- int16_t *input_buffer_;
285
+ uint8_t *send_buffer_{nullptr};
286
+ int16_t *input_buffer_{nullptr};
286
287
 
287
288
  bool continuous_{false};
288
289
  bool silence_detection_;
@@ -34,6 +34,11 @@ static esp_netif_t *s_ap_netif = nullptr; // NOLINT(cppcoreguidelines-avoid-non
34
34
  static bool s_sta_connecting = false; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables)
35
35
 
36
36
  void WiFiComponent::wifi_pre_setup_() {
37
+ uint8_t mac[6];
38
+ if (has_custom_mac_address()) {
39
+ get_mac_address_raw(mac);
40
+ set_mac_address(mac);
41
+ }
37
42
  auto f = std::bind(&WiFiComponent::wifi_event_callback_, this, std::placeholders::_1, std::placeholders::_2);
38
43
  WiFi.onEvent(f);
39
44
  WiFi.persistent(false);
esphome/config.py CHANGED
@@ -782,7 +782,7 @@ def validate_config(
782
782
  from esphome.components import substitutions
783
783
 
784
784
  result[CONF_SUBSTITUTIONS] = {
785
- **config.get(CONF_SUBSTITUTIONS, {}),
785
+ **(config.get(CONF_SUBSTITUTIONS) or {}),
786
786
  **command_line_substitutions,
787
787
  }
788
788
  result.add_output_path([CONF_SUBSTITUTIONS], CONF_SUBSTITUTIONS)
esphome/const.py CHANGED
@@ -1,6 +1,6 @@
1
1
  """Constants used by esphome."""
2
2
 
3
- __version__ = "2024.10.0b2"
3
+ __version__ = "2024.10.2"
4
4
 
5
5
  ALLOWED_NAME_CHARS = "abcdefghijklmnopqrstuvwxyz0123456789-_"
6
6
  VALID_SUBSTITUTIONS_CHARACTERS = (
esphome/core/config.py CHANGED
@@ -318,6 +318,8 @@ async def add_includes(includes):
318
318
  async def _add_platformio_options(pio_options):
319
319
  # Add includes at the very end, so that they override everything
320
320
  for key, val in pio_options.items():
321
+ if key == "build_flags" and not isinstance(val, list):
322
+ val = [val]
321
323
  cg.add_platformio_option(key, val)
322
324
 
323
325
 
esphome/mqtt.py CHANGED
@@ -209,6 +209,12 @@ def show_logs(config, topic=None, username=None, password=None, client_id=None):
209
209
  elif CONF_MQTT in config:
210
210
  conf = config[CONF_MQTT]
211
211
  if CONF_LOG_TOPIC in conf:
212
+ if config[CONF_MQTT][CONF_LOG_TOPIC] is None:
213
+ _LOGGER.error("MQTT log topic set to null, can't start MQTT logs")
214
+ return 1
215
+ if CONF_TOPIC not in config[CONF_MQTT][CONF_LOG_TOPIC]:
216
+ _LOGGER.error("MQTT log topic not available, can't start MQTT logs")
217
+ return 1
212
218
  topic = config[CONF_MQTT][CONF_LOG_TOPIC][CONF_TOPIC]
213
219
  elif CONF_TOPIC_PREFIX in config[CONF_MQTT]:
214
220
  topic = f"{config[CONF_MQTT][CONF_TOPIC_PREFIX]}/debug"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: esphome
3
- Version: 2024.10.0b2
3
+ Version: 2024.10.2
4
4
  Summary: Make creating custom firmwares for ESP32/ESP8266 super easy.
5
5
  Author-email: The ESPHome Authors <esphome@nabucasa.com>
6
6
  License: MIT
@@ -2,10 +2,10 @@ esphome/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
2
  esphome/__main__.py,sha256=tgHNktbXcks-sVXwhAMgAyKYZ3UES5VXJJbLTF7mpco,30716
3
3
  esphome/automation.py,sha256=5Ctd9-x3snlo582SHBy5WQISH5e6-8Mt9b7emxJyWiM,14507
4
4
  esphome/codegen.py,sha256=GePHUM7xdXb_Pil59SHVsXg2F4VBPgkH-Fz2PDX8Z54,1873
5
- esphome/config.py,sha256=ArMupdqCpKqQm-vFWb85HueI88DAfYTjuhR6mA691DI,39614
5
+ esphome/config.py,sha256=nOiXPZv8wHtmytkNlGcewp0uuJd9G5rRjkqevYXtjzo,39618
6
6
  esphome/config_helpers.py,sha256=MKf_wzO35nn41FvigXE0iYKDslPgL2ruf8R-EPtTT2I,3256
7
7
  esphome/config_validation.py,sha256=MeZcJrTRpe91KV5r18i6U-PeZ_Oaql81m12KW_gzCXU,66221
8
- esphome/const.py,sha256=5j2rexALciDIOWlhQ3DGCKi3G1MqnK7dqDT4cts7zRo,40032
8
+ esphome/const.py,sha256=dEYtG4kBiixzrPjFOlNNPegHXcq0Zn-v5mwCKTZpirk,40030
9
9
  esphome/coroutine.py,sha256=j_14z8dIIzIBeuNO30D4c1RJvMMt1xZFZ58Evd-EvJA,9344
10
10
  esphome/cpp_generator.py,sha256=lXPXHYUsFIvBSAoZ93mXYlGcXYg5L18nTtYGHE4_rr8,31203
11
11
  esphome/cpp_helpers.py,sha256=6C2vNbOIhZKi43xRVlk5hp9GfshfBn-rc5D_ZFUEYaE,4801
@@ -17,7 +17,7 @@ esphome/git.py,sha256=rKb5JUc05nbRlvR4tRWGL851ANZUYuS7YZp5Tm5wHjE,6296
17
17
  esphome/helpers.py,sha256=o0fhHNo-acxPLenSy_e5qR6f5rhOkDWVHaX9eheqdcI,10454
18
18
  esphome/loader.py,sha256=jDxlzaWlO_o3sC_3vviFcwTjuKi37JpBu4WqG8Bkbdc,6573
19
19
  esphome/log.py,sha256=9aoxHebCu4DnowC8n1kgDJqYBqZqf5ZNSSFqFg_x8-I,2179
20
- esphome/mqtt.py,sha256=8VA7W1sVIzfRrzYCAzfabG4TPT_ACo_Q3nMkltXZ0JA,8721
20
+ esphome/mqtt.py,sha256=3B3_ILAvynsVFiKav7w_nrD0pAXh9eaRXJj6jtdb0ps,9065
21
21
  esphome/pins.py,sha256=wO0d-2qn0fhT6WEN0H0AmYRSH90jW154hZT7RewMGYI,10713
22
22
  esphome/platformio_api.py,sha256=OEWhPZ2NQnTrZ3Vtm0IqW0E-xE7EyVhs5w3OtT2xfDY,11905
23
23
  esphome/schema_extractors.py,sha256=wQMtWFp2q4ZZ97Xv3xVhFUU6Ol3qjcyDtjowG4Shllo,2108
@@ -350,7 +350,7 @@ esphome/components/ble_presence/ble_presence_device.h,sha256=f9iWhtLuVqEg3HdG3vn
350
350
  esphome/components/ble_rssi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
351
351
  esphome/components/ble_rssi/ble_rssi_sensor.cpp,sha256=cxTAZDHz4WhJmfmOCGvDPnObJAemb0rSH2PNAjv30RM,301
352
352
  esphome/components/ble_rssi/ble_rssi_sensor.h,sha256=Db47wWaWvDKdh-ikpCTfThtnW0M9jpX7qvkWs1B-7fw,3556
353
- esphome/components/ble_rssi/sensor.py,sha256=9b28RUWX9EEvKKg0E-Wzwl1h57pcske8s6hVPACrivA,3210
353
+ esphome/components/ble_rssi/sensor.py,sha256=yQsHbmn3vMr9JlvMRNipKF_Lx00M9nsDm0B2fZvu2nM,3232
354
354
  esphome/components/ble_scanner/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
355
355
  esphome/components/ble_scanner/ble_scanner.cpp,sha256=4NvPhE7_RkLprMCD9hZOk4po32LM_oLi-S7Spbzlgzs,304
356
356
  esphome/components/ble_scanner/ble_scanner.h,sha256=sVbU35mMhANk6W-HPFMDkA6mq9U0mec0l6GV2fBRWkY,1105
@@ -754,7 +754,7 @@ esphome/components/ens210/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
754
754
  esphome/components/ens210/ens210.cpp,sha256=ZFc51aAks8P3bCKi5EkkQaueYIf5C4i4YmDfCUJbzU0,8377
755
755
  esphome/components/ens210/ens210.h,sha256=yhCaQwB3GjeBYgOLXhuLCHELyjE3IrdL2e0Llfw9HU8,1545
756
756
  esphome/components/ens210/sensor.py,sha256=_ES1FNSEIwmZLNNzqUV_nGvjPx-i_j2pblAe6vg8f9M,1724
757
- esphome/components/esp32/__init__.py,sha256=4esWPCmIs3i6I99qkgBCb92Pndkd5ym2W7AMWl8wkhk,27386
757
+ esphome/components/esp32/__init__.py,sha256=bheRUD4iScNy9zjnujlA1baiSvP1E8x0t15U8AeAxH4,27655
758
758
  esphome/components/esp32/boards.py,sha256=Fbn1QarvNqIbPV_yDTap128ZHszZiExIhK3wjQUS6w8,42736
759
759
  esphome/components/esp32/const.py,sha256=2yxLQg3p2-S3nRL6-zsF_dICrP_6waUfY5k8EFsoyVM,966
760
760
  esphome/components/esp32/core.cpp,sha256=GfidaExP8kU7ODM1S_VI9c3tQtmG2TaKwLJ-zzeSqd4,2413
@@ -1117,7 +1117,7 @@ esphome/components/honeywellabp2_i2c/__init__.py,sha256=q4EX44dXWVPn_6bcR0pbzsGW
1117
1117
  esphome/components/honeywellabp2_i2c/honeywellabp2.cpp,sha256=BNId9_2ey5W97Z8C7iyf8UynCczC4NvrmNy57eXVb8I,3435
1118
1118
  esphome/components/honeywellabp2_i2c/honeywellabp2.h,sha256=oKx_nWi07fYioDxWPcNKtzDVKiyqBTvDIdREJoaHfMY,2140
1119
1119
  esphome/components/honeywellabp2_i2c/sensor.py,sha256=RepjqSYlTrq-IgTMhB-y1oBkjAPdEm2uRiCH_zWDMeU,2574
1120
- esphome/components/host/__init__.py,sha256=LKE6IICarnNbEpE22ej3HVy6VDeXS3rJ72tA2Bds3VI,1175
1120
+ esphome/components/host/__init__.py,sha256=GXt0D2oYrLC10UJKXle3oZtoEc4HRYDKHVO-pmWXFZA,1190
1121
1121
  esphome/components/host/const.py,sha256=GvsG6HlxHm1Oh5rpiFTswpNIpG0xmfUvSHxtjZwmyuU,91
1122
1122
  esphome/components/host/core.cpp,sha256=_CSOmrSgL-Zo707ff0xVsWnAFBRzjKWwE4EP-0LosZg,1766
1123
1123
  esphome/components/host/gpio.cpp,sha256=OjPFXl9ZDLhsqUEuNvpAvZiiyeNuUyWjbi6DqZM2hFs,1582
@@ -1355,7 +1355,7 @@ esphome/components/ledc/__init__.py,sha256=PTP_5q_K_2dNnUdkolkVd5komlEbJdS4lolCp
1355
1355
  esphome/components/ledc/ledc_output.cpp,sha256=YjMRso5noCzbJHFL8P6BInIfhS6seqAycSJU2FYYEbs,9836
1356
1356
  esphome/components/ledc/ledc_output.h,sha256=hok37ypQ7BjJkJc22_z8p9qwkH4K1e_xRASNgMBZFyE,1663
1357
1357
  esphome/components/ledc/output.py,sha256=8pYjboSYH2GmMpmwM6sT7ryV81rSM4FuGGloZcqXFR0,2725
1358
- esphome/components/libretiny/__init__.py,sha256=luabsOuhwD3ZS3WcEE2j3C3XVDChC5CSzLCyBIBzXa0,11499
1358
+ esphome/components/libretiny/__init__.py,sha256=uutOtij1QR4rQ_SKB2hG1CajbPFsiO3FcT1gY88x1Po,11512
1359
1359
  esphome/components/libretiny/const.py,sha256=7lp4yTGIMnpxJHLjHPRLJwqCYyWLkwSZZg5DVq1MTic,1959
1360
1360
  esphome/components/libretiny/core.cpp,sha256=Jaq_VlJpwc9iTXiH8b-2PFnNZupnJjJUQNqqHYUiues,991
1361
1361
  esphome/components/libretiny/core.h,sha256=bsl2xiT0QgansYipejruyDLMagECncUMq-ghejC6aB4,175
@@ -1441,7 +1441,7 @@ esphome/components/ltr_als_ps/ltr_als_ps.cpp,sha256=a5NBwe7wtJHwLgIDFoollhz1VSDI
1441
1441
  esphome/components/ltr_als_ps/ltr_als_ps.h,sha256=TxgTmv7apRGsxHAxDow6-CpkQsdWID2KLk-lSDi7KtQ,6466
1442
1442
  esphome/components/ltr_als_ps/ltr_definitions.h,sha256=yaIvnLQBIBnPuQBvHDD9Q_16Uoq1vnABwsTm8j77a3w,7255
1443
1443
  esphome/components/ltr_als_ps/sensor.py,sha256=0HSnG34wHnaj9s-qRO7tYn5p0rSBlGmVXaVDSG520sg,9980
1444
- esphome/components/lvgl/__init__.py,sha256=1E42en4ZvzTWz3WGDUhe9deX9UPHbsTJASMjhnCVlxo,13439
1444
+ esphome/components/lvgl/__init__.py,sha256=hp_JO6RPpO47WSZ5XlcSVP3JceSzKc5GIFvb6BM-eT0,13439
1445
1445
  esphome/components/lvgl/automation.py,sha256=RRocRBIFYJCszhLKy-0iwaKgqdwdV-VHGApnRHYyAm8,10238
1446
1446
  esphome/components/lvgl/defines.py,sha256=aJRZJgH0VuFKlgNZ4a3_1iKLyuDAnRIo17SdyS0widM,13161
1447
1447
  esphome/components/lvgl/encoders.py,sha256=b8E__Bu4OJj8_svtgiHE8hfL78WSJIAuGo_JpmlVf5I,3088
@@ -1449,12 +1449,12 @@ esphome/components/lvgl/font.cpp,sha256=l9dPIw7LdOdtg_3QZErTLLevMc6A66Wfm-1s-6qc
1449
1449
  esphome/components/lvgl/gradient.py,sha256=K60e7b52N8i7aQjkLIsij7OOXmVhBnJnxj4J3zPme4w,1989
1450
1450
  esphome/components/lvgl/hello_world.py,sha256=iwfSWO0TT0CEGN5M_QBY_oKqmYshT69jOBDFTTUyBII,1417
1451
1451
  esphome/components/lvgl/helpers.py,sha256=XI3C5IHwoSVlgR32kMxeXTZWK6iW112nmWv5wByrKLY,1253
1452
- esphome/components/lvgl/lv_validation.py,sha256=wvhdQKhYLLjSK_YEkEAoT_6H31Gd942P_KWTm3zYcfU,13572
1452
+ esphome/components/lvgl/lv_validation.py,sha256=J6iP8bzlNd0_DDHWxmZOJyMfXbVxID-AXJfCjHPkMKw,13666
1453
1453
  esphome/components/lvgl/lvcode.py,sha256=cpBpc7ZftH6VVZWsRCdEZOO7-yHLD5JhVPMKFRBZOs8,10295
1454
1454
  esphome/components/lvgl/lvgl_esphome.cpp,sha256=JBnbvisKonhExjtp2WFlZYOWgSX_0wiM8bAZn6YxqCw,14157
1455
1455
  esphome/components/lvgl/lvgl_esphome.h,sha256=3RpW5BoNQt8MpWexZqb2L_CJ7cgGJWYrwRXp5LK6S0k,9265
1456
1456
  esphome/components/lvgl/lvgl_hal.h,sha256=aZqWpSmKKAB-ZfNxxgxjgASTtLpAZjXJKuoTiPB0qqU,431
1457
- esphome/components/lvgl/schemas.py,sha256=Nvrj2bPI_RYc1VOCVTaKOhIAvitylkvlu4M1yPg8_PU,14174
1457
+ esphome/components/lvgl/schemas.py,sha256=NYBfD6qfy_P1ST6f-7MhxPhDmPHkTJ2rk14u1Mq3aO8,14216
1458
1458
  esphome/components/lvgl/styles.py,sha256=a98M5BPsPZUJplY5N73pqhLb2b4p_l_V6vQ8DDKH0Pc,2249
1459
1459
  esphome/components/lvgl/touchscreens.py,sha256=R2tkfse86qzWDU6Ot_tARApWfn1jeFaJObDUX5gITL8,1634
1460
1460
  esphome/components/lvgl/trigger.py,sha256=iR2jixpj5FnLYSAuy6q8GC1njRkTCPhxZEJILUeyPZ4,2337
@@ -2266,7 +2266,7 @@ esphome/components/rotary_encoder/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
2266
2266
  esphome/components/rotary_encoder/rotary_encoder.cpp,sha256=8mcuTY9iS09W9N95ZtZqDxpg3begH5BhN3VkOpV25JE,10579
2267
2267
  esphome/components/rotary_encoder/rotary_encoder.h,sha256=oeCmz0ctT3CxP-16g3cie9kekgM79omeLQmunbCHRW0,4653
2268
2268
  esphome/components/rotary_encoder/sensor.py,sha256=dTXnJXedy05ezEh67qWJpuPFPax99xq_QHFA0XWcx3U,5231
2269
- esphome/components/rp2040/__init__.py,sha256=qeMn4A_duYtwqHQvKUv1GHIUhEymflSLuM2S56Ocotk,7904
2269
+ esphome/components/rp2040/__init__.py,sha256=fmFsPE-xF0Mb7Nd5CYlF0Ouli0qpgd-5W3u_QWFo3Nw,7917
2270
2270
  esphome/components/rp2040/boards.py,sha256=O0LRt2Bhi5yVvW11iPLOTPkW3P_2WlTonQZERaNzea4,445
2271
2271
  esphome/components/rp2040/build_pio.py.script,sha256=aNtrSnjYcLY6t0NYBGszhwMPISVNrNUg6nJtyBdfyh4,1218
2272
2272
  esphome/components/rp2040/const.py,sha256=1x4XQlMfgQux1bllBAhz9ym-aUeFglxtPnQbpG3vUYQ,147
@@ -3040,8 +3040,8 @@ esphome/components/vl53l0x/sensor.py,sha256=P8rWgRSOAQO-kAn35UC2I2_UwmYKUWS3DvYD
3040
3040
  esphome/components/vl53l0x/vl53l0x_sensor.cpp,sha256=JqSIf9jjNhin561LU-QzAmRKEK0PqQ8CuLO2mn380og,15017
3041
3041
  esphome/components/vl53l0x/vl53l0x_sensor.h,sha256=iTtScB2O7DVFh0eR9AVht2l3AdSAPJOVMtflTv2ZX7c,2561
3042
3042
  esphome/components/voice_assistant/__init__.py,sha256=mMd2eklOnmvpDJLjzr1nIUS6iXIWjHi6mmlGDs7iV1M,13826
3043
- esphome/components/voice_assistant/voice_assistant.cpp,sha256=aVJEIdRAtZa3RQon_sb76UfUKgNwBtRghQLEt8QxLZ4,29613
3044
- esphome/components/voice_assistant/voice_assistant.h,sha256=0nwW6Jzad0JU3L-On3FbUa5VmHy1jmTHhyn3FvQSJxM,11648
3043
+ esphome/components/voice_assistant/voice_assistant.cpp,sha256=NPvFK2LMKjKcgxtKXhqvZoxUBL4R9bfWO-1dqTkyjr8,29863
3044
+ esphome/components/voice_assistant/voice_assistant.h,sha256=hlbcIrSBsY3b6cmOULeB_uv9KkNT7iS7IKMYS1rDCe4,11671
3045
3045
  esphome/components/voltage_sampler/__init__.py,sha256=IU5YrROZSNyuAP1d6M_V3ZGAwNjXCHPcVy5nMjZ953Y,155
3046
3046
  esphome/components/voltage_sampler/voltage_sampler.h,sha256=Y67FLOpOzW29v29BRRyYgEmGZ_B8QnUUaqJMH6FA3jM,337
3047
3047
  esphome/components/wake_on_lan/__init__.py,sha256=-RYpXD02o3dlFnKzOCYk58bUbxfD2v-wj1ECywj-cgI,50
@@ -3096,7 +3096,7 @@ esphome/components/wiegand/wiegand.h,sha256=gyg5szEK0okoeLBQR284k84xy-ln19kNIkeO
3096
3096
  esphome/components/wifi/__init__.py,sha256=6FJ70aZwjp6tqMecz3bfesxvHn8QLcWZKZqGrzhUTxc,16419
3097
3097
  esphome/components/wifi/wifi_component.cpp,sha256=7R2Cjv9I7gmsYbbG7mbYq2zxaN9E4_F2tOloD0BWvgM,28977
3098
3098
  esphome/components/wifi/wifi_component.h,sha256=VQWxTtMOL2Xc_9fZLklYT0cenyFlIzUuWZ3xzlhvoEY,12394
3099
- esphome/components/wifi/wifi_component_esp32_arduino.cpp,sha256=Q1blG3GK3j-guDuXgLAq8453h3i8WwlrX7sg9-pl728,26981
3099
+ esphome/components/wifi/wifi_component_esp32_arduino.cpp,sha256=sFVe_lAE6pp90gr53GQMZSaQTZekfUp0KSOD9megfog,27093
3100
3100
  esphome/components/wifi/wifi_component_esp8266.cpp,sha256=EFITnPweDMMVjtXnz7SlcMdhv_FMsCIm_O9tGW3Hiso,27131
3101
3101
  esphome/components/wifi/wifi_component_esp_idf.cpp,sha256=WkPpYOBaHvZjXZeaYaBvnSaNP-bjFCUqGMMP6dOx4a0,35504
3102
3102
  esphome/components/wifi/wifi_component_libretiny.cpp,sha256=ASeaZMVG2WJi321sfp1OuELAvvEh8W2Ooy2aG1MVUYE,16275
@@ -3262,7 +3262,7 @@ esphome/core/component.cpp,sha256=Uea5Hkm0E9yJMJYnrbLFFVpdcBZgaWSxfAiwcyGKByA,93
3262
3262
  esphome/core/component.h,sha256=U4m8_g9gSBBIjRNw4k36entP2JcA6F3SsWbwty_hKdo,11744
3263
3263
  esphome/core/component_iterator.cpp,sha256=TUu2K34ATYa1Qyf2s-sZJBksAiFIGj3egzbDKPuFtTQ,11117
3264
3264
  esphome/core/component_iterator.h,sha256=cjacKgRrlxl-VwPOysfBJZNK0NMzcc-w9xXn82m5dYc,3599
3265
- esphome/core/config.py,sha256=gGGU5EI6FJkVGk4N4uP9MdRPct8b9n49Q6P7jGJHBbw,14511
3265
+ esphome/core/config.py,sha256=ASCzpRc8Kp8kkcBV4p7sx8k_7BeQY5LOP7gi2cWsCN0,14598
3266
3266
  esphome/core/controller.cpp,sha256=feO4yH0GETNCqi9MTZEtsOaoo-CPV2rM9S7UfQXY6Ew,4553
3267
3267
  esphome/core/controller.h,sha256=PXCcMqYpq0xjFCdlOKv6WuYlcETnB4sq3UQWdOTt9PU,3720
3268
3268
  esphome/core/datatypes.h,sha256=wN8xro8vqXT13w9KvVOXeQfBwlI_WQZ6uFaIGyub67E,2114
@@ -3309,9 +3309,9 @@ esphome/dashboard/util/itertools.py,sha256=8eLrWEWmICLtXNxkKdYPQV0c_N4GEz8m9Npnb
3309
3309
  esphome/dashboard/util/password.py,sha256=cQz3b9B-ijTe7zS6BeCW0hc3pWv6JjC78jmnycYYAh8,321
3310
3310
  esphome/dashboard/util/subprocess.py,sha256=T8EW6dbU4LPd2DG1dRrdh8li71tt6J1isn411poMhkk,1022
3311
3311
  esphome/dashboard/util/text.py,sha256=ENDnfN4O0NdA3CKVJjQYabFbwbrsIhVKrAMQe53qYu4,534
3312
- esphome-2024.10.0b2.dist-info/LICENSE,sha256=HzEjkBInJe44L4WvAOPfhPJJDNj6YbnqFyvGWRzArGM,36664
3313
- esphome-2024.10.0b2.dist-info/METADATA,sha256=3XcF-m77uFAKDxzRZlmFRVDAIY7AAB1FRsVqzxcaDR4,3409
3314
- esphome-2024.10.0b2.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
3315
- esphome-2024.10.0b2.dist-info/entry_points.txt,sha256=mIxVNuWtbYzeEcaWCl-AQ-97aBOWbnYBAK8nbF6P4M0,50
3316
- esphome-2024.10.0b2.dist-info/top_level.txt,sha256=0GSXEW3cnITpgG3qnsSMz0qoqJHAFyfw7Y8MVtEf1Yk,8
3317
- esphome-2024.10.0b2.dist-info/RECORD,,
3312
+ esphome-2024.10.2.dist-info/LICENSE,sha256=HzEjkBInJe44L4WvAOPfhPJJDNj6YbnqFyvGWRzArGM,36664
3313
+ esphome-2024.10.2.dist-info/METADATA,sha256=LWw73uKU1gpiyC-waNEhY3MMflu2cGuOWghTAYNIK1g,3407
3314
+ esphome-2024.10.2.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
3315
+ esphome-2024.10.2.dist-info/entry_points.txt,sha256=mIxVNuWtbYzeEcaWCl-AQ-97aBOWbnYBAK8nbF6P4M0,50
3316
+ esphome-2024.10.2.dist-info/top_level.txt,sha256=0GSXEW3cnITpgG3qnsSMz0qoqJHAFyfw7Y8MVtEf1Yk,8
3317
+ esphome-2024.10.2.dist-info/RECORD,,