aiohomematic 2025.9.2__tar.gz → 2025.9.3__tar.gz

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 (107) hide show
  1. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/PKG-INFO +1 -1
  2. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/client/__init__.py +2 -2
  3. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/client/json_rpc.py +3 -3
  4. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/client/xml_rpc.py +3 -3
  5. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/const.py +1 -1
  6. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/calculated/data_point.py +2 -2
  7. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/data_point.py +9 -9
  8. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/device.py +5 -5
  9. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/generic/data_point.py +2 -2
  10. aiohomematic-2025.9.3/aiohomematic/property_decorators.py +511 -0
  11. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/support.py +11 -10
  12. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic.egg-info/PKG-INFO +1 -1
  13. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/tests/test_central_pydevccu.py +9 -13
  14. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/tests/test_decorator.py +7 -8
  15. aiohomematic-2025.9.2/aiohomematic/property_decorators.py +0 -327
  16. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/LICENSE +0 -0
  17. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/README.md +0 -0
  18. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/__init__.py +0 -0
  19. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/async_support.py +0 -0
  20. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/caches/__init__.py +0 -0
  21. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/caches/dynamic.py +0 -0
  22. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/caches/persistent.py +0 -0
  23. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/caches/visibility.py +0 -0
  24. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/central/__init__.py +0 -0
  25. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/central/decorators.py +0 -0
  26. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/central/xml_rpc_server.py +0 -0
  27. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/client/_rpc_errors.py +0 -0
  28. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/context.py +0 -0
  29. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/converter.py +0 -0
  30. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/decorators.py +0 -0
  31. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/exceptions.py +0 -0
  32. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/hmcli.py +0 -0
  33. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/__init__.py +0 -0
  34. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/calculated/__init__.py +0 -0
  35. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/calculated/climate.py +0 -0
  36. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/calculated/operating_voltage_level.py +0 -0
  37. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/calculated/support.py +0 -0
  38. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/custom/__init__.py +0 -0
  39. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/custom/climate.py +0 -0
  40. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/custom/const.py +0 -0
  41. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/custom/cover.py +0 -0
  42. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/custom/data_point.py +0 -0
  43. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/custom/definition.py +0 -0
  44. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/custom/light.py +0 -0
  45. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/custom/lock.py +0 -0
  46. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/custom/siren.py +0 -0
  47. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/custom/support.py +0 -0
  48. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/custom/switch.py +0 -0
  49. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/custom/valve.py +0 -0
  50. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/event.py +0 -0
  51. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/generic/__init__.py +0 -0
  52. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/generic/action.py +0 -0
  53. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/generic/binary_sensor.py +0 -0
  54. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/generic/button.py +0 -0
  55. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/generic/number.py +0 -0
  56. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/generic/select.py +0 -0
  57. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/generic/sensor.py +0 -0
  58. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/generic/switch.py +0 -0
  59. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/generic/text.py +0 -0
  60. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/hub/__init__.py +0 -0
  61. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/hub/binary_sensor.py +0 -0
  62. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/hub/button.py +0 -0
  63. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/hub/data_point.py +0 -0
  64. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/hub/number.py +0 -0
  65. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/hub/select.py +0 -0
  66. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/hub/sensor.py +0 -0
  67. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/hub/switch.py +0 -0
  68. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/hub/text.py +0 -0
  69. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/support.py +0 -0
  70. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/model/update.py +0 -0
  71. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/py.typed +0 -0
  72. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/rega_scripts/fetch_all_device_data.fn +0 -0
  73. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/rega_scripts/get_program_descriptions.fn +0 -0
  74. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/rega_scripts/get_serial.fn +0 -0
  75. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/rega_scripts/get_system_variable_descriptions.fn +0 -0
  76. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/rega_scripts/set_program_state.fn +0 -0
  77. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/rega_scripts/set_system_variable.fn +0 -0
  78. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic/validator.py +0 -0
  79. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic.egg-info/SOURCES.txt +0 -0
  80. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic.egg-info/dependency_links.txt +0 -0
  81. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic.egg-info/requires.txt +0 -0
  82. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic.egg-info/top_level.txt +0 -0
  83. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic_support/__init__.py +0 -0
  84. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/aiohomematic_support/client_local.py +0 -0
  85. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/pyproject.toml +0 -0
  86. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/setup.cfg +0 -0
  87. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/tests/test_action.py +0 -0
  88. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/tests/test_binary_sensor.py +0 -0
  89. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/tests/test_button.py +0 -0
  90. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/tests/test_calculated_support.py +0 -0
  91. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/tests/test_central.py +0 -0
  92. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/tests/test_climate.py +0 -0
  93. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/tests/test_cover.py +0 -0
  94. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/tests/test_device.py +0 -0
  95. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/tests/test_entity.py +0 -0
  96. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/tests/test_event.py +0 -0
  97. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/tests/test_json_rpc.py +0 -0
  98. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/tests/test_light.py +0 -0
  99. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/tests/test_lock.py +0 -0
  100. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/tests/test_number.py +0 -0
  101. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/tests/test_select.py +0 -0
  102. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/tests/test_sensor.py +0 -0
  103. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/tests/test_siren.py +0 -0
  104. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/tests/test_support.py +0 -0
  105. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/tests/test_switch.py +0 -0
  106. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/tests/test_text.py +0 -0
  107. {aiohomematic-2025.9.2 → aiohomematic-2025.9.3}/tests/test_valve.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aiohomematic
