esphome 2025.10.0b2__py3-none-any.whl → 2025.10.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.
Potentially problematic release.
This version of esphome might be problematic. Click here for more details.
- esphome/__main__.py +9 -6
- esphome/components/psram/__init__.py +2 -0
- esphome/components/speaker/media_player/__init__.py +16 -3
- esphome/const.py +1 -1
- esphome/writer.py +16 -9
- {esphome-2025.10.0b2.dist-info → esphome-2025.10.0b3.dist-info}/METADATA +2 -2
- {esphome-2025.10.0b2.dist-info → esphome-2025.10.0b3.dist-info}/RECORD +11 -11
- {esphome-2025.10.0b2.dist-info → esphome-2025.10.0b3.dist-info}/WHEEL +0 -0
- {esphome-2025.10.0b2.dist-info → esphome-2025.10.0b3.dist-info}/entry_points.txt +0 -0
- {esphome-2025.10.0b2.dist-info → esphome-2025.10.0b3.dist-info}/licenses/LICENSE +0 -0
- {esphome-2025.10.0b2.dist-info → esphome-2025.10.0b3.dist-info}/top_level.txt +0 -0
esphome/__main__.py
CHANGED
|
@@ -268,8 +268,10 @@ def has_ip_address() -> bool:
|
|
|
268
268
|
|
|
269
269
|
|
|
270
270
|
def has_resolvable_address() -> bool:
|
|
271
|
-
"""Check if CORE.address is resolvable (via mDNS or is an IP address)."""
|
|
272
|
-
|
|
271
|
+
"""Check if CORE.address is resolvable (via mDNS, DNS, or is an IP address)."""
|
|
272
|
+
# Any address (IP, mDNS hostname, or regular DNS hostname) is resolvable
|
|
273
|
+
# The resolve_ip_address() function in helpers.py handles all types via AsyncResolver
|
|
274
|
+
return CORE.address is not None
|
|
273
275
|
|
|
274
276
|
|
|
275
277
|
def mqtt_get_ip(config: ConfigType, username: str, password: str, client_id: str):
|
|
@@ -578,11 +580,12 @@ def show_logs(config: ConfigType, args: ArgsProtocol, devices: list[str]) -> int
|
|
|
578
580
|
if has_api():
|
|
579
581
|
addresses_to_use: list[str] | None = None
|
|
580
582
|
|
|
581
|
-
if port_type == "NETWORK"
|
|
583
|
+
if port_type == "NETWORK":
|
|
584
|
+
# Network addresses (IPs, mDNS names, or regular DNS hostnames) can be used
|
|
585
|
+
# The resolve_ip_address() function in helpers.py handles all types
|
|
582
586
|
addresses_to_use = devices
|
|
583
|
-
elif port_type in ("
|
|
584
|
-
#
|
|
585
|
-
# (for MQTT/MQTTIP types, or for NETWORK when mdns/ip check fails)
|
|
587
|
+
elif port_type in ("MQTT", "MQTTIP") and has_mqtt_ip_lookup():
|
|
588
|
+
# Use MQTT IP lookup for MQTT/MQTTIP types
|
|
586
589
|
addresses_to_use = mqtt_get_ip(
|
|
587
590
|
config, args.username, args.password, args.client_id
|
|
588
591
|
)
|
|
@@ -6,7 +6,7 @@ from pathlib import Path
|
|
|
6
6
|
|
|
7
7
|
from esphome import automation, external_files
|
|
8
8
|
import esphome.codegen as cg
|
|
9
|
-
from esphome.components import audio, esp32, media_player, speaker
|
|
9
|
+
from esphome.components import audio, esp32, media_player, psram, speaker
|
|
10
10
|
import esphome.config_validation as cv
|
|
11
11
|
from esphome.const import (
|
|
12
12
|
CONF_BUFFER_SIZE,
|
|
@@ -26,10 +26,21 @@ from esphome.const import (
|
|
|
26
26
|
from esphome.core import CORE, HexInt
|
|
27
27
|
from esphome.core.entity_helpers import inherit_property_from
|
|
28
28
|
from esphome.external_files import download_content
|
|
29
|
+
from esphome.types import ConfigType
|
|
29
30
|
|
|
30
31
|
_LOGGER = logging.getLogger(__name__)
|
|
31
32
|
|
|
32
|
-
|
|
33
|
+
|
|
34
|
+
def AUTO_LOAD(config: ConfigType) -> list[str]:
|
|
35
|
+
load = ["audio"]
|
|
36
|
+
if (
|
|
37
|
+
not config
|
|
38
|
+
or config.get(CONF_TASK_STACK_IN_PSRAM)
|
|
39
|
+
or config.get(CONF_CODEC_SUPPORT_ENABLED)
|
|
40
|
+
):
|
|
41
|
+
return load + ["psram"]
|
|
42
|
+
return load
|
|
43
|
+
|
|
33
44
|
|
|
34
45
|
CODEOWNERS = ["@kahrendt", "@synesthesiam"]
|
|
35
46
|
DOMAIN = "media_player"
|
|
@@ -279,7 +290,9 @@ CONFIG_SCHEMA = cv.All(
|
|
|
279
290
|
cv.Optional(CONF_BUFFER_SIZE, default=1000000): cv.int_range(
|
|
280
291
|
min=4000, max=4000000
|
|
281
292
|
),
|
|
282
|
-
cv.Optional(
|
|
293
|
+
cv.Optional(
|
|
294
|
+
CONF_CODEC_SUPPORT_ENABLED, default=psram.supported()
|
|
295
|
+
): cv.boolean,
|
|
283
296
|
cv.Optional(CONF_FILES): cv.ensure_list(MEDIA_FILE_TYPE_SCHEMA),
|
|
284
297
|
cv.Optional(CONF_TASK_STACK_IN_PSRAM, default=False): cv.boolean,
|
|
285
298
|
cv.Optional(CONF_VOLUME_INCREMENT, default=0.05): cv.percentage,
|
esphome/const.py
CHANGED
esphome/writer.py
CHANGED
|
@@ -15,6 +15,8 @@ from esphome.const import (
|
|
|
15
15
|
from esphome.core import CORE, EsphomeError
|
|
16
16
|
from esphome.helpers import (
|
|
17
17
|
copy_file_if_changed,
|
|
18
|
+
get_str_env,
|
|
19
|
+
is_ha_addon,
|
|
18
20
|
read_file,
|
|
19
21
|
walk_files,
|
|
20
22
|
write_file_if_changed,
|
|
@@ -338,16 +340,21 @@ def clean_build():
|
|
|
338
340
|
def clean_all(configuration: list[str]):
|
|
339
341
|
import shutil
|
|
340
342
|
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
343
|
+
data_dirs = [Path(dir) / ".esphome" for dir in configuration]
|
|
344
|
+
if is_ha_addon():
|
|
345
|
+
data_dirs.append(Path("/data"))
|
|
346
|
+
if "ESPHOME_DATA_DIR" in os.environ:
|
|
347
|
+
data_dirs.append(Path(get_str_env("ESPHOME_DATA_DIR", None)))
|
|
348
|
+
|
|
349
|
+
# Clean build dir
|
|
350
|
+
for dir in data_dirs:
|
|
351
|
+
if dir.is_dir():
|
|
352
|
+
_LOGGER.info("Cleaning %s", dir)
|
|
353
|
+
# Don't remove storage or .json files which are needed by the dashboard
|
|
354
|
+
for item in dir.iterdir():
|
|
355
|
+
if item.is_file() and not item.name.endswith(".json"):
|
|
349
356
|
item.unlink()
|
|
350
|
-
elif item.name != "storage"
|
|
357
|
+
elif item.is_dir() and item.name != "storage":
|
|
351
358
|
shutil.rmtree(item)
|
|
352
359
|
|
|
353
360
|
# Clean PlatformIO project files
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: esphome
|
|
3
|
-
Version: 2025.10.
|
|
3
|
+
Version: 2025.10.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@openhomefoundation.org>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -35,7 +35,7 @@ Requires-Dist: pyserial==3.5
|
|
|
35
35
|
Requires-Dist: platformio==6.1.18
|
|
36
36
|
Requires-Dist: esptool==5.1.0
|
|
37
37
|
Requires-Dist: click==8.1.7
|
|
38
|
-
Requires-Dist: esphome-dashboard==
|
|
38
|
+
Requires-Dist: esphome-dashboard==20251013.0
|
|
39
39
|
Requires-Dist: aioesphomeapi==41.14.0
|
|
40
40
|
Requires-Dist: zeroconf==0.148.0
|
|
41
41
|
Requires-Dist: puremagic==1.30
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
esphome/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
esphome/__main__.py,sha256=
|
|
2
|
+
esphome/__main__.py,sha256=ecT5QSWDElewwl7FsrwxD-nrpYN-6QQdEagcS4GHTvc,42029
|
|
3
3
|
esphome/address_cache.py,sha256=mXLDjOZ6NZebwRXSldZLnpPn51jfXeReRx0YdQ6oxOE,4622
|
|
4
4
|
esphome/automation.py,sha256=Gd_VHPDp5a1GYVNgwrzsCMuzHobmv49gcWdlV3y646g,17696
|
|
5
5
|
esphome/codegen.py,sha256=91Q9SVbTlgH_gFU4_sbVi6YEAiOjLuAGHG6qqV3lLHo,1939
|
|
6
6
|
esphome/config.py,sha256=yfwaqzZb--kLHyfhZxyTo5cXImtJrMC9Xs9lxurKNww,45135
|
|
7
7
|
esphome/config_helpers.py,sha256=E0UO0khX9JW-br_NSsDlLH3VuE-YwMQ99_pzEQVupDc,5391
|
|
8
8
|
esphome/config_validation.py,sha256=WOIf3s3CIhWiAFJ7NdpmMzLfCNv89J67pvZXHmiBz5I,64808
|
|
9
|
-
esphome/const.py,sha256=
|
|
9
|
+
esphome/const.py,sha256=vnpMkgGPCDUfkGNiAM89CaFjzSh9it1Yi0DHaW70470,44458
|
|
10
10
|
esphome/coroutine.py,sha256=JFBDo8ngY46zhxvjk5aQ5MO_-qrqKDfKQTglEIqHrYY,11946
|
|
11
11
|
esphome/cpp_generator.py,sha256=DhHZT5s-Pbx5MJ762N_hFOYFo4Q9c0wJQG4p7UU_1lc,31901
|
|
12
12
|
esphome/cpp_helpers.py,sha256=r-hrUp7luke-ByuK2Z0TCzIvn4tTswMUkAzlVoKntiI,4039
|
|
@@ -30,7 +30,7 @@ esphome/util.py,sha256=NMwGggf5_h9kRMEj4B-0ndBHouWInawoH-XHjlUYgMU,11728
|
|
|
30
30
|
esphome/voluptuous_schema.py,sha256=EKm4CIP5-e6wY6L1_RleMGCDYbFOWTK_Sa_oO94Advc,9529
|
|
31
31
|
esphome/vscode.py,sha256=g0I4Uv71DcB-DfG9kt7lfhTjvPPMTjff9lsnquCZ04c,4264
|
|
32
32
|
esphome/wizard.py,sha256=jZ2n5DWU2l2e8MZqv3NQ_gSRYqCuM5eTkyHsWEQglz4,17552
|
|
33
|
-
esphome/writer.py,sha256=
|
|
33
|
+
esphome/writer.py,sha256=KSsMs30K_oVOa8hJgdzz3sM4dweXiaOksnzPzbhiikw,12341
|
|
34
34
|
esphome/yaml_util.py,sha256=g-reUyAFy-EOqaFjkYxJrUMbNEQXKZR4S2mOW8Kkr8I,23419
|
|
35
35
|
esphome/zeroconf.py,sha256=G4TeJNf8jKGA5iO0Fjhx2FxiTBTMaZDoigK33oGOu34,6891
|
|
36
36
|
esphome/build_gen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -2421,7 +2421,7 @@ esphome/components/preferences/syncer.h,sha256=AaSl8_J86_P6bZFVx2j7I8cXz8VGeSdGC
|
|
|
2421
2421
|
esphome/components/prometheus/__init__.py,sha256=nDE6iM3mGGovPVT74EOrDgXKv4yq0kQaK2UUbEbSllg,1697
|
|
2422
2422
|
esphome/components/prometheus/prometheus_handler.cpp,sha256=OnEcCw03VQPTJIm5kEisrW_TjA8zYzvrmfiwkxx94so,41003
|
|
2423
2423
|
esphome/components/prometheus/prometheus_handler.h,sha256=oohyR_wpYfb2I7s6zWV3rO-zO9ZsQ3ybxEJSsvdbeEY,7834
|
|
2424
|
-
esphome/components/psram/__init__.py,sha256=
|
|
2424
|
+
esphome/components/psram/__init__.py,sha256=goylC3Bof88NBfwffwlrkMIgsSSjY9SgWH7JUCKmXPI,5054
|
|
2425
2425
|
esphome/components/psram/psram.cpp,sha256=ILopiIgTMmmb4mD431OuaZMEPU6v24u9Pn9K9Du1dgw,637
|
|
2426
2426
|
esphome/components/psram/psram.h,sha256=LdElwxbKK68o4J9sdmMX8RZn5D94lXhCCSDm83Ge2jc,239
|
|
2427
2427
|
esphome/components/pulse_counter/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -2931,7 +2931,7 @@ esphome/components/sound_level/sound_level.h,sha256=1hhig0wa96Qu-6zoU1zA02tVG18_
|
|
|
2931
2931
|
esphome/components/speaker/__init__.py,sha256=COv7sMjD5PfFjlU0XFKSmi7hxiXD5IuHUtNRtajAkzE,4399
|
|
2932
2932
|
esphome/components/speaker/automation.h,sha256=tVSTV49GvHk0bCEgLz3rNYFe8B1F0kXLgE-WihuRaV8,2320
|
|
2933
2933
|
esphome/components/speaker/speaker.h,sha256=Y6EuDzsIx8GDcFeWnYXg4cXiBU-6CkmrRCaMpXQYiWo,4355
|
|
2934
|
-
esphome/components/speaker/media_player/__init__.py,sha256=
|
|
2934
|
+
esphome/components/speaker/media_player/__init__.py,sha256=fg-P1TWdMgXyzx6g5YAyK3mgsrCDumtq2SwM5myXj6A,14801
|
|
2935
2935
|
esphome/components/speaker/media_player/audio_pipeline.cpp,sha256=RBCbXXH3rpuy6nyvtzcD7SChJ4WqSpiIClAjeDk266E,22369
|
|
2936
2936
|
esphome/components/speaker/media_player/audio_pipeline.h,sha256=QAQGzGUnBjx7_WaZYGIuLKtrKrs7-f3YV329h2wahQM,5029
|
|
2937
2937
|
esphome/components/speaker/media_player/automation.h,sha256=I8psUHnJ8T3fkM05h1yEYDxb0yWe6Vjz7i30OSVA3Is,683
|
|
@@ -3786,9 +3786,9 @@ esphome/dashboard/util/itertools.py,sha256=8eLrWEWmICLtXNxkKdYPQV0c_N4GEz8m9Npnb
|
|
|
3786
3786
|
esphome/dashboard/util/password.py,sha256=cQz3b9B-ijTe7zS6BeCW0hc3pWv6JjC78jmnycYYAh8,321
|
|
3787
3787
|
esphome/dashboard/util/subprocess.py,sha256=T8EW6dbU4LPd2DG1dRrdh8li71tt6J1isn411poMhkk,1022
|
|
3788
3788
|
esphome/dashboard/util/text.py,sha256=wwFtORlvHjsYkqb68IT-772LHAhWxT4OtnkIcPICQB0,317
|
|
3789
|
-
esphome-2025.10.
|
|
3790
|
-
esphome-2025.10.
|
|
3791
|
-
esphome-2025.10.
|
|
3792
|
-
esphome-2025.10.
|
|
3793
|
-
esphome-2025.10.
|
|
3794
|
-
esphome-2025.10.
|
|
3789
|
+
esphome-2025.10.0b3.dist-info/licenses/LICENSE,sha256=HzEjkBInJe44L4WvAOPfhPJJDNj6YbnqFyvGWRzArGM,36664
|
|
3790
|
+
esphome-2025.10.0b3.dist-info/METADATA,sha256=8ekM5N3F0xnpkd0GTgswnTQ8tGxZSEBAxi3u9KNBAjU,3635
|
|
3791
|
+
esphome-2025.10.0b3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
3792
|
+
esphome-2025.10.0b3.dist-info/entry_points.txt,sha256=mIxVNuWtbYzeEcaWCl-AQ-97aBOWbnYBAK8nbF6P4M0,50
|
|
3793
|
+
esphome-2025.10.0b3.dist-info/top_level.txt,sha256=0GSXEW3cnITpgG3qnsSMz0qoqJHAFyfw7Y8MVtEf1Yk,8
|
|
3794
|
+
esphome-2025.10.0b3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|