aiohomematic 2025.10.0__py3-none-any.whl → 2025.10.2__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/async_support.py +7 -7
- aiohomematic/caches/dynamic.py +31 -26
- aiohomematic/caches/persistent.py +34 -32
- aiohomematic/caches/visibility.py +19 -7
- aiohomematic/central/__init__.py +90 -74
- aiohomematic/central/decorators.py +2 -2
- aiohomematic/central/xml_rpc_server.py +27 -24
- aiohomematic/client/__init__.py +72 -56
- aiohomematic/client/_rpc_errors.py +3 -3
- aiohomematic/client/json_rpc.py +33 -25
- aiohomematic/client/xml_rpc.py +14 -9
- aiohomematic/const.py +3 -1
- aiohomematic/converter.py +19 -19
- aiohomematic/exceptions.py +2 -1
- aiohomematic/model/__init__.py +4 -3
- aiohomematic/model/calculated/__init__.py +1 -1
- aiohomematic/model/calculated/climate.py +9 -9
- aiohomematic/model/calculated/data_point.py +13 -7
- aiohomematic/model/calculated/operating_voltage_level.py +2 -2
- aiohomematic/model/calculated/support.py +7 -7
- aiohomematic/model/custom/__init__.py +3 -3
- aiohomematic/model/custom/climate.py +57 -34
- aiohomematic/model/custom/cover.py +44 -20
- aiohomematic/model/custom/data_point.py +9 -7
- aiohomematic/model/custom/definition.py +23 -17
- aiohomematic/model/custom/light.py +52 -23
- aiohomematic/model/custom/lock.py +16 -12
- aiohomematic/model/custom/siren.py +6 -3
- aiohomematic/model/custom/switch.py +3 -2
- aiohomematic/model/custom/valve.py +3 -2
- aiohomematic/model/data_point.py +62 -49
- aiohomematic/model/device.py +48 -42
- aiohomematic/model/event.py +6 -5
- aiohomematic/model/generic/__init__.py +6 -4
- aiohomematic/model/generic/action.py +1 -1
- aiohomematic/model/generic/data_point.py +7 -5
- aiohomematic/model/generic/number.py +3 -3
- aiohomematic/model/generic/select.py +1 -1
- aiohomematic/model/generic/sensor.py +2 -2
- aiohomematic/model/generic/switch.py +3 -3
- aiohomematic/model/hub/__init__.py +17 -16
- aiohomematic/model/hub/data_point.py +12 -7
- aiohomematic/model/hub/number.py +3 -3
- aiohomematic/model/hub/select.py +3 -3
- aiohomematic/model/hub/text.py +2 -2
- aiohomematic/model/support.py +8 -7
- aiohomematic/model/update.py +6 -6
- aiohomematic/support.py +44 -38
- aiohomematic/validator.py +6 -6
- {aiohomematic-2025.10.0.dist-info → aiohomematic-2025.10.2.dist-info}/METADATA +1 -1
- aiohomematic-2025.10.2.dist-info/RECORD +78 -0
- aiohomematic_support/client_local.py +19 -12
- aiohomematic-2025.10.0.dist-info/RECORD +0 -78
- {aiohomematic-2025.10.0.dist-info → aiohomematic-2025.10.2.dist-info}/WHEEL +0 -0
- {aiohomematic-2025.10.0.dist-info → aiohomematic-2025.10.2.dist-info}/licenses/LICENSE +0 -0
- {aiohomematic-2025.10.0.dist-info → aiohomematic-2025.10.2.dist-info}/top_level.txt +0 -0
aiohomematic/validator.py
CHANGED
|
@@ -28,42 +28,42 @@ positive_int = vol.All(vol.Coerce(int), vol.Range(min=0))
|
|
|
28
28
|
wait_for = vol.All(vol.Coerce(int), vol.Range(min=1, max=MAX_WAIT_FOR_CALLBACK))
|
|
29
29
|
|
|
30
30
|
|
|
31
|
-
def channel_address(value: str) -> str:
|
|
31
|
+
def channel_address(value: str, /) -> str:
|
|
32
32
|
"""Validate channel_address."""
|
|
33
33
|
if is_channel_address(address=value):
|
|
34
34
|
return value
|
|
35
35
|
raise vol.Invalid("channel_address is invalid")
|
|
36
36
|
|
|
37
37
|
|
|
38
|
-
def device_address(value: str) -> str:
|
|
38
|
+
def device_address(value: str, /) -> str:
|
|
39
39
|
"""Validate channel_address."""
|
|
40
40
|
if is_device_address(address=value):
|
|
41
41
|
return value
|
|
42
42
|
raise vol.Invalid("device_address is invalid")
|
|
43
43
|
|
|
44
44
|
|
|
45
|
-
def hostname(value: str) -> str:
|
|
45
|
+
def hostname(value: str, /) -> str:
|
|
46
46
|
"""Validate hostname."""
|
|
47
47
|
if is_hostname(hostname=value):
|
|
48
48
|
return value
|
|
49
49
|
raise vol.Invalid("hostname is invalid")
|
|
50
50
|
|
|
51
51
|
|
|
52
|
-
def ipv4_address(value: str) -> str:
|
|
52
|
+
def ipv4_address(value: str, /) -> str:
|
|
53
53
|
"""Validate ipv4_address."""
|
|
54
54
|
if is_ipv4_address(address=value):
|
|
55
55
|
return value
|
|
56
56
|
raise vol.Invalid("ipv4_address is invalid")
|
|
57
57
|
|
|
58
58
|
|
|
59
|
-
def password(value: str) -> str:
|
|
59
|
+
def password(value: str, /) -> str:
|
|
60
60
|
"""Validate password."""
|
|
61
61
|
if check_password(password=value):
|
|
62
62
|
return value
|
|
63
63
|
raise vol.Invalid("password is invalid")
|
|
64
64
|
|
|
65
65
|
|
|
66
|
-
def paramset_key(value: str) -> str:
|
|
66
|
+
def paramset_key(value: str, /) -> str:
|
|
67
67
|
"""Validate paramset_key."""
|
|
68
68
|
if is_paramset_key(paramset_key=value):
|
|
69
69
|
return value
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: aiohomematic
|
|
3
|
-
Version: 2025.10.
|
|
3
|
+
Version: 2025.10.2
|
|
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=ngULK_anZQwwUUCVcberBdVjguYfboiuG9VoueKy9fA,2283
|
|
2
|
+
aiohomematic/async_support.py,sha256=gqyZH8x5dYfRsS77pm28euMwG6GYeFWomzSE0dQxzfc,6134
|
|
3
|
+
aiohomematic/const.py,sha256=HZ24tNwS3R9AwEVSX3o6KrUgXBZuNly5NbuAnFeiAkE,25565
|
|
4
|
+
aiohomematic/context.py,sha256=M7gkA7KFT0dp35gzGz2dzKVXu1PP0sAnepgLlmjyRS4,451
|
|
5
|
+
aiohomematic/converter.py,sha256=gaNHe-WEiBStZMuuRz9iGn3Mo_CGz1bjgLtlYBJJAko,3624
|
|
6
|
+
aiohomematic/decorators.py,sha256=oHEFSJoJVd-h9RYb6NLTJ60erkpRHPYv7EEipKn1a9Q,10636
|
|
7
|
+
aiohomematic/exceptions.py,sha256=8Uu3rADawhYlAz6y4J52aJ-wKok8Z7YbUYUwWeGMKhs,5028
|
|
8
|
+
aiohomematic/hmcli.py,sha256=qNstNDX6q8t3mJFCGlXlmRVobGabntrPtFi3kchf1Eg,4933
|
|
9
|
+
aiohomematic/property_decorators.py,sha256=TN07L9uAos2hB7aqaSIRPziYowWWJXSDFnZqxg0WFhs,16201
|
|
10
|
+
aiohomematic/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
+
aiohomematic/support.py,sha256=w05YlO1IrelF2a1zKkUGWyr5E-nDJ-knh0LQqOHpR34,20514
|
|
12
|
+
aiohomematic/validator.py,sha256=HUikmo-SFksehFBAdZmBv4ajy0XkjgvXvcCfbexnzZo,3563
|
|
13
|
+
aiohomematic/caches/__init__.py,sha256=_gI30tbsWgPRaHvP6cRxOQr6n9bYZzU-jp1WbHhWg-A,470
|
|
14
|
+
aiohomematic/caches/dynamic.py,sha256=vyQsjBc2uGoNCCrWPMGmNBlUQ9GYvgVuupA9bhqH5hI,21466
|
|
15
|
+
aiohomematic/caches/persistent.py,sha256=2bgASru4zbrFEd8rOn2YcReeHPiPJE8hMgMUPAbGh68,20117
|
|
16
|
+
aiohomematic/caches/visibility.py,sha256=SThfEO3LKbIIERD4Novyj4ZZUkcYrBuvYdNQfPO29JQ,31676
|
|
17
|
+
aiohomematic/central/__init__.py,sha256=zmZGMnRhTv_sooFLjwQ0_MRs2DEQ-EvwtGGYcu934kw,86937
|
|
18
|
+
aiohomematic/central/decorators.py,sha256=v0gCa5QEQPNEvGy0O2YIOhoJy7OKiJZJWtK64OQm7y4,6918
|
|
19
|
+
aiohomematic/central/xml_rpc_server.py,sha256=rf3fFakCX7p7eYp2XLKWZUHWHervrDPysKcWKULAlpM,10602
|
|
20
|
+
aiohomematic/client/__init__.py,sha256=XWHg8VTtiahu7jfHwq4yOVXOxUy8nw80JF9uyY7QNJI,70457
|
|
21
|
+
aiohomematic/client/_rpc_errors.py,sha256=-NPtGvkQPJ4V2clDxv1tKy09M9JZm61pUCeki9DDh6s,2984
|
|
22
|
+
aiohomematic/client/json_rpc.py,sha256=k5euUJkDzIQXdOX5JJxkua_7AUUTFspK8rTGnVKoCf8,49568
|
|
23
|
+
aiohomematic/client/xml_rpc.py,sha256=9PEOWoTG0EMUAMyqiInF4iA_AduHv_hhjJW3YhYjYqU,9614
|
|
24
|
+
aiohomematic/model/__init__.py,sha256=KO7gas_eEzm67tODKqWTs0617CSGeKKjOWOlDbhRo_Q,5458
|
|
25
|
+
aiohomematic/model/data_point.py,sha256=hpC-AmymEgx823zgRvPI0HhMq529AsvIDTG-UxISZ4A,41575
|
|
26
|
+
aiohomematic/model/device.py,sha256=15z5G2X3jSJaj-yz7jX_tnirzipRIGBJPymObY3Dmjk,52942
|
|
27
|
+
aiohomematic/model/event.py,sha256=82H8M_QNMCCC29mP3R16alJyKWS3Hb3aqY_aFMSqCvo,6874
|
|
28
|
+
aiohomematic/model/support.py,sha256=kr2k3hZQatm2EYtaL-pywbVRXNmrqunb2dPfNrVjxV8,19651
|
|
29
|
+
aiohomematic/model/update.py,sha256=5F39xNz9B2GKJ8TvJHPMC-Wu97HfkiiMawjnHEYMnoA,5156
|
|
30
|
+
aiohomematic/model/calculated/__init__.py,sha256=UGLePgKDH8JpLqjhPBgvBzjggI34omcaCPsc6tcM8Xs,2811
|
|
31
|
+
aiohomematic/model/calculated/climate.py,sha256=GXBsC5tnrC_BvnFBkJ9KUqE7uVcGD1KTU_6-OleF5H4,8545
|
|
32
|
+
aiohomematic/model/calculated/data_point.py,sha256=oTN8y3B9weh7CX3ZFiDyZFgvX77iUwge-acg49pd1sI,11609
|
|
33
|
+
aiohomematic/model/calculated/operating_voltage_level.py,sha256=ZrOPdNoWQ5QLr4yzMRsoPG3UuJKRkBUHfchIrpKZU4o,13527
|
|
34
|
+
aiohomematic/model/calculated/support.py,sha256=vOxTvWe8SBCwJpLzcVA8ibtfw4eP8yTUZj4Jt9hWt9k,6695
|
|
35
|
+
aiohomematic/model/custom/__init__.py,sha256=UzczqjsUqWvS9ZaqKeb6elbjb2y5W3cgFPB0YQUHaeM,6095
|
|
36
|
+
aiohomematic/model/custom/climate.py,sha256=zSLQUY_tU7tDlbM-vW15BGuyWRjcR_DyqOwSg1_Vmfw,57217
|
|
37
|
+
aiohomematic/model/custom/const.py,sha256=Kh1pnab6nmwbaY43CfXQy3yrWpPwsrQdl1Ea2aZ6aw0,4961
|
|
38
|
+
aiohomematic/model/custom/cover.py,sha256=hlIeQD0cZpq7X222J7ygm6kD4AE6h5IN-wcqzvZCLFA,29057
|
|
39
|
+
aiohomematic/model/custom/data_point.py,sha256=l2pTz7Fu5jGCstXHK1cWCFfBWIJeKmtt37qdGLmrQhA,14155
|
|
40
|
+
aiohomematic/model/custom/definition.py,sha256=9kSdqVOHQs65Q2Op5QknNQv5lLmZkZlGCUUCRGicOaw,35662
|
|
41
|
+
aiohomematic/model/custom/light.py,sha256=2UxQOoupwTpQ-5iwY51gL_B815sgDXNW-HG-QhAFb9E,44448
|
|
42
|
+
aiohomematic/model/custom/lock.py,sha256=ndzZ0hp7FBohw7T_qR0jPobwlcwxus9M1DuDu_7vfPw,11996
|
|
43
|
+
aiohomematic/model/custom/siren.py,sha256=KcUwADlqfbnYSoFYLbcSYMf_dOgfc_OdUJxyd7MpcGw,9763
|
|
44
|
+
aiohomematic/model/custom/support.py,sha256=UvencsvCwgpm4iqRNRt5KRs560tyw1NhYP5ZaqmCT2k,1453
|
|
45
|
+
aiohomematic/model/custom/switch.py,sha256=VKknWPJOtSwIzV-Ag_8Zg1evtkyjKh768Be_quU_R54,6885
|
|
46
|
+
aiohomematic/model/custom/valve.py,sha256=u9RYzeJ8FNmpFO6amlLElXTQdAeqac5yo7NbZYS6Z9U,4242
|
|
47
|
+
aiohomematic/model/generic/__init__.py,sha256=-ho8m9gFlORBGNPn2i8c9i5-GVLLFvTlf5FFpaTJbFw,7675
|
|
48
|
+
aiohomematic/model/generic/action.py,sha256=niJPvTs43b9GiKomdBaBKwjOwtmNxR_YRhj5Fpje9NU,997
|
|
49
|
+
aiohomematic/model/generic/binary_sensor.py,sha256=U5GvfRYbhwe0jRmaedD4LVZ_24SyyPbVr74HEfZXoxE,887
|
|
50
|
+
aiohomematic/model/generic/button.py,sha256=6jZ49woI9gYJEx__PjguDNbc5vdE1P-YcLMZZFkYRCg,740
|
|
51
|
+
aiohomematic/model/generic/data_point.py,sha256=bhCMhiIjnrl6GUeZ7RQhg20Tg2GsuUkqY1EOZOp67Fg,6073
|
|
52
|
+
aiohomematic/model/generic/number.py,sha256=nJgOkMZwNfPtzBrX2o5RAjBt-o8KrKuqtDa9LBj0Jw0,2678
|
|
53
|
+
aiohomematic/model/generic/select.py,sha256=vWfLUdQBjZLG-q-WZMxHk9Klawg_iNOEeSoVHrvG35I,1538
|
|
54
|
+
aiohomematic/model/generic/sensor.py,sha256=wCnQ8IoC8uPTN29R250pfJa4x6y9sh4c3vxQ4Km8Clg,2262
|
|
55
|
+
aiohomematic/model/generic/switch.py,sha256=VIMwIVok9kSRoSb-s5saYRHeiZcNWH4J5FyMSxUAbpw,1842
|
|
56
|
+
aiohomematic/model/generic/text.py,sha256=vtNV7YxZuxF6LzNRKRAeOtSQtPQxPaEd560OFaVR13U,854
|
|
57
|
+
aiohomematic/model/hub/__init__.py,sha256=g2m-5rba6SNCfGrlxwqYa8mlP5-N2obFAvyHJV8i4FY,13525
|
|
58
|
+
aiohomematic/model/hub/binary_sensor.py,sha256=Z4o-zghHSc83ZHUUCtHqWEGueD9K1Fe0JEt_xJNdx_Y,752
|
|
59
|
+
aiohomematic/model/hub/button.py,sha256=XMnoImnz5vDybxfrP4GWDp2M5gEMG71d8ba1YzVYAnE,890
|
|
60
|
+
aiohomematic/model/hub/data_point.py,sha256=E6qn1gVhZ4meti-Tpd03f-YyfKnkUh-FpLbwBaa-d1c,10653
|
|
61
|
+
aiohomematic/model/hub/number.py,sha256=12BK6mBOJn4aP7DWuWvMYfiaLmDX7ejd5tDCoHa2bUk,1237
|
|
62
|
+
aiohomematic/model/hub/select.py,sha256=C9ke_8U_pzI0fctIeOZHwq-fvWj5s64jW6-DcZT-SrU,1674
|
|
63
|
+
aiohomematic/model/hub/sensor.py,sha256=cIr-7bsbOLBxnH33EHQ6D42vc61abO4QYLWLzkm1T10,1192
|
|
64
|
+
aiohomematic/model/hub/switch.py,sha256=510Vrlyak5TRsMvURrGYMkad-CbGUKWh20jjHQGOios,1390
|
|
65
|
+
aiohomematic/model/hub/text.py,sha256=JOy-hfDSu95NbxP5JeGgga9NGrR8JLNmz_h4k8J1GXU,999
|
|
66
|
+
aiohomematic/rega_scripts/fetch_all_device_data.fn,sha256=7uxhHoelAOsH6yYr1n1M1XwIRgDmItiHnWIMhDYEimk,4373
|
|
67
|
+
aiohomematic/rega_scripts/get_program_descriptions.fn,sha256=pGmj377MkqbZi6j-UBKQAsXTphwh1kDwDKqXij8zUBE,835
|
|
68
|
+
aiohomematic/rega_scripts/get_serial.fn,sha256=t1oeo-sB_EuVeiY24PLcxFSkdQVgEWGXzpemJQZFybY,1079
|
|
69
|
+
aiohomematic/rega_scripts/get_system_variable_descriptions.fn,sha256=UKXvC0_5lSApdQ2atJc0E5Stj5Zt3lqh0EcliokYu2c,849
|
|
70
|
+
aiohomematic/rega_scripts/set_program_state.fn,sha256=0bnv7lUj8FMjDZBz325tDVP61m04cHjVj4kIOnUUgpY,279
|
|
71
|
+
aiohomematic/rega_scripts/set_system_variable.fn,sha256=sTmr7vkPTPnPkor5cnLKlDvfsYRbGO1iq2z_2pMXq5E,383
|
|
72
|
+
aiohomematic-2025.10.2.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=nDG6nmpMHjq8tDUEmE4mK6veGORtIsGqcr6hbGjI2rQ,12759
|
|
75
|
+
aiohomematic-2025.10.2.dist-info/METADATA,sha256=2pXDu9_TySGqUPkJvKpM8C9EjpIROMurxQl8n6pRvis,7603
|
|
76
|
+
aiohomematic-2025.10.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
77
|
+
aiohomematic-2025.10.2.dist-info/top_level.txt,sha256=5TDRlUWQPThIUwQjOj--aUo4UA-ow4m0sNhnoCBi5n8,34
|
|
78
|
+
aiohomematic-2025.10.2.dist-info/RECORD,,
|
|
@@ -41,7 +41,7 @@ BACKEND_LOCAL: Final = "Local CCU"
|
|
|
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: _ClientConfig, local_resources: LocalRessources) -> None:
|
|
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
|
|
@@ -63,7 +63,7 @@ class ClientLocal(Client): # pragma: no cover
|
|
|
63
63
|
"""Return the model of the backend."""
|
|
64
64
|
return BACKEND_LOCAL
|
|
65
65
|
|
|
66
|
-
def get_product_group(self, model: str) -> ProductGroup:
|
|
66
|
+
def get_product_group(self, *, model: str) -> ProductGroup:
|
|
67
67
|
"""Return the product group."""
|
|
68
68
|
l_model = model.lower()
|
|
69
69
|
if l_model.startswith("hmipw"):
|
|
@@ -120,34 +120,34 @@ class ClientLocal(Client): # pragma: no cover
|
|
|
120
120
|
return True
|
|
121
121
|
|
|
122
122
|
@inspector(re_raise=False, no_raise_return=False)
|
|
123
|
-
async def check_connection_availability(self, handle_ping_pong: bool) -> bool:
|
|
123
|
+
async def check_connection_availability(self, *, handle_ping_pong: bool) -> bool:
|
|
124
124
|
"""Send ping to the backend to generate PONG event."""
|
|
125
125
|
if handle_ping_pong and self.supports_ping_pong:
|
|
126
126
|
self._ping_pong_cache.handle_send_ping(ping_ts=datetime.now())
|
|
127
127
|
return True
|
|
128
128
|
|
|
129
129
|
@inspector
|
|
130
|
-
async def execute_program(self, pid: str) -> bool:
|
|
130
|
+
async def execute_program(self, *, pid: str) -> bool:
|
|
131
131
|
"""Execute a program on the backend."""
|
|
132
132
|
return True
|
|
133
133
|
|
|
134
134
|
@inspector
|
|
135
|
-
async def set_program_state(self, pid: str, state: bool) -> bool:
|
|
135
|
+
async def set_program_state(self, *, pid: str, state: bool) -> bool:
|
|
136
136
|
"""Set the program state on the backend."""
|
|
137
137
|
return True
|
|
138
138
|
|
|
139
139
|
@inspector(measure_performance=True)
|
|
140
|
-
async def set_system_variable(self, legacy_name: str, value: Any) -> bool:
|
|
140
|
+
async def set_system_variable(self, *, legacy_name: str, value: Any) -> bool:
|
|
141
141
|
"""Set a system variable on the backend."""
|
|
142
142
|
return True
|
|
143
143
|
|
|
144
144
|
@inspector
|
|
145
|
-
async def delete_system_variable(self, name: str) -> bool:
|
|
145
|
+
async def delete_system_variable(self, *, name: str) -> bool:
|
|
146
146
|
"""Delete a system variable from the backend."""
|
|
147
147
|
return True
|
|
148
148
|
|
|
149
149
|
@inspector
|
|
150
|
-
async def get_system_variable(self, name: str) -> str:
|
|
150
|
+
async def get_system_variable(self, *, name: str) -> str:
|
|
151
151
|
"""Get single system variable from the backend."""
|
|
152
152
|
return "Empty"
|
|
153
153
|
|
|
@@ -159,7 +159,7 @@ class ClientLocal(Client): # pragma: no cover
|
|
|
159
159
|
return ()
|
|
160
160
|
|
|
161
161
|
@inspector(re_raise=False)
|
|
162
|
-
async def get_all_programs(self, markers: tuple[DescriptionMarker | str, ...]) -> tuple[ProgramData, ...]:
|
|
162
|
+
async def get_all_programs(self, *, markers: tuple[DescriptionMarker | str, ...]) -> tuple[ProgramData, ...]:
|
|
163
163
|
"""Get all programs, if available."""
|
|
164
164
|
return ()
|
|
165
165
|
|
|
@@ -228,7 +228,9 @@ class ClientLocal(Client): # pragma: no cover
|
|
|
228
228
|
channel_address=channel_address, parameter=parameter, value=value
|
|
229
229
|
)
|
|
230
230
|
# fire an event to fake the state change for a simple parameter
|
|
231
|
-
await self.central.data_point_event(
|
|
231
|
+
await self.central.data_point_event(
|
|
232
|
+
interface_id=self.interface_id, channel_address=channel_address, parameter=parameter, value=value
|
|
233
|
+
)
|
|
232
234
|
return result
|
|
233
235
|
|
|
234
236
|
@inspector
|
|
@@ -300,7 +302,12 @@ class ClientLocal(Client): # pragma: no cover
|
|
|
300
302
|
|
|
301
303
|
# fire an event to fake the state change for the content of a paramset
|
|
302
304
|
for parameter in values:
|
|
303
|
-
await self.central.data_point_event(
|
|
305
|
+
await self.central.data_point_event(
|
|
306
|
+
interface_id=self.interface_id,
|
|
307
|
+
channel_address=channel_address,
|
|
308
|
+
parameter=parameter,
|
|
309
|
+
value=values[parameter],
|
|
310
|
+
)
|
|
304
311
|
return result
|
|
305
312
|
|
|
306
313
|
async def _load_all_json_files(
|
|
@@ -324,7 +331,7 @@ class ClientLocal(Client): # pragma: no cover
|
|
|
324
331
|
result.append(file_content)
|
|
325
332
|
return result
|
|
326
333
|
|
|
327
|
-
async def _load_json_file(self, anchor: str, resource: str, filename: str) -> Any | None:
|
|
334
|
+
async def _load_json_file(self, *, anchor: str, resource: str, filename: str) -> Any | None:
|
|
328
335
|
"""Load json file from disk into dict."""
|
|
329
336
|
package_path = str(importlib.resources.files(anchor))
|
|
330
337
|
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
aiohomematic/__init__.py,sha256=ngULK_anZQwwUUCVcberBdVjguYfboiuG9VoueKy9fA,2283
|
|
2
|
-
aiohomematic/async_support.py,sha256=Xc55KkIV0h8rf936QKyU4OHSZsPEZ8TwuV8gVveeRh8,6106
|
|
3
|
-
aiohomematic/const.py,sha256=iRFyrsWQX3Vb6glqBD9eMegu67CnGBDh_h2OvPmTg2o,25467
|
|
4
|
-
aiohomematic/context.py,sha256=M7gkA7KFT0dp35gzGz2dzKVXu1PP0sAnepgLlmjyRS4,451
|
|
5
|
-
aiohomematic/converter.py,sha256=QTOL8_B6SoCoqLuRSkjtOlfa7BVFSvOfnSBrDngiinA,3558
|
|
6
|
-
aiohomematic/decorators.py,sha256=oHEFSJoJVd-h9RYb6NLTJ60erkpRHPYv7EEipKn1a9Q,10636
|
|
7
|
-
aiohomematic/exceptions.py,sha256=o_H3Z0A2TQ0irNxUM9u8bmivq0L_mwPCB7nhxEawDxE,5018
|
|
8
|
-
aiohomematic/hmcli.py,sha256=qNstNDX6q8t3mJFCGlXlmRVobGabntrPtFi3kchf1Eg,4933
|
|
9
|
-
aiohomematic/property_decorators.py,sha256=TN07L9uAos2hB7aqaSIRPziYowWWJXSDFnZqxg0WFhs,16201
|
|
10
|
-
aiohomematic/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
-
aiohomematic/support.py,sha256=EKTkzx4Dd-NT5OdN-Cfg75pECYWQ9l-Me5t_2Bl5PPM,20315
|
|
12
|
-
aiohomematic/validator.py,sha256=vChkYQ9dGKCQEigiBMnoeyPkCJDJlIm6DSgR1gmeHH0,3545
|
|
13
|
-
aiohomematic/caches/__init__.py,sha256=_gI30tbsWgPRaHvP6cRxOQr6n9bYZzU-jp1WbHhWg-A,470
|
|
14
|
-
aiohomematic/caches/dynamic.py,sha256=ANZUbkueQBeKC8Jwd44LH6qdt6qBCPWgzB5J0aHGUJw,21334
|
|
15
|
-
aiohomematic/caches/persistent.py,sha256=od1hqoXopGw53gSVvd3rmT_40KuutSY43MUPKj1HAvU,19932
|
|
16
|
-
aiohomematic/caches/visibility.py,sha256=-PWXc7sJxVhJzzU8WZkiokaL_ANE7EZ2-IO8TIZHGw8,31537
|
|
17
|
-
aiohomematic/central/__init__.py,sha256=7l23fW4zUGBRxVMmGXtsz5r4wKPrI0aPaDRpvi9geQA,86159
|
|
18
|
-
aiohomematic/central/decorators.py,sha256=Sl-cMDhreiAOKkIHiei-QbIOcvbWGVX-QwB5bLeohak,6904
|
|
19
|
-
aiohomematic/central/xml_rpc_server.py,sha256=pOqOuTp1Yy5Wlqs5E-L9f_UNW8j9HSE5XMAPCdXJchI,10407
|
|
20
|
-
aiohomematic/client/__init__.py,sha256=YuVD_FNh2Q_9SiDtGTM0T--ycT3hzCgkZM_W9AOOuTg,70106
|
|
21
|
-
aiohomematic/client/_rpc_errors.py,sha256=ZPFZJ4t0tE4RVAae4L7hE9earutMwB5BFfB2NArLp9E,2975
|
|
22
|
-
aiohomematic/client/json_rpc.py,sha256=s9EOWlVed-xerRFXOQToPGAW-0p_BuOuwjvL4TZD2Ok,49393
|
|
23
|
-
aiohomematic/client/xml_rpc.py,sha256=T39zi8GatsV2d-w_SqRLgPraJWtGdZQZxAZbGM_sN9o,9518
|
|
24
|
-
aiohomematic/model/__init__.py,sha256=cqL5v5HNxlzrgLziAPf8sGU72fDneiaLTioIGcLfhTU,5442
|
|
25
|
-
aiohomematic/model/data_point.py,sha256=K_UsSJKTltllVe2tpUTyF_FggUX2t16OeW2Y_wQMm20,40916
|
|
26
|
-
aiohomematic/model/device.py,sha256=f6KVYynK6ug2HLF6mbavl20qRlZOwXhgKaYN0GJdzAE,52703
|
|
27
|
-
aiohomematic/model/event.py,sha256=omesSQ18e1tCIjjTIYTmeqwtItzjTYR3fy90-oZi4ic,6837
|
|
28
|
-
aiohomematic/model/support.py,sha256=4VQsOlkJuPhq0hLHKt5LB43YgbITjnyJMwucUYGghzM,19616
|
|
29
|
-
aiohomematic/model/update.py,sha256=QVYFhaEqtHZhZ8yGPXEx2hPMne8WAc_SkVaQ0J20oQw,5138
|
|
30
|
-
aiohomematic/model/calculated/__init__.py,sha256=pk56FYa0MNyN0MTsejSy6RdQjOUCKAqzwWSzN6_ENmk,2808
|
|
31
|
-
aiohomematic/model/calculated/climate.py,sha256=0BhrsiVS74_6jo24I8Cg9WzVAD5od3IqgiwTM0ao2n0,8518
|
|
32
|
-
aiohomematic/model/calculated/data_point.py,sha256=4b0uGuI_HYb4MkykrtSHpw7XVzrj_vVMNd-8RQcQSkg,11530
|
|
33
|
-
aiohomematic/model/calculated/operating_voltage_level.py,sha256=urlCkHjisCJ-DO6tUE0evfp45tPwsYcb81_2uoHYxS0,13521
|
|
34
|
-
aiohomematic/model/calculated/support.py,sha256=K-oUSSH6k6_J7zZ9cwxt6qIfArWd-SBWo93LuZUs1_s,6674
|
|
35
|
-
aiohomematic/model/custom/__init__.py,sha256=1sWRrAjHnHSakdrrlNW4_SZ2rg5g2WjGdI4X2PUg_h0,6064
|
|
36
|
-
aiohomematic/model/custom/climate.py,sha256=N0w4mne_UUZopaKM7yiJHGlHrY292slk6_gsh2RZ5Ng,56688
|
|
37
|
-
aiohomematic/model/custom/const.py,sha256=Kh1pnab6nmwbaY43CfXQy3yrWpPwsrQdl1Ea2aZ6aw0,4961
|
|
38
|
-
aiohomematic/model/custom/cover.py,sha256=8coWxSyFgsDKoTQIvu0czfiVufobtkHgQdlp4ocAqu8,28555
|
|
39
|
-
aiohomematic/model/custom/data_point.py,sha256=d7B8gfyDDZf8HW3f0ofeHYF32GE8kgnQ0DZYSUbLHxY,14112
|
|
40
|
-
aiohomematic/model/custom/definition.py,sha256=qDUijmDLuu9Oe837WBdpEPrfVwVZW98H7eVbD2kerW4,35487
|
|
41
|
-
aiohomematic/model/custom/light.py,sha256=P_v0ZWy0mHqluYVIsqMR7Zo1SGHdyGK_3H-GlQnHhs8,44173
|
|
42
|
-
aiohomematic/model/custom/lock.py,sha256=lIlsVLmsDWZIRzeQA5yVOQGk1YvE7qkzbFuEQk1uRG4,11932
|
|
43
|
-
aiohomematic/model/custom/siren.py,sha256=X4oqXTPLg7MfV7NL6AtJ7QMn2MVoO_TptgFRA8n9yXg,9729
|
|
44
|
-
aiohomematic/model/custom/support.py,sha256=UvencsvCwgpm4iqRNRt5KRs560tyw1NhYP5ZaqmCT2k,1453
|
|
45
|
-
aiohomematic/model/custom/switch.py,sha256=IlJv9pHPWpiax5P0EG5aRxcVWE85_h8MoNTuVxhKkvc,6872
|
|
46
|
-
aiohomematic/model/custom/valve.py,sha256=aXjIlDDhLJjv5SF2W8TKvnuN1ObutRm5H7rhYAypkUc,4229
|
|
47
|
-
aiohomematic/model/generic/__init__.py,sha256=goR2uBBGizm-A5Vvd7ii9Ai3OihBl3hIztmAEI3ceVQ,7611
|
|
48
|
-
aiohomematic/model/generic/action.py,sha256=5SPWVliRqXlPgtb2bI6le0-V6JR5krzw8z_0FaOXu5U,994
|
|
49
|
-
aiohomematic/model/generic/binary_sensor.py,sha256=U5GvfRYbhwe0jRmaedD4LVZ_24SyyPbVr74HEfZXoxE,887
|
|
50
|
-
aiohomematic/model/generic/button.py,sha256=6jZ49woI9gYJEx__PjguDNbc5vdE1P-YcLMZZFkYRCg,740
|
|
51
|
-
aiohomematic/model/generic/data_point.py,sha256=XDaWqTfwrTNtnpt2qWtHKuyQOecZeKCvo5WDS0D1ocM,6051
|
|
52
|
-
aiohomematic/model/generic/number.py,sha256=wHNIIVr41IOoROPOnBXuMRsANG6doguIEWXYnQHJbBk,2669
|
|
53
|
-
aiohomematic/model/generic/select.py,sha256=kxN5BR85Yli7kQF2DYkGiLnTgcY9LBJWI7MMwWpH1mo,1535
|
|
54
|
-
aiohomematic/model/generic/sensor.py,sha256=dWff7yBJfJSjoD4rcYdmH5HhaRCUEKfPFfOu4T1LrPo,2253
|
|
55
|
-
aiohomematic/model/generic/switch.py,sha256=oaXhECjSPT1WUdItEFTEbOLNCFZlaaqYByEHtL3GpTY,1833
|
|
56
|
-
aiohomematic/model/generic/text.py,sha256=vtNV7YxZuxF6LzNRKRAeOtSQtPQxPaEd560OFaVR13U,854
|
|
57
|
-
aiohomematic/model/hub/__init__.py,sha256=h2HfIkXejJLpXcOTW0VvRbVO70WGYMod6ax3lwrbw1c,13462
|
|
58
|
-
aiohomematic/model/hub/binary_sensor.py,sha256=Z4o-zghHSc83ZHUUCtHqWEGueD9K1Fe0JEt_xJNdx_Y,752
|
|
59
|
-
aiohomematic/model/hub/button.py,sha256=XMnoImnz5vDybxfrP4GWDp2M5gEMG71d8ba1YzVYAnE,890
|
|
60
|
-
aiohomematic/model/hub/data_point.py,sha256=cfcnr9pxE101Syd5i9cmDc4H9svVQ4R6c3QsLCdWvZM,10552
|
|
61
|
-
aiohomematic/model/hub/number.py,sha256=O5KrBU4nfZaxw2Pi2AmWAwQo8V_x79xrdt8ukoPme5Q,1222
|
|
62
|
-
aiohomematic/model/hub/select.py,sha256=My6flvM7Lmt5hF-Szx4a4X1KZZPkQ5lCVPCXTLuqBbQ,1659
|
|
63
|
-
aiohomematic/model/hub/sensor.py,sha256=cIr-7bsbOLBxnH33EHQ6D42vc61abO4QYLWLzkm1T10,1192
|
|
64
|
-
aiohomematic/model/hub/switch.py,sha256=510Vrlyak5TRsMvURrGYMkad-CbGUKWh20jjHQGOios,1390
|
|
65
|
-
aiohomematic/model/hub/text.py,sha256=bSNq4rgv2AIXELz-4HsaY-IMTYQYKsa-UX2aIwWle34,990
|
|
66
|
-
aiohomematic/rega_scripts/fetch_all_device_data.fn,sha256=7uxhHoelAOsH6yYr1n1M1XwIRgDmItiHnWIMhDYEimk,4373
|
|
67
|
-
aiohomematic/rega_scripts/get_program_descriptions.fn,sha256=pGmj377MkqbZi6j-UBKQAsXTphwh1kDwDKqXij8zUBE,835
|
|
68
|
-
aiohomematic/rega_scripts/get_serial.fn,sha256=t1oeo-sB_EuVeiY24PLcxFSkdQVgEWGXzpemJQZFybY,1079
|
|
69
|
-
aiohomematic/rega_scripts/get_system_variable_descriptions.fn,sha256=UKXvC0_5lSApdQ2atJc0E5Stj5Zt3lqh0EcliokYu2c,849
|
|
70
|
-
aiohomematic/rega_scripts/set_program_state.fn,sha256=0bnv7lUj8FMjDZBz325tDVP61m04cHjVj4kIOnUUgpY,279
|
|
71
|
-
aiohomematic/rega_scripts/set_system_variable.fn,sha256=sTmr7vkPTPnPkor5cnLKlDvfsYRbGO1iq2z_2pMXq5E,383
|
|
72
|
-
aiohomematic-2025.10.0.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=kWzrIeyrvSQx1qVX9_L1bgaFr9aPRDm3E3p82eqkFvo,12538
|
|
75
|
-
aiohomematic-2025.10.0.dist-info/METADATA,sha256=gwYr_waUP6P_Gpi82v-1EBAVkDTqVm-ah8xQG7HlzG8,7603
|
|
76
|
-
aiohomematic-2025.10.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
77
|
-
aiohomematic-2025.10.0.dist-info/top_level.txt,sha256=5TDRlUWQPThIUwQjOj--aUo4UA-ow4m0sNhnoCBi5n8,34
|
|
78
|
-
aiohomematic-2025.10.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|