aiohomematic 2025.9.7__tar.gz → 2025.9.8__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.9.7 → aiohomematic-2025.9.8}/PKG-INFO +1 -1
  2. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/caches/visibility.py +2 -0
  3. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/const.py +1 -1
  4. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic.egg-info/PKG-INFO +1 -1
  5. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/tests/test_central_pydevccu.py +5 -0
  6. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/tests/test_light.py +2 -0
  7. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/tests/test_switch.py +1 -0
  8. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/LICENSE +0 -0
  9. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/README.md +0 -0
  10. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/__init__.py +0 -0
  11. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/async_support.py +0 -0
  12. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/caches/__init__.py +0 -0
  13. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/caches/dynamic.py +0 -0
  14. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/caches/persistent.py +0 -0
  15. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/central/__init__.py +0 -0
  16. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/central/decorators.py +0 -0
  17. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/central/xml_rpc_server.py +0 -0
  18. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/client/__init__.py +0 -0
  19. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/client/_rpc_errors.py +0 -0
  20. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/client/json_rpc.py +0 -0
  21. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/client/xml_rpc.py +0 -0
  22. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/context.py +0 -0
  23. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/converter.py +0 -0
  24. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/decorators.py +0 -0
  25. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/exceptions.py +0 -0
  26. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/hmcli.py +0 -0
  27. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/__init__.py +0 -0
  28. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/calculated/__init__.py +0 -0
  29. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/calculated/climate.py +0 -0
  30. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/calculated/data_point.py +0 -0
  31. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/calculated/operating_voltage_level.py +0 -0
  32. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/calculated/support.py +0 -0
  33. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/custom/__init__.py +0 -0
  34. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/custom/climate.py +0 -0
  35. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/custom/const.py +0 -0
  36. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/custom/cover.py +0 -0
  37. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/custom/data_point.py +0 -0
  38. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/custom/definition.py +0 -0
  39. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/custom/light.py +0 -0
  40. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/custom/lock.py +0 -0
  41. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/custom/siren.py +0 -0
  42. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/custom/support.py +0 -0
  43. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/custom/switch.py +0 -0
  44. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/custom/valve.py +0 -0
  45. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/data_point.py +0 -0
  46. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/device.py +0 -0
  47. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/event.py +0 -0
  48. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/generic/__init__.py +0 -0
  49. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/generic/action.py +0 -0
  50. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/generic/binary_sensor.py +0 -0
  51. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/generic/button.py +0 -0
  52. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/generic/data_point.py +0 -0
  53. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/generic/number.py +0 -0
  54. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/generic/select.py +0 -0
  55. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/generic/sensor.py +0 -0
  56. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/generic/switch.py +0 -0
  57. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/generic/text.py +0 -0
  58. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/hub/__init__.py +0 -0
  59. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/hub/binary_sensor.py +0 -0
  60. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/hub/button.py +0 -0
  61. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/hub/data_point.py +0 -0
  62. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/hub/number.py +0 -0
  63. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/hub/select.py +0 -0
  64. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/hub/sensor.py +0 -0
  65. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/hub/switch.py +0 -0
  66. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/hub/text.py +0 -0
  67. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/support.py +0 -0
  68. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/model/update.py +0 -0
  69. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/property_decorators.py +0 -0
  70. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/py.typed +0 -0
  71. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/rega_scripts/fetch_all_device_data.fn +0 -0
  72. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/rega_scripts/get_program_descriptions.fn +0 -0
  73. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/rega_scripts/get_serial.fn +0 -0
  74. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/rega_scripts/get_system_variable_descriptions.fn +0 -0
  75. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/rega_scripts/set_program_state.fn +0 -0
  76. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/rega_scripts/set_system_variable.fn +0 -0
  77. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/support.py +0 -0
  78. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic/validator.py +0 -0
  79. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic.egg-info/SOURCES.txt +0 -0
  80. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic.egg-info/dependency_links.txt +0 -0
  81. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic.egg-info/requires.txt +0 -0
  82. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic.egg-info/top_level.txt +0 -0
  83. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic_support/__init__.py +0 -0
  84. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/aiohomematic_support/client_local.py +0 -0
  85. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/pyproject.toml +0 -0
  86. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/setup.cfg +0 -0
  87. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/tests/test_action.py +0 -0
  88. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/tests/test_binary_sensor.py +0 -0
  89. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/tests/test_button.py +0 -0
  90. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/tests/test_calculated_support.py +0 -0
  91. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/tests/test_central.py +0 -0
  92. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/tests/test_climate.py +0 -0
  93. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/tests/test_cover.py +0 -0
  94. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/tests/test_decorator.py +0 -0
  95. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/tests/test_device.py +0 -0
  96. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/tests/test_entity.py +0 -0
  97. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/tests/test_event.py +0 -0
  98. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/tests/test_json_rpc.py +0 -0
  99. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/tests/test_lock.py +0 -0
  100. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/tests/test_number.py +0 -0
  101. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/tests/test_select.py +0 -0
  102. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/tests/test_sensor.py +0 -0
  103. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/tests/test_siren.py +0 -0
  104. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/tests/test_support.py +0 -0
  105. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/tests/test_text.py +0 -0
  106. {aiohomematic-2025.9.7 → aiohomematic-2025.9.8}/tests/test_valve.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aiohomematic
