aiohomematic 2025.10.7__py3-none-any.whl → 2025.10.9__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of aiohomematic might be problematic. Click here for more details.

Files changed (73) hide show
  1. aiohomematic/__init__.py +3 -3
  2. aiohomematic/async_support.py +1 -1
  3. aiohomematic/central/__init__.py +59 -31
  4. aiohomematic/central/decorators.py +1 -1
  5. aiohomematic/central/rpc_server.py +1 -1
  6. aiohomematic/client/__init__.py +19 -13
  7. aiohomematic/client/_rpc_errors.py +1 -1
  8. aiohomematic/client/json_rpc.py +29 -3
  9. aiohomematic/client/rpc_proxy.py +20 -2
  10. aiohomematic/const.py +25 -6
  11. aiohomematic/context.py +1 -1
  12. aiohomematic/converter.py +1 -1
  13. aiohomematic/decorators.py +1 -1
  14. aiohomematic/exceptions.py +1 -1
  15. aiohomematic/hmcli.py +1 -1
  16. aiohomematic/model/__init__.py +1 -1
  17. aiohomematic/model/calculated/__init__.py +21 -4
  18. aiohomematic/model/calculated/climate.py +59 -1
  19. aiohomematic/model/calculated/data_point.py +1 -1
  20. aiohomematic/model/calculated/operating_voltage_level.py +1 -1
  21. aiohomematic/model/calculated/support.py +41 -3
  22. aiohomematic/model/custom/__init__.py +1 -1
  23. aiohomematic/model/custom/climate.py +7 -4
  24. aiohomematic/model/custom/const.py +1 -1
  25. aiohomematic/model/custom/cover.py +1 -1
  26. aiohomematic/model/custom/data_point.py +1 -1
  27. aiohomematic/model/custom/definition.py +1 -1
  28. aiohomematic/model/custom/light.py +1 -1
  29. aiohomematic/model/custom/lock.py +1 -1
  30. aiohomematic/model/custom/siren.py +1 -1
  31. aiohomematic/model/custom/support.py +1 -1
  32. aiohomematic/model/custom/switch.py +1 -1
  33. aiohomematic/model/custom/valve.py +1 -1
  34. aiohomematic/model/data_point.py +3 -2
  35. aiohomematic/model/device.py +10 -13
  36. aiohomematic/model/event.py +1 -1
  37. aiohomematic/model/generic/__init__.py +1 -1
  38. aiohomematic/model/generic/action.py +1 -1
  39. aiohomematic/model/generic/binary_sensor.py +1 -1
  40. aiohomematic/model/generic/button.py +1 -1
  41. aiohomematic/model/generic/data_point.py +1 -1
  42. aiohomematic/model/generic/number.py +1 -1
  43. aiohomematic/model/generic/select.py +1 -1
  44. aiohomematic/model/generic/sensor.py +1 -1
  45. aiohomematic/model/generic/switch.py +1 -1
  46. aiohomematic/model/generic/text.py +1 -1
  47. aiohomematic/model/hub/__init__.py +1 -1
  48. aiohomematic/model/hub/binary_sensor.py +1 -1
  49. aiohomematic/model/hub/button.py +1 -1
  50. aiohomematic/model/hub/data_point.py +1 -1
  51. aiohomematic/model/hub/number.py +1 -1
  52. aiohomematic/model/hub/select.py +1 -1
  53. aiohomematic/model/hub/sensor.py +1 -1
  54. aiohomematic/model/hub/switch.py +1 -1
  55. aiohomematic/model/hub/text.py +1 -1
  56. aiohomematic/model/support.py +1 -1
  57. aiohomematic/model/update.py +1 -1
  58. aiohomematic/property_decorators.py +2 -2
  59. aiohomematic/store/__init__.py +34 -0
  60. aiohomematic/{caches → store}/dynamic.py +4 -4
  61. aiohomematic/store/persistent.py +933 -0
  62. aiohomematic/{caches → store}/visibility.py +4 -4
  63. aiohomematic/support.py +20 -17
  64. aiohomematic/validator.py +1 -1
  65. {aiohomematic-2025.10.7.dist-info → aiohomematic-2025.10.9.dist-info}/METADATA +1 -1
  66. aiohomematic-2025.10.9.dist-info/RECORD +78 -0
  67. aiohomematic_support/client_local.py +2 -2
  68. aiohomematic/caches/__init__.py +0 -12
  69. aiohomematic/caches/persistent.py +0 -478
  70. aiohomematic-2025.10.7.dist-info/RECORD +0 -78
  71. {aiohomematic-2025.10.7.dist-info → aiohomematic-2025.10.9.dist-info}/WHEEL +0 -0
  72. {aiohomematic-2025.10.7.dist-info → aiohomematic-2025.10.9.dist-info}/licenses/LICENSE +0 -0
  73. {aiohomematic-2025.10.7.dist-info → aiohomematic-2025.10.9.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,5 @@
1
1
  # SPDX-License-Identifier: MIT
2
- # Copyright (c) 2021-2025 Daniel Perna, SukramJ
2
+ # Copyright (c) 2021-2025
3
3
  """Module for data points implemented using the switch category."""
4
4
 
5
5
  from __future__ import annotations
@@ -1,5 +1,5 @@
1
1
  # SPDX-License-Identifier: MIT
2
- # Copyright (c) 2021-2025 Daniel Perna, SukramJ
2
+ # Copyright (c) 2021-2025
3
3
  """Module for data points implemented using the text category."""
4
4
 
5
5
  from __future__ import annotations
@@ -1,5 +1,5 @@
1
1
  # SPDX-License-Identifier: MIT
2
- # Copyright (c) 2021-2025 Daniel Perna, SukramJ
2
+ # Copyright (c) 2021-2025
3
3
  """
4
4
  Hub (backend) data points for AioHomematic.
5
5
 
@@ -1,5 +1,5 @@
1
1
  # SPDX-License-Identifier: MIT
2
- # Copyright (c) 2021-2025 Daniel Perna, SukramJ
2
+ # Copyright (c) 2021-2025
3
3
  """Module for hub data points implemented using the binary_sensor category."""
4
4
 
5
5
  from __future__ import annotations
@@ -1,5 +1,5 @@
1
1
  # SPDX-License-Identifier: MIT
2
- # Copyright (c) 2021-2025 Daniel Perna, SukramJ
2
+ # Copyright (c) 2021-2025
3
3
  """Module for hub data points implemented using the button category."""
4
4
 
5
5
  from __future__ import annotations
@@ -1,5 +1,5 @@
1
1
  # SPDX-License-Identifier: MIT
2
- # Copyright (c) 2021-2025 Daniel Perna, SukramJ
2
+ # Copyright (c) 2021-2025
3
3
  """Module for AioHomematic hub data points."""
4
4
 
5
5
  from __future__ import annotations
@@ -1,5 +1,5 @@
1
1
  # SPDX-License-Identifier: MIT
2
- # Copyright (c) 2021-2025 Daniel Perna, SukramJ
2
+ # Copyright (c) 2021-2025
3
3
  """Module for data points implemented using the number category."""
4
4
 
5
5
  from __future__ import annotations
@@ -1,5 +1,5 @@
1
1
  # SPDX-License-Identifier: MIT
2
- # Copyright (c) 2021-2025 Daniel Perna, SukramJ
2
+ # Copyright (c) 2021-2025
3
3
  """Module for hub data points implemented using the select category."""
4
4
 
5
5
  from __future__ import annotations
@@ -1,5 +1,5 @@
1
1
  # SPDX-License-Identifier: MIT
2
- # Copyright (c) 2021-2025 Daniel Perna, SukramJ
2
+ # Copyright (c) 2021-2025
3
3
  """Module for hub data points implemented using the sensor category."""
4
4
 
5
5
  from __future__ import annotations
@@ -1,5 +1,5 @@
1
1
  # SPDX-License-Identifier: MIT
2
- # Copyright (c) 2021-2025 Daniel Perna, SukramJ
2
+ # Copyright (c) 2021-2025
3
3
  """Module for hub data points implemented using the switch category."""
4
4
 
5
5
  from __future__ import annotations
@@ -1,5 +1,5 @@
1
1
  # SPDX-License-Identifier: MIT
2
- # Copyright (c) 2021-2025 Daniel Perna, SukramJ
2
+ # Copyright (c) 2021-2025
3
3
  """Module for hub data points implemented using the text category."""
4
4
 
5
5
  from __future__ import annotations
@@ -1,5 +1,5 @@
1
1
  # SPDX-License-Identifier: MIT
2
- # Copyright (c) 2021-2025 Daniel Perna, SukramJ
2
+ # Copyright (c) 2021-2025
3
3
  """Support for data points used within aiohomematic."""
4
4
 
5
5
  from __future__ import annotations
@@ -1,5 +1,5 @@
1
1
  # SPDX-License-Identifier: MIT
2
- # Copyright (c) 2021-2025 Daniel Perna, SukramJ
2
+ # Copyright (c) 2021-2025
3
3
  """Module for data points implemented using the update category."""
4
4
 
5
5
  from __future__ import annotations
@@ -1,5 +1,5 @@
1
1
  # SPDX-License-Identifier: MIT
2
- # Copyright (c) 2021-2025 Daniel Perna, SukramJ
2
+ # Copyright (c) 2021-2025
3
3
  """
4
4
  Decorators and helpers for declaring public attributes on data point classes.
5
5
 
@@ -15,7 +15,7 @@ All decorators accept an optional keyword-only argument log_context. If set to
15
15
  True, the property will be included in the LogContextMixin.log_context mapping.
16
16
 
17
17
  Notes on caching
18
- - Marked with cached=True always caches on first access and invalidates on set/delete.
18
+ - Marked with cached=True always store on first access and invalidates on set/delete.
19
19
  """
20
20
 
21
21
  from __future__ import annotations
@@ -0,0 +1,34 @@
1
+ # SPDX-License-Identifier: MIT
2
+ # Copyright (c) 2021-2025
3
+ """
4
+ Store packages for AioHomematic.
5
+
6
+ This package groups store implementations used throughout the library:
7
+ - persistent: Long-lived on-disk store for device and paramset descriptions.
8
+ - dynamic: Short-lived in-memory store for runtime values and connection health.
9
+ - visibility: Parameter visibility rules to decide which parameters are relevant.
10
+ """
11
+
12
+ from __future__ import annotations
13
+
14
+ from aiohomematic.store.dynamic import CentralDataCache, CommandCache, DeviceDetailsCache, PingPongCache
15
+ from aiohomematic.store.persistent import (
16
+ DeviceDescriptionCache,
17
+ ParamsetDescriptionCache,
18
+ SessionRecorder,
19
+ cleanup_files,
20
+ )
21
+ from aiohomematic.store.visibility import ParameterVisibilityCache, check_ignore_parameters_is_clean
22
+
23
+ __all__ = [
24
+ "CentralDataCache",
25
+ "CommandCache",
26
+ "DeviceDescriptionCache",
27
+ "DeviceDetailsCache",
28
+ "ParameterVisibilityCache",
29
+ "ParamsetDescriptionCache",
30
+ "PingPongCache",
31
+ "SessionRecorder",
32
+ "cleanup_files",
33
+ "check_ignore_parameters_is_clean",
34
+ ]
@@ -1,9 +1,9 @@
1
1
  # SPDX-License-Identifier: MIT
2
- # Copyright (c) 2021-2025 Daniel Perna, SukramJ
2
+ # Copyright (c) 2021-2025
3
3
  """
4
- Dynamic caches used at runtime by the central unit and clients.
4
+ Dynamic store used at runtime by the central unit and clients.
5
5
 
6
- This module provides short-lived, in-memory caches that support robust and efficient
6
+ This module provides short-lived, in-memory store that support robust and efficient
7
7
  communication with Homematic interfaces:
8
8
 
9
9
  - CommandCache: Tracks recently sent commands and their values per data point,
@@ -16,7 +16,7 @@ communication with Homematic interfaces:
16
16
  - PingPongCache: Tracks ping/pong timestamps to detect connection health issues
17
17
  and emits interface events on mismatch thresholds.
18
18
 
19
- The caches are intentionally ephemeral and cleared/aged according to the rules in
19
+ The store are intentionally ephemeral and cleared/aged according to the rules in
20
20
  constants to keep memory footprint predictable while improving responsiveness.
21
21
  """
22
22