esphome 2024.10.1__py3-none-any.whl → 2024.10.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/lvgl/lv_validation.py +4 -0
- esphome/components/lvgl/schemas.py +7 -7
- esphome/components/lvgl/widgets/animimg.py +4 -3
- esphome/components/lvgl/widgets/img.py +2 -0
- esphome/components/modbus/modbus.cpp +24 -12
- esphome/components/rpi_dpi_rgb/rpi_dpi_rgb.cpp +20 -0
- esphome/components/rpi_dpi_rgb/rpi_dpi_rgb.h +3 -2
- esphome/components/voice_assistant/voice_assistant.cpp +31 -23
- esphome/components/voice_assistant/voice_assistant.h +3 -3
- esphome/const.py +1 -1
- esphome/mqtt.py +6 -0
- {esphome-2024.10.1.dist-info → esphome-2024.10.3.dist-info}/METADATA +1 -1
- {esphome-2024.10.1.dist-info → esphome-2024.10.3.dist-info}/RECORD +17 -17
- {esphome-2024.10.1.dist-info → esphome-2024.10.3.dist-info}/LICENSE +0 -0
- {esphome-2024.10.1.dist-info → esphome-2024.10.3.dist-info}/WHEEL +0 -0
- {esphome-2024.10.1.dist-info → esphome-2024.10.3.dist-info}/entry_points.txt +0 -0
- {esphome-2024.10.1.dist-info → esphome-2024.10.3.dist-info}/top_level.txt +0 -0
@@ -267,6 +267,9 @@ def angle(value):
|
|
267
267
|
return int(cv.float_range(0.0, 360.0)(cv.angle(value)) * 10)
|
268
268
|
|
269
269
|
|
270
|
+
lv_angle = LValidator(angle, uint32)
|
271
|
+
|
272
|
+
|
270
273
|
@schema_extractor("one_of")
|
271
274
|
def size_validator(value):
|
272
275
|
"""A size in one axis - one of "size_content", a number (pixels) or a percentage"""
|
@@ -403,6 +406,7 @@ class TextValidator(LValidator):
|
|
403
406
|
lv_text = TextValidator()
|
404
407
|
lv_float = LValidator(cv.float_, cg.float_)
|
405
408
|
lv_int = LValidator(cv.int_, cg.int_)
|
409
|
+
lv_positive_int = LValidator(cv.positive_int, cg.int_)
|
406
410
|
lv_brightness = LValidator(cv.percentage, cg.float_, retmapper=lambda x: int(x * 255))
|
407
411
|
|
408
412
|
|
@@ -91,7 +91,7 @@ STYLE_PROPS = {
|
|
91
91
|
"arc_opa": lvalid.opacity,
|
92
92
|
"arc_color": lvalid.lv_color,
|
93
93
|
"arc_rounded": lvalid.lv_bool,
|
94
|
-
"arc_width":
|
94
|
+
"arc_width": lvalid.lv_positive_int,
|
95
95
|
"anim_time": lvalid.lv_milliseconds,
|
96
96
|
"bg_color": lvalid.lv_color,
|
97
97
|
"bg_grad": lv_gradient,
|
@@ -111,7 +111,7 @@ STYLE_PROPS = {
|
|
111
111
|
"border_side": df.LvConstant(
|
112
112
|
"LV_BORDER_SIDE_", "NONE", "TOP", "BOTTOM", "LEFT", "RIGHT", "INTERNAL"
|
113
113
|
).several_of,
|
114
|
-
"border_width":
|
114
|
+
"border_width": lvalid.lv_positive_int,
|
115
115
|
"clip_corner": lvalid.lv_bool,
|
116
116
|
"color_filter_opa": lvalid.opacity,
|
117
117
|
"height": lvalid.size,
|
@@ -134,11 +134,11 @@ STYLE_PROPS = {
|
|
134
134
|
"pad_right": lvalid.pixels,
|
135
135
|
"pad_top": lvalid.pixels,
|
136
136
|
"shadow_color": lvalid.lv_color,
|
137
|
-
"shadow_ofs_x":
|
138
|
-
"shadow_ofs_y":
|
137
|
+
"shadow_ofs_x": lvalid.lv_int,
|
138
|
+
"shadow_ofs_y": lvalid.lv_int,
|
139
139
|
"shadow_opa": lvalid.opacity,
|
140
|
-
"shadow_spread":
|
141
|
-
"shadow_width":
|
140
|
+
"shadow_spread": lvalid.lv_int,
|
141
|
+
"shadow_width": lvalid.lv_positive_int,
|
142
142
|
"text_align": df.LvConstant(
|
143
143
|
"LV_TEXT_ALIGN_", "LEFT", "CENTER", "RIGHT", "AUTO"
|
144
144
|
).one_of,
|
@@ -150,7 +150,7 @@ STYLE_PROPS = {
|
|
150
150
|
"text_letter_space": cv.positive_int,
|
151
151
|
"text_line_space": cv.positive_int,
|
152
152
|
"text_opa": lvalid.opacity,
|
153
|
-
"transform_angle": lvalid.
|
153
|
+
"transform_angle": lvalid.lv_angle,
|
154
154
|
"transform_height": lvalid.pixels_or_percent,
|
155
155
|
"transform_pivot_x": lvalid.pixels_or_percent,
|
156
156
|
"transform_pivot_y": lvalid.pixels_or_percent,
|
@@ -60,9 +60,10 @@ class AnimimgType(WidgetType):
|
|
60
60
|
lvgl_components_required.add(CONF_IMAGE)
|
61
61
|
lvgl_components_required.add(CONF_ANIMIMG)
|
62
62
|
if CONF_SRC in config:
|
63
|
-
|
64
|
-
await cg.get_variable(x)
|
65
|
-
|
63
|
+
srcs = [
|
64
|
+
await lv_image.process(await cg.get_variable(x))
|
65
|
+
for x in config[CONF_SRC]
|
66
|
+
]
|
66
67
|
src_id = cg.static_const_array(config[CONF_SRC_LIST_ID], srcs)
|
67
68
|
count = len(config[CONF_SRC])
|
68
69
|
lv.animimg_set_src(w.obj, src_id, count)
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import esphome.codegen as cg
|
1
2
|
import esphome.config_validation as cv
|
2
3
|
from esphome.const import CONF_ANGLE, CONF_MODE
|
3
4
|
|
@@ -64,6 +65,7 @@ class ImgType(WidgetType):
|
|
64
65
|
|
65
66
|
async def to_code(self, w: Widget, config):
|
66
67
|
if src := config.get(CONF_SRC):
|
68
|
+
src = await cg.get_variable(src)
|
67
69
|
lv.img_set_src(w.obj, await lv_image.process(src))
|
68
70
|
if (cf_angle := config.get(CONF_ANGLE)) is not None:
|
69
71
|
pivot_x = config[CONF_PIVOT_X]
|
@@ -15,23 +15,33 @@ void Modbus::setup() {
|
|
15
15
|
void Modbus::loop() {
|
16
16
|
const uint32_t now = millis();
|
17
17
|
|
18
|
-
if (now - this->last_modbus_byte_ > 50) {
|
19
|
-
this->rx_buffer_.clear();
|
20
|
-
this->last_modbus_byte_ = now;
|
21
|
-
}
|
22
|
-
// stop blocking new send commands after send_wait_time_ ms regardless if a response has been received since then
|
23
|
-
if (now - this->last_send_ > send_wait_time_) {
|
24
|
-
waiting_for_response = 0;
|
25
|
-
}
|
26
|
-
|
27
18
|
while (this->available()) {
|
28
19
|
uint8_t byte;
|
29
20
|
this->read_byte(&byte);
|
30
21
|
if (this->parse_modbus_byte_(byte)) {
|
31
22
|
this->last_modbus_byte_ = now;
|
32
23
|
} else {
|
24
|
+
size_t at = this->rx_buffer_.size();
|
25
|
+
if (at > 0) {
|
26
|
+
ESP_LOGV(TAG, "Clearing buffer of %d bytes - parse failed", at);
|
27
|
+
this->rx_buffer_.clear();
|
28
|
+
}
|
29
|
+
}
|
30
|
+
}
|
31
|
+
|
32
|
+
if (now - this->last_modbus_byte_ > 50) {
|
33
|
+
size_t at = this->rx_buffer_.size();
|
34
|
+
if (at > 0) {
|
35
|
+
ESP_LOGV(TAG, "Clearing buffer of %d bytes - timeout", at);
|
33
36
|
this->rx_buffer_.clear();
|
34
37
|
}
|
38
|
+
|
39
|
+
// stop blocking new send commands after sent_wait_time_ ms after response received
|
40
|
+
if (now - this->last_send_ > send_wait_time_) {
|
41
|
+
if (waiting_for_response > 0)
|
42
|
+
ESP_LOGV(TAG, "Stop waiting for response from %d", waiting_for_response);
|
43
|
+
waiting_for_response = 0;
|
44
|
+
}
|
35
45
|
}
|
36
46
|
}
|
37
47
|
|
@@ -39,7 +49,7 @@ bool Modbus::parse_modbus_byte_(uint8_t byte) {
|
|
39
49
|
size_t at = this->rx_buffer_.size();
|
40
50
|
this->rx_buffer_.push_back(byte);
|
41
51
|
const uint8_t *raw = &this->rx_buffer_[0];
|
42
|
-
|
52
|
+
ESP_LOGVV(TAG, "Modbus received Byte %d (0X%x)", byte, byte);
|
43
53
|
// Byte 0: modbus address (match all)
|
44
54
|
if (at == 0)
|
45
55
|
return true;
|
@@ -144,8 +154,10 @@ bool Modbus::parse_modbus_byte_(uint8_t byte) {
|
|
144
154
|
ESP_LOGW(TAG, "Got Modbus frame from unknown address 0x%02X! ", address);
|
145
155
|
}
|
146
156
|
|
147
|
-
//
|
148
|
-
|
157
|
+
// reset buffer
|
158
|
+
ESP_LOGV(TAG, "Clearing buffer of %d bytes - parse succeeded", at);
|
159
|
+
this->rx_buffer_.clear();
|
160
|
+
return true;
|
149
161
|
}
|
150
162
|
|
151
163
|
void Modbus::dump_config() {
|
@@ -84,6 +84,26 @@ void RpiDpiRgb::draw_pixels_at(int x_start, int y_start, int w, int h, const uin
|
|
84
84
|
ESP_LOGE(TAG, "lcd_lcd_panel_draw_bitmap failed: %s", esp_err_to_name(err));
|
85
85
|
}
|
86
86
|
|
87
|
+
int RpiDpiRgb::get_width() {
|
88
|
+
switch (this->rotation_) {
|
89
|
+
case display::DISPLAY_ROTATION_90_DEGREES:
|
90
|
+
case display::DISPLAY_ROTATION_270_DEGREES:
|
91
|
+
return this->get_height_internal();
|
92
|
+
default:
|
93
|
+
return this->get_width_internal();
|
94
|
+
}
|
95
|
+
}
|
96
|
+
|
97
|
+
int RpiDpiRgb::get_height() {
|
98
|
+
switch (this->rotation_) {
|
99
|
+
case display::DISPLAY_ROTATION_90_DEGREES:
|
100
|
+
case display::DISPLAY_ROTATION_270_DEGREES:
|
101
|
+
return this->get_width_internal();
|
102
|
+
default:
|
103
|
+
return this->get_height_internal();
|
104
|
+
}
|
105
|
+
}
|
106
|
+
|
87
107
|
void RpiDpiRgb::draw_pixel_at(int x, int y, Color color) {
|
88
108
|
if (!this->get_clipping().inside(x, y))
|
89
109
|
return; // NOLINT
|
@@ -24,6 +24,7 @@ class RpiDpiRgb : public display::Display {
|
|
24
24
|
void update() override { this->do_update_(); }
|
25
25
|
void setup() override;
|
26
26
|
void loop() override;
|
27
|
+
float get_setup_priority() const override { return setup_priority::HARDWARE; }
|
27
28
|
void draw_pixels_at(int x_start, int y_start, int w, int h, const uint8_t *ptr, display::ColorOrder order,
|
28
29
|
display::ColorBitness bitness, bool big_endian, int x_offset, int y_offset, int x_pad) override;
|
29
30
|
void draw_pixel_at(int x, int y, Color color) override;
|
@@ -44,8 +45,8 @@ class RpiDpiRgb : public display::Display {
|
|
44
45
|
this->width_ = width;
|
45
46
|
this->height_ = height;
|
46
47
|
}
|
47
|
-
int get_width() override
|
48
|
-
int get_height() override
|
48
|
+
int get_width() override;
|
49
|
+
int get_height() override;
|
49
50
|
void set_hsync_back_porch(uint16_t hsync_back_porch) { this->hsync_back_porch_ = hsync_back_porch; }
|
50
51
|
void set_hsync_front_porch(uint16_t hsync_front_porch) { this->hsync_front_porch_ = hsync_front_porch; }
|
51
52
|
void set_hsync_pulse_width(uint16_t hsync_pulse_width) { this->hsync_pulse_width_ = hsync_pulse_width; }
|
@@ -433,16 +433,18 @@ void VoiceAssistant::loop() {
|
|
433
433
|
|
434
434
|
#ifdef USE_SPEAKER
|
435
435
|
void VoiceAssistant::write_speaker_() {
|
436
|
-
if (this->
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
436
|
+
if ((this->speaker_ != nullptr) && (this->speaker_buffer_ != nullptr)) {
|
437
|
+
if (this->speaker_buffer_size_ > 0) {
|
438
|
+
size_t write_chunk = std::min<size_t>(this->speaker_buffer_size_, 4 * 1024);
|
439
|
+
size_t written = this->speaker_->play(this->speaker_buffer_, write_chunk);
|
440
|
+
if (written > 0) {
|
441
|
+
memmove(this->speaker_buffer_, this->speaker_buffer_ + written, this->speaker_buffer_size_ - written);
|
442
|
+
this->speaker_buffer_size_ -= written;
|
443
|
+
this->speaker_buffer_index_ -= written;
|
444
|
+
this->set_timeout("speaker-timeout", 5000, [this]() { this->speaker_->stop(); });
|
445
|
+
} else {
|
446
|
+
ESP_LOGV(TAG, "Speaker buffer full, trying again next loop");
|
447
|
+
}
|
446
448
|
}
|
447
449
|
}
|
448
450
|
}
|
@@ -772,16 +774,20 @@ void VoiceAssistant::on_event(const api::VoiceAssistantEventResponse &msg) {
|
|
772
774
|
}
|
773
775
|
case api::enums::VOICE_ASSISTANT_TTS_STREAM_START: {
|
774
776
|
#ifdef USE_SPEAKER
|
775
|
-
this->
|
776
|
-
|
777
|
-
|
777
|
+
if (this->speaker_ != nullptr) {
|
778
|
+
this->wait_for_stream_end_ = true;
|
779
|
+
ESP_LOGD(TAG, "TTS stream start");
|
780
|
+
this->defer([this] { this->tts_stream_start_trigger_->trigger(); });
|
781
|
+
}
|
778
782
|
#endif
|
779
783
|
break;
|
780
784
|
}
|
781
785
|
case api::enums::VOICE_ASSISTANT_TTS_STREAM_END: {
|
782
786
|
#ifdef USE_SPEAKER
|
783
|
-
this->
|
784
|
-
|
787
|
+
if (this->speaker_ != nullptr) {
|
788
|
+
this->stream_ended_ = true;
|
789
|
+
ESP_LOGD(TAG, "TTS stream end");
|
790
|
+
}
|
785
791
|
#endif
|
786
792
|
break;
|
787
793
|
}
|
@@ -802,14 +808,16 @@ void VoiceAssistant::on_event(const api::VoiceAssistantEventResponse &msg) {
|
|
802
808
|
|
803
809
|
void VoiceAssistant::on_audio(const api::VoiceAssistantAudio &msg) {
|
804
810
|
#ifdef USE_SPEAKER // We should never get to this function if there is no speaker anyway
|
805
|
-
if (this->
|
806
|
-
|
807
|
-
|
808
|
-
|
809
|
-
|
810
|
-
|
811
|
-
|
812
|
-
|
811
|
+
if ((this->speaker_ != nullptr) && (this->speaker_buffer_ != nullptr)) {
|
812
|
+
if (this->speaker_buffer_index_ + msg.data.length() < SPEAKER_BUFFER_SIZE) {
|
813
|
+
memcpy(this->speaker_buffer_ + this->speaker_buffer_index_, msg.data.data(), msg.data.length());
|
814
|
+
this->speaker_buffer_index_ += msg.data.length();
|
815
|
+
this->speaker_buffer_size_ += msg.data.length();
|
816
|
+
this->speaker_bytes_received_ += msg.data.length();
|
817
|
+
ESP_LOGV(TAG, "Received audio: %u bytes from API", msg.data.length());
|
818
|
+
} else {
|
819
|
+
ESP_LOGE(TAG, "Cannot receive audio, buffer is full");
|
820
|
+
}
|
813
821
|
}
|
814
822
|
#endif
|
815
823
|
}
|
@@ -250,7 +250,7 @@ class VoiceAssistant : public Component {
|
|
250
250
|
#ifdef USE_SPEAKER
|
251
251
|
void write_speaker_();
|
252
252
|
speaker::Speaker *speaker_{nullptr};
|
253
|
-
uint8_t *speaker_buffer_;
|
253
|
+
uint8_t *speaker_buffer_{nullptr};
|
254
254
|
size_t speaker_buffer_index_{0};
|
255
255
|
size_t speaker_buffer_size_{0};
|
256
256
|
size_t speaker_bytes_received_{0};
|
@@ -282,8 +282,8 @@ class VoiceAssistant : public Component {
|
|
282
282
|
float volume_multiplier_;
|
283
283
|
uint32_t conversation_timeout_;
|
284
284
|
|
285
|
-
uint8_t *send_buffer_;
|
286
|
-
int16_t *input_buffer_;
|
285
|
+
uint8_t *send_buffer_{nullptr};
|
286
|
+
int16_t *input_buffer_{nullptr};
|
287
287
|
|
288
288
|
bool continuous_{false};
|
289
289
|
bool silence_detection_;
|
esphome/const.py
CHANGED
esphome/mqtt.py
CHANGED
@@ -209,6 +209,12 @@ def show_logs(config, topic=None, username=None, password=None, client_id=None):
|
|
209
209
|
elif CONF_MQTT in config:
|
210
210
|
conf = config[CONF_MQTT]
|
211
211
|
if CONF_LOG_TOPIC in conf:
|
212
|
+
if config[CONF_MQTT][CONF_LOG_TOPIC] is None:
|
213
|
+
_LOGGER.error("MQTT log topic set to null, can't start MQTT logs")
|
214
|
+
return 1
|
215
|
+
if CONF_TOPIC not in config[CONF_MQTT][CONF_LOG_TOPIC]:
|
216
|
+
_LOGGER.error("MQTT log topic not available, can't start MQTT logs")
|
217
|
+
return 1
|
212
218
|
topic = config[CONF_MQTT][CONF_LOG_TOPIC][CONF_TOPIC]
|
213
219
|
elif CONF_TOPIC_PREFIX in config[CONF_MQTT]:
|
214
220
|
topic = f"{config[CONF_MQTT][CONF_TOPIC_PREFIX]}/debug"
|
@@ -5,7 +5,7 @@ esphome/codegen.py,sha256=GePHUM7xdXb_Pil59SHVsXg2F4VBPgkH-Fz2PDX8Z54,1873
|
|
5
5
|
esphome/config.py,sha256=nOiXPZv8wHtmytkNlGcewp0uuJd9G5rRjkqevYXtjzo,39618
|
6
6
|
esphome/config_helpers.py,sha256=MKf_wzO35nn41FvigXE0iYKDslPgL2ruf8R-EPtTT2I,3256
|
7
7
|
esphome/config_validation.py,sha256=MeZcJrTRpe91KV5r18i6U-PeZ_Oaql81m12KW_gzCXU,66221
|
8
|
-
esphome/const.py,sha256=
|
8
|
+
esphome/const.py,sha256=_oKZGnp61QXFlhXBVqpQVKGcTMdQ_ZbIx_5O_NssmKI,40030
|
9
9
|
esphome/coroutine.py,sha256=j_14z8dIIzIBeuNO30D4c1RJvMMt1xZFZ58Evd-EvJA,9344
|
10
10
|
esphome/cpp_generator.py,sha256=lXPXHYUsFIvBSAoZ93mXYlGcXYg5L18nTtYGHE4_rr8,31203
|
11
11
|
esphome/cpp_helpers.py,sha256=6C2vNbOIhZKi43xRVlk5hp9GfshfBn-rc5D_ZFUEYaE,4801
|
@@ -17,7 +17,7 @@ esphome/git.py,sha256=rKb5JUc05nbRlvR4tRWGL851ANZUYuS7YZp5Tm5wHjE,6296
|
|
17
17
|
esphome/helpers.py,sha256=o0fhHNo-acxPLenSy_e5qR6f5rhOkDWVHaX9eheqdcI,10454
|
18
18
|
esphome/loader.py,sha256=jDxlzaWlO_o3sC_3vviFcwTjuKi37JpBu4WqG8Bkbdc,6573
|
19
19
|
esphome/log.py,sha256=9aoxHebCu4DnowC8n1kgDJqYBqZqf5ZNSSFqFg_x8-I,2179
|
20
|
-
esphome/mqtt.py,sha256=
|
20
|
+
esphome/mqtt.py,sha256=3B3_ILAvynsVFiKav7w_nrD0pAXh9eaRXJj6jtdb0ps,9065
|
21
21
|
esphome/pins.py,sha256=wO0d-2qn0fhT6WEN0H0AmYRSH90jW154hZT7RewMGYI,10713
|
22
22
|
esphome/platformio_api.py,sha256=OEWhPZ2NQnTrZ3Vtm0IqW0E-xE7EyVhs5w3OtT2xfDY,11905
|
23
23
|
esphome/schema_extractors.py,sha256=wQMtWFp2q4ZZ97Xv3xVhFUU6Ol3qjcyDtjowG4Shllo,2108
|
@@ -1449,12 +1449,12 @@ esphome/components/lvgl/font.cpp,sha256=l9dPIw7LdOdtg_3QZErTLLevMc6A66Wfm-1s-6qc
|
|
1449
1449
|
esphome/components/lvgl/gradient.py,sha256=K60e7b52N8i7aQjkLIsij7OOXmVhBnJnxj4J3zPme4w,1989
|
1450
1450
|
esphome/components/lvgl/hello_world.py,sha256=iwfSWO0TT0CEGN5M_QBY_oKqmYshT69jOBDFTTUyBII,1417
|
1451
1451
|
esphome/components/lvgl/helpers.py,sha256=XI3C5IHwoSVlgR32kMxeXTZWK6iW112nmWv5wByrKLY,1253
|
1452
|
-
esphome/components/lvgl/lv_validation.py,sha256=
|
1452
|
+
esphome/components/lvgl/lv_validation.py,sha256=J6iP8bzlNd0_DDHWxmZOJyMfXbVxID-AXJfCjHPkMKw,13666
|
1453
1453
|
esphome/components/lvgl/lvcode.py,sha256=cpBpc7ZftH6VVZWsRCdEZOO7-yHLD5JhVPMKFRBZOs8,10295
|
1454
1454
|
esphome/components/lvgl/lvgl_esphome.cpp,sha256=JBnbvisKonhExjtp2WFlZYOWgSX_0wiM8bAZn6YxqCw,14157
|
1455
1455
|
esphome/components/lvgl/lvgl_esphome.h,sha256=3RpW5BoNQt8MpWexZqb2L_CJ7cgGJWYrwRXp5LK6S0k,9265
|
1456
1456
|
esphome/components/lvgl/lvgl_hal.h,sha256=aZqWpSmKKAB-ZfNxxgxjgASTtLpAZjXJKuoTiPB0qqU,431
|
1457
|
-
esphome/components/lvgl/schemas.py,sha256=
|
1457
|
+
esphome/components/lvgl/schemas.py,sha256=NYBfD6qfy_P1ST6f-7MhxPhDmPHkTJ2rk14u1Mq3aO8,14216
|
1458
1458
|
esphome/components/lvgl/styles.py,sha256=a98M5BPsPZUJplY5N73pqhLb2b4p_l_V6vQ8DDKH0Pc,2249
|
1459
1459
|
esphome/components/lvgl/touchscreens.py,sha256=R2tkfse86qzWDU6Ot_tARApWfn1jeFaJObDUX5gITL8,1634
|
1460
1460
|
esphome/components/lvgl/trigger.py,sha256=iR2jixpj5FnLYSAuy6q8GC1njRkTCPhxZEJILUeyPZ4,2337
|
@@ -1473,13 +1473,13 @@ esphome/components/lvgl/text/__init__.py,sha256=Lqa3m00EJvynqSb_RDNZ0zNEHKBhq76r
|
|
1473
1473
|
esphome/components/lvgl/text/lvgl_text.h,sha256=H0tLRmOMCKTelGj-kLF0J6CGoOPQo142cP-CTOk4Rog,914
|
1474
1474
|
esphome/components/lvgl/text_sensor/__init__.py,sha256=NXdR4qq4T9i293n-yDb5uZlzSNI2nOWsJ3DlKtMjqrA,1247
|
1475
1475
|
esphome/components/lvgl/widgets/__init__.py,sha256=LOSSkuFM4mnA2V7ROgaejEGxZp8Jb6vk__m8N87X48U,13945
|
1476
|
-
esphome/components/lvgl/widgets/animimg.py,sha256=
|
1476
|
+
esphome/components/lvgl/widgets/animimg.py,sha256=G6ADCdDomzAD95VQ6hARC7ZgOsjc6L1H3rT0PaJWkPs,3337
|
1477
1477
|
esphome/components/lvgl/widgets/arc.py,sha256=Gmqxe2AyROyU-7C9XKfzBY3g5CowV0ZJVsDzJAfUvCY,2522
|
1478
1478
|
esphome/components/lvgl/widgets/button.py,sha256=lR_8dHZK3P9AY6WbjfL3Sj9oyTOf-i9qbvkGzcPpzgk,423
|
1479
1479
|
esphome/components/lvgl/widgets/buttonmatrix.py,sha256=okYCiIlGkIl3kHlhwXMgQKEMmM__PXLvo3RnZM_739Q,8648
|
1480
1480
|
esphome/components/lvgl/widgets/checkbox.py,sha256=5MiANLeX3o1uDAlCorw1aOfAkNx1SMnGm6rcXsSgq_c,891
|
1481
1481
|
esphome/components/lvgl/widgets/dropdown.py,sha256=kxXilnJdPmd2H6Y3hcW7e_S6wZDyZRzl_TJ2-UIH7u8,2505
|
1482
|
-
esphome/components/lvgl/widgets/img.py,sha256=
|
1482
|
+
esphome/components/lvgl/widgets/img.py,sha256=UE8X_RQhirIgJploL1VNHNuzdhlnhpZz413D7GeIs_A,2445
|
1483
1483
|
esphome/components/lvgl/widgets/keyboard.py,sha256=1WBm_nfeFpWvzYts68FN_arqovOwMFs47TQAPCKour8,1543
|
1484
1484
|
esphome/components/lvgl/widgets/label.py,sha256=5xl1a6apdJgGKmkpL8m7RDASjaeKzjKTllhY26Gbfag,1139
|
1485
1485
|
esphome/components/lvgl/widgets/led.py,sha256=qoe_kvZpoRkwbxz25Z66KQ__KLC2tfhAukChp1jdlDc,888
|
@@ -1704,7 +1704,7 @@ esphome/components/mmc5983/mmc5983.cpp,sha256=6tH7TsB2jSTYDR3-SQ90JgKNMQtFvG1OJH
|
|
1704
1704
|
esphome/components/mmc5983/mmc5983.h,sha256=djHDHSC4UAimrWpqnKB-g1wycM5ym7vOLHU7BDRfwA8,784
|
1705
1705
|
esphome/components/mmc5983/sensor.py,sha256=_eAPEfWzxYWsp5kPji_Rb99X6j9RxlReC4boxYWUtWY,1670
|
1706
1706
|
esphome/components/modbus/__init__.py,sha256=pe9aU_PBNR9h9TqqezEE8zyvp7PLOtsa01Zaf08DMfk,3111
|
1707
|
-
esphome/components/modbus/modbus.cpp,sha256=
|
1707
|
+
esphome/components/modbus/modbus.cpp,sha256=c0Q4E44zXtPQq3eMlqyNUlXnHcCW8rwdCIv3-_i5eLo,8516
|
1708
1708
|
esphome/components/modbus/modbus.h,sha256=lDXklIqGZsyXnvf4oFslaGtD7yd9YwRkUYSpYsQRcAg,2477
|
1709
1709
|
esphome/components/modbus_controller/__init__.py,sha256=_iP6TbkCcakmKeNsfXfL4pThvpZKuKtURpU5_jUiTW8,10771
|
1710
1710
|
esphome/components/modbus_controller/automation.h,sha256=QyT_EHHjAzhXdM7edxoV3M_-ks-DwzhGiMdrN4QXP-M,555
|
@@ -2289,8 +2289,8 @@ esphome/components/rp2040_pwm/rp2040_pwm.cpp,sha256=3geqplH_DrTcvIM3OCvCBfWe2ezz
|
|
2289
2289
|
esphome/components/rp2040_pwm/rp2040_pwm.h,sha256=z6LGWv3Afgn_7UOiYUySkDezGFYBSu7Djdz-Um13xxM,1513
|
2290
2290
|
esphome/components/rpi_dpi_rgb/__init__.py,sha256=4Nn7UhpMJ9oSbuLdyVEW7G9PlIey2v33SWRNVizt9Oc,30
|
2291
2291
|
esphome/components/rpi_dpi_rgb/display.py,sha256=o_OKr4vaCgm9d9fO-CVkE1VC4qwyauox-AKq--P3nZY,7468
|
2292
|
-
esphome/components/rpi_dpi_rgb/rpi_dpi_rgb.cpp,sha256=
|
2293
|
-
esphome/components/rpi_dpi_rgb/rpi_dpi_rgb.h,sha256=
|
2292
|
+
esphome/components/rpi_dpi_rgb/rpi_dpi_rgb.cpp,sha256=U13Im3DsT37SGrbKS8EBHr2f8Qvvg_0Kg307yRnDMkk,6060
|
2293
|
+
esphome/components/rpi_dpi_rgb/rpi_dpi_rgb.h,sha256=OnPzce1bM1ftJQsgx-oP7BaD82Z227KFvMW6ESuYgLk,4127
|
2294
2294
|
esphome/components/rtl87xx/__init__.py,sha256=HIcczzFYGdNtOj635-gH0VVmBOZjmvcS4mxFWdlPtBo,1362
|
2295
2295
|
esphome/components/rtl87xx/boards.py,sha256=JItSPj4n2UAvUXISoL2PTyTAqIi2Wp3sjGjs1fgS-3M,29269
|
2296
2296
|
esphome/components/rtttl/__init__.py,sha256=m8vjSNfwcgbJm6NhDe_ErddMMwUpe2StubWcMY8sd28,4383
|
@@ -3040,8 +3040,8 @@ esphome/components/vl53l0x/sensor.py,sha256=P8rWgRSOAQO-kAn35UC2I2_UwmYKUWS3DvYD
|
|
3040
3040
|
esphome/components/vl53l0x/vl53l0x_sensor.cpp,sha256=JqSIf9jjNhin561LU-QzAmRKEK0PqQ8CuLO2mn380og,15017
|
3041
3041
|
esphome/components/vl53l0x/vl53l0x_sensor.h,sha256=iTtScB2O7DVFh0eR9AVht2l3AdSAPJOVMtflTv2ZX7c,2561
|
3042
3042
|
esphome/components/voice_assistant/__init__.py,sha256=mMd2eklOnmvpDJLjzr1nIUS6iXIWjHi6mmlGDs7iV1M,13826
|
3043
|
-
esphome/components/voice_assistant/voice_assistant.cpp,sha256=
|
3044
|
-
esphome/components/voice_assistant/voice_assistant.h,sha256=
|
3043
|
+
esphome/components/voice_assistant/voice_assistant.cpp,sha256=NPvFK2LMKjKcgxtKXhqvZoxUBL4R9bfWO-1dqTkyjr8,29863
|
3044
|
+
esphome/components/voice_assistant/voice_assistant.h,sha256=hlbcIrSBsY3b6cmOULeB_uv9KkNT7iS7IKMYS1rDCe4,11671
|
3045
3045
|
esphome/components/voltage_sampler/__init__.py,sha256=IU5YrROZSNyuAP1d6M_V3ZGAwNjXCHPcVy5nMjZ953Y,155
|
3046
3046
|
esphome/components/voltage_sampler/voltage_sampler.h,sha256=Y67FLOpOzW29v29BRRyYgEmGZ_B8QnUUaqJMH6FA3jM,337
|
3047
3047
|
esphome/components/wake_on_lan/__init__.py,sha256=-RYpXD02o3dlFnKzOCYk58bUbxfD2v-wj1ECywj-cgI,50
|
@@ -3309,9 +3309,9 @@ esphome/dashboard/util/itertools.py,sha256=8eLrWEWmICLtXNxkKdYPQV0c_N4GEz8m9Npnb
|
|
3309
3309
|
esphome/dashboard/util/password.py,sha256=cQz3b9B-ijTe7zS6BeCW0hc3pWv6JjC78jmnycYYAh8,321
|
3310
3310
|
esphome/dashboard/util/subprocess.py,sha256=T8EW6dbU4LPd2DG1dRrdh8li71tt6J1isn411poMhkk,1022
|
3311
3311
|
esphome/dashboard/util/text.py,sha256=ENDnfN4O0NdA3CKVJjQYabFbwbrsIhVKrAMQe53qYu4,534
|
3312
|
-
esphome-2024.10.
|
3313
|
-
esphome-2024.10.
|
3314
|
-
esphome-2024.10.
|
3315
|
-
esphome-2024.10.
|
3316
|
-
esphome-2024.10.
|
3317
|
-
esphome-2024.10.
|
3312
|
+
esphome-2024.10.3.dist-info/LICENSE,sha256=HzEjkBInJe44L4WvAOPfhPJJDNj6YbnqFyvGWRzArGM,36664
|
3313
|
+
esphome-2024.10.3.dist-info/METADATA,sha256=Woskf6_0t77uP-nvocC4svNUcldwJNUD_w4fQ6RGk48,3407
|
3314
|
+
esphome-2024.10.3.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
3315
|
+
esphome-2024.10.3.dist-info/entry_points.txt,sha256=mIxVNuWtbYzeEcaWCl-AQ-97aBOWbnYBAK8nbF6P4M0,50
|
3316
|
+
esphome-2024.10.3.dist-info/top_level.txt,sha256=0GSXEW3cnITpgG3qnsSMz0qoqJHAFyfw7Y8MVtEf1Yk,8
|
3317
|
+
esphome-2024.10.3.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|