aiohomematic 2025.8.10__tar.gz → 2025.9.1__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 (106) hide show
  1. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/PKG-INFO +2 -1
  2. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/README.md +1 -0
  3. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/central/__init__.py +1 -1
  4. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/const.py +1 -1
  5. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/decorators.py +10 -6
  6. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic.egg-info/PKG-INFO +2 -1
  7. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/LICENSE +0 -0
  8. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/__init__.py +0 -0
  9. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/async_support.py +0 -0
  10. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/caches/__init__.py +0 -0
  11. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/caches/dynamic.py +0 -0
  12. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/caches/persistent.py +0 -0
  13. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/caches/visibility.py +0 -0
  14. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/central/decorators.py +0 -0
  15. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/central/xml_rpc_server.py +0 -0
  16. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/client/__init__.py +0 -0
  17. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/client/_rpc_errors.py +0 -0
  18. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/client/json_rpc.py +0 -0
  19. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/client/xml_rpc.py +0 -0
  20. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/context.py +0 -0
  21. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/converter.py +0 -0
  22. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/exceptions.py +0 -0
  23. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/hmcli.py +0 -0
  24. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/__init__.py +0 -0
  25. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/calculated/__init__.py +0 -0
  26. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/calculated/climate.py +0 -0
  27. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/calculated/data_point.py +0 -0
  28. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/calculated/operating_voltage_level.py +0 -0
  29. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/calculated/support.py +0 -0
  30. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/custom/__init__.py +0 -0
  31. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/custom/climate.py +0 -0
  32. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/custom/const.py +0 -0
  33. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/custom/cover.py +0 -0
  34. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/custom/data_point.py +0 -0
  35. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/custom/definition.py +0 -0
  36. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/custom/light.py +0 -0
  37. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/custom/lock.py +0 -0
  38. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/custom/siren.py +0 -0
  39. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/custom/support.py +0 -0
  40. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/custom/switch.py +0 -0
  41. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/custom/valve.py +0 -0
  42. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/data_point.py +0 -0
  43. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/decorators.py +0 -0
  44. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/device.py +0 -0
  45. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/event.py +0 -0
  46. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/generic/__init__.py +0 -0
  47. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/generic/action.py +0 -0
  48. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/generic/binary_sensor.py +0 -0
  49. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/generic/button.py +0 -0
  50. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/generic/data_point.py +0 -0
  51. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/generic/number.py +0 -0
  52. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/generic/select.py +0 -0
  53. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/generic/sensor.py +0 -0
  54. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/generic/switch.py +0 -0
  55. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/generic/text.py +0 -0
  56. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/hub/__init__.py +0 -0
  57. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/hub/binary_sensor.py +0 -0
  58. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/hub/button.py +0 -0
  59. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/hub/data_point.py +0 -0
  60. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/hub/number.py +0 -0
  61. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/hub/select.py +0 -0
  62. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/hub/sensor.py +0 -0
  63. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/hub/switch.py +0 -0
  64. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/hub/text.py +0 -0
  65. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/support.py +0 -0
  66. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/model/update.py +0 -0
  67. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/py.typed +0 -0
  68. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/rega_scripts/fetch_all_device_data.fn +0 -0
  69. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/rega_scripts/get_program_descriptions.fn +0 -0
  70. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/rega_scripts/get_serial.fn +0 -0
  71. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/rega_scripts/get_system_variable_descriptions.fn +0 -0
  72. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/rega_scripts/set_program_state.fn +0 -0
  73. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/rega_scripts/set_system_variable.fn +0 -0
  74. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/support.py +0 -0
  75. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic/validator.py +0 -0
  76. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic.egg-info/SOURCES.txt +0 -0
  77. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic.egg-info/dependency_links.txt +0 -0
  78. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic.egg-info/requires.txt +0 -0
  79. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic.egg-info/top_level.txt +0 -0
  80. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic_support/__init__.py +0 -0
  81. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/aiohomematic_support/client_local.py +0 -0
  82. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/pyproject.toml +0 -0
  83. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/setup.cfg +0 -0
  84. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/tests/test_action.py +0 -0
  85. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/tests/test_binary_sensor.py +0 -0
  86. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/tests/test_button.py +0 -0
  87. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/tests/test_calculated_support.py +0 -0
  88. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/tests/test_central.py +0 -0
  89. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/tests/test_central_pydevccu.py +0 -0
  90. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/tests/test_climate.py +0 -0
  91. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/tests/test_cover.py +0 -0
  92. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/tests/test_decorator.py +0 -0
  93. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/tests/test_device.py +0 -0
  94. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/tests/test_entity.py +0 -0
  95. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/tests/test_event.py +0 -0
  96. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/tests/test_json_rpc.py +0 -0
  97. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/tests/test_light.py +0 -0
  98. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/tests/test_lock.py +0 -0
  99. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/tests/test_number.py +0 -0
  100. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/tests/test_select.py +0 -0
  101. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/tests/test_sensor.py +0 -0
  102. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/tests/test_siren.py +0 -0
  103. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/tests/test_support.py +0 -0
  104. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/tests/test_switch.py +0 -0
  105. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/tests/test_text.py +0 -0
  106. {aiohomematic-2025.8.10 → aiohomematic-2025.9.1}/tests/test_valve.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aiohomematic
