esphome 2025.7.1__py3-none-any.whl → 2025.7.3__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.
- esphome/components/api/homeassistant_service.h +3 -0
- esphome/components/bme680_bsec/__init__.py +10 -2
- esphome/components/esp32_camera/__init__.py +22 -0
- esphome/components/esp32_touch/esp32_touch_v1.cpp +16 -10
- esphome/components/fastled_clockless/light.py +17 -2
- esphome/components/fastled_spi/light.py +10 -0
- esphome/components/gpio/binary_sensor/__init__.py +34 -2
- esphome/components/logger/__init__.py +2 -2
- esphome/components/lvgl/types.py +2 -2
- esphome/components/lvgl/widgets/meter.py +3 -0
- esphome/components/neopixelbus/light.py +10 -1
- esphome/components/sdl/sdl_esphome.cpp +3 -0
- esphome/components/speaker/media_player/audio_pipeline.cpp +14 -2
- esphome/components/speaker/media_player/audio_pipeline.h +1 -0
- esphome/components/tuya/fan/__init__.py +6 -5
- esphome/components/voice_assistant/voice_assistant.cpp +52 -20
- esphome/components/voice_assistant/voice_assistant.h +11 -2
- esphome/components/web_server/ota/ota_web_server.cpp +2 -2
- esphome/components/web_server/web_server.cpp +3 -1
- esphome/components/wireguard/wireguard.cpp +13 -3
- esphome/config_validation.py +58 -26
- esphome/const.py +1 -1
- esphome/core/application.cpp +39 -24
- esphome/core/application.h +2 -0
- esphome/core/base_automation.h +2 -2
- esphome/core/component.cpp +2 -2
- esphome/core/event_pool.h +2 -2
- esphome/core/lock_free_queue.h +2 -7
- esphome/core/scheduler.cpp +1 -1
- esphome/core/scheduler.h +4 -3
- {esphome-2025.7.1.dist-info → esphome-2025.7.3.dist-info}/METADATA +1 -1
- {esphome-2025.7.1.dist-info → esphome-2025.7.3.dist-info}/RECORD +36 -36
- {esphome-2025.7.1.dist-info → esphome-2025.7.3.dist-info}/WHEEL +0 -0
- {esphome-2025.7.1.dist-info → esphome-2025.7.3.dist-info}/entry_points.txt +0 -0
- {esphome-2025.7.1.dist-info → esphome-2025.7.3.dist-info}/licenses/LICENSE +0 -0
- {esphome-2025.7.1.dist-info → esphome-2025.7.3.dist-info}/top_level.txt +0 -0
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
290
|
+
{
|
|
291
|
+
LwIPLock lock;
|
|
292
|
+
esp_wireguard_disconnect(&(this->wg_ctx_));
|
|
293
|
+
}
|
|
284
294
|
this->wg_connected_ = ESP_FAIL;
|
|
285
295
|
}
|
|
286
296
|
}
|
esphome/config_validation.py
CHANGED
|
@@ -73,6 +73,7 @@ from esphome.const import (
|
|
|
73
73
|
TYPE_GIT,
|
|
74
74
|
TYPE_LOCAL,
|
|
75
75
|
VALID_SUBSTITUTIONS_CHARACTERS,
|
|
76
|
+
Framework,
|
|
76
77
|
__version__ as ESPHOME_VERSION,
|
|
77
78
|
)
|
|
78
79
|
from esphome.core import (
|
|
@@ -282,6 +283,38 @@ class FinalExternalInvalid(Invalid):
|
|
|
282
283
|
"""Represents an invalid value in the final validation phase where the path should not be prepended."""
|
|
283
284
|
|
|
284
285
|
|
|
286
|
+
@dataclass(frozen=True, order=True)
|
|
287
|
+
class Version:
|
|
288
|
+
major: int
|
|
289
|
+
minor: int
|
|
290
|
+
patch: int
|
|
291
|
+
extra: str = ""
|
|
292
|
+
|
|
293
|
+
def __str__(self):
|
|
294
|
+
return f"{self.major}.{self.minor}.{self.patch}"
|
|
295
|
+
|
|
296
|
+
@classmethod
|
|
297
|
+
def parse(cls, value: str) -> Version:
|
|
298
|
+
match = re.match(r"^(\d+).(\d+).(\d+)-?(\w*)$", value)
|
|
299
|
+
if match is None:
|
|
300
|
+
raise ValueError(f"Not a valid version number {value}")
|
|
301
|
+
major = int(match[1])
|
|
302
|
+
minor = int(match[2])
|
|
303
|
+
patch = int(match[3])
|
|
304
|
+
extra = match[4] or ""
|
|
305
|
+
return Version(major=major, minor=minor, patch=patch, extra=extra)
|
|
306
|
+
|
|
307
|
+
@property
|
|
308
|
+
def is_beta(self) -> bool:
|
|
309
|
+
"""Check if this version is a beta version."""
|
|
310
|
+
return self.extra.startswith("b")
|
|
311
|
+
|
|
312
|
+
@property
|
|
313
|
+
def is_dev(self) -> bool:
|
|
314
|
+
"""Check if this version is a development version."""
|
|
315
|
+
return self.extra.startswith("dev")
|
|
316
|
+
|
|
317
|
+
|
|
285
318
|
def check_not_templatable(value):
|
|
286
319
|
if isinstance(value, Lambda):
|
|
287
320
|
raise Invalid("This option is not templatable!")
|
|
@@ -619,16 +652,35 @@ def only_on(platforms):
|
|
|
619
652
|
return validator_
|
|
620
653
|
|
|
621
654
|
|
|
622
|
-
def only_with_framework(
|
|
655
|
+
def only_with_framework(
|
|
656
|
+
frameworks: Framework | str | list[Framework | str], suggestions=None
|
|
657
|
+
):
|
|
623
658
|
"""Validate that this option can only be specified on the given frameworks."""
|
|
624
659
|
if not isinstance(frameworks, list):
|
|
625
660
|
frameworks = [frameworks]
|
|
626
661
|
|
|
662
|
+
frameworks = [Framework(framework) for framework in frameworks]
|
|
663
|
+
|
|
664
|
+
if suggestions is None:
|
|
665
|
+
suggestions = {}
|
|
666
|
+
|
|
667
|
+
version = Version.parse(ESPHOME_VERSION)
|
|
668
|
+
if version.is_beta:
|
|
669
|
+
docs_format = "https://beta.esphome.io/components/{path}"
|
|
670
|
+
elif version.is_dev:
|
|
671
|
+
docs_format = "https://next.esphome.io/components/{path}"
|
|
672
|
+
else:
|
|
673
|
+
docs_format = "https://esphome.io/components/{path}"
|
|
674
|
+
|
|
627
675
|
def validator_(obj):
|
|
628
676
|
if CORE.target_framework not in frameworks:
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
677
|
+
err_str = f"This feature is only available with framework(s) {', '.join([framework.value for framework in frameworks])}"
|
|
678
|
+
if suggestion := suggestions.get(CORE.target_framework, None):
|
|
679
|
+
(component, docs_path) = suggestion
|
|
680
|
+
err_str += f"\nPlease use '{component}'"
|
|
681
|
+
if docs_path:
|
|
682
|
+
err_str += f": {docs_format.format(path=docs_path)}"
|
|
683
|
+
raise Invalid(err_str)
|
|
632
684
|
return obj
|
|
633
685
|
|
|
634
686
|
return validator_
|
|
@@ -637,8 +689,8 @@ def only_with_framework(frameworks):
|
|
|
637
689
|
only_on_esp32 = only_on(PLATFORM_ESP32)
|
|
638
690
|
only_on_esp8266 = only_on(PLATFORM_ESP8266)
|
|
639
691
|
only_on_rp2040 = only_on(PLATFORM_RP2040)
|
|
640
|
-
only_with_arduino = only_with_framework(
|
|
641
|
-
only_with_esp_idf = only_with_framework(
|
|
692
|
+
only_with_arduino = only_with_framework(Framework.ARDUINO)
|
|
693
|
+
only_with_esp_idf = only_with_framework(Framework.ESP_IDF)
|
|
642
694
|
|
|
643
695
|
|
|
644
696
|
# Adapted from:
|
|
@@ -1965,26 +2017,6 @@ def source_refresh(value: str):
|
|
|
1965
2017
|
return positive_time_period_seconds(value)
|
|
1966
2018
|
|
|
1967
2019
|
|
|
1968
|
-
@dataclass(frozen=True, order=True)
|
|
1969
|
-
class Version:
|
|
1970
|
-
major: int
|
|
1971
|
-
minor: int
|
|
1972
|
-
patch: int
|
|
1973
|
-
|
|
1974
|
-
def __str__(self):
|
|
1975
|
-
return f"{self.major}.{self.minor}.{self.patch}"
|
|
1976
|
-
|
|
1977
|
-
@classmethod
|
|
1978
|
-
def parse(cls, value: str) -> Version:
|
|
1979
|
-
match = re.match(r"^(\d+).(\d+).(\d+)-?\w*$", value)
|
|
1980
|
-
if match is None:
|
|
1981
|
-
raise ValueError(f"Not a valid version number {value}")
|
|
1982
|
-
major = int(match[1])
|
|
1983
|
-
minor = int(match[2])
|
|
1984
|
-
patch = int(match[3])
|
|
1985
|
-
return Version(major=major, minor=minor, patch=patch)
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
2020
|
def version_number(value):
|
|
1989
2021
|
value = string_strict(value)
|
|
1990
2022
|
try:
|
esphome/const.py
CHANGED
esphome/core/application.cpp
CHANGED
|
@@ -68,8 +68,11 @@ void Application::setup() {
|
|
|
68
68
|
|
|
69
69
|
do {
|
|
70
70
|
uint8_t new_app_state = STATUS_LED_WARNING;
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
uint32_t now = millis();
|
|
72
|
+
|
|
73
|
+
// Process pending loop enables to handle GPIO interrupts during setup
|
|
74
|
+
this->before_loop_tasks_(now);
|
|
75
|
+
|
|
73
76
|
for (uint32_t j = 0; j <= i; j++) {
|
|
74
77
|
// Update loop_component_start_time_ right before calling each component
|
|
75
78
|
this->loop_component_start_time_ = millis();
|
|
@@ -78,6 +81,8 @@ void Application::setup() {
|
|
|
78
81
|
this->app_state_ |= new_app_state;
|
|
79
82
|
this->feed_wdt();
|
|
80
83
|
}
|
|
84
|
+
|
|
85
|
+
this->after_loop_tasks_();
|
|
81
86
|
this->app_state_ = new_app_state;
|
|
82
87
|
yield();
|
|
83
88
|
} while (!component->can_proceed());
|
|
@@ -94,30 +99,10 @@ void Application::setup() {
|
|
|
94
99
|
void Application::loop() {
|
|
95
100
|
uint8_t new_app_state = 0;
|
|
96
101
|
|
|
97
|
-
this->scheduler.call();
|
|
98
|
-
|
|
99
102
|
// Get the initial loop time at the start
|
|
100
103
|
uint32_t last_op_end_time = millis();
|
|
101
104
|
|
|
102
|
-
|
|
103
|
-
this->feed_wdt(last_op_end_time);
|
|
104
|
-
|
|
105
|
-
// Process any pending enable_loop requests from ISRs
|
|
106
|
-
// This must be done before marking in_loop_ = true to avoid race conditions
|
|
107
|
-
if (this->has_pending_enable_loop_requests_) {
|
|
108
|
-
// Clear flag BEFORE processing to avoid race condition
|
|
109
|
-
// If ISR sets it during processing, we'll catch it next loop iteration
|
|
110
|
-
// This is safe because:
|
|
111
|
-
// 1. Each component has its own pending_enable_loop_ flag that we check
|
|
112
|
-
// 2. If we can't process a component (wrong state), enable_pending_loops_()
|
|
113
|
-
// will set this flag back to true
|
|
114
|
-
// 3. Any new ISR requests during processing will set the flag again
|
|
115
|
-
this->has_pending_enable_loop_requests_ = false;
|
|
116
|
-
this->enable_pending_loops_();
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
// Mark that we're in the loop for safe reentrant modifications
|
|
120
|
-
this->in_loop_ = true;
|
|
105
|
+
this->before_loop_tasks_(last_op_end_time);
|
|
121
106
|
|
|
122
107
|
for (this->current_loop_index_ = 0; this->current_loop_index_ < this->looping_components_active_end_;
|
|
123
108
|
this->current_loop_index_++) {
|
|
@@ -138,7 +123,7 @@ void Application::loop() {
|
|
|
138
123
|
this->feed_wdt(last_op_end_time);
|
|
139
124
|
}
|
|
140
125
|
|
|
141
|
-
this->
|
|
126
|
+
this->after_loop_tasks_();
|
|
142
127
|
this->app_state_ = new_app_state;
|
|
143
128
|
|
|
144
129
|
// Use the last component's end time instead of calling millis() again
|
|
@@ -400,6 +385,36 @@ void Application::enable_pending_loops_() {
|
|
|
400
385
|
}
|
|
401
386
|
}
|
|
402
387
|
|
|
388
|
+
void Application::before_loop_tasks_(uint32_t loop_start_time) {
|
|
389
|
+
// Process scheduled tasks
|
|
390
|
+
this->scheduler.call();
|
|
391
|
+
|
|
392
|
+
// Feed the watchdog timer
|
|
393
|
+
this->feed_wdt(loop_start_time);
|
|
394
|
+
|
|
395
|
+
// Process any pending enable_loop requests from ISRs
|
|
396
|
+
// This must be done before marking in_loop_ = true to avoid race conditions
|
|
397
|
+
if (this->has_pending_enable_loop_requests_) {
|
|
398
|
+
// Clear flag BEFORE processing to avoid race condition
|
|
399
|
+
// If ISR sets it during processing, we'll catch it next loop iteration
|
|
400
|
+
// This is safe because:
|
|
401
|
+
// 1. Each component has its own pending_enable_loop_ flag that we check
|
|
402
|
+
// 2. If we can't process a component (wrong state), enable_pending_loops_()
|
|
403
|
+
// will set this flag back to true
|
|
404
|
+
// 3. Any new ISR requests during processing will set the flag again
|
|
405
|
+
this->has_pending_enable_loop_requests_ = false;
|
|
406
|
+
this->enable_pending_loops_();
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
// Mark that we're in the loop for safe reentrant modifications
|
|
410
|
+
this->in_loop_ = true;
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
void Application::after_loop_tasks_() {
|
|
414
|
+
// Clear the in_loop_ flag to indicate we're done processing components
|
|
415
|
+
this->in_loop_ = false;
|
|
416
|
+
}
|
|
417
|
+
|
|
403
418
|
#ifdef USE_SOCKET_SELECT_SUPPORT
|
|
404
419
|
bool Application::register_socket_fd(int fd) {
|
|
405
420
|
// WARNING: This function is NOT thread-safe and must only be called from the main loop
|
esphome/core/application.h
CHANGED
|
@@ -504,6 +504,8 @@ class Application {
|
|
|
504
504
|
void enable_component_loop_(Component *component);
|
|
505
505
|
void enable_pending_loops_();
|
|
506
506
|
void activate_looping_component_(uint16_t index);
|
|
507
|
+
void before_loop_tasks_(uint32_t loop_start_time);
|
|
508
|
+
void after_loop_tasks_();
|
|
507
509
|
|
|
508
510
|
void feed_wdt_arch_();
|
|
509
511
|
|
esphome/core/base_automation.h
CHANGED
|
@@ -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...> {
|
esphome/core/component.cpp
CHANGED
|
@@ -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,
|
|
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,
|
|
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)
|
|
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)
|
|
81
|
+
#endif // defined(USE_ESP32)
|
esphome/core/lock_free_queue.h
CHANGED
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
|
-
#if defined(USE_ESP32)
|
|
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)
|
|
146
|
+
#endif // defined(USE_ESP32)
|
esphome/core/scheduler.cpp
CHANGED
|
@@ -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
|
|
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
|
|
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
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: esphome
|
|
3
|
-
Version: 2025.7.
|
|
3
|
+
Version: 2025.7.3
|
|
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
|
|
@@ -4,8 +4,8 @@ esphome/automation.py,sha256=9xmW3AmWDd2oKB7zF-UITYIiSci8ys8qiylK-rcU7Rg,15689
|
|
|
4
4
|
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
|
-
esphome/config_validation.py,sha256=
|
|
8
|
-
esphome/const.py,sha256=
|
|
7
|
+
esphome/config_validation.py,sha256=QUNpomRbIhqTaSrZZXNFcTQdPibGPbYDNSo5sTIzqCI,64924
|
|
8
|
+
esphome/const.py,sha256=PJuRfwa1cZaxODJ_Gl6yZZ2zjZc-uw0WR4jvyxRy7Dc,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
|
|
@@ -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=
|
|
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
|
|
@@ -402,7 +402,7 @@ esphome/components/bme680/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
|
|
|
402
402
|
esphome/components/bme680/bme680.cpp,sha256=R_OJihYGYxFUqjK_C8Kcdtf0jNKxEwEWdusQN5ByCkU,16994
|
|
403
403
|
esphome/components/bme680/bme680.h,sha256=zdTFcpzNb3nSPy7q9V3iSJ5uBsmoZgJkzxU3Fcwf_BY,4678
|
|
404
404
|
esphome/components/bme680/sensor.py,sha256=fjZOcC0AymBF4f3vdgd-WfTfkqL0QrCOnaXdnGvGolU,5801
|
|
405
|
-
esphome/components/bme680_bsec/__init__.py,sha256=
|
|
405
|
+
esphome/components/bme680_bsec/__init__.py,sha256=FmtARbE-B7Dkb1FnOWQavaAdOggraJqrDIocHitQrmI,3062
|
|
406
406
|
esphome/components/bme680_bsec/bme680_bsec.cpp,sha256=ja1s94_Gh6HhhXhJiuT5f_rChHy87tgyHurmmMF1Tx8,22705
|
|
407
407
|
esphome/components/bme680_bsec/bme680_bsec.h,sha256=aUGZXwSiu0wOlt13_mxhy0yKxToAInX2rnhZ_UQc7TM,5907
|
|
408
408
|
esphome/components/bme680_bsec/sensor.py,sha256=Y4efGwK7zDHbS8ET7o-bF__A86OJsZt2Ypl4sRtqKLE,4114
|
|
@@ -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=
|
|
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
|
|
@@ -915,7 +915,7 @@ esphome/components/esp32_touch/__init__.py,sha256=zcxxAkhMPOd--SZyngwDEW-Q9AYcWm
|
|
|
915
915
|
esphome/components/esp32_touch/binary_sensor.py,sha256=JV0p5Ovn4E1EVj6L4JEmRJ--L-D7HWGK2PaQLE9hs3E,1165
|
|
916
916
|
esphome/components/esp32_touch/esp32_touch.h,sha256=Br1-5Lh4U6xmvrM59iuPe5hR6cmO-LO5vSoyc49k9QY,9644
|
|
917
917
|
esphome/components/esp32_touch/esp32_touch_common.cpp,sha256=engSTGARGHfLIwjceV2xrg0y0yX_gpb8MjoK2zd6KZQ,5703
|
|
918
|
-
esphome/components/esp32_touch/esp32_touch_v1.cpp,sha256=
|
|
918
|
+
esphome/components/esp32_touch/esp32_touch_v1.cpp,sha256=v1tGKlHazj2gJFEfQDPIJKR8Q90x_GmlA2DQo3nnteU,8492
|
|
919
919
|
esphome/components/esp32_touch/esp32_touch_v2.cpp,sha256=SZPbpG3fOrJNMkzcJIYFubi4YcTspnVp58iO-_7rJdM,13475
|
|
920
920
|
esphome/components/esp8266/__init__.py,sha256=-2xGbrwE5P4eTmQZRcoKwjBhtCVgnhdh3kEsrqYcGSI,9683
|
|
921
921
|
esphome/components/esp8266/boards.py,sha256=p2btoDa36gfr9QsCOBZuME7Pi20Xf2LcQ_F-oeMFFA8,8647
|
|
@@ -987,9 +987,9 @@ esphome/components/fastled_base/__init__.py,sha256=5Re6yi_0HOCts-U-iiyNKvsQUEBzS
|
|
|
987
987
|
esphome/components/fastled_base/fastled_light.cpp,sha256=MFLr1AV4mTxIQMwxTBg8RtbPuwex7y3nlHbulHdtdps,1369
|
|
988
988
|
esphome/components/fastled_base/fastled_light.h,sha256=Xmv5WA6XuZNGClpiITMo6f73i8P0Z5YoYtlUVhQj2FI,8593
|
|
989
989
|
esphome/components/fastled_clockless/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
990
|
-
esphome/components/fastled_clockless/light.py,sha256=
|
|
990
|
+
esphome/components/fastled_clockless/light.py,sha256=M9x-UAPjmHuaFJR0U1jNgD69Q1FiWTtoRsosju7J8gU,1950
|
|
991
991
|
esphome/components/fastled_spi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
992
|
-
esphome/components/fastled_spi/light.py,sha256=
|
|
992
|
+
esphome/components/fastled_spi/light.py,sha256=KjvKzYWQ82iPdgEXicjZO8VYaQQoHSJ_UQ6gi22fbPE,2107
|
|
993
993
|
esphome/components/feedback/__init__.py,sha256=GjTE91yQyeMDCmGmxAgQwsB9ohUUw83JSCmIi2_sujg,25
|
|
994
994
|
esphome/components/feedback/cover.py,sha256=NuS-WNv7RFctg3jrBjPm6moIlNGgtmXvspdD1_CPgsM,6324
|
|
995
995
|
esphome/components/feedback/feedback_cover.cpp,sha256=bvZ-dgN3zh8Ivc2BvSPO4QKTQuVIFm_AiTUgTUIHnE8,16241
|
|
@@ -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=
|
|
1047
|
+
esphome/components/gpio/binary_sensor/__init__.py,sha256=1rCKRDCrbINcJN6m0gRYgyGTouuVpK-s_IV6cGgivUE,3594
|
|
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
|
|
@@ -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=
|
|
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=
|
|
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=
|
|
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
|
|
@@ -2028,7 +2028,7 @@ esphome/components/nau7802/sensor.py,sha256=1_p7nQLcClL3l5FX3qZ627wf9cP8h8Yt4yl7
|
|
|
2028
2028
|
esphome/components/neopixelbus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2029
2029
|
esphome/components/neopixelbus/_methods.py,sha256=zWtt2M2kG4V3iYlvEWZn-BGuTlmCnTvT2VYjiRn3NiY,14544
|
|
2030
2030
|
esphome/components/neopixelbus/const.py,sha256=8dPnqN1skzSEnjjsr3H2Q3BJOEn-TyFB1PApCSSsYUw,824
|
|
2031
|
-
esphome/components/neopixelbus/light.py,sha256=
|
|
2031
|
+
esphome/components/neopixelbus/light.py,sha256=mGs_W1AuFwzw9_nft_vZdpeX3Z4fe0QNrm49lj15YRc,7572
|
|
2032
2032
|
esphome/components/neopixelbus/neopixelbus_light.h,sha256=flA7U9l1Bfj7Vdii4wwi2ukVG_RO0mvL6kNaa_k3xBI,4680
|
|
2033
2033
|
esphome/components/network/__init__.py,sha256=4SVVU4J6pPdGUY_Tz1zEZm4E1LzITStl1RMMMWR71A4,2218
|
|
2034
2034
|
esphome/components/network/ip_address.h,sha256=tTltJn7qkuxr1_BhSTUYOBItZG-d3eBus04C5GEOS08,4552
|
|
@@ -2574,7 +2574,7 @@ esphome/components/script/script.h,sha256=0z4aoCBM2x2RLtpk0LNs3biHIS--rDzhfQjN-S
|
|
|
2574
2574
|
esphome/components/sdl/__init__.py,sha256=4Nn7UhpMJ9oSbuLdyVEW7G9PlIey2v33SWRNVizt9Oc,30
|
|
2575
2575
|
esphome/components/sdl/binary_sensor.py,sha256=0fXpK11HIO9fpRqnyhN-nshlmKCgqXGK1OBlInQjOL4,6528
|
|
2576
2576
|
esphome/components/sdl/display.py,sha256=mVm2J93NP-a0_Z70b6Rz_305-jIO8Rt2Kcxnc3rp5tw,3385
|
|
2577
|
-
esphome/components/sdl/sdl_esphome.cpp,sha256=
|
|
2577
|
+
esphome/components/sdl/sdl_esphome.cpp,sha256=sc5r_zZuy_bg2iX50tZYRL_KyRZaeQfdWSGZVzolqK4,4087
|
|
2578
2578
|
esphome/components/sdl/sdl_esphome.h,sha256=S_HSX0cQYI3oUWHVPPwv9dFVhbhTUYitnO5o5GNeX28,2373
|
|
2579
2579
|
esphome/components/sdl/touchscreen/__init__.py,sha256=VhcFG1Vc_i4eIYHoV4_Nb3VlanUCr0r9RPAM5BMKr9Y,633
|
|
2580
2580
|
esphome/components/sdl/touchscreen/sdl_touchscreen.h,sha256=dgw2wGuEvjX6zbPjqMOPLkOl-aVYVWxY7n7Gc_kAKm0,595
|
|
@@ -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=
|
|
2820
|
-
esphome/components/speaker/media_player/audio_pipeline.h,sha256=
|
|
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
|
|
@@ -3229,7 +3229,7 @@ esphome/components/tuya/climate/tuya_climate.h,sha256=16nLDVoVwyd6fOtqq9SqRSQu17
|
|
|
3229
3229
|
esphome/components/tuya/cover/__init__.py,sha256=zNsaJUYfibX_38oe9mQ-19UhXIWXNBOVbNWwr4bq3yo,2947
|
|
3230
3230
|
esphome/components/tuya/cover/tuya_cover.cpp,sha256=0VKNLg0zDy7EPk7sRQC6aL1QjV7832tmubbPenbQW3Y,4369
|
|
3231
3231
|
esphome/components/tuya/cover/tuya_cover.h,sha256=9S9_X7xuiusjDRfsXw_aV6_7i8P9WpMOvOg-dlyOrz8,1787
|
|
3232
|
-
esphome/components/tuya/fan/__init__.py,sha256=
|
|
3232
|
+
esphome/components/tuya/fan/__init__.py,sha256=nHTmFEtNcASuOrBHeixTUpzvQYtYHsb0F_bRLSYutgk,1734
|
|
3233
3233
|
esphome/components/tuya/fan/tuya_fan.cpp,sha256=KZTNjsQtSAIr4JXf2VKocxBANqORi7jaC5BsUt-gNWs,4330
|
|
3234
3234
|
esphome/components/tuya/fan/tuya_fan.h,sha256=nYKtPdShhbQl05W83rAFS4CxKbsY2jhp5N11k1c2alk,1114
|
|
3235
3235
|
esphome/components/tuya/light/__init__.py,sha256=mZj2c72EhHo8CHwkNFvn58jmj7mycIzHPRY5F5Th3VI,4858
|
|
@@ -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=
|
|
3375
|
-
esphome/components/voice_assistant/voice_assistant.h,sha256=
|
|
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
|
|
@@ -3392,11 +3392,11 @@ esphome/components/web_server/list_entities.cpp,sha256=yQ3skDSDFnnKsEpLdkyjzySmX
|
|
|
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=
|
|
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
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=
|
|
3399
|
+
esphome/components/web_server/ota/ota_web_server.cpp,sha256=q-GKNDmwjonXaBOndktCulkJfrCSpmCGqcreuJxtRJI,8158
|
|
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
|
|
@@ -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=
|
|
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
|
|
@@ -3593,14 +3593,14 @@ esphome/components/zyaura/sensor.py,sha256=cSmO4ozYdi4ZD7NK4lmYjswWVmJoDvEruU1Hh
|
|
|
3593
3593
|
esphome/components/zyaura/zyaura.cpp,sha256=F7WM8XAZ5MYuCD3eERm2_IA-O7sP1i-A-yF5TV4PqX8,3679
|
|
3594
3594
|
esphome/components/zyaura/zyaura.h,sha256=7O3EGFIopUEfBp3A5sBC0l4zx2mesRxDWa_MBdGtPKQ,2307
|
|
3595
3595
|
esphome/core/__init__.py,sha256=uWhgtqaPGiMeMp6KMvRs60gvFG_4jabueLzKTMuVAHc,28445
|
|
3596
|
-
esphome/core/application.cpp,sha256=
|
|
3597
|
-
esphome/core/application.h,sha256=
|
|
3596
|
+
esphome/core/application.cpp,sha256=wrjr4SVAWMarEo-cKJ_eUfarCrSrWzqoK2-oA74wPYU,19182
|
|
3597
|
+
esphome/core/application.h,sha256=psgw-_TDgZQLK00Kg5A9Y-B17Mkdn4WeMzmOkyX2e98,21929
|
|
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=
|
|
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=
|
|
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=
|
|
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
3621
|
esphome/core/helpers.h,sha256=213N4rXgWCcuBB-aZDV9TW5UIYRzzGhU44YXWJz2Ys4,33961
|
|
3622
|
-
esphome/core/lock_free_queue.h,sha256=
|
|
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=
|
|
3632
|
-
esphome/core/scheduler.h,sha256=
|
|
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.
|
|
3659
|
-
esphome-2025.7.
|
|
3660
|
-
esphome-2025.7.
|
|
3661
|
-
esphome-2025.7.
|
|
3662
|
-
esphome-2025.7.
|
|
3663
|
-
esphome-2025.7.
|
|
3658
|
+
esphome-2025.7.3.dist-info/licenses/LICENSE,sha256=HzEjkBInJe44L4WvAOPfhPJJDNj6YbnqFyvGWRzArGM,36664
|
|
3659
|
+
esphome-2025.7.3.dist-info/METADATA,sha256=jp7UkQb2oB-skhD2WX7Ikw2u_6yxCe1XUpjyemMOoOA,3705
|
|
3660
|
+
esphome-2025.7.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
3661
|
+
esphome-2025.7.3.dist-info/entry_points.txt,sha256=mIxVNuWtbYzeEcaWCl-AQ-97aBOWbnYBAK8nbF6P4M0,50
|
|
3662
|
+
esphome-2025.7.3.dist-info/top_level.txt,sha256=0GSXEW3cnITpgG3qnsSMz0qoqJHAFyfw7Y8MVtEf1Yk,8
|
|
3663
|
+
esphome-2025.7.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|