aiohomematic 2025.9.6__tar.gz → 2025.9.7__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.6 → aiohomematic-2025.9.7}/PKG-INFO +1 -1
  2. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/const.py +1 -1
  3. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/device.py +12 -1
  4. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic.egg-info/PKG-INFO +1 -1
  5. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/LICENSE +0 -0
  6. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/README.md +0 -0
  7. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/__init__.py +0 -0
  8. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/async_support.py +0 -0
  9. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/caches/__init__.py +0 -0
  10. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/caches/dynamic.py +0 -0
  11. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/caches/persistent.py +0 -0
  12. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/caches/visibility.py +0 -0
  13. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/central/__init__.py +0 -0
  14. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/central/decorators.py +0 -0
  15. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/central/xml_rpc_server.py +0 -0
  16. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/client/__init__.py +0 -0
  17. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/client/_rpc_errors.py +0 -0
  18. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/client/json_rpc.py +0 -0
  19. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/client/xml_rpc.py +0 -0
  20. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/context.py +0 -0
  21. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/converter.py +0 -0
  22. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/decorators.py +0 -0
  23. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/exceptions.py +0 -0
  24. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/hmcli.py +0 -0
  25. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/__init__.py +0 -0
  26. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/calculated/__init__.py +0 -0
  27. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/calculated/climate.py +0 -0
  28. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/calculated/data_point.py +0 -0
  29. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/calculated/operating_voltage_level.py +0 -0
  30. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/calculated/support.py +0 -0
  31. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/custom/__init__.py +0 -0
  32. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/custom/climate.py +0 -0
  33. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/custom/const.py +0 -0
  34. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/custom/cover.py +0 -0
  35. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/custom/data_point.py +0 -0
  36. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/custom/definition.py +0 -0
  37. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/custom/light.py +0 -0
  38. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/custom/lock.py +0 -0
  39. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/custom/siren.py +0 -0
  40. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/custom/support.py +0 -0
  41. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/custom/switch.py +0 -0
  42. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/custom/valve.py +0 -0
  43. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/data_point.py +0 -0
  44. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/event.py +0 -0
  45. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/generic/__init__.py +0 -0
  46. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/generic/action.py +0 -0
  47. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/generic/binary_sensor.py +0 -0
  48. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/generic/button.py +0 -0
  49. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/generic/data_point.py +0 -0
  50. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/generic/number.py +0 -0
  51. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/generic/select.py +0 -0
  52. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/generic/sensor.py +0 -0
  53. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/generic/switch.py +0 -0
  54. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/generic/text.py +0 -0
  55. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/hub/__init__.py +0 -0
  56. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/hub/binary_sensor.py +0 -0
  57. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/hub/button.py +0 -0
  58. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/hub/data_point.py +0 -0
  59. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/hub/number.py +0 -0
  60. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/hub/select.py +0 -0
  61. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/hub/sensor.py +0 -0
  62. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/hub/switch.py +0 -0
  63. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/hub/text.py +0 -0
  64. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/support.py +0 -0
  65. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/model/update.py +0 -0
  66. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/property_decorators.py +0 -0
  67. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/py.typed +0 -0
  68. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/rega_scripts/fetch_all_device_data.fn +0 -0
  69. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/rega_scripts/get_program_descriptions.fn +0 -0
  70. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/rega_scripts/get_serial.fn +0 -0
  71. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/rega_scripts/get_system_variable_descriptions.fn +0 -0
  72. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/rega_scripts/set_program_state.fn +0 -0
  73. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/rega_scripts/set_system_variable.fn +0 -0
  74. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/support.py +0 -0
  75. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic/validator.py +0 -0
  76. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic.egg-info/SOURCES.txt +0 -0
  77. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic.egg-info/dependency_links.txt +0 -0
  78. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic.egg-info/requires.txt +0 -0
  79. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic.egg-info/top_level.txt +0 -0
  80. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic_support/__init__.py +0 -0
  81. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/aiohomematic_support/client_local.py +0 -0
  82. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/pyproject.toml +0 -0
  83. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/setup.cfg +0 -0
  84. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/tests/test_action.py +0 -0
  85. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/tests/test_binary_sensor.py +0 -0
  86. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/tests/test_button.py +0 -0
  87. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/tests/test_calculated_support.py +0 -0
  88. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/tests/test_central.py +0 -0
  89. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/tests/test_central_pydevccu.py +0 -0
  90. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/tests/test_climate.py +0 -0
  91. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/tests/test_cover.py +0 -0
  92. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/tests/test_decorator.py +0 -0
  93. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/tests/test_device.py +0 -0
  94. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/tests/test_entity.py +0 -0
  95. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/tests/test_event.py +0 -0
  96. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/tests/test_json_rpc.py +0 -0
  97. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/tests/test_light.py +0 -0
  98. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/tests/test_lock.py +0 -0
  99. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/tests/test_number.py +0 -0
  100. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/tests/test_select.py +0 -0
  101. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/tests/test_sensor.py +0 -0
  102. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/tests/test_siren.py +0 -0
  103. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/tests/test_support.py +0 -0
  104. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/tests/test_switch.py +0 -0
  105. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/tests/test_text.py +0 -0
  106. {aiohomematic-2025.9.6 → aiohomematic-2025.9.7}/tests/test_valve.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aiohomematic
3
- Version: 2025.9.6
3
+ Version: 2025.9.7
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>
@@ -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.6"
22
+ VERSION: Final = "2025.9.7"
23
23
 
24
24
  # Detect test speedup mode via environment
25
25
  _TEST_SPEEDUP: Final = (
@@ -307,7 +307,18 @@ class Device(LogContextMixin, PayloadMixin):
307
307
  @property
308
308
  def has_sub_devices(self) -> bool:
309
309
  """Return if device has multiple sub device channels."""
310
- return any(len(gcs) > 1 for gcs in self._group_channels.values())
310
+ # If there is only one channel group, no sub devices are needed
311
+ if len(self._group_channels) <= 1:
312
+ return False
313
+ count = 0
314
+ # If there are multiple channel groups with more than one channel, there are sub devices
315
+ for gcs in self._group_channels.values():
316
+ if len(gcs) > 1:
317
+ count += 1
318
+ if count > 1:
319
+ return True
320
+
321
+ return False
311
322
 
312
323
  @property
313
324
  def id(self) -> str:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aiohomematic
3
- Version: 2025.9.6
3
+ Version: 2025.9.7
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>
File without changes