3
- Version: 2025.9.7
3
+ Version: 2025.9.8
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>
@@ -171,6 +171,8 @@ _IGNORED_PARAMETERS: Final[frozenset[TParameterName]] = frozenset(
171
171
  "CLEAR_ERROR",
172
172
  "CLEAR_WINDOW_OPEN_SYMBOL",
173
173
  "CLOCK",
174
+ "CMD_RETL", # CuXD
175
+ "CMD_RETS", # CuXD
174
176
  "CONTROL_DIFFERENTIAL_TEMPERATURE",
175
177
  "DATE_TIME_UNKNOWN",
176
178
  "DECISION_VALUE",
@@ -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.7"
22
+ VERSION: Final = "2025.9.8"
23
23
 
24
24
  # Detect test speedup mode via environment
25
25
  _TEST_SPEEDUP: Final = (
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aiohomematic
3
- Version: 2025.9.7
3
+ Version: 2025.9.8
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>
@@ -55,6 +55,11 @@ async def test_central_full(central_unit_full) -> None: # noqa: C901
55
55
 
56
56
  data = {}
57
57
  for device in central_unit_full.devices:
58
+ if device.model in ("HmIP-BSM", "HmIP-BDT", "HmIP-PSM", "HmIP-FSM", "HmIP-WSM", "HmIP-SMO230-A"):
59
+ assert device.has_sub_devices is False
60
+ if device.model in ("HmIP-DRSI4", "HmIP-DRDI3", "HmIP-BSL"):
61
+ assert device.has_sub_devices is True
62
+
58
63
  if device.model not in data:
59
64
  data[device.model] = {}
60
65
  for dp in device.generic_data_points:
@@ -639,6 +639,7 @@ async def test_ceipfixedcolorlightwired(
639
639
  light: CustomDpIpFixedColorLight = cast(
640
640
  CustomDpIpFixedColorLight, helper.get_prepared_custom_data_point(central, "VCU4704397", 8)
641
641
  )
642
+ assert light.channel.device.has_sub_devices is False
642
643
  assert light.usage == DataPointUsage.CDP_PRIMARY
643
644
  assert light.color_temp_kelvin is None
644
645
  assert light.hs_color == (0.0, 0.0)
@@ -927,6 +928,7 @@ async def test_ceiprgbwlight(
927
928
  light: CustomDpIpRGBWLight = cast(
928
929
  CustomDpIpRGBWLight, helper.get_prepared_custom_data_point(central, "VCU5629873", 1)
929
930
  )
931
+ assert light.channel.device.has_sub_devices is False
930
932
  assert light.usage == DataPointUsage.CDP_PRIMARY
931
933
  assert light.color_temp_kelvin is None
932
934
  assert light.hs_color is None
@@ -45,6 +45,7 @@ async def test_ceswitch(
45
45
  switch: CustomDpSwitch = cast(CustomDpSwitch, helper.get_prepared_custom_data_point(central, "VCU2128127", 4))
46
46
  assert switch.usage == DataPointUsage.CDP_PRIMARY
47
47
  assert switch.service_method_names == ("turn_off", "turn_on")
48
+ assert switch.channel.device.has_sub_devices is False
48
49
 
49
50
  await switch.turn_off()
50
51
  assert switch.value is False
File without changes