3
- Version: 2025.8.10
3
+ Version: 2025.9.1
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>
@@ -109,6 +109,7 @@ Example:
109
109
 
110
110
  - Changelog: [see](changelog.md) for release history and latest changes.
111
111
  - Definition of calculated data points: [see](docs/calculated_data_points.md)
112
+ - Naming: [see](docs/naming.md) for how device, channel and data point names are created.
112
113
  - Homematic(IP) Local integration: https://github.com/sukramj/homematicip_local
113
114
  - Input select helper: [see](docs/input_select_helper.md) for an overview of how to use the input select helper.
114
115
  - Troubleshooting with Home Assistant: [see](docs/homeassistant_troubleshooting.md) for common issues and how to debug them.
@@ -81,6 +81,7 @@ Example:
81
81
 
82
82
  - Changelog: [see](changelog.md) for release history and latest changes.
83
83
  - Definition of calculated data points: [see](docs/calculated_data_points.md)
84
+ - Naming: [see](docs/naming.md) for how device, channel and data point names are created.
84
85
  - Homematic(IP) Local integration: https://github.com/sukramj/homematicip_local
85
86
  - Input select helper: [see](docs/input_select_helper.md) for an overview of how to use the input select helper.
86
87
  - Troubleshooting with Home Assistant: [see](docs/homeassistant_troubleshooting.md) for common issues and how to debug them.
@@ -166,7 +166,7 @@ from aiohomematic.support import check_config, extract_exc_args, get_channel_no,
166
166
  __all__ = ["CentralConfig", "CentralUnit", "INTERFACE_EVENT_SCHEMA"]
167
167
 
168
168
  _LOGGER: Final = logging.getLogger(__name__)
169
- _LOGGER_EVENT: Final = logging.getLogger(f"{__name__}_event")
169
+ _LOGGER_EVENT: Final = logging.getLogger(f"{__package__}.event")
170
170
 
171
171
  # {central_name, central}
172
172
  CENTRAL_INSTANCES: Final[dict[str, CentralUnit]] = {}
@@ -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.8.10"
22
+ VERSION: Final = "2025.9.1"
23
23
 
24
24
  # Detect test speedup mode via environment