3
- Version: 2025.9.2
3
+ Version: 2025.9.3
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>
@@ -93,7 +93,7 @@ from aiohomematic.decorators import inspector, measure_execution_time
93
93
  from aiohomematic.exceptions import BaseHomematicException, ClientException, NoConnectionException
94
94
  from aiohomematic.model.device import Device
95
95
  from aiohomematic.model.support import convert_value
96
- from aiohomematic.property_decorators import info_property
96
+ from aiohomematic.property_decorators import hm_property
97
97
  from aiohomematic.support import (
98
98
  LogContextMixin,
99
99
  build_xml_rpc_headers,
@@ -171,7 +171,7 @@ class Client(ABC, LogContextMixin):
171
171
  """Return the interface of the client."""
172
172
  return self._config.interface
173
173
 
174
- @info_property(log_context=True)
174
+ @hm_property(log_context=True)
175
175
  def interface_id(self) -> str:
176
176
  """Return the interface id of the client."""
177
177
  return self._config.interface_id
@@ -91,7 +91,7 @@ from aiohomematic.exceptions import (
91
91
  UnsupportedException,
92
92
  )
93
93
  from aiohomematic.model.support import convert_value
94
- from aiohomematic.property_decorators import info_property
94
+ from aiohomematic.property_decorators import hm_property
95
95
  from aiohomematic.support import (
96
96
  LogContextMixin,
97
97
  cleanup_text_from_html_tags,
@@ -217,12 +217,12 @@ class JsonRpcAioHttpClient(LogContextMixin):
217
217
  """If session exists, then it is activated."""
218
218
  return self._session_id is not None
219
219
 
220
- @info_property(log_context=True)
220
+ @hm_property(log_context=True)
221
221
  def url(self) -> str | None:
222
222
  """Return url."""
223
223
  return self._url
224
224
 
225
- @info_property(log_context=True)
225
+ @hm_property(log_context=True)
226
226
  def tls(self) -> bool:
227
227
  """Return tls."""
228
228
  return self._tls
@@ -42,7 +42,7 @@ from aiohomematic.exceptions import (
42
42
  NoConnectionException,
43
43
  UnsupportedException,
44
44
  )
45
- from aiohomematic.property_decorators import info_property
45
+ from aiohomematic.property_decorators import hm_property
46
46
  from aiohomematic.support import LogContextMixin, extract_exc_args, get_tls_context, log_boundary_error
47
47
 
48
48
  _LOGGER: Final = logging.getLogger(__name__)
@@ -121,7 +121,7 @@ class XmlRpcProxy(xmlrpc.client.ServerProxy, LogContextMixin):
121
121
  supported_methods.append(_XmlRpcMethod.PING)
122
122
  self._supported_methods = tuple(supported_methods)
123
123
 
124
- @info_property(log_context=True)
124
+ @hm_property(log_context=True)
125
125
  def interface_id(self) -> str:
126
126
  """Return the interface_id."""
127
127
  return self._interface_id
@@ -131,7 +131,7 @@ class XmlRpcProxy(xmlrpc.client.ServerProxy, LogContextMixin):
131
131
  """Return the supported methods."""
132
132
  return self._supported_methods
133
133
 
134
- @info_property(log_context=True)
134
+ @hm_property(log_context=True)
135
135
  def tls(self) -> bool:
136
136
  """Return tls."""
137
137
  return self._tls
@@ -19,7 +19,7 @@ import sys
19
19
  from types import MappingProxyType
20
20
  from typing import Any, Final, NamedTuple, Required, TypeAlias, TypedDict
21
21
 
22
- VERSION: Final = "2025.9.2"
22
+ VERSION: Final = "2025.9.3"
23
23
 
24
24
  # Detect test speedup mode via environment
25
25
  _TEST_SPEEDUP: Final = (
@@ -32,7 +32,7 @@ from aiohomematic.model.support import (
32
32
  generate_unique_id,
33
33
  get_data_point_name_data,
34
34
  )
35
- from aiohomematic.property_decorators import cached_slot_property, config_property, state_property
35
+ from aiohomematic.property_decorators import cached_property, config_property, state_property
36
36
 
37
37
  _LOGGER: Final = logging.getLogger(__name__)
38
38
 
@@ -147,7 +147,7 @@ class CalculatedDataPoint[ParameterT: GenericParameterType](BaseDataPoint):
147
147
  """Return default value."""
148
148
  return self._default
149
149
 
150
- @cached_slot_property
150
+ @cached_property
151
151
  def dpk(self) -> DataPointKey:
152
152
  """Return data_point key value."""
153
153
  return DataPointKey(
@@ -73,7 +73,7 @@ from aiohomematic.model.support import (
73
73
  convert_value,
74
74
  generate_unique_id,
75
75
  )
76
- from aiohomematic.property_decorators import cached_slot_property, config_property, info_property, state_property
76
+ from aiohomematic.property_decorators import cached_property, config_property, hm_property, state_property
77
77
  from aiohomematic.support import LogContextMixin, PayloadMixin, extract_exc_args, log_boundary_error
78
78
 
79
79
  __all__ = [
@@ -269,7 +269,7 @@ class CallbackDataPoint(ABC, LogContextMixin):
269
269
  """Return the data_point usage."""
270
270
  return DataPointUsage.DATA_POINT
271
271
 
272
- @cached_slot_property
272
+ @cached_property
273
273
  def enabled_default(self) -> bool:
274
274
  """Return, if data_point should be enabled based on usage attribute."""
275
275
  return self.usage in (
@@ -295,12 +295,12 @@ class CallbackDataPoint(ABC, LogContextMixin):
295
295
  return self._path_data.state_path
296
296
 
297
297
  # @property
298
- @cached_slot_property
298
+ @cached_property
299
299
  def service_methods(self) -> Mapping[str, Callable]:
300
300
  """Return all service methods."""
301
301
  return get_service_calls(obj=self)
302
302
 
303
- @cached_slot_property
303
+ @cached_property
304
304
  def service_method_names(self) -> tuple[str, ...]:
305
305
  """Return all service methods."""
306
306
  return tuple(self.service_methods.keys())
@@ -447,7 +447,7 @@ class BaseDataPoint(CallbackDataPoint, PayloadMixin):
447
447
  """Return the availability of the device."""
448
448
  return self._device.available
449
449
 
450
- @info_property(log_context=True)
450
+ @hm_property(log_context=True)
451
451
  def channel(self) -> hmd.Channel:
452
452
  """Return the channel the data_point."""
453
453
  return self._channel
@@ -659,7 +659,7 @@ class BaseParameterDataPoint[
659
659
  """Return if the parameter is un ignored."""
660
660
  return self._is_un_ignored
661
661
 
662
- @cached_slot_property
662
+ @cached_property
663
663
  def dpk(self) -> DataPointKey:
664
664
  """Return data_point key value."""
665
665
  return DataPointKey(
@@ -684,7 +684,7 @@ class BaseParameterDataPoint[
684
684
  """Return multiplier value."""
685
685
  return self._multiplier
686
686
 
687
- @info_property(log_context=True)
687
+ @hm_property(log_context=True)
688
688
  def parameter(self) -> str:
689
689
  """Return parameter name."""
690
690
  return self._parameter
@@ -699,7 +699,7 @@ class BaseParameterDataPoint[
699
699
  """Return raw unit value."""
700
700
  return self._raw_unit
701
701
 
702
- @cached_slot_property
702
+ @cached_property
703
703
  def requires_polling(self) -> bool:
704
704
  """Return whether the data_point requires polling."""
705
705
  return not self._channel.device.client.supports_push_updates or (
@@ -785,7 +785,7 @@ class BaseParameterDataPoint[
785
785
  """Return the if data_point is visible in ccu."""
786
786
  return self._visible
787
787
 
788
- @cached_slot_property
788
+ @cached_property
789
789
  def _enabled_by_channel_operation_mode(self) -> bool | None:
790
790
  """Return, if the data_point/event must be enabled."""
791
791
  if self._channel.type_name not in _CONFIGURABLE_CHANNEL:
@@ -80,7 +80,7 @@ from aiohomematic.model.support import (
80
80
  get_device_name,
81
81
  )
82
82
  from aiohomematic.model.update import DpUpdate
83
- from aiohomematic.property_decorators import cached_slot_property, info_property, state_property
83
+ from aiohomematic.property_decorators import cached_property, hm_property, info_property, state_property
84
84
  from aiohomematic.support import (
85
85
  CacheEntry,
86
86
  LogContextMixin,
@@ -327,7 +327,7 @@ class Device(LogContextMixin, PayloadMixin):
327
327
  """Return the interface of the device."""
328
328
  return self._interface
329
329
 
330
- @info_property(log_context=True)
330
+ @hm_property(log_context=True)
331
331
  def interface_id(self) -> str:
332
332
  """Return the interface_id of the device."""
333
333
  return self._interface_id
@@ -441,7 +441,7 @@ class Device(LogContextMixin, PayloadMixin):
441
441
  for channel in self._channels.values():
442
442
  await channel.remove_central_link()
443
443
 
444
- @cached_slot_property
444
+ @cached_property
445
445
  def relevant_for_central_link_management(self) -> bool:
446
446
  """Return if channel is relevant for central link management."""
447
447
  return (
@@ -762,7 +762,7 @@ class Channel(LogContextMixin, PayloadMixin):
762
762
  """Return the device description for the channel."""
763
763
  return self._description
764
764
 
765
- @info_property(log_context=True)
765
+ @hm_property(log_context=True)
766
766
  def device(self) -> Device:
767
767
  """Return the device of the channel."""
768
768
  return self._device
@@ -832,7 +832,7 @@ class Channel(LogContextMixin, PayloadMixin):
832
832
  """Return the name data of the channel."""
833
833
  return self._name_data
834
834
 
835
- @info_property(log_context=True)
835
+ @hm_property(log_context=True)
836
836
  def no(self) -> int | None:
837
837
  """Return the channel_no of the channel."""
838
838
  return self._no
@@ -21,7 +21,7 @@ from aiohomematic.decorators import inspector
21
21
  from aiohomematic.exceptions import ValidationException
22
22
  from aiohomematic.model import data_point as hme, device as hmd
23
23
  from aiohomematic.model.support import DataPointNameData, GenericParameterType, get_data_point_name_data
24
- from aiohomematic.property_decorators import cached_slot_property
24
+ from aiohomematic.property_decorators import cached_property
25
25
 
26
26
  _LOGGER: Final = logging.getLogger(__name__)
27
27
 
@@ -51,7 +51,7 @@ class GenericDataPoint[ParameterT: GenericParameterType, InputParameterT: Generi
51
51
  parameter_data=parameter_data,
52
52
  )
53
53
 
54
- @cached_slot_property
54
+ @cached_property
55
55
  def usage(self) -> DataPointUsage:
56
56
  """Return the data_point usage."""
57
57
  if self._is_forced_sensor or self._is_un_ignored: