aiohomematic 2025.10.8__py3-none-any.whl → 2025.10.9__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/__init__.py +3 -3
- aiohomematic/async_support.py +1 -1
- aiohomematic/central/__init__.py +58 -30
- aiohomematic/central/decorators.py +1 -1
- aiohomematic/central/rpc_server.py +1 -1
- aiohomematic/client/__init__.py +18 -12
- aiohomematic/client/_rpc_errors.py +1 -1
- aiohomematic/client/json_rpc.py +29 -3
- aiohomematic/client/rpc_proxy.py +20 -2
- aiohomematic/const.py +23 -6
- aiohomematic/context.py +1 -1
- aiohomematic/converter.py +1 -1
- aiohomematic/decorators.py +1 -1
- aiohomematic/exceptions.py +1 -1
- aiohomematic/hmcli.py +1 -1
- aiohomematic/model/__init__.py +1 -1
- aiohomematic/model/calculated/__init__.py +1 -1
- aiohomematic/model/calculated/climate.py +1 -1
- aiohomematic/model/calculated/data_point.py +1 -1
- aiohomematic/model/calculated/operating_voltage_level.py +1 -1
- aiohomematic/model/calculated/support.py +1 -1
- aiohomematic/model/custom/__init__.py +1 -1
- aiohomematic/model/custom/climate.py +7 -4
- aiohomematic/model/custom/const.py +1 -1
- aiohomematic/model/custom/cover.py +1 -1
- aiohomematic/model/custom/data_point.py +1 -1
- aiohomematic/model/custom/definition.py +1 -1
- aiohomematic/model/custom/light.py +1 -1
- aiohomematic/model/custom/lock.py +1 -1
- aiohomematic/model/custom/siren.py +1 -1
- aiohomematic/model/custom/support.py +1 -1
- aiohomematic/model/custom/switch.py +1 -1
- aiohomematic/model/custom/valve.py +1 -1
- aiohomematic/model/data_point.py +3 -2
- aiohomematic/model/device.py +10 -10
- aiohomematic/model/event.py +1 -1
- aiohomematic/model/generic/__init__.py +1 -1
- aiohomematic/model/generic/action.py +1 -1
- aiohomematic/model/generic/binary_sensor.py +1 -1
- aiohomematic/model/generic/button.py +1 -1
- aiohomematic/model/generic/data_point.py +1 -1
- aiohomematic/model/generic/number.py +1 -1
- aiohomematic/model/generic/select.py +1 -1
- aiohomematic/model/generic/sensor.py +1 -1
- aiohomematic/model/generic/switch.py +1 -1
- aiohomematic/model/generic/text.py +1 -1
- aiohomematic/model/hub/__init__.py +1 -1
- aiohomematic/model/hub/binary_sensor.py +1 -1
- aiohomematic/model/hub/button.py +1 -1
- aiohomematic/model/hub/data_point.py +1 -1
- aiohomematic/model/hub/number.py +1 -1
- aiohomematic/model/hub/select.py +1 -1
- aiohomematic/model/hub/sensor.py +1 -1
- aiohomematic/model/hub/switch.py +1 -1
- aiohomematic/model/hub/text.py +1 -1
- aiohomematic/model/support.py +1 -1
- aiohomematic/model/update.py +1 -1
- aiohomematic/property_decorators.py +2 -2
- aiohomematic/store/__init__.py +34 -0
- aiohomematic/{caches → store}/dynamic.py +4 -4
- aiohomematic/store/persistent.py +933 -0
- aiohomematic/{caches → store}/visibility.py +4 -4
- aiohomematic/support.py +16 -12
- aiohomematic/validator.py +1 -1
- {aiohomematic-2025.10.8.dist-info → aiohomematic-2025.10.9.dist-info}/METADATA +1 -1
- aiohomematic-2025.10.9.dist-info/RECORD +78 -0
- aiohomematic_support/client_local.py +2 -2
- aiohomematic/caches/__init__.py +0 -12
- aiohomematic/caches/persistent.py +0 -478
- aiohomematic-2025.10.8.dist-info/RECORD +0 -78
- {aiohomematic-2025.10.8.dist-info → aiohomematic-2025.10.9.dist-info}/WHEEL +0 -0
- {aiohomematic-2025.10.8.dist-info → aiohomematic-2025.10.9.dist-info}/licenses/LICENSE +0 -0
- {aiohomematic-2025.10.8.dist-info → aiohomematic-2025.10.9.dist-info}/top_level.txt +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# SPDX-License-Identifier: MIT
|
|
2
|
-
# Copyright (c) 2021-2025
|
|
2
|
+
# Copyright (c) 2021-2025
|
|
3
3
|
"""
|
|
4
4
|
Parameter visibility rules and cache for Homematic data points.
|
|
5
5
|
|
|
@@ -8,7 +8,7 @@ ignored, or un‑ignored for channels and devices. It centralizes the rules
|
|
|
8
8
|
that influence the visibility of data points exposed by the library.
|
|
9
9
|
|
|
10
10
|
Overview
|
|
11
|
-
- ParameterVisibilityCache: Computes and
|
|
11
|
+
- ParameterVisibilityCache: Computes and store visibility decisions per model,
|
|
12
12
|
channel number, paramset and parameter. It consolidates rules from multiple
|
|
13
13
|
sources, such as model‑specific defaults, paramset relevance, hidden lists,
|
|
14
14
|
and explicit un‑ignore directives.
|
|
@@ -352,7 +352,7 @@ class ParameterVisibilityCache:
|
|
|
352
352
|
"_relevant_master_paramsets_by_device",
|
|
353
353
|
"_relevant_prefix_cache",
|
|
354
354
|
"_required_parameters",
|
|
355
|
-
"
|
|
355
|
+
"_storage_directory",
|
|
356
356
|
"_un_ignore_parameters_by_device_paramset_key",
|
|
357
357
|
"_un_ignore_prefix_cache",
|
|
358
358
|
)
|
|
@@ -364,7 +364,7 @@ class ParameterVisibilityCache:
|
|
|
364
364
|
) -> None:
|
|
365
365
|
"""Init the parameter visibility cache."""
|
|
366
366
|
self._central = central
|
|
367
|
-
self.
|
|
367
|
+
self._storage_directory: Final = central.config.storage_directory
|
|
368
368
|
self._required_parameters: Final = get_required_parameters()
|
|
369
369
|
self._raw_un_ignores: Final[frozenset[str]] = central.config.un_ignore_list or frozenset()
|
|
370
370
|
|
aiohomematic/support.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# SPDX-License-Identifier: MIT
|
|
2
|
-
# Copyright (c) 2021-2025
|
|
2
|
+
# Copyright (c) 2021-2025
|
|
3
3
|
"""
|
|
4
4
|
Helper functions used within aiohomematic.
|
|
5
5
|
|
|
@@ -15,11 +15,13 @@ import contextlib
|
|
|
15
15
|
from dataclasses import dataclass
|
|
16
16
|
from datetime import datetime
|
|
17
17
|
from functools import lru_cache
|
|
18
|
+
import glob
|
|
18
19
|
import hashlib
|
|
19
20
|
import inspect
|
|
20
21
|
from ipaddress import IPv4Address
|
|
21
22
|
import logging
|
|
22
23
|
import os
|
|
24
|
+
import random
|
|
23
25
|
import re
|
|
24
26
|
import socket
|
|
25
27
|
import ssl
|
|
@@ -99,7 +101,7 @@ def check_config(
|
|
|
99
101
|
host: str,
|
|
100
102
|
username: str,
|
|
101
103
|
password: str,
|
|
102
|
-
|
|
104
|
+
storage_directory: str,
|
|
103
105
|
callback_host: str | None,
|
|
104
106
|
callback_port_xml_rpc: int | None,
|
|
105
107
|
json_port: int | None,
|
|
@@ -119,7 +121,7 @@ def check_config(
|
|
|
119
121
|
if not check_password(password=password):
|
|
120
122
|
config_failures.append("Password is not valid")
|
|
121
123
|
try:
|
|
122
|
-
check_or_create_directory(directory=
|
|
124
|
+
check_or_create_directory(directory=storage_directory)
|
|
123
125
|
except BaseHomematicException as bhexc:
|
|
124
126
|
config_failures.append(extract_exc_args(exc=bhexc)[0])
|
|
125
127
|
if callback_host and not (is_hostname(hostname=callback_host) or is_ipv4_address(address=callback_host)):
|
|
@@ -142,15 +144,12 @@ def has_primary_client(*, interface_configs: AbstractSet[hmcl.InterfaceConfig])
|
|
|
142
144
|
return False
|
|
143
145
|
|
|
144
146
|
|
|
145
|
-
def delete_file(
|
|
146
|
-
"""Delete the file."""
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
and (os.path.isfile(file_path) or os.path.islink(file_path))
|
|
152
|
-
):
|
|
153
|
-
os.unlink(file_path)
|
|
147
|
+
def delete_file(directory: str, file_name: str) -> None: # kwonly: disable
|
|
148
|
+
"""Delete the file. File can contain a wildcard."""
|
|
149
|
+
if os.path.exists(directory):
|
|
150
|
+
for file_path in glob.glob(os.path.join(directory, file_name)):
|
|
151
|
+
if os.path.isfile(file_path):
|
|
152
|
+
os.remove(file_path)
|
|
154
153
|
|
|
155
154
|
|
|
156
155
|
def check_or_create_directory(*, directory: str) -> bool:
|
|
@@ -578,6 +577,11 @@ def cleanup_text_from_html_tags(*, text: str) -> str:
|
|
|
578
577
|
return re.sub(HTMLTAG_PATTERN, "", text)
|
|
579
578
|
|
|
580
579
|
|
|
580
|
+
def create_random_device_addresses(*, addresses: list[str]) -> dict[str, str]:
|
|
581
|
+
"""Create a random device address."""
|
|
582
|
+
return {adr: f"VCU{int(random.randint(1000000, 9999999))}" for adr in addresses}
|
|
583
|
+
|
|
584
|
+
|
|
581
585
|
# --- Structured error boundary logging helpers ---
|
|
582
586
|
|
|
583
587
|
_BOUNDARY_MSG = "error_boundary"
|
aiohomematic/validator.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: aiohomematic
|
|
3
|
-
Version: 2025.10.
|
|
3
|
+
Version: 2025.10.9
|
|
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>
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
aiohomematic/__init__.py,sha256=Uo9CIoil0Arl3GwtgMZAwM8jhcgoBKcZEgj8cXYlswY,2258
|
|
2
|
+
aiohomematic/async_support.py,sha256=01chvt-Ac_UIAWI39VeGpQV9AmxpSCbNyfPPAwX_Qqc,7865
|
|
3
|
+
aiohomematic/const.py,sha256=8Reu1r01pcMN3U5VQLufSJxCcuzhcU1Utn-IKDIKTgE,27124
|
|
4
|
+
aiohomematic/context.py,sha256=hGE-iPcPt21dY-1MZar-Hyh9YaKL-VS42xjrulIVyRQ,429
|
|
5
|
+
aiohomematic/converter.py,sha256=FiHU71M5RZ7N5FXJYh2CN14s63-PM-SHdb0cJ_CLx54,3602
|
|
6
|
+
aiohomematic/decorators.py,sha256=cSW0aF3PzrW_qW6H0sjRNH9eqO8ysqhXZDgJ2OJTZM4,11038
|
|
7
|
+
aiohomematic/exceptions.py,sha256=RLldRD4XY8iYuNYVdspCbbphGcKsximB7R5OL7cYKw0,5006
|
|
8
|
+
aiohomematic/hmcli.py,sha256=_QZFKcfr_KJrdiyBRbhz0f8LZ95glD7LgJBmQc8cwog,4911
|
|
9
|
+
aiohomematic/property_decorators.py,sha256=3Id1_rWIYnwyN_oSMgbh7XNKz9HPkGTC1CeS5ei04ZQ,17139
|
|
10
|
+
aiohomematic/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
+
aiohomematic/support.py,sha256=R275ZIKoufMZORcBa7Tiq0MZ7KtMZiqoUXUJX4LM1qA,23083
|
|
12
|
+
aiohomematic/validator.py,sha256=qX5janicu4jLrAVzKoyWgXe1XU4EOjk5-QhNFL4awTQ,3541
|
|
13
|
+
aiohomematic/central/__init__.py,sha256=9q1cl0qCVvPSd6eW7ipFdbd783SVLVz1fD_Hh8iDDv8,93519
|
|
14
|
+
aiohomematic/central/decorators.py,sha256=vrujdw2QMXva-7DGXMQyittujx0q7cPuGD-SCeQlD30,6886
|
|
15
|
+
aiohomematic/central/rpc_server.py,sha256=PX6idUEZ5j9fx9y__Q--Zcc2cyFMhLBie-lNvkx1bsI,10949
|
|
16
|
+
aiohomematic/client/__init__.py,sha256=X7lR-A9fAYKbVoR3aNRui_-pfeR20-sehNSlXvkrIoE,73905
|
|
17
|
+
aiohomematic/client/_rpc_errors.py,sha256=IaYjX60mpBJ43gDCJjuUSVraamy5jXHTRjOnutK4azs,2962
|
|
18
|
+
aiohomematic/client/json_rpc.py,sha256=u25nedb3AEK54GN9F4z3oOCfoE-YTYZpL4166OsRPAg,51274
|
|
19
|
+
aiohomematic/client/rpc_proxy.py,sha256=T6tmfBAJJSFxzBLrhKJc6_KiHyTs5EVnStQsVJA5YkY,11604
|
|
20
|
+
aiohomematic/model/__init__.py,sha256=gUYa8ROWSbXjZTWUTmINZ1bbYAxGkVpA-onxaJN2Iso,5436
|
|
21
|
+
aiohomematic/model/data_point.py,sha256=7FqnFO9C0_UtUfwPIsaq61QDhjZqsmjkepzzc_9StUs,41595
|
|
22
|
+
aiohomematic/model/device.py,sha256=CQ_zFRVnwmuEQzBEHlgz3DxFzDnW36FVCPlckmho2TI,52891
|
|
23
|
+
aiohomematic/model/event.py,sha256=uO6Z2pCZEU_8MR8uRIIZjX8IL0rFh7sNhhTNT8yFoVU,6852
|
|
24
|
+
aiohomematic/model/support.py,sha256=ITyxBIJ2Bv69fcwuUD2HyMKlburOnLo9NFs5VKg34ZY,19635
|
|
25
|
+
aiohomematic/model/update.py,sha256=p_zyC73fERQxXF2d1O89zi9EJovzNlrYIONJfPOz5_g,5134
|
|
26
|
+
aiohomematic/model/calculated/__init__.py,sha256=JNtxK4-XZeyR6MxfKVPdcF6ezQliQYTWEDoeOChumaE,2966
|
|
27
|
+
aiohomematic/model/calculated/climate.py,sha256=rm9b4rCrmsZAA5_dzP6YRtahdveI97581_EnC4utqpg,10499
|
|
28
|
+
aiohomematic/model/calculated/data_point.py,sha256=ESUqwolPViXPuH9hvL0q5FMvsGXjcqxeyySpNTUAMU8,11587
|
|
29
|
+
aiohomematic/model/calculated/operating_voltage_level.py,sha256=99A8HvahVS4IxpgK1dsgQXHfeubU7JI2c0ObagbnSNQ,13505
|
|
30
|
+
aiohomematic/model/calculated/support.py,sha256=GBD35_OR3TEAWo5ADeH_gk2Ebw9pHOtOnOS7umCkXB0,7989
|
|
31
|
+
aiohomematic/model/custom/__init__.py,sha256=JxJXyr2CgKlj-jc1xQ14lbMT76vvswfLUecwj8RJCXA,6073
|
|
32
|
+
aiohomematic/model/custom/climate.py,sha256=5r0zjBOhnp4QcL2p6x2UYhIMQqa0SG1Sw1cnnyY9POs,57274
|
|
33
|
+
aiohomematic/model/custom/const.py,sha256=s4iqhwvt8x41h4-CtMCyXwryGHuBNbhBrcJ5zGVRFJU,4939
|
|
34
|
+
aiohomematic/model/custom/cover.py,sha256=KQzLEoPkKgZ2oi2oblUrGReQnT_0WAuseWAxu_xH5_Y,29035
|
|
35
|
+
aiohomematic/model/custom/data_point.py,sha256=WLKygP3SQwtG35BpOH3HNt_o-z9dfSUmuSyPDIEWF8A,14133
|
|
36
|
+
aiohomematic/model/custom/definition.py,sha256=miZssuy1u5EcQ4opOWo9n0Eko-2aIK9f3MAKYiMmJb8,35640
|
|
37
|
+
aiohomematic/model/custom/light.py,sha256=JC7GeU87gObBN0b1fCjm0VzgCtoytWsmq2Sd-fQqBGM,44426
|
|
38
|
+
aiohomematic/model/custom/lock.py,sha256=iJY8jiJA_HRynpbeACEQ_kzwiXOfAaT2IcF1FbXc0xY,11974
|
|
39
|
+
aiohomematic/model/custom/siren.py,sha256=iaCJuRWiQH-r_ckhPZGRfmzxI8PddBBA5z_Jo78f1qI,9763
|
|
40
|
+
aiohomematic/model/custom/support.py,sha256=FPhC3kp7blJu4jWHWAmXUXv4JWJu5nhQkrr8dyYxFas,1431
|
|
41
|
+
aiohomematic/model/custom/switch.py,sha256=u4zbda4MFz_rmyuIvTgQC6Gi1XDWvX5EsOhP2NiQy38,6941
|
|
42
|
+
aiohomematic/model/custom/valve.py,sha256=K42YSlG6610reWo3S6lo070WvEN2InVA8MsMpXltRLs,4220
|
|
43
|
+
aiohomematic/model/generic/__init__.py,sha256=-4yben7G-QKBWMWpusrLkGo65a4IXIPYoiGu49T_KMM,7653
|
|
44
|
+
aiohomematic/model/generic/action.py,sha256=VDFCAkX0TkXV4xh3ya0AUIKnjOKF_rEobI6qdW5mAOQ,975
|
|
45
|
+
aiohomematic/model/generic/binary_sensor.py,sha256=yABUafcBmPHLNAkdj_malYroBZc5UaunYLhmRtS2nGU,865
|
|
46
|
+
aiohomematic/model/generic/button.py,sha256=3ahmj1BJZfdh6h6YV-urC8UwcKRp94QPOQtsF0fBI3Y,718
|
|
47
|
+
aiohomematic/model/generic/data_point.py,sha256=P89BuRm8pWUBvCeR8XVHE2A1SqYb53REJCCOUnoKN34,6062
|
|
48
|
+
aiohomematic/model/generic/number.py,sha256=WNu4EB_npDZ8f7RrCrab1g9KzRtG8dziUvNQApEKXYk,2656
|
|
49
|
+
aiohomematic/model/generic/select.py,sha256=-CXHdvzwWGp74t5UVdIWOFhlcW7bf0hcuGriBl7EWXk,1516
|
|
50
|
+
aiohomematic/model/generic/sensor.py,sha256=ueqXw9bkFFJeD_mer6idpMTGFg6rweDEUNOgqsF22NA,2240
|
|
51
|
+
aiohomematic/model/generic/switch.py,sha256=Y5Bml60QoHs14mfsMvhsk7S7I-2QSBoB7KWHMCJak3Q,1820
|
|
52
|
+
aiohomematic/model/generic/text.py,sha256=AOMZCHgPO2v4lza-OI0J6WNsQcUOvab9HA5sRN8NQZQ,832
|
|
53
|
+
aiohomematic/model/hub/__init__.py,sha256=qQkjMYd9-xE5iWvN-sMTcDvHIghz7g0z7u2ja73vaKQ,13503
|
|
54
|
+
aiohomematic/model/hub/binary_sensor.py,sha256=yqBXEzVS7zMoY4N7agwQ70ypAgIRkfUeBNCInsQV_kA,730
|
|
55
|
+
aiohomematic/model/hub/button.py,sha256=fEtBIxKF32kyacaCgsDLohw1exDpFtE7SCwEYgBAlOY,868
|
|
56
|
+
aiohomematic/model/hub/data_point.py,sha256=7AKkZM4cpO3qhVF5rKPs25H2JKGjHQlHd-wJdf73Wcg,10631
|
|
57
|
+
aiohomematic/model/hub/number.py,sha256=zS5ft2wkUUJ0NkUlhkWvbXCeMcI9v-gH36NVCdrNtcU,1215
|
|
58
|
+
aiohomematic/model/hub/select.py,sha256=ENF1TMk5jrNbk7lspNTfWIROMifjJMrllnu6htM1C2E,1652
|
|
59
|
+
aiohomematic/model/hub/sensor.py,sha256=F--BHrgziizBOkXTupwV0ZZlzNnjsWrL9qnkHQv-lEE,1170
|
|
60
|
+
aiohomematic/model/hub/switch.py,sha256=sllPvUy4NggktWjUqobDRZLSTJa2OX88WE1M8wlGmr8,1368
|
|
61
|
+
aiohomematic/model/hub/text.py,sha256=JSCpC37sVm4TbjJCd0vaqybHVuCz1ctNHXEyJnmmMVs,977
|
|
62
|
+
aiohomematic/rega_scripts/fetch_all_device_data.fn,sha256=7uxhHoelAOsH6yYr1n1M1XwIRgDmItiHnWIMhDYEimk,4373
|
|
63
|
+
aiohomematic/rega_scripts/get_program_descriptions.fn,sha256=pGmj377MkqbZi6j-UBKQAsXTphwh1kDwDKqXij8zUBE,835
|
|
64
|
+
aiohomematic/rega_scripts/get_serial.fn,sha256=t1oeo-sB_EuVeiY24PLcxFSkdQVgEWGXzpemJQZFybY,1079
|
|
65
|
+
aiohomematic/rega_scripts/get_system_variable_descriptions.fn,sha256=UKXvC0_5lSApdQ2atJc0E5Stj5Zt3lqh0EcliokYu2c,849
|
|
66
|
+
aiohomematic/rega_scripts/set_program_state.fn,sha256=0bnv7lUj8FMjDZBz325tDVP61m04cHjVj4kIOnUUgpY,279
|
|
67
|
+
aiohomematic/rega_scripts/set_system_variable.fn,sha256=sTmr7vkPTPnPkor5cnLKlDvfsYRbGO1iq2z_2pMXq5E,383
|
|
68
|
+
aiohomematic/store/__init__.py,sha256=PHwF_tw_zL20ODwLywHgpOLWrghQo_BMZzeiQSXN1Fc,1081
|
|
69
|
+
aiohomematic/store/dynamic.py,sha256=kgZs5gJ4i8bHZKkJ883xuLecSKdjj6UwlLRJAvQcNGI,22528
|
|
70
|
+
aiohomematic/store/persistent.py,sha256=yRrGgCLGQtuUAKg37UeLDnp0HcnZjl9DordbjJukLCA,38066
|
|
71
|
+
aiohomematic/store/visibility.py,sha256=0y93kPTugqQsrh6kKamfgwBkbIdBPEZpQVv_1NaLz3A,31662
|
|
72
|
+
aiohomematic-2025.10.9.dist-info/licenses/LICENSE,sha256=q-B0xpREuZuvKsmk3_iyVZqvZ-vJcWmzMZpeAd0RqtQ,1083
|
|
73
|
+
aiohomematic_support/__init__.py,sha256=_0YtF4lTdC_k6-zrM2IefI0u0LMr_WA61gXAyeGLgbY,66
|
|
74
|
+
aiohomematic_support/client_local.py,sha256=GAIg3DN4lD4H9eA3gs_CILtWR3tphXrf_Hai9rWFpM8,12817
|
|
75
|
+
aiohomematic-2025.10.9.dist-info/METADATA,sha256=ezEHtzT_d_BJhX-cCb920mQK5ED0UmvdNsqAoGJrELw,7603
|
|
76
|
+
aiohomematic-2025.10.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
77
|
+
aiohomematic-2025.10.9.dist-info/top_level.txt,sha256=5TDRlUWQPThIUwQjOj--aUo4UA-ow4m0sNhnoCBi5n8,34
|
|
78
|
+
aiohomematic-2025.10.9.dist-info/RECORD,,
|
|
@@ -12,7 +12,7 @@ from typing import Any, Final, cast
|
|
|
12
12
|
|
|
13
13
|
import orjson
|
|
14
14
|
|
|
15
|
-
from aiohomematic.client import _LOGGER, Client,
|
|
15
|
+
from aiohomematic.client import _LOGGER, Client, ClientConfig
|
|
16
16
|
from aiohomematic.const import (
|
|
17
17
|
ADDRESS_SEPARATOR,
|
|
18
18
|
DP_KEY_VALUE,
|
|
@@ -41,7 +41,7 @@ BACKEND_LOCAL: Final = "PyDevCCU"
|
|
|
41
41
|
class ClientLocal(Client): # pragma: no cover
|
|
42
42
|
"""Local client object to provide access to locally stored files."""
|
|
43
43
|
|
|
44
|
-
def __init__(self, *, client_config:
|
|
44
|
+
def __init__(self, *, client_config: ClientConfig, local_resources: LocalRessources) -> None:
|
|
45
45
|
"""Initialize the Client."""
|
|
46
46
|
super().__init__(client_config=client_config)
|
|
47
47
|
self._local_resources = local_resources
|
aiohomematic/caches/__init__.py
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# SPDX-License-Identifier: MIT
|
|
2
|
-
# Copyright (c) 2021-2025 Daniel Perna, SukramJ
|
|
3
|
-
"""
|
|
4
|
-
Cache packages for AioHomematic.
|
|
5
|
-
|
|
6
|
-
This package groups cache implementations used throughout the library:
|
|
7
|
-
- persistent: Long-lived on-disk caches for device and paramset descriptions.
|
|
8
|
-
- dynamic: Short-lived in-memory caches for runtime values and connection health.
|
|
9
|
-
- visibility: Parameter visibility rules to decide which parameters are relevant.
|
|
10
|
-
"""
|
|
11
|
-
|
|
12
|
-
from __future__ import annotations
|