25
25
  _TEST_SPEEDUP: Final = (
@@ -23,7 +23,7 @@ from aiohomematic.support import build_log_context_from_obj, extract_exc_args
23
23
  P = ParamSpec("P")
24
24
  R = TypeVar("R")
25
25
 
26
- _LOGGER: Final = logging.getLogger(__name__)
26
+ _LOGGER_PERFORMANCE: Final = logging.getLogger(f"{__package__}.performance")
27
27
 
28
28
  # Cache for per-class service call method names to avoid repeated scans.
29
29
  # Structure: {cls: (method_name1, method_name2, ...)}
@@ -89,7 +89,9 @@ def inspector( # noqa: C901
89
89
  def wrap_sync_function(*args: P.args, **kwargs: P.kwargs) -> R:
90
90
  """Wrap sync functions."""
91
91
 
92
- start = monotonic() if measure_performance and _LOGGER.isEnabledFor(level=logging.DEBUG) else None
92
+ start = (
93
+ monotonic() if measure_performance and _LOGGER_PERFORMANCE.isEnabledFor(level=logging.DEBUG) else None
94
+ )
93
95
  token = IN_SERVICE_VAR.set(True) if not IN_SERVICE_VAR.get() else None
94
96
  try:
95
97
  return_value: R = func(*args, **kwargs)
@@ -125,7 +127,9 @@ def inspector( # noqa: C901
125
127
  async def wrap_async_function(*args: P.args, **kwargs: P.kwargs) -> R:
126
128
  """Wrap async functions."""
127
129
 
128
- start = monotonic() if measure_performance and _LOGGER.isEnabledFor(level=logging.DEBUG) else None
130
+ start = (
131
+ monotonic() if measure_performance and _LOGGER_PERFORMANCE.isEnabledFor(level=logging.DEBUG) else None
132
+ )
129
133
  token = IN_SERVICE_VAR.set(True) if not IN_SERVICE_VAR.get() else None
130
134
  try:
131
135
  return_value = await func(*args, **kwargs) # type: ignore[misc] # Await the async call
@@ -181,7 +185,7 @@ def _log_performance_message(func: Callable, start: float, *args: P.args, **kwar
181
185
  if iface:
182
186
  message += f"/{iface}"
183
187
 
184
- _LOGGER.info(message)
188
+ _LOGGER_PERFORMANCE.info(message)
185
189
 
186
190
 
187
191
  def get_service_calls(obj: object) -> dict[str, Callable]:
@@ -222,7 +226,7 @@ def measure_execution_time[CallableT: Callable[..., Any]](func: CallableT) -> Ca
222
226
  async def async_measure_wrapper(*args: Any, **kwargs: Any) -> Any:
223
227
  """Wrap method."""
224
228
 
225
- start = monotonic() if _LOGGER.isEnabledFor(level=logging.DEBUG) else None
229
+ start = monotonic() if _LOGGER_PERFORMANCE.isEnabledFor(level=logging.DEBUG) else None
226
230
  try:
227
231
  return await func(*args, **kwargs)
228
232
  finally:
@@ -233,7 +237,7 @@ def measure_execution_time[CallableT: Callable[..., Any]](func: CallableT) -> Ca
233
237
  def measure_wrapper(*args: Any, **kwargs: Any) -> Any:
234
238
  """Wrap method."""
235
239
 
236
- start = monotonic() if _LOGGER.isEnabledFor(level=logging.DEBUG) else None
240
+ start = monotonic() if _LOGGER_PERFORMANCE.isEnabledFor(level=logging.DEBUG) else None
237
241
  try:
238
242
  return func(*args, **kwargs)
239
243
  finally:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aiohomematic
3
- Version: 2025.8.10
3
+ Version: 2025.9.1
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>
@@ -109,6 +109,7 @@ Example:
109
109
 
110
110
  - Changelog: [see](changelog.md) for release history and latest changes.
111
111
  - Definition of calculated data points: [see](docs/calculated_data_points.md)
112
+ - Naming: [see](docs/naming.md) for how device, channel and data point names are created.
112
113
  - Homematic(IP) Local integration: https://github.com/sukramj/homematicip_local
113
114
  - Input select helper: [see](docs/input_select_helper.md) for an overview of how to use the input select helper.
114
115
  - Troubleshooting with Home Assistant: [see](docs/homeassistant_troubleshooting.md) for common issues and how to debug them.