esphome 2025.2.0b1__py3-none-any.whl → 2025.2.0b3__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/cse7766/cse7766.cpp +8 -16
- 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/graph/graph.cpp +4 -9
- esphome/components/logger/__init__.py +2 -2
- esphome/components/logger/logger.cpp +0 -3
- esphome/components/modbus_controller/text_sensor/modbus_textsensor.cpp +7 -13
- 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/const.py +1 -1
- esphome/core/__init__.py +1 -1
- esphome/core/config.py +2 -0
- esphome/dashboard/web_server.py +1 -1
- {esphome-2025.2.0b1.dist-info → esphome-2025.2.0b3.dist-info}/METADATA +2 -2
- {esphome-2025.2.0b1.dist-info → esphome-2025.2.0b3.dist-info}/RECORD +22 -22
- {esphome-2025.2.0b1.dist-info → esphome-2025.2.0b3.dist-info}/LICENSE +0 -0
- {esphome-2025.2.0b1.dist-info → esphome-2025.2.0b3.dist-info}/WHEEL +0 -0
- {esphome-2025.2.0b1.dist-info → esphome-2025.2.0b3.dist-info}/entry_points.txt +0 -0
- {esphome-2025.2.0b1.dist-info → esphome-2025.2.0b3.dist-info}/top_level.txt +0 -0
@@ -1,8 +1,5 @@
|
|
1
1
|
#include "cse7766.h"
|
2
2
|
#include "esphome/core/log.h"
|
3
|
-
#include <cinttypes>
|
4
|
-
#include <iomanip>
|
5
|
-
#include <sstream>
|
6
3
|
|
7
4
|
namespace esphome {
|
8
5
|
namespace cse7766 {
|
@@ -72,12 +69,8 @@ bool CSE7766Component::check_byte_() {
|
|
72
69
|
void CSE7766Component::parse_data_() {
|
73
70
|
#if ESPHOME_LOG_LEVEL >= ESPHOME_LOG_LEVEL_VERY_VERBOSE
|
74
71
|
{
|
75
|
-
std::
|
76
|
-
|
77
|
-
for (uint8_t i = 0; i < 23; i++) {
|
78
|
-
ss << ' ' << std::setw(2) << static_cast<unsigned>(this->raw_data_[i]);
|
79
|
-
}
|
80
|
-
ESP_LOGVV(TAG, "%s", ss.str().c_str());
|
72
|
+
std::string s = format_hex_pretty(this->raw_data_, sizeof(this->raw_data_));
|
73
|
+
ESP_LOGVV(TAG, "Raw data: %s", s.c_str());
|
81
74
|
}
|
82
75
|
#endif
|
83
76
|
|
@@ -211,21 +204,20 @@ void CSE7766Component::parse_data_() {
|
|
211
204
|
|
212
205
|
#if ESPHOME_LOG_LEVEL >= ESPHOME_LOG_LEVEL_VERY_VERBOSE
|
213
206
|
{
|
214
|
-
std::
|
215
|
-
ss << "Parsed:";
|
207
|
+
std::string buf = "Parsed:";
|
216
208
|
if (have_voltage) {
|
217
|
-
|
209
|
+
buf += str_sprintf(" V=%fV", voltage);
|
218
210
|
}
|
219
211
|
if (have_current) {
|
220
|
-
|
212
|
+
buf += str_sprintf(" I=%fmA (~%fmA)", current * 1000.0f, calculated_current * 1000.0f);
|
221
213
|
}
|
222
214
|
if (have_power) {
|
223
|
-
|
215
|
+
buf += str_sprintf(" P=%fW", power);
|
224
216
|
}
|
225
217
|
if (energy != 0.0f) {
|
226
|
-
|
218
|
+
buf += str_sprintf(" E=%fkWh (%u)", energy, cf_pulses);
|
227
219
|
}
|
228
|
-
ESP_LOGVV(TAG, "%s",
|
220
|
+
ESP_LOGVV(TAG, "%s", buf.c_str());
|
229
221
|
}
|
230
222
|
#endif
|
231
223
|
}
|
@@ -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
|
|
@@ -4,9 +4,6 @@
|
|
4
4
|
#include "esphome/core/log.h"
|
5
5
|
#include "esphome/core/hal.h"
|
6
6
|
#include <algorithm>
|
7
|
-
#include <sstream>
|
8
|
-
#include <iostream> // std::cout, std::fixed
|
9
|
-
#include <iomanip>
|
10
7
|
namespace esphome {
|
11
8
|
namespace graph {
|
12
9
|
|
@@ -231,9 +228,8 @@ void GraphLegend::init(Graph *g) {
|
|
231
228
|
ESP_LOGI(TAGL, " %s %d %d", txtstr.c_str(), fw, fh);
|
232
229
|
|
233
230
|
if (this->values_ != VALUE_POSITION_TYPE_NONE) {
|
234
|
-
std::
|
235
|
-
|
236
|
-
std::string valstr = ss.str();
|
231
|
+
std::string valstr =
|
232
|
+
value_accuracy_to_string(trace->sensor_->get_state(), trace->sensor_->get_accuracy_decimals());
|
237
233
|
if (this->units_) {
|
238
234
|
valstr += trace->sensor_->get_unit_of_measurement();
|
239
235
|
}
|
@@ -368,9 +364,8 @@ void Graph::draw_legend(display::Display *buff, uint16_t x_offset, uint16_t y_of
|
|
368
364
|
if (legend_->values_ != VALUE_POSITION_TYPE_NONE) {
|
369
365
|
int xv = x + legend_->xv_;
|
370
366
|
int yv = y + legend_->yv_;
|
371
|
-
std::
|
372
|
-
|
373
|
-
std::string valstr = ss.str();
|
367
|
+
std::string valstr =
|
368
|
+
value_accuracy_to_string(trace->sensor_->get_state(), trace->sensor_->get_accuracy_decimals());
|
374
369
|
if (legend_->units_) {
|
375
370
|
valstr += trace->sensor_->get_unit_of_measurement();
|
376
371
|
}
|
@@ -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_;
|
@@ -1,8 +1,6 @@
|
|
1
1
|
|
2
2
|
#include "modbus_textsensor.h"
|
3
3
|
#include "esphome/core/log.h"
|
4
|
-
#include <iomanip>
|
5
|
-
#include <sstream>
|
6
4
|
|
7
5
|
namespace esphome {
|
8
6
|
namespace modbus_controller {
|
@@ -12,20 +10,17 @@ static const char *const TAG = "modbus_controller.text_sensor";
|
|
12
10
|
void ModbusTextSensor::dump_config() { LOG_TEXT_SENSOR("", "Modbus Controller Text Sensor", this); }
|
13
11
|
|
14
12
|
void ModbusTextSensor::parse_and_publish(const std::vector<uint8_t> &data) {
|
15
|
-
std::
|
13
|
+
std::string output_str{};
|
16
14
|
uint8_t items_left = this->response_bytes;
|
17
15
|
uint8_t index = this->offset;
|
18
|
-
char buffer[5];
|
19
16
|
while ((items_left > 0) && index < data.size()) {
|
20
17
|
uint8_t b = data[index];
|
21
18
|
switch (this->encode_) {
|
22
19
|
case RawEncoding::HEXBYTES:
|
23
|
-
|
24
|
-
output << buffer;
|
20
|
+
output_str += str_snprintf("%02x", 2, b);
|
25
21
|
break;
|
26
22
|
case RawEncoding::COMMA:
|
27
|
-
|
28
|
-
output << buffer;
|
23
|
+
output_str += str_sprintf(index != this->offset ? ",%d" : "%d", b);
|
29
24
|
break;
|
30
25
|
case RawEncoding::ANSI:
|
31
26
|
if (b < 0x20)
|
@@ -33,25 +28,24 @@ void ModbusTextSensor::parse_and_publish(const std::vector<uint8_t> &data) {
|
|
33
28
|
// FALLTHROUGH
|
34
29
|
// Anything else no encoding
|
35
30
|
default:
|
36
|
-
|
31
|
+
output_str += (char) b;
|
37
32
|
break;
|
38
33
|
}
|
39
34
|
items_left--;
|
40
35
|
index++;
|
41
36
|
}
|
42
37
|
|
43
|
-
auto result = output.str();
|
44
38
|
// Is there a lambda registered
|
45
39
|
// call it with the pre converted value and the raw data array
|
46
40
|
if (this->transform_func_.has_value()) {
|
47
41
|
// the lambda can parse the response itself
|
48
|
-
auto val = (*this->transform_func_)(this,
|
42
|
+
auto val = (*this->transform_func_)(this, output_str, data);
|
49
43
|
if (val.has_value()) {
|
50
44
|
ESP_LOGV(TAG, "Value overwritten by lambda");
|
51
|
-
|
45
|
+
output_str = val.value();
|
52
46
|
}
|
53
47
|
}
|
54
|
-
this->publish_state(
|
48
|
+
this->publish_state(output_str);
|
55
49
|
}
|
56
50
|
|
57
51
|
} // namespace modbus_controller
|
@@ -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.
|
esphome/const.py
CHANGED
esphome/core/__init__.py
CHANGED
esphome/core/config.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.0b3
|
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.
|
41
|
+
Requires-Dist: zeroconf ==0.144.1
|
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=PRGjerXXxdwRKVgQ7wqByHBvTqctKSQWkEIkEujmXRc,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
|
@@ -559,7 +559,7 @@ esphome/components/cse7761/cse7761.cpp,sha256=tsZJZYSmexAqgpxgRgFPDE9x20TmPIWslW
|
|
559
559
|
esphome/components/cse7761/cse7761.h,sha256=GYUBIQqtqnCre8hcwRhLFH9jlbWVvPcaCvtOOdTZfmc,1805
|
560
560
|
esphome/components/cse7761/sensor.py,sha256=4_1oWJ_Tg0yfgTpWIvYknppGEN9sdo3PfzVEJNAMhGA,2838
|
561
561
|
esphome/components/cse7766/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
562
|
-
esphome/components/cse7766/cse7766.cpp,sha256=
|
562
|
+
esphome/components/cse7766/cse7766.cpp,sha256=cRJmbhQbJOixRQDr09pgs5mYL0SukqkNHjtdw2xoi3A,7640
|
563
563
|
esphome/components/cse7766/cse7766.h,sha256=RE_q5Sa2n8PLkQsO3C9Nt11g6PS_5XBIVD1w3yvzP5o,1743
|
564
564
|
esphome/components/cse7766/sensor.py,sha256=rHZGEUgTD8j6V9u8kTKSfRWQ67HzqIeHa9YaC5j6K70,4082
|
565
565
|
esphome/components/cst226/__init__.py,sha256=Xbt13-GS0lUNexCt3EYip3UvO15P2cdJdepZWoDqBw8,130
|
@@ -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
|
@@ -1011,7 +1011,7 @@ esphome/components/gps/time/__init__.py,sha256=iuZWg8qhi8uMoah4B2z4OyAsXndE9z6oH
|
|
1011
1011
|
esphome/components/gps/time/gps_time.cpp,sha256=XEslYAhMq8ZViWF0QfoO95JiISUj0TLeuRcU4CnJq_8,958
|
1012
1012
|
esphome/components/gps/time/gps_time.h,sha256=LTbCT36s68Sjifw0Qv6yxo5aiv2NK6Zreh1Rmtkxsqk,624
|
1013
1013
|
esphome/components/graph/__init__.py,sha256=cxfJJTEGoaQ_3EAo5_cWUvLWAUjeoNyI4mqoxwkm_cc,7819
|
1014
|
-
esphome/components/graph/graph.cpp,sha256=
|
1014
|
+
esphome/components/graph/graph.cpp,sha256=1pwQFl5M0L4eJJhlL5x1uAsVNBOHnTXvvKd695WHhos,12241
|
1015
1015
|
esphome/components/graph/graph.h,sha256=hEOwQKaakerdidM9Gw6gibKu0zmdZZ1MCa1qXGga6xo,6021
|
1016
1016
|
esphome/components/graphical_display_menu/__init__.py,sha256=YGbv_JsuWmW3HumvMZq0EwJszFmaXGbNYrrl9OPhNEc,3557
|
1017
1017
|
esphome/components/graphical_display_menu/graphical_display_menu.cpp,sha256=_1xbdf6a_krZS-xD8D4kRW32QPz68zWs-MrXLOYYThU,9146
|
@@ -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
|
@@ -1786,7 +1786,7 @@ esphome/components/modbus_controller/switch/__init__.py,sha256=0-EmJSlIhN19Ur3Kf
|
|
1786
1786
|
esphome/components/modbus_controller/switch/modbus_switch.cpp,sha256=Ywebesg2KPfprVx3xhJUCq27nYUnbusds5n0Z8uigK0,4257
|
1787
1787
|
esphome/components/modbus_controller/switch/modbus_switch.h,sha256=uZsGSRtxKnAWqUZ8k_qITEkDnK_BNjaYB_CV7TmhqVQ,2042
|
1788
1788
|
esphome/components/modbus_controller/text_sensor/__init__.py,sha256=9STUDiChfJ9LPrcQaHDGN3qtD1S9R9CvyKa_VM2kkyo,2451
|
1789
|
-
esphome/components/modbus_controller/text_sensor/modbus_textsensor.cpp,sha256=
|
1789
|
+
esphome/components/modbus_controller/text_sensor/modbus_textsensor.cpp,sha256=AcFEMUSArTKtXE4ITDaEyRzDlEKnAz4RH_LU36vDUtk,1495
|
1790
1790
|
esphome/components/modbus_controller/text_sensor/modbus_textsensor.h,sha256=dbvPjN9sfXOPllbLbyyrHLhqyp_9aiJBVg4kki8Zst8,1508
|
1791
1791
|
esphome/components/monochromatic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
1792
1792
|
esphome/components/monochromatic/light.py,sha256=THKgebL_J4kCyt42O5y0kBbMZP1f885MO7fEbycvxnA,761
|
@@ -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
|
@@ -3376,7 +3376,7 @@ esphome/components/zyaura/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
|
|
3376
3376
|
esphome/components/zyaura/sensor.py,sha256=_h1Idxd8vvYR3le4a92yh8dlbl4NOtzxss-HuAUTcdI,2476
|
3377
3377
|
esphome/components/zyaura/zyaura.cpp,sha256=F7WM8XAZ5MYuCD3eERm2_IA-O7sP1i-A-yF5TV4PqX8,3679
|
3378
3378
|
esphome/components/zyaura/zyaura.h,sha256=yWrcYj_CnLDyopkuIVySJy5dB-R5X9zwm5fWjBDTSts,2384
|
3379
|
-
esphome/core/__init__.py,sha256=
|
3379
|
+
esphome/core/__init__.py,sha256=L4pbrSzT5rq3ba3Xm1N5xiRx4m5a4pKN5wBwvUwWZLU,26760
|
3380
3380
|
esphome/core/application.cpp,sha256=DOhq0rTYu_dNcUCavHYVYASQZ5QzVOXMWVTaO7YTdnM,4680
|
3381
3381
|
esphome/core/application.h,sha256=jepd6I9BBa48ByAXoLnUE7ddtlHiUS5uuKaMaJOD0x0,17721
|
3382
3382
|
esphome/core/automation.h,sha256=UQQD9De3eiaopvzYQG89SxkBfnL5QaiR6bvkk2RxV8k,7332
|
@@ -3387,7 +3387,7 @@ esphome/core/component.cpp,sha256=36VvNdGwaqJZFPmGP3pQydSo4XIhjYwhsBcq3N2Jorg,93
|
|
3387
3387
|
esphome/core/component.h,sha256=U4m8_g9gSBBIjRNw4k36entP2JcA6F3SsWbwty_hKdo,11744
|
3388
3388
|
esphome/core/component_iterator.cpp,sha256=TUu2K34ATYa1Qyf2s-sZJBksAiFIGj3egzbDKPuFtTQ,11117
|
3389
3389
|
esphome/core/component_iterator.h,sha256=cjacKgRrlxl-VwPOysfBJZNK0NMzcc-w9xXn82m5dYc,3599
|
3390
|
-
esphome/core/config.py,sha256=
|
3390
|
+
esphome/core/config.py,sha256=mwc-PFAE0wNKxgYZzt-2B08M4JQZ5KBYRtfuRCHvlPM,13673
|
3391
3391
|
esphome/core/controller.cpp,sha256=feO4yH0GETNCqi9MTZEtsOaoo-CPV2rM9S7UfQXY6Ew,4553
|
3392
3392
|
esphome/core/controller.h,sha256=PXCcMqYpq0xjFCdlOKv6WuYlcETnB4sq3UQWdOTt9PU,3720
|
3393
3393
|
esphome/core/datatypes.h,sha256=wN8xro8vqXT13w9KvVOXeQfBwlI_WQZ6uFaIGyub67E,2114
|
@@ -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.0b3.dist-info/LICENSE,sha256=HzEjkBInJe44L4WvAOPfhPJJDNj6YbnqFyvGWRzArGM,36664
|
3438
|
+
esphome-2025.2.0b3.dist-info/METADATA,sha256=GTvd5dxiyRfgUb-le69sv8KvfbzAq6jT81X8vwpTDhw,3683
|
3439
|
+
esphome-2025.2.0b3.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
3440
|
+
esphome-2025.2.0b3.dist-info/entry_points.txt,sha256=mIxVNuWtbYzeEcaWCl-AQ-97aBOWbnYBAK8nbF6P4M0,50
|
3441
|
+
esphome-2025.2.0b3.dist-info/top_level.txt,sha256=0GSXEW3cnITpgG3qnsSMz0qoqJHAFyfw7Y8MVtEf1Yk,8
|
3442
|
+
esphome-2025.2.0b3.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|