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.

Files changed (56) hide show
  1. aiohomematic/async_support.py +7 -7
  2. aiohomematic/caches/dynamic.py +31 -26
  3. aiohomematic/caches/persistent.py +34 -32
  4. aiohomematic/caches/visibility.py +19 -7
  5. aiohomematic/central/__init__.py +90 -74
  6. aiohomematic/central/decorators.py +2 -2
  7. aiohomematic/central/xml_rpc_server.py +27 -24
  8. aiohomematic/client/__init__.py +72 -56
  9. aiohomematic/client/_rpc_errors.py +3 -3
  10. aiohomematic/client/json_rpc.py +33 -25
  11. aiohomematic/client/xml_rpc.py +14 -9
  12. aiohomematic/const.py +3 -1
  13. aiohomematic/converter.py +19 -19
  14. aiohomematic/exceptions.py +2 -1
  15. aiohomematic/model/__init__.py +4 -3
  16. aiohomematic/model/calculated/__init__.py +1 -1
  17. aiohomematic/model/calculated/climate.py +9 -9
  18. aiohomematic/model/calculated/data_point.py +13 -7
  19. aiohomematic/model/calculated/operating_voltage_level.py +2 -2
  20. aiohomematic/model/calculated/support.py +7 -7
  21. aiohomematic/model/custom/__init__.py +3 -3
  22. aiohomematic/model/custom/climate.py +57 -34
  23. aiohomematic/model/custom/cover.py +44 -20
  24. aiohomematic/model/custom/data_point.py +9 -7
  25. aiohomematic/model/custom/definition.py +23 -17
  26. aiohomematic/model/custom/light.py +52 -23
  27. aiohomematic/model/custom/lock.py +16 -12
  28. aiohomematic/model/custom/siren.py +6 -3
  29. aiohomematic/model/custom/switch.py +3 -2
  30. aiohomematic/model/custom/valve.py +3 -2
  31. aiohomematic/model/data_point.py +62 -49
  32. aiohomematic/model/device.py +48 -42
  33. aiohomematic/model/event.py +6 -5
  34. aiohomematic/model/generic/__init__.py +6 -4
  35. aiohomematic/model/generic/action.py +1 -1
  36. aiohomematic/model/generic/data_point.py +7 -5
  37. aiohomematic/model/generic/number.py +3 -3
  38. aiohomematic/model/generic/select.py +1 -1
  39. aiohomematic/model/generic/sensor.py +2 -2
  40. aiohomematic/model/generic/switch.py +3 -3
  41. aiohomematic/model/hub/__init__.py +17 -16
  42. aiohomematic/model/hub/data_point.py +12 -7
  43. aiohomematic/model/hub/number.py +3 -3
  44. aiohomematic/model/hub/select.py +3 -3
  45. aiohomematic/model/hub/text.py +2 -2
  46. aiohomematic/model/support.py +8 -7
  47. aiohomematic/model/update.py +6 -6
  48. aiohomematic/support.py +44 -38
  49. aiohomematic/validator.py +6 -6
  50. {aiohomematic-2025.10.0.dist-info → aiohomematic-2025.10.2.dist-info}/METADATA +1 -1
  51. aiohomematic-2025.10.2.dist-info/RECORD +78 -0
  52. aiohomematic_support/client_local.py +19 -12
  53. aiohomematic-2025.10.0.dist-info/RECORD +0 -78
  54. {aiohomematic-2025.10.0.dist-info → aiohomematic-2025.10.2.dist-info}/WHEEL +0 -0
  55. {aiohomematic-2025.10.0.dist-info → aiohomematic-2025.10.2.dist-info}/licenses/LICENSE +0 -0
  56. {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.0
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(self.interface_id, channel_address, parameter, value)
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(self.interface_id, channel_address, parameter, values[parameter])
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,,