aiohomematic 2025.8.10__py3-none-any.whl → 2025.9.1__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 aiohomematic might be problematic. Click here for more details.
- aiohomematic/central/__init__.py +1 -1
- aiohomematic/const.py +1 -1
- aiohomematic/decorators.py +10 -6
- {aiohomematic-2025.8.10.dist-info → aiohomematic-2025.9.1.dist-info}/METADATA +2 -1
- {aiohomematic-2025.8.10.dist-info → aiohomematic-2025.9.1.dist-info}/RECORD +8 -8
- {aiohomematic-2025.8.10.dist-info → aiohomematic-2025.9.1.dist-info}/WHEEL +0 -0
- {aiohomematic-2025.8.10.dist-info → aiohomematic-2025.9.1.dist-info}/licenses/LICENSE +0 -0
- {aiohomematic-2025.8.10.dist-info → aiohomematic-2025.9.1.dist-info}/top_level.txt +0 -0
aiohomematic/central/__init__.py
CHANGED
|
@@ -166,7 +166,7 @@ from aiohomematic.support import check_config, extract_exc_args, get_channel_no,
|
|
|
166
166
|
__all__ = ["CentralConfig", "CentralUnit", "INTERFACE_EVENT_SCHEMA"]
|
|
167
167
|
|
|
168
168
|
_LOGGER: Final = logging.getLogger(__name__)
|
|
169
|
-
_LOGGER_EVENT: Final = logging.getLogger(f"{
|
|
169
|
+
_LOGGER_EVENT: Final = logging.getLogger(f"{__package__}.event")
|
|
170
170
|
|
|
171
171
|
# {central_name, central}
|
|
172
172
|
CENTRAL_INSTANCES: Final[dict[str, CentralUnit]] = {}
|
aiohomematic/const.py
CHANGED
|
@@ -19,7 +19,7 @@ import sys
|
|
|
19
19
|
from types import MappingProxyType
|
|
20
20
|
from typing import Any, Final, NamedTuple, Required, TypeAlias, TypedDict
|
|
21
21
|
|
|
22
|
-
VERSION: Final = "2025.
|
|
22
|
+
VERSION: Final = "2025.9.1"
|
|
23
23
|
|
|
24
24
|
# Detect test speedup mode via environment
|
|
25
25
|
_TEST_SPEEDUP: Final = (
|
aiohomematic/decorators.py
CHANGED
|
@@ -23,7 +23,7 @@ from aiohomematic.support import build_log_context_from_obj, extract_exc_args
|
|
|
23
23
|
P = ParamSpec("P")
|
|
24
24
|
R = TypeVar("R")
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
_LOGGER_PERFORMANCE: Final = logging.getLogger(f"{__package__}.performance")
|
|
27
27
|
|
|
28
28
|
# Cache for per-class service call method names to avoid repeated scans.
|
|
29
29
|
# Structure: {cls: (method_name1, method_name2, ...)}
|
|
@@ -89,7 +89,9 @@ def inspector( # noqa: C901
|
|
|
89
89
|
def wrap_sync_function(*args: P.args, **kwargs: P.kwargs) -> R:
|
|
90
90
|
"""Wrap sync functions."""
|
|
91
91
|
|
|
92
|
-
start =
|
|
92
|
+
start = (
|
|
93
|
+
monotonic() if measure_performance and _LOGGER_PERFORMANCE.isEnabledFor(level=logging.DEBUG) else None
|
|
94
|
+
)
|
|
93
95
|
token = IN_SERVICE_VAR.set(True) if not IN_SERVICE_VAR.get() else None
|
|
94
96
|
try:
|
|
95
97
|
return_value: R = func(*args, **kwargs)
|
|
@@ -125,7 +127,9 @@ def inspector( # noqa: C901
|
|
|
125
127
|
async def wrap_async_function(*args: P.args, **kwargs: P.kwargs) -> R:
|
|
126
128
|
"""Wrap async functions."""
|
|
127
129
|
|
|
128
|
-
start =
|
|
130
|
+
start = (
|
|
131
|
+
monotonic() if measure_performance and _LOGGER_PERFORMANCE.isEnabledFor(level=logging.DEBUG) else None
|
|
132
|
+
)
|
|
129
133
|
token = IN_SERVICE_VAR.set(True) if not IN_SERVICE_VAR.get() else None
|
|
130
134
|
try:
|
|
131
135
|
return_value = await func(*args, **kwargs) # type: ignore[misc] # Await the async call
|
|
@@ -181,7 +185,7 @@ def _log_performance_message(func: Callable, start: float, *args: P.args, **kwar
|
|
|
181
185
|
if iface:
|
|
182
186
|
message += f"/{iface}"
|
|
183
187
|
|
|
184
|
-
|
|
188
|
+
_LOGGER_PERFORMANCE.info(message)
|
|
185
189
|
|
|
186
190
|
|
|
187
191
|
def get_service_calls(obj: object) -> dict[str, Callable]:
|
|
@@ -222,7 +226,7 @@ def measure_execution_time[CallableT: Callable[..., Any]](func: CallableT) -> Ca
|
|
|
222
226
|
async def async_measure_wrapper(*args: Any, **kwargs: Any) -> Any:
|
|
223
227
|
"""Wrap method."""
|
|
224
228
|
|
|
225
|
-
start = monotonic() if
|
|
229
|
+
start = monotonic() if _LOGGER_PERFORMANCE.isEnabledFor(level=logging.DEBUG) else None
|
|
226
230
|
try:
|
|
227
231
|
return await func(*args, **kwargs)
|
|
228
232
|
finally:
|
|
@@ -233,7 +237,7 @@ def measure_execution_time[CallableT: Callable[..., Any]](func: CallableT) -> Ca
|
|
|
233
237
|
def measure_wrapper(*args: Any, **kwargs: Any) -> Any:
|
|
234
238
|
"""Wrap method."""
|
|
235
239
|
|
|
236
|
-
start = monotonic() if
|
|
240
|
+
start = monotonic() if _LOGGER_PERFORMANCE.isEnabledFor(level=logging.DEBUG) else None
|
|
237
241
|
try:
|
|
238
242
|
return func(*args, **kwargs)
|
|
239
243
|
finally:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: aiohomematic
|
|
3
|
-
Version: 2025.
|
|
3
|
+
Version: 2025.9.1
|
|
4
4
|
Summary: Homematic interface for Home Assistant running on Python 3.
|
|
5
5
|
Home-page: https://github.com/sukramj/aiohomematic
|
|
6
6
|
Author-email: SukramJ <sukramj@icloud.com>, Daniel Perna <danielperna84@gmail.com>
|
|
@@ -109,6 +109,7 @@ Example:
|
|
|
109
109
|
|
|
110
110
|
- Changelog: [see](changelog.md) for release history and latest changes.
|
|
111
111
|
- Definition of calculated data points: [see](docs/calculated_data_points.md)
|
|
112
|
+
- Naming: [see](docs/naming.md) for how device, channel and data point names are created.
|
|
112
113
|
- Homematic(IP) Local integration: https://github.com/sukramj/homematicip_local
|
|
113
114
|
- Input select helper: [see](docs/input_select_helper.md) for an overview of how to use the input select helper.
|
|
114
115
|
- Troubleshooting with Home Assistant: [see](docs/homeassistant_troubleshooting.md) for common issues and how to debug them.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
aiohomematic/__init__.py,sha256=VPESkjzeVserFI2DDVAxD782cgYRlLK0sXJzLrr3e_k,2283
|
|
2
2
|
aiohomematic/async_support.py,sha256=Xc55KkIV0h8rf936QKyU4OHSZsPEZ8TwuV8gVveeRh8,6106
|
|
3
|
-
aiohomematic/const.py,sha256=
|
|
3
|
+
aiohomematic/const.py,sha256=1a7G-J_JY45Ta7qAPcfp5XLOHI0Ubw7Y6yJrz3FB0aI,25407
|
|
4
4
|
aiohomematic/context.py,sha256=M7gkA7KFT0dp35gzGz2dzKVXu1PP0sAnepgLlmjyRS4,451
|
|
5
5
|
aiohomematic/converter.py,sha256=QTOL8_B6SoCoqLuRSkjtOlfa7BVFSvOfnSBrDngiinA,3558
|
|
6
|
-
aiohomematic/decorators.py,sha256=
|
|
6
|
+
aiohomematic/decorators.py,sha256=piayP-1t9PQe0pR8IGc_85so5XSiFLi-sIwtgkf3eWU,9725
|
|
7
7
|
aiohomematic/exceptions.py,sha256=o_H3Z0A2TQ0irNxUM9u8bmivq0L_mwPCB7nhxEawDxE,5018
|
|
8
8
|
aiohomematic/hmcli.py,sha256=wHOLq4IJRSY9RJux_ZfDH1gQ1ZqD0k68ua5agyBkkE8,4933
|
|
9
9
|
aiohomematic/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -13,7 +13,7 @@ aiohomematic/caches/__init__.py,sha256=_gI30tbsWgPRaHvP6cRxOQr6n9bYZzU-jp1WbHhWg
|
|
|
13
13
|
aiohomematic/caches/dynamic.py,sha256=ZrAQqXlzhoCvzjZ9cTEtlWqygvkn5xTzOJ987WcrPBc,21539
|
|
14
14
|
aiohomematic/caches/persistent.py,sha256=YBThIByt0mLQCgcZwBBmqanI8obAhHNcFULz_H-de8o,19932
|
|
15
15
|
aiohomematic/caches/visibility.py,sha256=uZ1sSCfmEQURllPvSbJ3EzFVFE7TU8XcxMDSHRpNmMs,31481
|
|
16
|
-
aiohomematic/central/__init__.py,sha256=
|
|
16
|
+
aiohomematic/central/__init__.py,sha256=uZ_Ns5upjTcz4AaA6cN1WNWYkpxtZZebDRvag0g7bwM,85736
|
|
17
17
|
aiohomematic/central/decorators.py,sha256=Sl-cMDhreiAOKkIHiei-QbIOcvbWGVX-QwB5bLeohak,6904
|
|
18
18
|
aiohomematic/central/xml_rpc_server.py,sha256=dM-gbAS1NpRy4wJKUZTsMI2LJfv_vjd4kvyv3pl86yw,10545
|
|
19
19
|
aiohomematic/client/__init__.py,sha256=hGpdDb518VdMYMHxrBBj2PBpUBN2Ah8ID5vjokd9PAU,69832
|
|
@@ -69,10 +69,10 @@ aiohomematic/rega_scripts/get_serial.fn,sha256=t1oeo-sB_EuVeiY24PLcxFSkdQVgEWGXz
|
|
|
69
69
|
aiohomematic/rega_scripts/get_system_variable_descriptions.fn,sha256=UKXvC0_5lSApdQ2atJc0E5Stj5Zt3lqh0EcliokYu2c,849
|
|
70
70
|
aiohomematic/rega_scripts/set_program_state.fn,sha256=0bnv7lUj8FMjDZBz325tDVP61m04cHjVj4kIOnUUgpY,279
|
|
71
71
|
aiohomematic/rega_scripts/set_system_variable.fn,sha256=sTmr7vkPTPnPkor5cnLKlDvfsYRbGO1iq2z_2pMXq5E,383
|
|
72
|
-
aiohomematic-2025.
|
|
72
|
+
aiohomematic-2025.9.1.dist-info/licenses/LICENSE,sha256=q-B0xpREuZuvKsmk3_iyVZqvZ-vJcWmzMZpeAd0RqtQ,1083
|
|
73
73
|
aiohomematic_support/__init__.py,sha256=_0YtF4lTdC_k6-zrM2IefI0u0LMr_WA61gXAyeGLgbY,66
|
|
74
74
|
aiohomematic_support/client_local.py,sha256=cvkO3tcxSJKy5ZLVdeqDbvSmeottxqZJNI4ccdxIVD4,12524
|
|
75
|
-
aiohomematic-2025.
|
|
76
|
-
aiohomematic-2025.
|
|
77
|
-
aiohomematic-2025.
|
|
78
|
-
aiohomematic-2025.
|
|
75
|
+
aiohomematic-2025.9.1.dist-info/METADATA,sha256=qsC9QfkxhshJIvpgktrIYwKsmoTrBtnsPtpcl2HbgE4,6960
|
|
76
|
+
aiohomematic-2025.9.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
77
|
+
aiohomematic-2025.9.1.dist-info/top_level.txt,sha256=5TDRlUWQPThIUwQjOj--aUo4UA-ow4m0sNhnoCBi5n8,34
|
|
78
|
+
aiohomematic-2025.9.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|