aiohomematic 2026.1.29__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.
Files changed (188) hide show
  1. aiohomematic/__init__.py +110 -0
  2. aiohomematic/_log_context_protocol.py +29 -0
  3. aiohomematic/api.py +410 -0
  4. aiohomematic/async_support.py +250 -0
  5. aiohomematic/backend_detection.py +462 -0
  6. aiohomematic/central/__init__.py +103 -0
  7. aiohomematic/central/async_rpc_server.py +760 -0
  8. aiohomematic/central/central_unit.py +1152 -0
  9. aiohomematic/central/config.py +463 -0
  10. aiohomematic/central/config_builder.py +772 -0
  11. aiohomematic/central/connection_state.py +160 -0
  12. aiohomematic/central/coordinators/__init__.py +38 -0
  13. aiohomematic/central/coordinators/cache.py +414 -0
  14. aiohomematic/central/coordinators/client.py +480 -0
  15. aiohomematic/central/coordinators/connection_recovery.py +1141 -0
  16. aiohomematic/central/coordinators/device.py +1166 -0
  17. aiohomematic/central/coordinators/event.py +514 -0
  18. aiohomematic/central/coordinators/hub.py +532 -0
  19. aiohomematic/central/decorators.py +184 -0
  20. aiohomematic/central/device_registry.py +229 -0
  21. aiohomematic/central/events/__init__.py +104 -0
  22. aiohomematic/central/events/bus.py +1392 -0
  23. aiohomematic/central/events/integration.py +424 -0
  24. aiohomematic/central/events/types.py +194 -0
  25. aiohomematic/central/health.py +762 -0
  26. aiohomematic/central/rpc_server.py +353 -0
  27. aiohomematic/central/scheduler.py +794 -0
  28. aiohomematic/central/state_machine.py +391 -0
  29. aiohomematic/client/__init__.py +203 -0
  30. aiohomematic/client/_rpc_errors.py +187 -0
  31. aiohomematic/client/backends/__init__.py +48 -0
  32. aiohomematic/client/backends/base.py +335 -0
  33. aiohomematic/client/backends/capabilities.py +138 -0
  34. aiohomematic/client/backends/ccu.py +487 -0
  35. aiohomematic/client/backends/factory.py +116 -0
  36. aiohomematic/client/backends/homegear.py +294 -0
  37. aiohomematic/client/backends/json_ccu.py +252 -0
  38. aiohomematic/client/backends/protocol.py +316 -0
  39. aiohomematic/client/ccu.py +1857 -0
  40. aiohomematic/client/circuit_breaker.py +459 -0
  41. aiohomematic/client/config.py +64 -0
  42. aiohomematic/client/handlers/__init__.py +40 -0
  43. aiohomematic/client/handlers/backup.py +157 -0
  44. aiohomematic/client/handlers/base.py +79 -0
  45. aiohomematic/client/handlers/device_ops.py +1085 -0
  46. aiohomematic/client/handlers/firmware.py +144 -0
  47. aiohomematic/client/handlers/link_mgmt.py +199 -0
  48. aiohomematic/client/handlers/metadata.py +436 -0
  49. aiohomematic/client/handlers/programs.py +144 -0
  50. aiohomematic/client/handlers/sysvars.py +100 -0
  51. aiohomematic/client/interface_client.py +1304 -0
  52. aiohomematic/client/json_rpc.py +2068 -0
  53. aiohomematic/client/request_coalescer.py +282 -0
  54. aiohomematic/client/rpc_proxy.py +629 -0
  55. aiohomematic/client/state_machine.py +324 -0
  56. aiohomematic/const.py +2207 -0
  57. aiohomematic/context.py +275 -0
  58. aiohomematic/converter.py +270 -0
  59. aiohomematic/decorators.py +390 -0
  60. aiohomematic/exceptions.py +185 -0
  61. aiohomematic/hmcli.py +997 -0
  62. aiohomematic/i18n.py +193 -0
  63. aiohomematic/interfaces/__init__.py +407 -0
  64. aiohomematic/interfaces/central.py +1067 -0
  65. aiohomematic/interfaces/client.py +1096 -0
  66. aiohomematic/interfaces/coordinators.py +63 -0
  67. aiohomematic/interfaces/model.py +1921 -0
  68. aiohomematic/interfaces/operations.py +217 -0
  69. aiohomematic/logging_context.py +134 -0
  70. aiohomematic/metrics/__init__.py +125 -0
  71. aiohomematic/metrics/_protocols.py +140 -0
  72. aiohomematic/metrics/aggregator.py +534 -0
  73. aiohomematic/metrics/dataclasses.py +489 -0
  74. aiohomematic/metrics/emitter.py +292 -0
  75. aiohomematic/metrics/events.py +183 -0
  76. aiohomematic/metrics/keys.py +300 -0
  77. aiohomematic/metrics/observer.py +563 -0
  78. aiohomematic/metrics/stats.py +172 -0
  79. aiohomematic/model/__init__.py +189 -0
  80. aiohomematic/model/availability.py +65 -0
  81. aiohomematic/model/calculated/__init__.py +89 -0
  82. aiohomematic/model/calculated/climate.py +276 -0
  83. aiohomematic/model/calculated/data_point.py +315 -0
  84. aiohomematic/model/calculated/field.py +147 -0
  85. aiohomematic/model/calculated/operating_voltage_level.py +286 -0
  86. aiohomematic/model/calculated/support.py +232 -0
  87. aiohomematic/model/custom/__init__.py +214 -0
  88. aiohomematic/model/custom/capabilities/__init__.py +67 -0
  89. aiohomematic/model/custom/capabilities/climate.py +41 -0
  90. aiohomematic/model/custom/capabilities/light.py +87 -0
  91. aiohomematic/model/custom/capabilities/lock.py +44 -0
  92. aiohomematic/model/custom/capabilities/siren.py +63 -0
  93. aiohomematic/model/custom/climate.py +1130 -0
  94. aiohomematic/model/custom/cover.py +722 -0
  95. aiohomematic/model/custom/data_point.py +360 -0
  96. aiohomematic/model/custom/definition.py +300 -0
  97. aiohomematic/model/custom/field.py +89 -0
  98. aiohomematic/model/custom/light.py +1174 -0
  99. aiohomematic/model/custom/lock.py +322 -0
  100. aiohomematic/model/custom/mixins.py +445 -0
  101. aiohomematic/model/custom/profile.py +945 -0
  102. aiohomematic/model/custom/registry.py +251 -0
  103. aiohomematic/model/custom/siren.py +462 -0
  104. aiohomematic/model/custom/switch.py +195 -0
  105. aiohomematic/model/custom/text_display.py +289 -0
  106. aiohomematic/model/custom/valve.py +78 -0
  107. aiohomematic/model/data_point.py +1416 -0
  108. aiohomematic/model/device.py +1840 -0
  109. aiohomematic/model/event.py +216 -0
  110. aiohomematic/model/generic/__init__.py +327 -0
  111. aiohomematic/model/generic/action.py +40 -0
  112. aiohomematic/model/generic/action_select.py +62 -0
  113. aiohomematic/model/generic/binary_sensor.py +30 -0
  114. aiohomematic/model/generic/button.py +31 -0
  115. aiohomematic/model/generic/data_point.py +177 -0
  116. aiohomematic/model/generic/dummy.py +150 -0
  117. aiohomematic/model/generic/number.py +76 -0
  118. aiohomematic/model/generic/select.py +56 -0
  119. aiohomematic/model/generic/sensor.py +76 -0
  120. aiohomematic/model/generic/switch.py +54 -0
  121. aiohomematic/model/generic/text.py +33 -0
  122. aiohomematic/model/hub/__init__.py +100 -0
  123. aiohomematic/model/hub/binary_sensor.py +24 -0
  124. aiohomematic/model/hub/button.py +28 -0
  125. aiohomematic/model/hub/connectivity.py +190 -0
  126. aiohomematic/model/hub/data_point.py +342 -0
  127. aiohomematic/model/hub/hub.py +864 -0
  128. aiohomematic/model/hub/inbox.py +135 -0
  129. aiohomematic/model/hub/install_mode.py +393 -0
  130. aiohomematic/model/hub/metrics.py +208 -0
  131. aiohomematic/model/hub/number.py +42 -0
  132. aiohomematic/model/hub/select.py +52 -0
  133. aiohomematic/model/hub/sensor.py +37 -0
  134. aiohomematic/model/hub/switch.py +43 -0
  135. aiohomematic/model/hub/text.py +30 -0
  136. aiohomematic/model/hub/update.py +221 -0
  137. aiohomematic/model/support.py +592 -0
  138. aiohomematic/model/update.py +140 -0
  139. aiohomematic/model/week_profile.py +1827 -0
  140. aiohomematic/property_decorators.py +719 -0
  141. aiohomematic/py.typed +0 -0
  142. aiohomematic/rega_scripts/accept_device_in_inbox.fn +51 -0
  143. aiohomematic/rega_scripts/create_backup_start.fn +28 -0
  144. aiohomematic/rega_scripts/create_backup_status.fn +89 -0
  145. aiohomematic/rega_scripts/fetch_all_device_data.fn +97 -0
  146. aiohomematic/rega_scripts/get_backend_info.fn +25 -0
  147. aiohomematic/rega_scripts/get_inbox_devices.fn +61 -0
  148. aiohomematic/rega_scripts/get_program_descriptions.fn +31 -0
  149. aiohomematic/rega_scripts/get_serial.fn +44 -0
  150. aiohomematic/rega_scripts/get_service_messages.fn +83 -0
  151. aiohomematic/rega_scripts/get_system_update_info.fn +39 -0
  152. aiohomematic/rega_scripts/get_system_variable_descriptions.fn +31 -0
  153. aiohomematic/rega_scripts/set_program_state.fn +17 -0
  154. aiohomematic/rega_scripts/set_system_variable.fn +19 -0
  155. aiohomematic/rega_scripts/trigger_firmware_update.fn +67 -0
  156. aiohomematic/schemas.py +256 -0
  157. aiohomematic/store/__init__.py +55 -0
  158. aiohomematic/store/dynamic/__init__.py +43 -0
  159. aiohomematic/store/dynamic/command.py +250 -0
  160. aiohomematic/store/dynamic/data.py +175 -0
  161. aiohomematic/store/dynamic/details.py +187 -0
  162. aiohomematic/store/dynamic/ping_pong.py +416 -0
  163. aiohomematic/store/persistent/__init__.py +71 -0
  164. aiohomematic/store/persistent/base.py +285 -0
  165. aiohomematic/store/persistent/device.py +233 -0
  166. aiohomematic/store/persistent/incident.py +380 -0
  167. aiohomematic/store/persistent/paramset.py +241 -0
  168. aiohomematic/store/persistent/session.py +556 -0
  169. aiohomematic/store/serialization.py +150 -0
  170. aiohomematic/store/storage.py +689 -0
  171. aiohomematic/store/types.py +526 -0
  172. aiohomematic/store/visibility/__init__.py +40 -0
  173. aiohomematic/store/visibility/parser.py +141 -0
  174. aiohomematic/store/visibility/registry.py +722 -0
  175. aiohomematic/store/visibility/rules.py +307 -0
  176. aiohomematic/strings.json +237 -0
  177. aiohomematic/support.py +706 -0
  178. aiohomematic/tracing.py +236 -0
  179. aiohomematic/translations/de.json +237 -0
  180. aiohomematic/translations/en.json +237 -0
  181. aiohomematic/type_aliases.py +51 -0
  182. aiohomematic/validator.py +128 -0
  183. aiohomematic-2026.1.29.dist-info/METADATA +296 -0
  184. aiohomematic-2026.1.29.dist-info/RECORD +188 -0
  185. aiohomematic-2026.1.29.dist-info/WHEEL +5 -0
  186. aiohomematic-2026.1.29.dist-info/entry_points.txt +2 -0
  187. aiohomematic-2026.1.29.dist-info/licenses/LICENSE +21 -0
  188. aiohomematic-2026.1.29.dist-info/top_level.txt +1 -0
