aiohomematic 2025.10.7__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 +59 -31
- aiohomematic/central/decorators.py +1 -1
- aiohomematic/central/rpc_server.py +1 -1
- aiohomematic/client/__init__.py +19 -13
- aiohomematic/client/_rpc_errors.py +1 -1
- aiohomematic/client/json_rpc.py +29 -3
- aiohomematic/client/rpc_proxy.py +20 -2
- aiohomematic/const.py +25 -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 +21 -4
- aiohomematic/model/calculated/climate.py +59 -1
- aiohomematic/model/calculated/data_point.py +1 -1
- aiohomematic/model/calculated/operating_voltage_level.py +1 -1
- aiohomematic/model/calculated/support.py +41 -3
- 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 -13
- 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 +20 -17
- aiohomematic/validator.py +1 -1
- {aiohomematic-2025.10.7.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.7.dist-info/RECORD +0 -78
- {aiohomematic-2025.10.7.dist-info → aiohomematic-2025.10.9.dist-info}/WHEEL +0 -0
- {aiohomematic-2025.10.7.dist-info → aiohomematic-2025.10.9.dist-info}/licenses/LICENSE +0 -0
- {aiohomematic-2025.10.7.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
|
|
@@ -43,6 +45,7 @@ from aiohomematic.const import (
|
|
|
43
45
|
NO_CACHE_ENTRY,
|
|
44
46
|
PRIMARY_CLIENT_CANDIDATE_INTERFACES,
|
|
45
47
|
TIMEOUT,
|
|
48
|
+
UTF_8,
|
|
46
49
|
CommandRxMode,
|
|
47
50
|
DeviceDescription,
|
|
48
51
|
ParamsetKey,
|
|
@@ -98,7 +101,7 @@ def check_config(
|
|
|
98
101
|
host: str,
|
|
99
102
|
username: str,
|
|
100
103
|
password: str,
|
|
101
|
-
|
|
104
|
+
storage_directory: str,
|
|
102
105
|
callback_host: str | None,
|
|
103
106
|
callback_port_xml_rpc: int | None,
|
|
104
107
|
json_port: int | None,
|
|
@@ -118,7 +121,7 @@ def check_config(
|
|
|
118
121
|
if not check_password(password=password):
|
|
119
122
|
config_failures.append("Password is not valid")
|
|
120
123
|
try:
|
|
121
|
-
check_or_create_directory(directory=
|
|
124
|
+
check_or_create_directory(directory=storage_directory)
|
|
122
125
|
except BaseHomematicException as bhexc:
|
|
123
126
|
config_failures.append(extract_exc_args(exc=bhexc)[0])
|
|
124
127
|
if callback_host and not (is_hostname(hostname=callback_host) or is_ipv4_address(address=callback_host)):
|
|
@@ -141,15 +144,12 @@ def has_primary_client(*, interface_configs: AbstractSet[hmcl.InterfaceConfig])
|
|
|
141
144
|
return False
|
|
142
145
|
|
|
143
146
|
|
|
144
|
-
def delete_file(
|
|
145
|
-
"""Delete the file."""
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
and (os.path.isfile(file_path) or os.path.islink(file_path))
|
|
151
|
-
):
|
|
152
|
-
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)
|
|
153
153
|
|
|
154
154
|
|
|
155
155
|
def check_or_create_directory(*, directory: str) -> bool:
|
|
@@ -526,9 +526,9 @@ def hash_sha256(*, value: Any) -> str:
|
|
|
526
526
|
data = orjson.dumps(value, option=orjson.OPT_SORT_KEYS | orjson.OPT_NON_STR_KEYS)
|
|
527
527
|
except Exception:
|
|
528
528
|
# Fallback: convert to a hashable representation and use repr()
|
|
529
|
-
data = repr(_make_value_hashable(value=value)).encode()
|
|
529
|
+
data = repr(_make_value_hashable(value=value)).encode(encoding=UTF_8)
|
|
530
530
|
hasher.update(data)
|
|
531
|
-
return base64.b64encode(hasher.digest()).decode()
|
|
531
|
+
return base64.b64encode(hasher.digest()).decode(encoding=UTF_8)
|
|
532
532
|
|
|
533
533
|
|
|
534
534
|
def _make_value_hashable(*, value: Any) -> Any:
|
|
@@ -577,6 +577,11 @@ def cleanup_text_from_html_tags(*, text: str) -> str:
|
|
|
577
577
|
return re.sub(HTMLTAG_PATTERN, "", text)
|
|
578
578
|
|
|
579
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
|
+
|
|
580
585
|
# --- Structured error boundary logging helpers ---
|
|
581
586
|
|
|
582
587
|
_BOUNDARY_MSG = "error_boundary"
|
|
@@ -632,9 +637,7 @@ def log_boundary_error(
|
|
|
632
637
|
log_message += f" {message}"
|
|
633
638
|
|
|
634
639
|
if log_context:
|
|
635
|
-
log_message += (
|
|
636
|
-
f" ctx={orjson.dumps(_safe_log_context(context=log_context), option=orjson.OPT_SORT_KEYS).decode()}"
|
|
637
|
-
)
|
|
640
|
+
log_message += f" ctx={orjson.dumps(_safe_log_context(context=log_context), option=orjson.OPT_SORT_KEYS).decode(encoding=UTF_8)}"
|
|
638
641
|
|
|
639
642
|
# Choose level if not provided:
|
|
640
643
|
if (chosen_level := level) is None:
|
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
|