esphome 2025.2.1__py3-none-any.whl → 2025.3.0b1__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/__main__.py +9 -1
- esphome/components/api/api_connection.cpp +426 -70
- esphome/components/api/api_connection.h +117 -25
- esphome/components/api/api_pb2.cpp +9 -0
- esphome/components/api/api_pb2.h +1 -0
- esphome/components/api/api_server.cpp +2 -2
- esphome/components/api/list_entities.cpp +76 -22
- esphome/components/api/list_entities.h +1 -0
- esphome/components/api/subscribe_state.h +2 -0
- esphome/components/audio/audio_reader.cpp +7 -7
- esphome/components/audio/audio_reader.h +1 -1
- esphome/components/bluetooth_proxy/bluetooth_proxy.h +8 -0
- esphome/components/bmp085/bmp085.cpp +1 -1
- esphome/components/chsc6x/__init__.py +2 -0
- esphome/components/chsc6x/chsc6x_touchscreen.cpp +47 -0
- esphome/components/chsc6x/chsc6x_touchscreen.h +34 -0
- esphome/components/chsc6x/touchscreen.py +33 -0
- esphome/components/climate/__init__.py +0 -1
- esphome/components/cst816/binary_sensor/__init__.py +2 -25
- esphome/components/cst816/touchscreen/cst816_touchscreen.cpp +3 -14
- esphome/components/cst816/touchscreen/cst816_touchscreen.h +0 -4
- esphome/components/esp32_ble_beacon/__init__.py +3 -1
- esphome/components/esp32_ble_tracker/esp32_ble_tracker.cpp +2 -2
- esphome/components/esp8266/gpio.py +1 -2
- esphome/components/font/__init__.py +185 -185
- esphome/components/font/font.cpp +4 -4
- esphome/components/font/font.h +1 -0
- esphome/components/haier/climate.py +11 -10
- esphome/components/hbridge/switch/hbridge_switch.cpp +2 -2
- esphome/components/heatpumpir/climate.py +2 -1
- esphome/components/heatpumpir/heatpumpir.cpp +1 -0
- esphome/components/heatpumpir/heatpumpir.h +1 -0
- esphome/components/i2c/__init__.py +6 -6
- esphome/components/i2c/i2c_bus_esp_idf.cpp +6 -2
- esphome/components/i2s_audio/speaker/i2s_audio_speaker.cpp +1 -1
- esphome/components/ili9xxx/display.py +1 -0
- esphome/components/ili9xxx/ili9xxx_display.h +5 -0
- esphome/components/ili9xxx/ili9xxx_init.h +59 -0
- esphome/components/ld2450/__init__.py +51 -0
- esphome/components/ld2450/binary_sensor.py +47 -0
- esphome/components/ld2450/button/__init__.py +45 -0
- esphome/components/ld2450/button/reset_button.cpp +9 -0
- esphome/components/ld2450/button/reset_button.h +18 -0
- esphome/components/ld2450/button/restart_button.cpp +9 -0
- esphome/components/ld2450/button/restart_button.h +18 -0
- esphome/components/ld2450/ld2450.cpp +876 -0
- esphome/components/ld2450/ld2450.h +234 -0
- esphome/components/ld2450/number/__init__.py +121 -0
- esphome/components/ld2450/number/presence_timeout_number.cpp +12 -0
- esphome/components/ld2450/number/presence_timeout_number.h +18 -0
- esphome/components/ld2450/number/zone_coordinate_number.cpp +14 -0
- esphome/components/ld2450/number/zone_coordinate_number.h +19 -0
- esphome/components/ld2450/select/__init__.py +56 -0
- esphome/components/ld2450/select/baud_rate_select.cpp +12 -0
- esphome/components/ld2450/select/baud_rate_select.h +18 -0
- esphome/components/ld2450/select/zone_type_select.cpp +12 -0
- esphome/components/ld2450/select/zone_type_select.h +18 -0
- esphome/components/ld2450/sensor.py +156 -0
- esphome/components/ld2450/switch/__init__.py +45 -0
- esphome/components/ld2450/switch/bluetooth_switch.cpp +12 -0
- esphome/components/ld2450/switch/bluetooth_switch.h +18 -0
- esphome/components/ld2450/switch/multi_target_switch.cpp +12 -0
- esphome/components/ld2450/switch/multi_target_switch.h +18 -0
- esphome/components/ld2450/text_sensor.py +62 -0
- esphome/components/ltr390/ltr390.cpp +7 -7
- esphome/components/ltr390/ltr390.h +0 -1
- esphome/components/lvgl/defines.py +0 -2
- esphome/components/lvgl/font.cpp +1 -1
- esphome/components/lvgl/lvgl_esphome.cpp +27 -19
- esphome/components/lvgl/widgets/img.py +1 -3
- esphome/components/mcp2515/mcp2515.cpp +1 -0
- esphome/components/mlx90393/sensor.py +53 -33
- esphome/components/mlx90393/sensor_mlx90393.cpp +4 -0
- esphome/components/mlx90393/sensor_mlx90393.h +8 -3
- esphome/components/mqtt/__init__.py +2 -2
- esphome/components/msa3xx/__init__.py +189 -0
- esphome/components/msa3xx/binary_sensor.py +40 -0
- esphome/components/msa3xx/msa3xx.cpp +417 -0
- esphome/components/msa3xx/msa3xx.h +311 -0
- esphome/components/msa3xx/sensor.py +42 -0
- esphome/components/msa3xx/text_sensor.py +38 -0
- esphome/components/nfc/binary_sensor/__init__.py +4 -4
- esphome/components/opentherm/binary_sensor/__init__.py +4 -4
- esphome/components/opentherm/generate.py +6 -6
- esphome/components/opentherm/sensor/__init__.py +5 -6
- esphome/components/packages/__init__.py +35 -11
- esphome/components/pn532/binary_sensor.py +4 -4
- esphome/components/rc522/binary_sensor.py +4 -4
- esphome/components/socket/bsd_sockets_impl.cpp +1 -0
- esphome/components/socket/lwip_sockets_impl.cpp +1 -0
- esphome/components/socket/socket.h +3 -1
- esphome/components/ssd1306_base/__init__.py +7 -7
- esphome/components/thermostat/climate.py +1 -1
- esphome/components/tmp1075/tmp1075.cpp +7 -11
- esphome/components/tmp1075/tmp1075.h +1 -2
- esphome/components/tormatic/__init__.py +1 -0
- esphome/components/tormatic/cover.py +47 -0
- esphome/components/tormatic/tormatic_cover.cpp +355 -0
- esphome/components/tormatic/tormatic_cover.h +60 -0
- esphome/components/tormatic/tormatic_protocol.h +211 -0
- esphome/components/touchscreen/binary_sensor/__init__.py +3 -0
- esphome/components/touchscreen/binary_sensor/touchscreen_binary_sensor.cpp +7 -1
- esphome/components/touchscreen/binary_sensor/touchscreen_binary_sensor.h +3 -1
- esphome/components/touchscreen/touchscreen.cpp +3 -4
- esphome/components/udp/udp_component.h +4 -1
- esphome/components/web_server/list_entities.cpp +70 -66
- esphome/components/web_server/list_entities.h +43 -22
- esphome/components/web_server/web_server.cpp +345 -68
- esphome/components/web_server/web_server.h +138 -6
- esphome/components/web_server_base/__init__.py +1 -1
- esphome/components/web_server_idf/__init__.py +2 -0
- esphome/components/web_server_idf/web_server_idf.cpp +177 -30
- esphome/components/web_server_idf/web_server_idf.h +53 -4
- esphome/config_validation.py +23 -125
- esphome/const.py +5 -1
- esphome/core/config.py +12 -4
- esphome/core/defines.h +1 -1
- esphome/core/helpers.h +5 -3
- esphome/core/time.cpp +1 -0
- esphome/cpp_generator.py +3 -3
- esphome/dashboard/core.py +30 -21
- esphome/dashboard/dns.py +7 -1
- esphome/dashboard/entries.py +83 -16
- esphome/dashboard/settings.py +0 -4
- esphome/dashboard/status/mdns.py +43 -14
- esphome/dashboard/status/mqtt.py +22 -9
- esphome/dashboard/status/ping.py +54 -10
- esphome/dashboard/web_server.py +56 -24
- esphome/storage_json.py +4 -0
- esphome/wizard.py +13 -17
- esphome/writer.py +1 -3
- esphome/yaml_util.py +36 -33
- esphome/zeroconf.py +9 -21
- {esphome-2025.2.1.dist-info → esphome-2025.3.0b1.dist-info}/METADATA +5 -5
- {esphome-2025.2.1.dist-info → esphome-2025.3.0b1.dist-info}/RECORD +139 -99
- esphome/components/cst816/binary_sensor/cst816_button.h +0 -27
- {esphome-2025.2.1.dist-info → esphome-2025.3.0b1.dist-info}/LICENSE +0 -0
- {esphome-2025.2.1.dist-info → esphome-2025.3.0b1.dist-info}/WHEEL +0 -0
- {esphome-2025.2.1.dist-info → esphome-2025.3.0b1.dist-info}/entry_points.txt +0 -0
- {esphome-2025.2.1.dist-info → esphome-2025.3.0b1.dist-info}/top_level.txt +0 -0
esphome/zeroconf.py
CHANGED
@@ -5,7 +5,13 @@ from dataclasses import dataclass
|
|
5
5
|
import logging
|
6
6
|
from typing import Callable
|
7
7
|
|
8
|
-
from zeroconf import
|
8
|
+
from zeroconf import (
|
9
|
+
AddressResolver,
|
10
|
+
IPVersion,
|
11
|
+
ServiceInfo,
|
12
|
+
ServiceStateChange,
|
13
|
+
Zeroconf,
|
14
|
+
)
|
9
15
|
from zeroconf.asyncio import AsyncServiceBrowser, AsyncServiceInfo, AsyncZeroconf
|
10
16
|
|
11
17
|
from esphome.storage_json import StorageJSON, ext_storage_path
|
@@ -16,15 +22,6 @@ _LOGGER = logging.getLogger(__name__)
|
|
16
22
|
_BACKGROUND_TASKS: set[asyncio.Task] = set()
|
17
23
|
|
18
24
|
|
19
|
-
class HostResolver(ServiceInfo):
|
20
|
-
"""Resolve a host name to an IP address."""
|
21
|
-
|
22
|
-
@property
|
23
|
-
def _is_complete(self) -> bool:
|
24
|
-
"""The ServiceInfo has all expected properties."""
|
25
|
-
return bool(self._ipv4_addresses)
|
26
|
-
|
27
|
-
|
28
25
|
class DashboardStatus:
|
29
26
|
def __init__(self, on_update: Callable[[dict[str, bool | None], []]]) -> None:
|
30
27
|
"""Initialize the dashboard status."""
|
@@ -166,19 +163,10 @@ class DashboardImportDiscovery:
|
|
166
163
|
)
|
167
164
|
|
168
165
|
|
169
|
-
def _make_host_resolver(host: str) -> HostResolver:
|
170
|
-
"""Create a new HostResolver for the given host name."""
|
171
|
-
name = host.partition(".")[0]
|
172
|
-
info = HostResolver(
|
173
|
-
ESPHOME_SERVICE_TYPE, f"{name}.{ESPHOME_SERVICE_TYPE}", server=f"{name}.local."
|
174
|
-
)
|
175
|
-
return info
|
176
|
-
|
177
|
-
|
178
166
|
class EsphomeZeroconf(Zeroconf):
|
179
167
|
def resolve_host(self, host: str, timeout: float = 3.0) -> list[str] | None:
|
180
168
|
"""Resolve a host name to an IP address."""
|
181
|
-
info =
|
169
|
+
info = AddressResolver(f"{host.partition('.')[0]}.local.")
|
182
170
|
if (
|
183
171
|
info.load_from_cache(self)
|
184
172
|
or (timeout and info.request(self, timeout * 1000))
|
@@ -192,7 +180,7 @@ class AsyncEsphomeZeroconf(AsyncZeroconf):
|
|
192
180
|
self, host: str, timeout: float = 3.0
|
193
181
|
) -> list[str] | None:
|
194
182
|
"""Resolve a host name to an IP address."""
|
195
|
-
info =
|
183
|
+
info = AddressResolver(f"{host.partition('.')[0]}.local.")
|
196
184
|
if (
|
197
185
|
info.load_from_cache(self.zeroconf)
|
198
186
|
or (timeout and await info.async_request(self.zeroconf, timeout * 1000))
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: esphome
|
3
|
-
Version: 2025.
|
3
|
+
Version: 2025.3.0b1
|
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
|
@@ -34,11 +34,11 @@ Requires-Dist: tzlocal ==5.2
|
|
34
34
|
Requires-Dist: tzdata >=2021.1
|
35
35
|
Requires-Dist: pyserial ==3.5
|
36
36
|
Requires-Dist: platformio ==6.1.16
|
37
|
-
Requires-Dist: esptool ==4.
|
37
|
+
Requires-Dist: esptool ==4.8.1
|
38
38
|
Requires-Dist: click ==8.1.7
|
39
39
|
Requires-Dist: esphome-dashboard ==20250212.0
|
40
|
-
Requires-Dist: aioesphomeapi ==29.
|
41
|
-
Requires-Dist: zeroconf ==0.
|
40
|
+
Requires-Dist: aioesphomeapi ==29.5.1
|
41
|
+
Requires-Dist: zeroconf ==0.146.1
|
42
42
|
Requires-Dist: puremagic ==1.27
|
43
43
|
Requires-Dist: ruamel.yaml ==0.18.6
|
44
44
|
Requires-Dist: esphome-glyphsets ==0.1.0
|
@@ -57,7 +57,7 @@ Requires-Dist: cairosvg ==2.7.1 ; extra == 'displays'
|
|
57
57
|
Provides-Extra: test
|
58
58
|
Requires-Dist: pylint ==3.2.7 ; extra == 'test'
|
59
59
|
Requires-Dist: flake8 ==7.0.0 ; extra == 'test'
|
60
|
-
Requires-Dist:
|
60
|
+
Requires-Dist: ruff ==0.9.2 ; extra == 'test'
|
61
61
|
Requires-Dist: pyupgrade ==3.15.2 ; extra == 'test'
|
62
62
|
Requires-Dist: pre-commit ; extra == 'test'
|
63
63
|
Requires-Dist: pytest ==8.2.0 ; extra == 'test'
|