@@ -0,0 +1,296 @@
1
+ Metadata-Version: 2.4
2
+ Name: aiohomematic
3
+ Version: 2026.1.29
4
+ Summary: Homematic interface for Home Assistant running on Python 3.
5
+ Home-page: https://github.com/sukramj/aiohomematic
6
+ Author-email: SukramJ <sukramj@icloud.com>, Daniel Perna <danielperna84@gmail.com>
7
+ License: MIT License
8
+ Project-URL: Homepage, https://github.com/sukramj/aiohomematic
9
+ Project-URL: Source Code, https://github.com/sukramj/aiohomematic
10
+ Project-URL: Bug Reports, https://github.com/sukramj/aiohomematic/issues
11
+ Project-URL: Changelog, https://github.com/sukramj/aiohomematic/blob/devel/changelog.md
12
+ Project-URL: Documentation, https://github.com/sukramj/aiohomematic
13
+ Project-URL: Forum, https://github.com/sukramj/aiohomematic/discussions
14
+ Keywords: home,automation,homematic,openccu,homegear
15
+ Classifier: Development Status :: 5 - Production/Stable
16
+ Classifier: Intended Audience :: End Users/Desktop
17
+ Classifier: Intended Audience :: Developers
18
+ Classifier: License :: OSI Approved :: MIT License
19
+ Classifier: Operating System :: OS Independent
20
+ Classifier: Programming Language :: Python
21
+ Classifier: Programming Language :: Python :: 3
22
+ Classifier: Programming Language :: Python :: 3 :: Only
23
+ Classifier: Programming Language :: Python :: 3.13
24
+ Classifier: Programming Language :: Python :: 3.14
25
+ Classifier: Programming Language :: Python :: Implementation :: CPython
26
+ Classifier: Framework :: AsyncIO
27
+ Classifier: Typing :: Typed
28
+ Classifier: Topic :: Home Automation
29
+ Requires-Python: >=3.13
30
+ Description-Content-Type: text/markdown
31
+ License-File: LICENSE
32
+ Requires-Dist: aiohttp>=3.12.0
33
+ Requires-Dist: orjson>=3.11.0
34
+ Requires-Dist: python-slugify>=8.0.0
35
+ Requires-Dist: voluptuous>=0.15.0
36
+ Dynamic: license-file
37
+
38
+ [![Release][releasebadge]][release]
39
+ [![License][license-shield]](LICENSE)
40
+ [![Python][pythonbadge]][release]
41
+ [![GitHub Sponsors][sponsorsbadge]][sponsors]
42
+
43
+ # aiohomematic
44
+
45
+ A modern, async Python library for controlling and monitoring [Homematic](https://www.eq-3.com/products/homematic.html) and [HomematicIP](https://www.homematic-ip.com/en/start.html) devices. Powers the Home Assistant integration "Homematic(IP) Local". Some third-party devices/gateways (e.g., Bosch, Intertechno) may be supported as well.
46
+
47
+ This project is the modern successor to [pyhomematic](https://github.com/danielperna84/pyhomematic), focusing on automatic entity creation, fewer manual device definitions, and faster startups.
48
+
49
+ ## Key Features
50
+
51
+ - **Automatic entity discovery** from device/channel parameters
52
+ - **Extensible** via custom entity classes for complex devices (thermostats, lights, covers, locks, sirens)
53
+ - **Fast startups** through caching of paramsets
54
+ - **Robust operation** with automatic reconnection after CCU restarts
55
+ - **Fully typed** with strict mypy compliance
56
+ - **Async/await** based on asyncio
57
+
58
+ ## How It Works
59
+
60
+ Unlike pyhomematic, which required manual device mappings, aiohomematic automatically creates entities for each relevant parameter on every device channel (unless blacklisted). To achieve this it:
61
+
62
+ - Fetches and caches device paramsets (VALUES) for fast successive startups
63
+ - Provides hooks for custom entity classes where complex behavior is needed
64
+ - Includes helpers for robust operation, such as automatic reconnection after CCU restarts
65
+
66
+ ## Relationship to Homematic(IP) Local
67
+
68
+ This project follows a **two-layer architecture** that separates concerns between the library and the Home Assistant integration:
69
+
70
+ ```
71
+ ┌─────────────────────────────────────────────────────────┐
72
+ │ Home Assistant │
73
+ │ │
74
+ │ ┌────────────────────────────────────────────────────┐ │
75
+ │ │ Homematic(IP) Local Integration │ │
76
+ │ │ │ │
77
+ │ │ • Home Assistant entities (climate, light, etc.) │ │
78
+ │ │ • UI configuration flows │ │
79
+ │ │ • Services and automations │ │
80
+ │ │ • Device/entity registry integration │ │
81
+ │ └────────────────────────┬───────────────────────────┘ │
82
+ └───────────────────────────┼─────────────────────────────┘
83
+
84
+ │ uses
85
+
86
+ ┌───────────────────────────────────────────────────────────┐
87
+ │ aiohomematic │
88
+ │ │
89
+ │ • Protocol implementation (XML-RPC, JSON-RPC) │
90
+ │ • Device model and data point abstraction │
91
+ │ • Connection management and reconnection │
92
+ │ • Event handling and callbacks │
93
+ │ • Caching for fast startups │
94
+ └───────────────────────────────────────────────────────────┘
95
+
96
+ │ communicates with
97
+
98
+ ┌───────────────────────────────────────────────────────────┐
99
+ │ CCU3 / OpenCCU / Homegear │
100
+ └───────────────────────────────────────────────────────────┘
101
+ ```
102
+
103
+ ### Why Two Projects?
104
+
105
+ | Aspect | aiohomematic | Homematic(IP) Local |
106
+ | ---------------- | ------------------------------------------------------- | ----------------------------------------------------------------- |
107
+ | **Purpose** | Python library for Homematic protocol | Home Assistant integration |
108
+ | **Scope** | Protocol, devices, data points | HA entities, UI, services |
109
+ | **Dependencies** | Standalone (aiohttp, orjson) | Requires Home Assistant |
110
+ | **Reusability** | Any Python project | Home Assistant only |
111
+ | **Repository** | [aiohomematic](https://github.com/sukramj/aiohomematic) | [homematicip_local](https://github.com/sukramj/homematicip_local) |
112
+
113
+ **Benefits of this separation:**
114
+
115
+ - **Reusability**: aiohomematic can be used in any Python project, not just Home Assistant
116
+ - **Testability**: The library can be tested independently without Home Assistant
117
+ - **Maintainability**: Protocol changes don't affect HA-specific code and vice versa
118
+ - **Clear boundaries**: Each project has a focused responsibility
119
+
120
+ ### How They Work Together
121
+
122
+ 1. **Homematic(IP) Local** creates a `CentralUnit` via aiohomematic's API
123
+ 2. **aiohomematic** connects to the CCU/Homegear and discovers devices
124
+ 3. **aiohomematic** creates `Device`, `Channel`, and `DataPoint` objects
125
+ 4. **Homematic(IP) Local** wraps these in Home Assistant entities
126
+ 5. **aiohomematic** receives events from the CCU and notifies subscribers
127
+ 6. **Homematic(IP) Local** translates events into Home Assistant state updates
128
+
129
+ ### For Developers
130
+
131
+ If you want to:
132
+
133
+ - **Use Homematic devices in Home Assistant** → Install [Homematic(IP) Local](https://github.com/sukramj/homematicip_local)
134
+ - **Build a custom Python application** → Use aiohomematic directly
135
+ - **Contribute to device support** → Most changes go into aiohomematic
136
+ - **Fix HA-specific issues** → Changes go into Homematic(IP) Local
137
+
138
+ ## Requirements
139
+
140
+ ### Python
141
+
142
+ - Python 3.13 or higher
143
+
144
+ ### CCU Firmware
145
+
146
+ Due to a bug in earlier CCU2/CCU3 firmware, aiohomematic requires at least the following versions when used with HomematicIP devices:
147
+
148
+ | Platform | Minimum Version |
149
+ | -------- | --------------- |
150
+ | CCU2 | 2.53.27 |
151
+ | CCU3 | 3.53.26 |
152
+
153
+ See details: [OpenCCU Issue #843](https://github.com/OpenCCU/OpenCCU/issues/843)
154
+
155
+ ## Installation
156
+
157
+ ### For Home Assistant Users
158
+
159
+ Use the Home Assistant custom integration "Homematic(IP) Local", which is powered by aiohomematic:
160
+
161
+ 1. **Prerequisites**
162
+
163
+ - Latest version of Home Assistant
164
+ - A CCU3, OpenCCU, or Homegear instance reachable from Home Assistant
165
+ - For HomematicIP devices, ensure CCU firmware meets the minimum versions listed above
166
+
167
+ 2. **Install the integration**
168
+
169
+ - Add the custom repository: https://github.com/sukramj/homematicip_local
170
+ - Follow the [installation guide](https://github.com/sukramj/homematicip_local/wiki/Installation)
171
+
172
+ 3. **Configure via Home Assistant UI**
173
+
174
+ - Settings → Devices & Services → Add Integration → "Homematic(IP) Local"
175
+ - Enter CCU/Homegear host (IP or hostname)
176
+ - Enable TLS if using HTTPS (skip verification for self-signed certificates)
177
+ - Enter credentials
178
+ - Choose interfaces: HM (2001), HmIP (2010), Virtual (9292)
179
+
180
+ 4. **Network callbacks**
181
+ - Ensure Home Assistant is reachable from the CCU (no NAT/firewall blocking)
182
+
183
+ > **New to Homematic?** See the [Glossary](docs/glossary.md) for definitions of terms like Backend, Interface, Device, Channel.
184
+
185
+ ### For Developers
186
+
187
+ ```bash
188
+ pip install aiohomematic
189
+ ```
190
+
191
+ Or install from source:
192
+
193
+ ```bash
194
+ git clone https://github.com/sukramj/aiohomematic.git
195
+ cd aiohomematic
196
+ pip install -r requirements.txt
197
+ ```
198
+
199
+ ## Quick Start
200
+
201
+ ```python
202
+ from aiohomematic.central import CentralConfig
203
+ from aiohomematic.client import InterfaceConfig, Interface
204
+
205
+ config = CentralConfig(
206
+ central_id="ccu-main",
207
+ host="ccu.local",
208
+ username="admin",
209
+ password="secret",
210
+ default_callback_port=43439,
211
+ interface_configs={
212
+ InterfaceConfig(interface=Interface.HMIP, port=2010, enabled=True)
213
+ },
214
+ )
215
+
216
+ central = config.create_central()
217
+ await central.start()
218
+
219
+ # Access devices
220
+ for device in central.devices:
221
+ print(f"{device.name}: {device.device_address}")
222
+
223
+ await central.stop()
224
+ ```
225
+
226
+ ## Public API
227
+
228
+ The public API is explicitly defined via `__all__` in each module:
229
+
230
+ | Module | Contents |
231
+ | ------------------------- | -------------------------------------------------- |
232
+ | `aiohomematic.central` | `CentralUnit`, `CentralConfig` and related schemas |
233
+ | `aiohomematic.client` | `Client`, `InterfaceConfig`, `Interface` |
234
+ | `aiohomematic.model` | Device/channel/data point abstractions |
235
+ | `aiohomematic.exceptions` | Library exception types |
236
+ | `aiohomematic.const` | Constants and enums |
237
+
238
+ Import from specific submodules for stable imports:
239
+
240
+ ```python
241
+ from aiohomematic.central import CentralConfig, CentralUnit
242
+ from aiohomematic.client import InterfaceConfig, Interface
243
+ from aiohomematic.exceptions import ClientException
244
+ ```
245
+
246
+ ## Documentation
247
+
248
+ ### For Users
249
+
250
+ - [Changelog](changelog.md) - Release history and latest changes
251
+ - [Calculated data points](docs/calculated_data_points.md) - Derived metrics
252
+ - [Naming conventions](docs/naming.md) - How names are created
253
+ - [Input select helper](docs/input_select_helper.md) - Using input select helpers
254
+ - [Troubleshooting](docs/homeassistant_troubleshooting.md) - Common issues and debugging
255
+ - [Unignore mechanism](docs/unignore.md) - Unignoring default-ignored devices
256
+
257
+ ### For Developers
258
+
259
+ - [Architecture overview](docs/architecture.md) - Library architecture
260
+ - [Data flow](docs/data_flow.md) - How data flows through the library
261
+ - [Extension points](docs/extension_points.md) - Adding custom device profiles
262
+ - [Home Assistant lifecycle](docs/homeassistant_lifecycle.md) - Integration internals
263
+ - [Sequence diagrams](docs/sequence_diagrams.md) - Interaction flows
264
+ - [RSSI fix](docs/rssi_fix.md) - RSSI value handling
265
+
266
+ ## Contributing
267
+
268
+ Contributions are welcome! Please read our [Contributing Guide](.github/CONTRIBUTING.md) for details on:
269
+
270
+ - Development environment setup
271
+ - Code standards and type annotations
272
+ - Pull request process
273
+ - Testing guidelines
274
+
275
+ See [CLAUDE.md](CLAUDE.md) for comprehensive development guidelines.
276
+
277
+ ## Related Projects
278
+
279
+ - [Homematic(IP) Local](https://github.com/sukramj/homematicip_local) - Home Assistant integration
280
+
281
+ ## License
282
+
283
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
284
+
285
+ ## Support
286
+
287
+ [![GitHub Sponsors][sponsorsbadge]][sponsors]
288
+
289
+ If you find this project useful, consider [sponsoring](https://github.com/sponsors/SukramJ) the development.
290
+
291
+ [license-shield]: https://img.shields.io/github/license/SukramJ/aiohomematic.svg?style=for-the-badge
292
+ [pythonbadge]: https://img.shields.io/badge/Python-3.13+-blue?style=for-the-badge&logo=python&logoColor=white
293
+ [release]: https://github.com/SukramJ/aiohomematic/releases
294
+ [releasebadge]: https://img.shields.io/github/v/release/SukramJ/aiohomematic?style=for-the-badge
295
+ [sponsorsbadge]: https://img.shields.io/github/sponsors/SukramJ?style=for-the-badge&label=Sponsors&color=ea4aaa
296
+ [sponsors]: https://github.com/sponsors/SukramJ
@@ -0,0 +1,188 @@
1
+ aiohomematic/__init__.py,sha256=FQD6fZTj_zpJrNIm2qK5mnfNloPskzbjXuxS5Bu71nQ,3528
2
+ aiohomematic/_log_context_protocol.py,sha256=NDrwxCAiIWckmhzWfHpk4iEr7EhxO76GGJAMwFZpft4,764
3
+ aiohomematic/api.py,sha256=bRpLQaBqDfyibkv3IhHqdRfRSStMD_rqp9PfiNosbYY,13239
4
+ aiohomematic/async_support.py,sha256=k_JlKVhbJJDUWbLQT6sG08aKva7_EBEFpeilKGpMBv0,10287
5
+ aiohomematic/backend_detection.py,sha256=eRNiDpGkoL25MRKknPwcC6JAFPaGWYP647NtbJ2Wa7U,15133
6
+ aiohomematic/const.py,sha256=-qOViaSKp07hfmugDqKxUglbnm6pgZSDSv_QdiHSAvM,65662
7
+ aiohomematic/context.py,sha256=w_SSgzQjioToK3lo3M2guDc-vz2LDnypAgHQ9enEyn4,7899
8
+ aiohomematic/converter.py,sha256=wQnKHbYk4AvOgy1FXq_5ZK6Fvt4jv8fD4DKTRCE3who,8735
9
+ aiohomematic/decorators.py,sha256=LWnfKXPH-upqiIzszbL45C-3bl8J8kop_htPrVq6n7c,14728
10
+ aiohomematic/exceptions.py,sha256=fTXrRMwMHQ-qQ4GBzySi5NfZF5FA3bd8yTZG7pigEyk,5949
11
+ aiohomematic/hmcli.py,sha256=7kPIZ5L69sLF41_KJpu04an7keR0k7D6qSBQOti3gAo,35625
12
+ aiohomematic/i18n.py,sha256=EjbxXqTlP93oLZ6Ibcg7p9hMVZbnvIjKESziR2QjbbI,7442
13
+ aiohomematic/logging_context.py,sha256=Kuk9A-8c-4NKJFQD35h2vpLXzHviPY4yvC2jjjLj61A,3958
14
+ aiohomematic/property_decorators.py,sha256=g-14VXFmEBY_C_GY2EY1Nkd9eMD5OTEO83Tbtal1_bk,25323
15
+ aiohomematic/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
+ aiohomematic/schemas.py,sha256=6osOwrRMf86J8csdajChNmpaShTG_5m9oVyzzABpdzM,9123
17
+ aiohomematic/strings.json,sha256=16OgTugWciZ3RwBlPdY5fPs2HfG0kV8L3ioE8w4pcyk,28204
18
+ aiohomematic/support.py,sha256=bLqrirv_7DXHEyMH40Qo8lpfb1TQsZ05T9MBfl3tXOQ,22415
19
+ aiohomematic/tracing.py,sha256=9ciTiB_9vuH71nOgkdz22oQiSTL4Enu3mlPy__c2i1M,6658
20
+ aiohomematic/type_aliases.py,sha256=S_0Fm7HY0ZWWb4_SeDSO-2IUE6cyeiFFzCgsGCePVJk,2054
21
+ aiohomematic/validator.py,sha256=om2SNKp_bcuBGSdrU8fot5NciOvVH_UQl5j_ixHiWXw,3961
22
+ aiohomematic/central/__init__.py,sha256=Ahj_AwkslaHxXZilwRV9OxMhFo_rmf2JkMA08khQDJM,3815
23
+ aiohomematic/central/async_rpc_server.py,sha256=2R1T1iqzasUmL87_DSXK0yKpOSRZnkf4gUDbJJq1IvM,26322
24
+ aiohomematic/central/central_unit.py,sha256=86pn3nYAy7rrcwxTbYBuuYwS1hQn-Kq6A2VK3PYbJAo,50880
25
+ aiohomematic/central/config.py,sha256=cRLljUJcf01i2QK2LETk99uYaYO7OYtChZenG4MMKh4,17994
26
+ aiohomematic/central/config_builder.py,sha256=fgKh24CNukDZ7KpqGzktVpLPn7S7OPAFq8-s59FPWvs,23674
27
+ aiohomematic/central/connection_state.py,sha256=Pn9yRbRsrnSd-bdJKWTmUmjKYd1gieXJWPTHq7hOZNQ,6060
28
+ aiohomematic/central/decorators.py,sha256=8Z-Qv5TiL1cvw2KIDWmze5frkDFu6R2vdNq7DHNhR8A,8239
29
+ aiohomematic/central/device_registry.py,sha256=GAs8ry4BHqAK0M0Rp9EMqoAJ857tBuKtF5u92JoRGCs,6042
30
+ aiohomematic/central/health.py,sha256=3Sp89SSvvy3_POxfb8uGBbf862Z1lzZOyivWFhwyceE,24535
31
+ aiohomematic/central/rpc_server.py,sha256=bH2FULaGWUx9MFdWM35c7dJ2rGXnirH0kLW9jwP9sH8,14083
32
+ aiohomematic/central/scheduler.py,sha256=nqAekEAlPUZP8Q-M0b5yGplsFoACZXspeBTEgnJeAuQ,31397
33
+ aiohomematic/central/state_machine.py,sha256=Q4GjmE9NIub9fLek5w3gwBh-cEJtDu8g9ZD9A7cKXIo,14484
34
+ aiohomematic/central/coordinators/__init__.py,sha256=GOuburBAJ_htBp3xtoIhCJ-t_gKIgMhSjp0RCkOA_-w,1419
35
+ aiohomematic/central/coordinators/cache.py,sha256=BbwSiM4jCJIviIg65ZM74UvfkymL35ekR_XbZfx8xa8,14919
36
+ aiohomematic/central/coordinators/client.py,sha256=lrlqoHJboJeG5ut4eG0WsIKh8iSxIePb7Fwqg4XyZ5Q,17804
37
+ aiohomematic/central/coordinators/connection_recovery.py,sha256=rRFZyjlAv41nEJ-qXTxFQCtId5hdm0Z-iOKxYDlQjFw,44681
38
+ aiohomematic/central/coordinators/device.py,sha256=2lveaibq1-wd32tGkr0oq14bVZAhHEO2XqweapIWvRE,48095
39
+ aiohomematic/central/coordinators/event.py,sha256=sgVB46yf12hYsCmc56xVmKQbwZdFUy0NLo7TZ-XRujw,18579
40
+ aiohomematic/central/coordinators/hub.py,sha256=cJNiP91L8MPvJp6G1nBz6J3o-jetcKAOmBc9xfUleaQ,18722
41
+ aiohomematic/central/events/__init__.py,sha256=uNgdMxVELgDuZzWoUJdFb0nhmW8ZtAiJ0K0wlwIC-WM,2889
42
+ aiohomematic/central/events/bus.py,sha256=npkcXvP7LdK362YP9UPkM_3qgvUqyBpU1gNuRTw1X7Q,43862
43
+ aiohomematic/central/events/integration.py,sha256=DN59So2tykq4R68kgyHNBHmSEEX8SRyFAVAxBCGBD8M,13483
44
+ aiohomematic/central/events/types.py,sha256=YHU8i7qgIa_ASRzcYBnS6fBHT2wj8sFSR7oBZVjuMGQ,4841
45
+ aiohomematic/client/__init__.py,sha256=rXUhC9tPX_Z4SCYopZbxTKi3QmOW02k2WMrdPXe6vYU,7435
46
+ aiohomematic/client/_rpc_errors.py,sha256=JwC5kmtgrz9lsg-BSmuPQ3uezBexBccuOqC23wrwSsQ,6125
47
+ aiohomematic/client/ccu.py,sha256=ldEWDuMAqerLUC5NXllZSpg8Uw-O2RUGdJ4F05wXLr8,78661
48
+ aiohomematic/client/circuit_breaker.py,sha256=-xJq1ofU_TpcvmWJbQKLeq7a9Mw6SwJzas-Njew3xug,16750
49
+ aiohomematic/client/config.py,sha256=9962T-3EVA5_GwsqdkvQWYSjfnzZFfVSrbHhNs_Opk8,2106
50
+ aiohomematic/client/interface_client.py,sha256=G9jZ23jf9GWI8zrmzaqQdgBzNRHyxrU1wQqCmeSkifY,55893
51
+ aiohomematic/client/json_rpc.py,sha256=WZS62j8medlnsUL_hxIBns0BNsKshs0UDWrpq_r5j18,81079
52
+ aiohomematic/client/request_coalescer.py,sha256=-w-SMk_GriwpW8l2L8ou1s3FVbOs0OmpNMFq6N-oQaQ,8819
53
+ aiohomematic/client/rpc_proxy.py,sha256=oaGejA_pSl0F0eW3SJISHEFt6DYjof50jmeh-rQaRfM,24387
54
+ aiohomematic/client/state_machine.py,sha256=UsjT3mcG1HITSewC90Rv2KwL9fYtfuN028NLRoIexGc,11806
55
+ aiohomematic/client/backends/__init__.py,sha256=fL7PpoGW7-3nmKXZIIwAVKbXsHBAK0yYolxJvVTe_ho,1457
56
+ aiohomematic/client/backends/base.py,sha256=my3mtxzLyvrwjJ6mEhutjOExXDPNdRLa7EII0poI7jQ,10247
57
+ aiohomematic/client/backends/capabilities.py,sha256=RNZWgdS4gz78IAYGWZHGfam_Q53EVIyFh7CPrgzzEQE,3462
58
+ aiohomematic/client/backends/ccu.py,sha256=J0BGvphw-mfhGm5y1whpE_u-Ck64sqAoRu0J5Pkfq8w,18864
59
+ aiohomematic/client/backends/factory.py,sha256=80zB9b0PGMUPAYxS40e79z8TIpkZQUFaaV1xQxdfxdU,4016
60
+ aiohomematic/client/backends/homegear.py,sha256=Vn8jLAFxBqXiBghJYJ5hFzN3gR4uliFGTummMobojls,10607
61
+ aiohomematic/client/backends/json_ccu.py,sha256=XcuJy0t1EDz0vVJI3M9Q6M0nPDj2jcgukWJBVn2IEBg,8531
62
+ aiohomematic/client/backends/protocol.py,sha256=rA0NhG5RV1HFwtkwIvwuooz75ns3mPUhXpcvB4hyKkU,9769
63
+ aiohomematic/client/handlers/__init__.py,sha256=EO4ZqmHDDtKcdVssVJDr3X2BGMRB00pbQNmJk9l4BC8,1463
64
+ aiohomematic/client/handlers/backup.py,sha256=MG_OEMtLAvIESR8nT-8SwJMG-5Rtg_du7AqTU9gDr8Q,5305
65
+ aiohomematic/client/handlers/base.py,sha256=ypsouN6ykKnutqv2QluEihbxQH7SKHR9qZlG5rUIjoU,2576
66
+ aiohomematic/client/handlers/device_ops.py,sha256=U8WBNr0nijJl_fdxfRVJO8blwMNsZn9znGmFTy4f_kM,43305
67
+ aiohomematic/client/handlers/firmware.py,sha256=wcdRSe9dj252dkVV9wS9ZW7-qCGp8-kKIKmcBuAnubA,5133
68
+ aiohomematic/client/handlers/link_mgmt.py,sha256=9ELYOTyCsTYc0YEJfmFDgB4h0TsqZWUvo7IWkZiEedo,6482
69
+ aiohomematic/client/handlers/metadata.py,sha256=PS5lAO8LdQgxzLhXnNKFppcGLpOdsNreEcva93XHUig,15218
70
+ aiohomematic/client/handlers/programs.py,sha256=ov7_hzJZmQFo3wDv98pFFxgeY1MANiPJklQzDE13pzA,4379
71
+ aiohomematic/client/handlers/sysvars.py,sha256=hx2lfoYeEvlX8mHplwtrq72ptv0DtJUw27lHSg_MFW8,2907
72
+ aiohomematic/interfaces/__init__.py,sha256=__NUVXBdnhu6gpnHFT9PrXy3VGvwAdbO8fyDJhKyPB0,14416
73
+ aiohomematic/interfaces/central.py,sha256=3OJquSScRNnpiz9oNqqzuLRtmjglr-i4c1zBH9q57Wk,29613
74
+ aiohomematic/interfaces/client.py,sha256=K3PQYkekh-_Qg5Tl3gwilOHlfMgq-gqF--YneXHUGF0,31984
75
+ aiohomematic/interfaces/coordinators.py,sha256=dy8ya5quGoLhdLOfe9xrJVT5vU0Bkm1Q7TwSJIWVSkY,1586
76
+ aiohomematic/interfaces/model.py,sha256=0HB1bNvy8oF_QkVJmK5A4eYHzMgSb8Di05iyAB_9T58,54268
77
+ aiohomematic/interfaces/operations.py,sha256=hsBpdKhhrQq0VFVwtPy9X2S8O_FZgwBUAzuHcNAEBa0,6733
78
+ aiohomematic/metrics/__init__.py,sha256=ABOHZRtv-Pl74W636rtSGxv8aobs18MkUqfcZJgtGNE,3203
79
+ aiohomematic/metrics/_protocols.py,sha256=OazsCt-OjU8FbfU1qY7dT9PWA2vQGpJJr62qbD7nV6o,4048
80
+ aiohomematic/metrics/aggregator.py,sha256=G5-Ysi4N3aS9ZKQQ863zgnSsWcsD391Jn32497HaVUg,21105
81
+ aiohomematic/metrics/dataclasses.py,sha256=1mbPH9P4-JFtplptiBhnCNdtqBUXyRNuVu2sSey9GSM,14262
82
+ aiohomematic/metrics/emitter.py,sha256=aEPh653QqHyfm9htZDFeEl676k9742MidOtkZUViU7c,7924
83
+ aiohomematic/metrics/events.py,sha256=DZrT_cN6rTZPHJ5TR1GCPbKhDzqkifaJI7_SotoSGHE,4821
84
+ aiohomematic/metrics/keys.py,sha256=vwV1QunXs1NrijLTytwsfEBhZ20LBcKUEIKwTyjCOd0,8898
85
+ aiohomematic/metrics/observer.py,sha256=xXN1mJrRDkg9ALJYXcJ5OGRR6rWHucFOPwyZMk5Z3bk,17532
86
+ aiohomematic/metrics/stats.py,sha256=3NcL-Df6lQn8-cS867Gnda1YBT-F1J996JVp3xjICW8,4690
87
+ aiohomematic/model/__init__.py,sha256=oFX-AByU5lGvYGLEAYx-efLNxVuPoD6as19NMJ4w5tA,7262
88
+ aiohomematic/model/availability.py,sha256=SsTr9FX_Dg88ErhDYP3dZCocm4ERwdPFr06qKKfVEL8,2047
89
+ aiohomematic/model/data_point.py,sha256=cr8SO-FlMoBX-I6o4DzsavJy3enGVitDAxiB18j5e9k,57191
90
+ aiohomematic/model/device.py,sha256=r6j0XpVMOIMwvpht9tvSd3uscNzzVPcdIXpXhe6SXi4,78861
91
+ aiohomematic/model/event.py,sha256=XxqLGfCJC-zCk2GlrTqa1roRDB5svXzeiNxZaP4psNY,7238
92
+ aiohomematic/model/support.py,sha256=5Zmx8OKcrfRmy8EpAAmo8UxBpNhh28q2OrweyzHn2PM,20117
93
+ aiohomematic/model/update.py,sha256=sARmBHoB1c_vo-5G-kGOwT1on2ztLww3JTHM8vCuw_Q,5413
94
+ aiohomematic/model/week_profile.py,sha256=AuFpO3bRYkpMoie0J14oT1x1t_A0uiHu-Yt2SSW85ys,71648
95
+ aiohomematic/model/calculated/__init__.py,sha256=PkvY0aZfmS_uEq_nIF8Vg9J7E9BiE1qo2aDiFAJvs4c,3109
96
+ aiohomematic/model/calculated/climate.py,sha256=JMIEYXrnaO51SEgcB70ss-bnyJBkJ9SRbJyxPEnayqs,9928
97
+ aiohomematic/model/calculated/data_point.py,sha256=gY5aqgA_L7l9dM4wI2L8Np_JTAgRj3LrBkIdyKdtF_0,12458
98
+ aiohomematic/model/calculated/field.py,sha256=1yrbzT813y7zAoxtSruVIJYVBHz5XKjkS4vTorlL7E8,5892
99
+ aiohomematic/model/calculated/operating_voltage_level.py,sha256=5gKUgQHFCKtx5tm601PpnW2ZHMAOp9JC63z_OZEMdYI,12958
100
+ aiohomematic/model/calculated/support.py,sha256=Ws_4lRKUFV2_SHqTnkxyxQnDu1dvq2aWLXB_zHmK41s,7987
101
+ aiohomematic/model/custom/__init__.py,sha256=6XLRTSIRyHWoUxO7G9v2XlYI5CNAzyb305tsLzQSULg,6832
102
+ aiohomematic/model/custom/climate.py,sha256=fI9M8_aSpIosUXSpTSI7xdgYHCrIpX83VXtBkJHq8LI,46396
103
+ aiohomematic/model/custom/cover.py,sha256=8LS3jDUy_gnoKKfM-cqka-MeKXaljOFLVPWN7C8RdPE,26455
104
+ aiohomematic/model/custom/data_point.py,sha256=crBFRbFbGt-LMyMwDVx1w6M6aJllSNxu-qq-1sV8yio,15928
105
+ aiohomematic/model/custom/definition.py,sha256=Fze6UQT2rixgvVeANFglIShY3QDRfMX_kGSdmTDgQCg,10539
106
+ aiohomematic/model/custom/field.py,sha256=ni48aPH3_DGmvZ9IWoS2CzKWDrwP-ocZC7l5RMPwfLo,3206
107
+ aiohomematic/model/custom/light.py,sha256=cMkHnJ4CVZyLqqEfKGvg5wZkyW2npZbvLy6OoOw-9EQ,45640
108
+ aiohomematic/model/custom/lock.py,sha256=2WplxM_kVpAZF9TpCq3FNjCeXrSAJISjW5yPrlTAf9U,10636
109
+ aiohomematic/model/custom/mixins.py,sha256=ZQsCUqTw4r8HqEe61ToDn5icVU_X6RxlhTkoegKgTNM,13784
110
+ aiohomematic/model/custom/profile.py,sha256=NeDXiTJnYOXo7ZfHE-2-UmAkPpoFCP4xdEwJJLZqZyM,33587
111
+ aiohomematic/model/custom/registry.py,sha256=YQSkmmbXtzfYDVrb5kmrVGlCJYHuGA_qWLDaXB1jLCg,9076
112
+ aiohomematic/model/custom/siren.py,sha256=UfG2NS672nxXKy5LXeY0E2U4WTLvtv7xRyeuePyGnEw,18088
113
+ aiohomematic/model/custom/switch.py,sha256=zEZ-W_yqzizsYEdJjK7f_qCWhDBL0WPfzu92W398cuM,6511
114
+ aiohomematic/model/custom/text_display.py,sha256=xiSuN6QtnY8EDi17UREsaXjbrAvUxKkgNJfAM3cBjoo,11982
115
+ aiohomematic/model/custom/valve.py,sha256=0b44CxBiexXWqs7xHy0oIJo8fng02deKWeWV6W-3TSc,3102
116
+ aiohomematic/model/custom/capabilities/__init__.py,sha256=ESxS16veIsrDVrfRrIHzcWs8MBm1KO7m7-KyL37PF5E,1898
117
+ aiohomematic/model/custom/capabilities/climate.py,sha256=b-GdjerQJQWLRGslKBg7gJ3iMZa0mzBw9uIxrQTGkNc,1041
118
+ aiohomematic/model/custom/capabilities/light.py,sha256=9aWg6aFbzFJgE13d881MGlwz1x31_thns2jZHS1YNFU,2640
119
+ aiohomematic/model/custom/capabilities/lock.py,sha256=NT8XEhS-Sm5fnhZ0orh_6cd7GuhJak-VSagtjhF07Zc,1128
120
+ aiohomematic/model/custom/capabilities/siren.py,sha256=mGL4ROUJuj5cUGlNDvFwJ7N4Wmx-ysDm4YHQTapMlNw,1600
121
+ aiohomematic/model/generic/__init__.py,sha256=_NG4JHgYPrE7OoEEyuAI62crptYdfrK9Xf4npSroOJs,10995
122
+ aiohomematic/model/generic/action.py,sha256=2nsYVaJdyDRJjryRSOfEpIrjSgq7g706Ri0wAY-E4m0,1304
123
+ aiohomematic/model/generic/action_select.py,sha256=QzgSr3K0WETZMyOwiE-DvGdotzkLnF5bbPvlk1FiVZ0,2564
124
+ aiohomematic/model/generic/binary_sensor.py,sha256=RF7x7Ok0nXoVYhDFkeO4LR6_KLuSwud7HCtutm_3Guk,765
125
+ aiohomematic/model/generic/button.py,sha256=WvEPFQdxXIjdQLecb139FPubLp3A2TZ7W0Vng6FH_oI,764
126
+ aiohomematic/model/generic/data_point.py,sha256=rL-oFw71OHoS5q69KbIjKEVdggVhFFPtRR-GaLebKzQ,6566
127
+ aiohomematic/model/generic/dummy.py,sha256=cSGUTRRR6X-8oDA_zFtuVbyuHrIZ9UBnZhLW5mIqP-I,4902
128
+ aiohomematic/model/generic/number.py,sha256=y8GPQWcQKXhl8XcX5GC9zK6nxjmvjKt6vzjh90IlVBg,2473
129
+ aiohomematic/model/generic/select.py,sha256=5vp7XsDEEPOgqazVKzcAP4cKNHm0j0mN5_1xwPvFwUM,2160
130
+ aiohomematic/model/generic/sensor.py,sha256=ERb6TgENsNmcuCaSShh_S9B3eZbZelvEeQgZfYqhaPM,2224
131
+ aiohomematic/model/generic/switch.py,sha256=NJblclzcLCuo-nkYGjMGiwciybxr_AKw0cmgE06yWSE,1739
132
+ aiohomematic/model/generic/text.py,sha256=jJ4DUZwmTSGDWJJk0hyXq-yVcz-7OMNkCcSSskdqEP0,853
133
+ aiohomematic/model/hub/__init__.py,sha256=CtzqeI5JM0xKG5y3E2PlFFaQzJeQCB53sFrs3mTtCSo,3802
134
+ aiohomematic/model/hub/binary_sensor.py,sha256=qonK1mT_4IsVTGE8AOaSdpNTG0Rleef4ORnv2_hu2PI,730
135
+ aiohomematic/model/hub/button.py,sha256=UCgx9Agdb8nlo9bv4v3yJCCYGHjuLj0ud9NDQCDc6uY,883
136
+ aiohomematic/model/hub/connectivity.py,sha256=yfWuGXBV_chbsD3klVKHQvigwIs3SXZXlxMTMRRXCb8,6559
137
+ aiohomematic/model/hub/data_point.py,sha256=jcUHmauel5X4qsqY39IaB_5LHUUhDwtLQ4d8--qw54M,13175
138
+ aiohomematic/model/hub/hub.py,sha256=DEhN2JyQaHdGW4ljK0N5qX3AKUswmHRS0PBI8lNBVMI,36737
139
+ aiohomematic/model/hub/inbox.py,sha256=scDwtGwfD_YO5pCRfxbU6ahCwutl7F5XfTfb5QOhUIA,4920
140
+ aiohomematic/model/hub/install_mode.py,sha256=ZaLVqTymDbHcerfq5gTsF-5EtWGK6Hb9O-bqN86l-NE,14506
141
+ aiohomematic/model/hub/metrics.py,sha256=6jCzj85NKlkBDoemG3fS1xgKuink2WrCqxhFBFUt7S4,7057
142
+ aiohomematic/model/hub/number.py,sha256=X19xTH2wAxO4b7Api_fXRSJ-i7sgPpSmF5jJY75Dy3M,1310
143
+ aiohomematic/model/hub/select.py,sha256=64hq_sFIA-zM6Kf9NuYq8ggZtZcTaAL-JKG_Os97qx4,1767
144
+ aiohomematic/model/hub/sensor.py,sha256=A1BnJKPJ5C4NE5IIy98v55S7qxkXIZlpC00mc2t38fs,1176
145
+ aiohomematic/model/hub/switch.py,sha256=sYlHDIF0quSMGE4BWO9G-cMVEazJGjuLE-4u6D0VI68,1393
146
+ aiohomematic/model/hub/text.py,sha256=o5O0k2CJLgpFbOxixxQrnG4nAxPVQequKRvuuUB6LKc,977
147
+ aiohomematic/model/hub/update.py,sha256=W78e32EKbHZY8k4rxqSc44hXeJa6iYT5pSlLh9qBJ0M,9091
148
+ aiohomematic/rega_scripts/accept_device_in_inbox.fn,sha256=t6arQr-y9RxHdeybzdiFt6jNJLGB3AF_gtQLMnuDkJM,1294
149
+ aiohomematic/rega_scripts/create_backup_start.fn,sha256=kf1cLYj4B7XqXrCBCqcejwsHjhtxXWrsZnfD00KD_8M,1076
150
+ aiohomematic/rega_scripts/create_backup_status.fn,sha256=ghPGhWaM76F8PjKIJ7n-8xZhpNvEI8B2o5H7WC5MQRs,2592
151
+ aiohomematic/rega_scripts/fetch_all_device_data.fn,sha256=pqY8JFMP19-jdLZJnCYLkPB6fCp9fgXe2Ic9sm0R6fI,4440
152
+ aiohomematic/rega_scripts/get_backend_info.fn,sha256=9_w9av2TrJl22CchPtTjKhp_OBVS-ecoSgsHcla7gEQ,760
153
+ aiohomematic/rega_scripts/get_inbox_devices.fn,sha256=Uf3uzLxNTqUDeZEn0lQN-UfKPfBFEgBFoHjHDzVM73s,1628
154
+ aiohomematic/rega_scripts/get_program_descriptions.fn,sha256=zz6X0dIUsEzDGFfuNH8ftNMvVOLyZIkGTV3WPq7K218,844
155
+ aiohomematic/rega_scripts/get_serial.fn,sha256=OXu7BSWyKg6ASyNVtOECFXWSu_3rxzaDPTsHV_BXB28,1088
156
+ aiohomematic/rega_scripts/get_service_messages.fn,sha256=Q588XaXp__x9N5ksXUUsA9Xs0ubqjiRJb4IQFYKIe6Y,2648
157
+ aiohomematic/rega_scripts/get_system_update_info.fn,sha256=d_u7ByNLWW1Iig8rGskSz1W7JmGRDkEp3za1mKz2D5s,1394
158
+ aiohomematic/rega_scripts/get_system_variable_descriptions.fn,sha256=lv5YOoLGYRcsAY83OpbVNEk5ShKp_SyQaeWdAcAT4F0,858
159
+ aiohomematic/rega_scripts/set_program_state.fn,sha256=xIciJgANzgikSkHSxERuwpYptUtxY6OIpAAsPIi6baE,361
160
+ aiohomematic/rega_scripts/set_system_variable.fn,sha256=uaRnq_aZIQE_PlYwn7RWZi3jRcoBs_TwcL1DRMqpIJg,469
161
+ aiohomematic/rega_scripts/trigger_firmware_update.fn,sha256=IcI7cF-T6id5WC00C96snAT-n0WuejnH73MohGTml4c,2121
162
+ aiohomematic/store/__init__.py,sha256=66IKKAuNv7YaQngJEeDcgcYAHczmNpUbgdk9alcEmng,1806
163
+ aiohomematic/store/serialization.py,sha256=MyJSXp4cNe55RSBj4KM1GYfQ7H1gUeMDNBXAzqDI58Y,6265
164
+ aiohomematic/store/storage.py,sha256=rE9iSlvWvkeSxLbl2kSL2JRV_o5DpN2kH4ytD0sq7T8,22659
165
+ aiohomematic/store/types.py,sha256=3QJBfCSSIg5swwvLfPLEsjRU5JV5zcMkTKetvcDO19U,16855
166
+ aiohomematic/store/dynamic/__init__.py,sha256=ZpxayrkXlj4dknYIVbaMIxxJABioPEF47FIGwoqPpIE,1379
167
+ aiohomematic/store/dynamic/command.py,sha256=F2a_mp3ICeclmFBvJdtVOUNfrCZ_sCq7oU24aQUIpm4,9807
168
+ aiohomematic/store/dynamic/data.py,sha256=oXSesbi2lFsgrXX4gnIssvt7WT_mFRXhks0ItpwKTK0,6695
169
+ aiohomematic/store/dynamic/details.py,sha256=tO1aM9Z0wmOGOfBAVxi8Ejc9077-yGD8-DajXYJLYlc,7597
170
+ aiohomematic/store/dynamic/ping_pong.py,sha256=r7OaQbMc9itYN7wQWnYEmbcG2itXH7i40dgneaOc_X0,17863
171
+ aiohomematic/store/persistent/__init__.py,sha256=1lpSYwUYeTFYhmy2L5h2Fs9CcDJTkZsujAlS2IbOEtk,2753
172
+ aiohomematic/store/persistent/base.py,sha256=SbqarlHfSnBsRfdnB5MtBnfPENsbmKLm5tq_1uCBcAo,9452
173
+ aiohomematic/store/persistent/device.py,sha256=sjPuSMhhXuhtZz7bX4dSOAZoutwelVY_4yRdOwG0JPs,10409
174
+ aiohomematic/store/persistent/incident.py,sha256=r4ZxcQ18Q4ChFDWnbHHPUqWZ4mDt0ow6-WGLNeXFhyE,14231
175
+ aiohomematic/store/persistent/paramset.py,sha256=OeeDaAMXdbJVkoW5zn1WkBvA8rr7L8GfX0QSPKu4t_8,10627
176
+ aiohomematic/store/persistent/session.py,sha256=T9kAAyCUWRZnn0JakjK71EOOmzZJGc1sfP-sTiK__X0,21665
177
+ aiohomematic/store/visibility/__init__.py,sha256=2GMDHa1dyCHIYGm-Q39N_gYmr4fVSCRn14bOJ_1hcuM,1462
178
+ aiohomematic/store/visibility/parser.py,sha256=e1Nw_WTpUdX0jHfD6TjDN-UrORSaWl7URg5WiFuXlBc,4685
179
+ aiohomematic/store/visibility/registry.py,sha256=8ZSLIJQuNcB_mYTpEIEmqcNQTAFPL4nzYu1_2gHACmk,25632
180
+ aiohomematic/store/visibility/rules.py,sha256=eOSkwo6aC8dlrP86751zGU3ZfBryhUuUxQ4YGqasj8U,12200
181
+ aiohomematic/translations/de.json,sha256=XwViVwwcr6Me44DHL0R_84Pa5rM2aYJXxO8fxZ27ofk,30051
182
+ aiohomematic/translations/en.json,sha256=16OgTugWciZ3RwBlPdY5fPs2HfG0kV8L3ioE8w4pcyk,28204
183
+ aiohomematic-2026.1.29.dist-info/licenses/LICENSE,sha256=hPvzJyfofnBoiT_MGAVj8p-oRlJrzGfz4euvQfV3_SM,1083
184
+ aiohomematic-2026.1.29.dist-info/METADATA,sha256=HjrSnAWXtlosslRyzwLpRfINf4nWX88LpEASmEMiJ7M,13817
185
+ aiohomematic-2026.1.29.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
186
+ aiohomematic-2026.1.29.dist-info/entry_points.txt,sha256=tzk3wIE-hXNhLEiefCCDhIiRT7DYY9MePAwGw-kPmWI,57
187
+ aiohomematic-2026.1.29.dist-info/top_level.txt,sha256=iGUvt1N-E72vKRq7Anpp62HwkQngStrUK0JfL1zj1TE,13
188
+ aiohomematic-2026.1.29.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ aiohomematic = aiohomematic.hmcli:main
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2021-2026 SukramJ, Daniel Perna
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ aiohomematic