esphome 2025.2.0b2__py3-none-any.whl → 2025.2.0b4__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/dht/dht.cpp +2 -1
- esphome/components/dht/sensor.py +1 -1
- esphome/components/display/display.cpp +14 -2
- esphome/components/esp32_dac/esp32_dac.cpp +16 -7
- esphome/components/esp32_dac/esp32_dac.h +8 -0
- esphome/components/esp32_dac/output.py +16 -4
- esphome/components/logger/__init__.py +2 -2
- esphome/components/logger/logger.cpp +0 -3
- esphome/components/online_image/image_decoder.cpp +7 -4
- esphome/components/online_image/jpeg_image.cpp +4 -2
- esphome/components/online_image/online_image.cpp +7 -6
- esphome/components/online_image/online_image.h +15 -2
- esphome/components/scd30/sensor.py +1 -1
- esphome/const.py +1 -1
- esphome/dashboard/web_server.py +1 -1
- {esphome-2025.2.0b2.dist-info → esphome-2025.2.0b4.dist-info}/METADATA +2 -2
- {esphome-2025.2.0b2.dist-info → esphome-2025.2.0b4.dist-info}/RECORD +21 -21
- {esphome-2025.2.0b2.dist-info → esphome-2025.2.0b4.dist-info}/LICENSE +0 -0
- {esphome-2025.2.0b2.dist-info → esphome-2025.2.0b4.dist-info}/WHEEL +0 -0
- {esphome-2025.2.0b2.dist-info → esphome-2025.2.0b4.dist-info}/entry_points.txt +0 -0
- {esphome-2025.2.0b2.dist-info → esphome-2025.2.0b4.dist-info}/top_level.txt +0 -0
esphome/components/dht/dht.cpp
CHANGED
@@ -23,6 +23,7 @@ void DHT::dump_config() {
|
|
23
23
|
} else {
|
24
24
|
ESP_LOGCONFIG(TAG, " Model: DHT22 (or equivalent)");
|
25
25
|
}
|
26
|
+
ESP_LOGCONFIG(TAG, " Internal Pull-up: %s", ONOFF(this->pin_->get_flags() & gpio::FLAG_PULLUP));
|
26
27
|
|
27
28
|
LOG_UPDATE_INTERVAL(this);
|
28
29
|
|
@@ -101,7 +102,7 @@ bool HOT IRAM_ATTR DHT::read_sensor_(float *temperature, float *humidity, bool r
|
|
101
102
|
} else {
|
102
103
|
delayMicroseconds(800);
|
103
104
|
}
|
104
|
-
this->pin_->pin_mode(
|
105
|
+
this->pin_->pin_mode(this->pin_->get_flags());
|
105
106
|
|
106
107
|
{
|
107
108
|
InterruptLock lock;
|
esphome/components/dht/sensor.py
CHANGED
@@ -34,7 +34,7 @@ DHT = dht_ns.class_("DHT", cg.PollingComponent)
|
|
34
34
|
CONFIG_SCHEMA = cv.Schema(
|
35
35
|
{
|
36
36
|
cv.GenerateID(): cv.declare_id(DHT),
|
37
|
-
cv.Required(CONF_PIN): pins.
|
37
|
+
cv.Required(CONF_PIN): pins.internal_gpio_input_pullup_pin_schema,
|
38
38
|
cv.Optional(CONF_TEMPERATURE): sensor.sensor_schema(
|
39
39
|
unit_of_measurement=UNIT_CELSIUS,
|
40
40
|
accuracy_decimals=1,
|
@@ -815,8 +815,20 @@ void Display::test_card() {
|
|
815
815
|
|
816
816
|
DisplayPage::DisplayPage(display_writer_t writer) : writer_(std::move(writer)) {}
|
817
817
|
void DisplayPage::show() { this->parent_->show_page(this); }
|
818
|
-
void DisplayPage::show_next() {
|
819
|
-
|
818
|
+
void DisplayPage::show_next() {
|
819
|
+
if (this->next_ == nullptr) {
|
820
|
+
ESP_LOGE(TAG, "no next page");
|
821
|
+
return;
|
822
|
+
}
|
823
|
+
this->next_->show();
|
824
|
+
}
|
825
|
+
void DisplayPage::show_prev() {
|
826
|
+
if (this->prev_ == nullptr) {
|
827
|
+
ESP_LOGE(TAG, "no previous page");
|
828
|
+
return;
|
829
|
+
}
|
830
|
+
this->prev_->show();
|
831
|
+
}
|
820
832
|
void DisplayPage::set_parent(Display *parent) { this->parent_ = parent; }
|
821
833
|
void DisplayPage::set_prev(DisplayPage *prev) { this->prev_ = prev; }
|
822
834
|
void DisplayPage::set_next(DisplayPage *next) { this->next_ = next; }
|
@@ -7,13 +7,16 @@
|
|
7
7
|
#ifdef USE_ARDUINO
|
8
8
|
#include <esp32-hal-dac.h>
|
9
9
|
#endif
|
10
|
-
#ifdef USE_ESP_IDF
|
11
|
-
#include <driver/dac.h>
|
12
|
-
#endif
|
13
10
|
|
14
11
|
namespace esphome {
|
15
12
|
namespace esp32_dac {
|
16
13
|
|
14
|
+
#ifdef USE_ESP32_VARIANT_ESP32S2
|
15
|
+
static constexpr uint8_t DAC0_PIN = 17;
|
16
|
+
#else
|
17
|
+
static constexpr uint8_t DAC0_PIN = 25;
|
18
|
+
#endif
|
19
|
+
|
17
20
|
static const char *const TAG = "esp32_dac";
|
18
21
|
|
19
22
|
void ESP32DAC::setup() {
|
@@ -22,8 +25,15 @@ void ESP32DAC::setup() {
|
|
22
25
|
this->turn_off();
|
23
26
|
|
24
27
|
#ifdef USE_ESP_IDF
|
25
|
-
|
26
|
-
|
28
|
+
const dac_channel_t channel = this->pin_->get_pin() == DAC0_PIN ? DAC_CHAN_0 : DAC_CHAN_1;
|
29
|
+
const dac_oneshot_config_t oneshot_cfg{channel};
|
30
|
+
dac_oneshot_new_channel(&oneshot_cfg, &this->dac_handle_);
|
31
|
+
#endif
|
32
|
+
}
|
33
|
+
|
34
|
+
void ESP32DAC::on_safe_shutdown() {
|
35
|
+
#ifdef USE_ESP_IDF
|
36
|
+
dac_oneshot_del_channel(this->dac_handle_);
|
27
37
|
#endif
|
28
38
|
}
|
29
39
|
|
@@ -40,8 +50,7 @@ void ESP32DAC::write_state(float state) {
|
|
40
50
|
state = state * 255;
|
41
51
|
|
42
52
|
#ifdef USE_ESP_IDF
|
43
|
-
|
44
|
-
dac_output_voltage(channel, (uint8_t) state);
|
53
|
+
dac_oneshot_output_voltage(this->dac_handle_, state);
|
45
54
|
#endif
|
46
55
|
#ifdef USE_ARDUINO
|
47
56
|
dacWrite(this->pin_->get_pin(), state);
|
@@ -7,6 +7,10 @@
|
|
7
7
|
|
8
8
|
#ifdef USE_ESP32
|
9
9
|
|
10
|
+
#ifdef USE_ESP_IDF
|
11
|
+
#include <driver/dac_oneshot.h>
|
12
|
+
#endif
|
13
|
+
|
10
14
|
namespace esphome {
|
11
15
|
namespace esp32_dac {
|
12
16
|
|
@@ -16,6 +20,7 @@ class ESP32DAC : public output::FloatOutput, public Component {
|
|
16
20
|
|
17
21
|
/// Initialize pin
|
18
22
|
void setup() override;
|
23
|
+
void on_safe_shutdown() override;
|
19
24
|
void dump_config() override;
|
20
25
|
/// HARDWARE setup_priority
|
21
26
|
float get_setup_priority() const override { return setup_priority::HARDWARE; }
|
@@ -24,6 +29,9 @@ class ESP32DAC : public output::FloatOutput, public Component {
|
|
24
29
|
void write_state(float state) override;
|
25
30
|
|
26
31
|
InternalGPIOPin *pin_;
|
32
|
+
#ifdef USE_ESP_IDF
|
33
|
+
dac_oneshot_handle_t dac_handle_;
|
34
|
+
#endif
|
27
35
|
};
|
28
36
|
|
29
37
|
} // namespace esp32_dac
|
@@ -1,15 +1,27 @@
|
|
1
|
+
import esphome.codegen as cg
|
2
|
+
import esphome.config_validation as cv
|
1
3
|
from esphome import pins
|
2
4
|
from esphome.components import output
|
3
|
-
|
4
|
-
|
5
|
+
from esphome.components.esp32 import get_esp32_variant
|
6
|
+
from esphome.components.esp32.const import VARIANT_ESP32, VARIANT_ESP32S2
|
5
7
|
from esphome.const import CONF_ID, CONF_NUMBER, CONF_PIN
|
6
8
|
|
7
9
|
DEPENDENCIES = ["esp32"]
|
8
10
|
|
11
|
+
DAC_PINS = {
|
12
|
+
VARIANT_ESP32: (25, 26),
|
13
|
+
VARIANT_ESP32S2: (17, 18),
|
14
|
+
}
|
15
|
+
|
9
16
|
|
10
17
|
def valid_dac_pin(value):
|
11
|
-
|
12
|
-
|
18
|
+
variant = get_esp32_variant()
|
19
|
+
try:
|
20
|
+
valid_pins = DAC_PINS[variant]
|
21
|
+
except KeyError as ex:
|
22
|
+
raise cv.Invalid(f"DAC is not supported on {variant}") from ex
|
23
|
+
given_pin = value[CONF_NUMBER]
|
24
|
+
cv.one_of(*valid_pins)(given_pin)
|
13
25
|
return value
|
14
26
|
|
15
27
|
|
@@ -247,8 +247,8 @@ async def to_code(config):
|
|
247
247
|
)
|
248
248
|
cg.add(log.pre_setup())
|
249
249
|
|
250
|
-
for tag,
|
251
|
-
cg.add(log.set_log_level(tag, LOG_LEVELS[
|
250
|
+
for tag, log_level in config[CONF_LOGS].items():
|
251
|
+
cg.add(log.set_log_level(tag, LOG_LEVELS[log_level]))
|
252
252
|
|
253
253
|
cg.add_define("USE_LOGGER")
|
254
254
|
this_severity = LOG_LEVEL_SEVERITY.index(level)
|
@@ -102,9 +102,6 @@ void Logger::log_vprintf_(int level, const char *tag, int line, const __FlashStr
|
|
102
102
|
#endif
|
103
103
|
|
104
104
|
int HOT Logger::level_for(const char *tag) {
|
105
|
-
// Uses std::vector<> for low memory footprint, though the vector
|
106
|
-
// could be sorted to minimize lookup times. This feature isn't used that
|
107
|
-
// much anyway so it doesn't matter too much.
|
108
105
|
if (this->log_levels_.count(tag) != 0)
|
109
106
|
return this->log_levels_[tag];
|
110
107
|
return this->current_level_;
|
@@ -9,10 +9,10 @@ namespace online_image {
|
|
9
9
|
static const char *const TAG = "online_image.decoder";
|
10
10
|
|
11
11
|
bool ImageDecoder::set_size(int width, int height) {
|
12
|
-
bool
|
12
|
+
bool success = this->image_->resize_(width, height) > 0;
|
13
13
|
this->x_scale_ = static_cast<double>(this->image_->buffer_width_) / width;
|
14
14
|
this->y_scale_ = static_cast<double>(this->image_->buffer_height_) / height;
|
15
|
-
return
|
15
|
+
return success;
|
16
16
|
}
|
17
17
|
|
18
18
|
void ImageDecoder::draw(int x, int y, int w, int h, const Color &color) {
|
@@ -51,8 +51,9 @@ size_t DownloadBuffer::read(size_t len) {
|
|
51
51
|
}
|
52
52
|
|
53
53
|
size_t DownloadBuffer::resize(size_t size) {
|
54
|
-
if (this->size_
|
55
|
-
|
54
|
+
if (this->size_ >= size) {
|
55
|
+
// Avoid useless reallocations; if the buffer is big enough, don't reallocate.
|
56
|
+
return this->size_;
|
56
57
|
}
|
57
58
|
this->allocator_.deallocate(this->buffer_, this->size_);
|
58
59
|
this->buffer_ = this->allocator_.allocate(size);
|
@@ -61,6 +62,8 @@ size_t DownloadBuffer::resize(size_t size) {
|
|
61
62
|
this->size_ = size;
|
62
63
|
return size;
|
63
64
|
} else {
|
65
|
+
ESP_LOGE(TAG, "allocation of %zu bytes failed. Biggest block in heap: %zu Bytes", size,
|
66
|
+
this->allocator_.get_max_free_block_size());
|
64
67
|
this->size_ = 0;
|
65
68
|
return 0;
|
66
69
|
}
|
@@ -58,7 +58,7 @@ int HOT JpegDecoder::decode(uint8_t *buffer, size_t size) {
|
|
58
58
|
}
|
59
59
|
|
60
60
|
if (!this->jpeg_.openRAM(buffer, size, draw_callback)) {
|
61
|
-
ESP_LOGE(TAG, "Could not open image for decoding.
|
61
|
+
ESP_LOGE(TAG, "Could not open image for decoding: %d", this->jpeg_.getLastError());
|
62
62
|
return DECODE_ERROR_INVALID_TYPE;
|
63
63
|
}
|
64
64
|
auto jpeg_type = this->jpeg_.getJPEGType();
|
@@ -73,7 +73,9 @@ int HOT JpegDecoder::decode(uint8_t *buffer, size_t size) {
|
|
73
73
|
|
74
74
|
this->jpeg_.setUserPointer(this);
|
75
75
|
this->jpeg_.setPixelType(RGB8888);
|
76
|
-
this->set_size(this->jpeg_.getWidth(), this->jpeg_.getHeight())
|
76
|
+
if (!this->set_size(this->jpeg_.getWidth(), this->jpeg_.getHeight())) {
|
77
|
+
return DECODE_ERROR_OUT_OF_MEMORY;
|
78
|
+
}
|
77
79
|
if (!this->jpeg_.decode(0, 0, 0)) {
|
78
80
|
ESP_LOGE(TAG, "Error while decoding.");
|
79
81
|
this->jpeg_.close();
|
@@ -64,33 +64,34 @@ void OnlineImage::release() {
|
|
64
64
|
}
|
65
65
|
}
|
66
66
|
|
67
|
-
|
67
|
+
size_t OnlineImage::resize_(int width_in, int height_in) {
|
68
68
|
int width = this->fixed_width_;
|
69
69
|
int height = this->fixed_height_;
|
70
|
-
if (this->
|
70
|
+
if (this->is_auto_resize_()) {
|
71
71
|
width = width_in;
|
72
72
|
height = height_in;
|
73
73
|
if (this->width_ != width && this->height_ != height) {
|
74
74
|
this->release();
|
75
75
|
}
|
76
76
|
}
|
77
|
+
size_t new_size = this->get_buffer_size_(width, height);
|
77
78
|
if (this->buffer_) {
|
78
|
-
|
79
|
+
// Buffer already allocated => no need to resize
|
80
|
+
return new_size;
|
79
81
|
}
|
80
|
-
size_t new_size = this->get_buffer_size_(width, height);
|
81
82
|
ESP_LOGD(TAG, "Allocating new buffer of %zu bytes", new_size);
|
82
83
|
this->buffer_ = this->allocator_.allocate(new_size);
|
83
84
|
if (this->buffer_ == nullptr) {
|
84
85
|
ESP_LOGE(TAG, "allocation of %zu bytes failed. Biggest block in heap: %zu Bytes", new_size,
|
85
86
|
this->allocator_.get_max_free_block_size());
|
86
87
|
this->end_connection_();
|
87
|
-
return
|
88
|
+
return 0;
|
88
89
|
}
|
89
90
|
this->buffer_width_ = width;
|
90
91
|
this->buffer_height_ = height;
|
91
92
|
this->width_ = width;
|
92
93
|
ESP_LOGV(TAG, "New size: (%d, %d)", width, height);
|
93
|
-
return
|
94
|
+
return new_size;
|
94
95
|
}
|
95
96
|
|
96
97
|
void OnlineImage::update() {
|
@@ -99,9 +99,22 @@ class OnlineImage : public PollingComponent,
|
|
99
99
|
|
100
100
|
int get_position_(int x, int y) const { return (x + y * this->buffer_width_) * this->get_bpp() / 8; }
|
101
101
|
|
102
|
-
ESPHOME_ALWAYS_INLINE bool
|
102
|
+
ESPHOME_ALWAYS_INLINE bool is_auto_resize_() const { return this->fixed_width_ == 0 || this->fixed_height_ == 0; }
|
103
103
|
|
104
|
-
|
104
|
+
/**
|
105
|
+
* @brief Resize the image buffer to the requested dimensions.
|
106
|
+
*
|
107
|
+
* The buffer will be allocated if not existing.
|
108
|
+
* If the dimensions have been fixed in the yaml config, the buffer will be created
|
109
|
+
* with those dimensions and not resized, even on request.
|
110
|
+
* Otherwise, the old buffer will be deallocated and a new buffer with the requested
|
111
|
+
* allocated
|
112
|
+
*
|
113
|
+
* @param width
|
114
|
+
* @param height
|
115
|
+
* @return 0 if no memory could be allocated, the size of the new buffer otherwise.
|
116
|
+
*/
|
117
|
+
size_t resize_(int width, int height);
|
105
118
|
|
106
119
|
/**
|
107
120
|
* @brief Draw a pixel into the buffer.
|
@@ -75,7 +75,7 @@ CONFIG_SCHEMA = (
|
|
75
75
|
cv.Optional(CONF_UPDATE_INTERVAL, default="60s"): cv.All(
|
76
76
|
cv.positive_time_period_seconds,
|
77
77
|
cv.Range(
|
78
|
-
min=core.TimePeriod(seconds=
|
78
|
+
min=core.TimePeriod(seconds=2), max=core.TimePeriod(seconds=1800)
|
79
79
|
),
|
80
80
|
),
|
81
81
|
}
|
esphome/const.py
CHANGED
esphome/dashboard/web_server.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: esphome
|
3
|
-
Version: 2025.2.
|
3
|
+
Version: 2025.2.0b4
|
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@nabucasa.com>
|
6
6
|
License: MIT
|
@@ -38,7 +38,7 @@ Requires-Dist: esptool ==4.7.0
|
|
38
38
|
Requires-Dist: click ==8.1.7
|
39
39
|
Requires-Dist: esphome-dashboard ==20250212.0
|
40
40
|
Requires-Dist: aioesphomeapi ==24.6.2
|
41
|
-
Requires-Dist: zeroconf ==0.144.
|
41
|
+
Requires-Dist: zeroconf ==0.144.3
|
42
42
|
Requires-Dist: puremagic ==1.27
|
43
43
|
Requires-Dist: ruamel.yaml ==0.18.6
|
44
44
|
Requires-Dist: glyphsets ==1.0.0
|
@@ -5,7 +5,7 @@ esphome/codegen.py,sha256=GePHUM7xdXb_Pil59SHVsXg2F4VBPgkH-Fz2PDX8Z54,1873
|
|
5
5
|
esphome/config.py,sha256=fFrDYbhWY1xn_onAl_0jwlg9D8NkK_FdKULTlnjZtxs,39832
|
6
6
|
esphome/config_helpers.py,sha256=MKf_wzO35nn41FvigXE0iYKDslPgL2ruf8R-EPtTT2I,3256
|
7
7
|
esphome/config_validation.py,sha256=qpNSoruGC4Tb7KNtgahginfMrhoRdjYUs-3Et2ww7rg,67868
|
8
|
-
esphome/const.py,sha256=
|
8
|
+
esphome/const.py,sha256=Yt5frKkqVq8ExHPX2iRo4-PxqldQiVSwBYqf1rATXn0,40664
|
9
9
|
esphome/coroutine.py,sha256=j_14z8dIIzIBeuNO30D4c1RJvMMt1xZFZ58Evd-EvJA,9344
|
10
10
|
esphome/cpp_generator.py,sha256=PS_vtNLykRldK7n2bSZ1e9zIEajnCNc_ruW9beMNulQ,31235
|
11
11
|
esphome/cpp_helpers.py,sha256=6C2vNbOIhZKi43xRVlk5hp9GfshfBn-rc5D_ZFUEYaE,4801
|
@@ -675,15 +675,15 @@ esphome/components/dfrobot_sen0395/switch/__init__.py,sha256=9qjTaG1f97EvwRyF_Nd
|
|
675
675
|
esphome/components/dfrobot_sen0395/switch/dfrobot_sen0395_switch.cpp,sha256=Mg2BnNhxJZl9MYnniUYNkYW7O19jURvT8L530-GpdZU,1508
|
676
676
|
esphome/components/dfrobot_sen0395/switch/dfrobot_sen0395_switch.h,sha256=Yqn5ZUltr7Htvr40Qdxw1QOvqb3Hgs1mi7UMaptJ8Cg,810
|
677
677
|
esphome/components/dht/__init__.py,sha256=PTP_5q_K_2dNnUdkolkVd5komlEbJdS4lolCp8dvjKk,29
|
678
|
-
esphome/components/dht/dht.cpp,sha256
|
678
|
+
esphome/components/dht/dht.cpp,sha256=l6xNlXg6ejKVoLii95J_5mYGpwHxTdgV5mgOvJVYKAo,7701
|
679
679
|
esphome/components/dht/dht.h,sha256=K-lebe2MkHhqifChB4q52yRJqR_0DAzVYZP1sitM88I,1772
|
680
|
-
esphome/components/dht/sensor.py,sha256=
|
680
|
+
esphome/components/dht/sensor.py,sha256=7B1Ln-YnO1DtY9jbyrPXCO0E-5cVyeKOnbR75GRFBj0,2269
|
681
681
|
esphome/components/dht12/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
682
682
|
esphome/components/dht12/dht12.cpp,sha256=l9vUeg6oc_XRIifT6pft_Jjk4WmS08rLkWv_af_WQHg,2020
|
683
683
|
esphome/components/dht12/dht12.h,sha256=zHdQNIDC7nPMblvyEkTfXMeGCLmYRB7ZL_SXuB2PEWY,788
|
684
684
|
esphome/components/dht12/sensor.py,sha256=9P1JtUF2VRYtEE1j8GHlsob1EHF5n3DC7mGuGV_fE_w,1684
|
685
685
|
esphome/components/display/__init__.py,sha256=cKo4ldiSbNxcJKEITCDODtgS9kKzQJoPtJIc7mMapsQ,6760
|
686
|
-
esphome/components/display/display.cpp,sha256=
|
686
|
+
esphome/components/display/display.cpp,sha256=sFhBJ90cclkXNTMtx-mvPqVVS0K9diD7NvHLgAJEzkM,32372
|
687
687
|
esphome/components/display/display.h,sha256=uIs9FRgOYUXvOuEJ1NWsXtfja0a3SWCdmx-gGbhrfC0,32346
|
688
688
|
esphome/components/display/display_buffer.cpp,sha256=0jL60x2WNyDTNgjK2Iv7R4ZlA57cbIt1-J_QvGFKlbM,1896
|
689
689
|
esphome/components/display/display_buffer.h,sha256=RkFqe72PZtSKR60mWlb79FDqVQQFsefcEOdOMwIjuGc,809
|
@@ -851,9 +851,9 @@ esphome/components/esp32_can/canbus.py,sha256=sENR6HY7oBDkN_XBlz2I0qopVUC-chcGz6
|
|
851
851
|
esphome/components/esp32_can/esp32_can.cpp,sha256=VYZSzI5GpCK-0-GOcFikQkzZrpqkp0loDVL2mRDJC-U,4920
|
852
852
|
esphome/components/esp32_can/esp32_can.h,sha256=-u9xaLJtVAUj38SaBzPQ7q-rjydh2KEdaCn_1k27QEg,828
|
853
853
|
esphome/components/esp32_dac/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
854
|
-
esphome/components/esp32_dac/esp32_dac.cpp,sha256=
|
855
|
-
esphome/components/esp32_dac/esp32_dac.h,sha256=
|
856
|
-
esphome/components/esp32_dac/output.py,sha256=
|
854
|
+
esphome/components/esp32_dac/esp32_dac.cpp,sha256=ARw5vlGXxLaZeudHPYox3tmvXm5gbmAXEGCPXVGIvjQ,1312
|
855
|
+
esphome/components/esp32_dac/esp32_dac.h,sha256=9npbSQZn56U25fO7n8u4KdGCSBCc7UNyeGpr-Z_dFWI,846
|
856
|
+
esphome/components/esp32_dac/output.py,sha256=o3wj6WeLCFSXaU5aDF6zGznughufUCVNz3QgN6mqC08,1362
|
857
857
|
esphome/components/esp32_hall/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
858
858
|
esphome/components/esp32_hall/esp32_hall.cpp,sha256=UkxwSJHOnpCWb1Coo6ulEUMOyE8qaqUK4D5mTCSSfio,707
|
859
859
|
esphome/components/esp32_hall/esp32_hall.h,sha256=2SPP7QOKdL7MjMd8MphXHnt6nOu7fT-16O_MT59aDiI,399
|
@@ -1459,8 +1459,8 @@ esphome/components/lock/__init__.py,sha256=GMClddiRBqyVuvmNWD_R7u8FBxN9hl0s00Y62
|
|
1459
1459
|
esphome/components/lock/automation.h,sha256=aOcWJAY1XffSAK8LaywJpx1Bbdh0Ri_FS6low-20mic,2066
|
1460
1460
|
esphome/components/lock/lock.cpp,sha256=IyEt5xShAxMpmcn_GAPFv2lRCS-kr4MjjfExxfXuK-Q,3212
|
1461
1461
|
esphome/components/lock/lock.h,sha256=kFFccTAu56e6PhZVATW0NznOj0M7VByEn9gc6l5M3eA,6042
|
1462
|
-
esphome/components/logger/__init__.py,sha256
|
1463
|
-
esphome/components/logger/logger.cpp,sha256=
|
1462
|
+
esphome/components/logger/__init__.py,sha256=oU1X8krvf8JyXctFjpfip5ZEZp_QeJuicVmZLLxC4W0,13781
|
1463
|
+
esphome/components/logger/logger.cpp,sha256=MzNwXhh4eIx4R4TmN50yYJiILONIpmG9uRiOemU6ojU,6675
|
1464
1464
|
esphome/components/logger/logger.h,sha256=krzoy-R-9CIfNrVpIhGjHdq30YpT-KtBxniSkIag3ug,6095
|
1465
1465
|
esphome/components/logger/logger_esp32.cpp,sha256=SOLN5oHiVbnItxw4wdhvNdeunwgY7FR5j752fEt9__M,6101
|
1466
1466
|
esphome/components/logger/logger_esp8266.cpp,sha256=k7GvUlcLxXCVYqBw7tlHRikmRe7hdO6qV837wr4N2ww,1182
|
@@ -1982,12 +1982,12 @@ esphome/components/one_wire/one_wire_bus.h,sha256=06hhoL5DNkzLEIBzBcnEoOPB4kuPxt
|
|
1982
1982
|
esphome/components/online_image/__init__.py,sha256=Xq5yjzakmBtOmX-F354EXds6A9l0K7QUWNbuOyn0Bao,6231
|
1983
1983
|
esphome/components/online_image/bmp_image.cpp,sha256=v1mmhzhi0lzcz-q9tcyNwfni4DGJMPtVBnAmXQM7erY,3295
|
1984
1984
|
esphome/components/online_image/bmp_image.h,sha256=9ExIs8n2nROXu3Qnf1JHJoTTqR0tssTNvivcaYzp_W0,878
|
1985
|
-
esphome/components/online_image/image_decoder.cpp,sha256=
|
1985
|
+
esphome/components/online_image/image_decoder.cpp,sha256=p_693Ac8F-vs2n_1AZ7E57HBfLhAeeBWYpI3tDy6rnE,2215
|
1986
1986
|
esphome/components/online_image/image_decoder.h,sha256=A8sU-3m5dkyR8S2wXbeR7v7C5mRSLxrvfvsBPYz3a90,3798
|
1987
|
-
esphome/components/online_image/jpeg_image.cpp,sha256
|
1987
|
+
esphome/components/online_image/jpeg_image.cpp,sha256=1qDTfzp7H6oxuRVBVXXgglourmlcBO4uvxQK6YLDFl4,2867
|
1988
1988
|
esphome/components/online_image/jpeg_image.h,sha256=RxlXrSxgd_j7tXYMGdkU1gVmkWB6Jc0YHuq13NrY9fc,741
|
1989
|
-
esphome/components/online_image/online_image.cpp,sha256=
|
1990
|
-
esphome/components/online_image/online_image.h,sha256=
|
1989
|
+
esphome/components/online_image/online_image.cpp,sha256=4gJksrHknRF4ZxKRL8gnBMsh_kKY_YV5177tIrr4hzw,10568
|
1990
|
+
esphome/components/online_image/online_image.h,sha256=40F0zWRI0p6A8pFfQdQ1eD5tnwgCxBDbeNcpCHgeUzk,7177
|
1991
1991
|
esphome/components/online_image/png_image.cpp,sha256=ysXfjX05YPuZaG0wxHg0EiPlj3HlddQqUdDG25W1jpY,2432
|
1992
1992
|
esphome/components/online_image/png_image.h,sha256=oDyTIkyOB2MiKxZ9YmctwN7sbc_E7Qz0PvFxWg9Lip8,783
|
1993
1993
|
esphome/components/opentherm/__init__.py,sha256=-umXAoDxOXrQ_ANQkGeMTB5cWp9V1KwSzdOHcAFXgJc,5497
|
@@ -2402,7 +2402,7 @@ esphome/components/scd30/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
|
|
2402
2402
|
esphome/components/scd30/automation.h,sha256=rfqCTWoIaSyT1U3rvr_AmHMW5KSF8BuncXJJfU5mHwM,537
|
2403
2403
|
esphome/components/scd30/scd30.cpp,sha256=MAz2Wx8GrNe1uiM4dWIQJ1vTlWcvI0bGiuBF1-7C7wk,7889
|
2404
2404
|
esphome/components/scd30/scd30.h,sha256=WykoEiJlxmA9cio2XdI4zGlCpWIlTrn364-RHAdC2kw,1944
|
2405
|
-
esphome/components/scd30/sensor.py,sha256=
|
2405
|
+
esphome/components/scd30/sensor.py,sha256=zdDmunESzDVpK0g37tFxV_6bVTrwaY1EaJk9xA2fGnw,4871
|
2406
2406
|
esphome/components/scd4x/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2407
2407
|
esphome/components/scd4x/automation.h,sha256=bGkGwV0wHimPe_0oug111GAsCJyahpr1LRoW0n1F81E,715
|
2408
2408
|
esphome/components/scd4x/scd4x.cpp,sha256=BsN-KoOPJm2h2UubkUyL0uwBV5RAj8DPkCWEeN5pCsc,11513
|
@@ -3423,7 +3423,7 @@ esphome/dashboard/dns.py,sha256=zJjzjjuJsnHXW59V-H1QqjwwqJFgtJUIsB2QUcALZns,1369
|
|
3423
3423
|
esphome/dashboard/entries.py,sha256=jbmvXQ5-zeUBVrd80tupYmStRsTwGp0hbfG7ZIRQF94,13130
|
3424
3424
|
esphome/dashboard/enum.py,sha256=rlQFVVxyBt5Iw7OL0o9F8D5LGgw23tbvi-KYjzP0QUQ,597
|
3425
3425
|
esphome/dashboard/settings.py,sha256=xoN2eLh-t0hmVYLmZm9beVOqonPNqWkzpRsoPbEomoA,2962
|
3426
|
-
esphome/dashboard/web_server.py,sha256=
|
3426
|
+
esphome/dashboard/web_server.py,sha256=rt5BDvjyJ65VJ-9tZA3V0KoB0RUtSLcrTec7jWncoYw,42236
|
3427
3427
|
esphome/dashboard/status/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3428
3428
|
esphome/dashboard/status/mdns.py,sha256=FuASYxcQ-LQVK5vqX9ZLs9wIXlmXZh4tjXhg-Zmpq14,3741
|
3429
3429
|
esphome/dashboard/status/mqtt.py,sha256=ZRb18LOvl4975Pzc4Fdr5ErML3WKwV8Pv1sD2qdSJ1s,1965
|
@@ -3434,9 +3434,9 @@ esphome/dashboard/util/itertools.py,sha256=8eLrWEWmICLtXNxkKdYPQV0c_N4GEz8m9Npnb
|
|
3434
3434
|
esphome/dashboard/util/password.py,sha256=cQz3b9B-ijTe7zS6BeCW0hc3pWv6JjC78jmnycYYAh8,321
|
3435
3435
|
esphome/dashboard/util/subprocess.py,sha256=T8EW6dbU4LPd2DG1dRrdh8li71tt6J1isn411poMhkk,1022
|
3436
3436
|
esphome/dashboard/util/text.py,sha256=ENDnfN4O0NdA3CKVJjQYabFbwbrsIhVKrAMQe53qYu4,534
|
3437
|
-
esphome-2025.2.
|
3438
|
-
esphome-2025.2.
|
3439
|
-
esphome-2025.2.
|
3440
|
-
esphome-2025.2.
|
3441
|
-
esphome-2025.2.
|
3442
|
-
esphome-2025.2.
|
3437
|
+
esphome-2025.2.0b4.dist-info/LICENSE,sha256=HzEjkBInJe44L4WvAOPfhPJJDNj6YbnqFyvGWRzArGM,36664
|
3438
|
+
esphome-2025.2.0b4.dist-info/METADATA,sha256=pPJiQfBE5OqDQeMKhL8qc4RfVMvFWJWzIJIrU_-KJQg,3683
|
3439
|
+
esphome-2025.2.0b4.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
3440
|
+
esphome-2025.2.0b4.dist-info/entry_points.txt,sha256=mIxVNuWtbYzeEcaWCl-AQ-97aBOWbnYBAK8nbF6P4M0,50
|
3441
|
+
esphome-2025.2.0b4.dist-info/top_level.txt,sha256=0GSXEW3cnITpgG3qnsSMz0qoqJHAFyfw7Y8MVtEf1Yk,8
|
3442
|
+
esphome-2025.2.0b4.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|