aiohomematic 2025.8.6__tar.gz → 2025.8.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 (105) hide show
  1. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/LICENSE +1 -1
  2. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/PKG-INFO +3 -3
  3. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/README.md +2 -2
  4. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/const.py +1 -1
  5. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/device.py +6 -0
  6. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic.egg-info/PKG-INFO +3 -3
  7. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic.egg-info/top_level.txt +0 -1
  8. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/__init__.py +0 -0
  9. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/async_support.py +0 -0
  10. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/caches/__init__.py +0 -0
  11. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/caches/dynamic.py +0 -0
  12. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/caches/persistent.py +0 -0
  13. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/caches/visibility.py +0 -0
  14. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/central/__init__.py +0 -0
  15. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/central/decorators.py +0 -0
  16. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/central/xml_rpc_server.py +0 -0
  17. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/client/__init__.py +0 -0
  18. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/client/json_rpc.py +0 -0
  19. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/client/xml_rpc.py +0 -0
  20. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/context.py +0 -0
  21. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/converter.py +0 -0
  22. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/decorators.py +0 -0
  23. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/exceptions.py +0 -0
  24. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/hmcli.py +0 -0
  25. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/__init__.py +0 -0
  26. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/calculated/__init__.py +0 -0
  27. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/calculated/climate.py +0 -0
  28. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/calculated/data_point.py +0 -0
  29. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/calculated/operating_voltage_level.py +0 -0
  30. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/calculated/support.py +0 -0
  31. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/custom/__init__.py +0 -0
  32. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/custom/climate.py +0 -0
  33. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/custom/const.py +0 -0
  34. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/custom/cover.py +0 -0
  35. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/custom/data_point.py +0 -0
  36. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/custom/definition.py +0 -0
  37. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/custom/light.py +0 -0
  38. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/custom/lock.py +0 -0
  39. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/custom/siren.py +0 -0
  40. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/custom/support.py +0 -0
  41. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/custom/switch.py +0 -0
  42. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/custom/valve.py +0 -0
  43. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/data_point.py +0 -0
  44. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/decorators.py +0 -0
  45. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/event.py +0 -0
  46. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/generic/__init__.py +0 -0
  47. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/generic/action.py +0 -0
  48. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/generic/binary_sensor.py +0 -0
  49. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/generic/button.py +0 -0
  50. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/generic/data_point.py +0 -0
  51. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/generic/number.py +0 -0
  52. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/generic/select.py +0 -0
  53. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/generic/sensor.py +0 -0
  54. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/generic/switch.py +0 -0
  55. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/generic/text.py +0 -0
  56. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/hub/__init__.py +0 -0
  57. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/hub/binary_sensor.py +0 -0
  58. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/hub/button.py +0 -0
  59. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/hub/data_point.py +0 -0
  60. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/hub/number.py +0 -0
  61. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/hub/select.py +0 -0
  62. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/hub/sensor.py +0 -0
  63. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/hub/switch.py +0 -0
  64. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/hub/text.py +0 -0
  65. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/support.py +0 -0
  66. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/model/update.py +0 -0
  67. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/py.typed +0 -0
  68. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/rega_scripts/fetch_all_device_data.fn +0 -0
  69. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/rega_scripts/get_program_descriptions.fn +0 -0
  70. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/rega_scripts/get_serial.fn +0 -0
  71. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/rega_scripts/get_system_variable_descriptions.fn +0 -0
  72. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/rega_scripts/set_program_state.fn +0 -0
  73. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/rega_scripts/set_system_variable.fn +0 -0
  74. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/support.py +0 -0
  75. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic/validator.py +0 -0
  76. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic.egg-info/SOURCES.txt +0 -0
  77. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic.egg-info/dependency_links.txt +0 -0
  78. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic.egg-info/requires.txt +0 -0
  79. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic_support/__init__.py +0 -0
  80. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/aiohomematic_support/client_local.py +0 -0
  81. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/pyproject.toml +0 -0
  82. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/setup.cfg +0 -0
  83. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/tests/test_action.py +0 -0
  84. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/tests/test_binary_sensor.py +0 -0
  85. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/tests/test_button.py +0 -0
  86. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/tests/test_calculated_support.py +0 -0
  87. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/tests/test_central.py +0 -0
  88. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/tests/test_central_pydevccu.py +0 -0
  89. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/tests/test_climate.py +0 -0
  90. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/tests/test_cover.py +0 -0
  91. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/tests/test_decorator.py +0 -0
  92. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/tests/test_device.py +0 -0
  93. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/tests/test_entity.py +0 -0
  94. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/tests/test_event.py +0 -0
  95. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/tests/test_json_rpc.py +0 -0
  96. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/tests/test_light.py +0 -0
  97. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/tests/test_lock.py +0 -0
  98. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/tests/test_number.py +0 -0
  99. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/tests/test_select.py +0 -0
  100. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/tests/test_sensor.py +0 -0
  101. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/tests/test_siren.py +0 -0
  102. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/tests/test_support.py +0 -0
  103. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/tests/test_switch.py +0 -0
  104. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/tests/test_text.py +0 -0
  105. {aiohomematic-2025.8.6 → aiohomematic-2025.8.7}/tests/test_valve.py +0 -0
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2021 Daniel Perna
3
+ Copyright (c) 2021 Daniel Perna, SukramJ
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aiohomematic
3
- Version: 2025.8.6
3
+ Version: 2025.8.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>
@@ -49,9 +49,9 @@ Unlike pyhomematic, which required manual device mappings, aiohomematic automati
49
49
 
50
50
  ## Installation (with Home Assistant)
51
51
 
52
- Install via the custom component: [custom_homematic](https://github.com/sukramj/custom_homematic).
52
+ Install via the custom component: [Homematic(IP) Local](https://github.com/sukramj/homematicip_local).
53
53
 
54
- Follow the installation guide: https://github.com/sukramj/custom_homematic/wiki/Installation
54
+ Follow the installation guide: https://github.com/sukramj/homematicip_local/wiki/Installation
55
55
 
56
56
  ## Requirements
57
57
 
@@ -21,9 +21,9 @@ Unlike pyhomematic, which required manual device mappings, aiohomematic automati
21
21
 
22
22
  ## Installation (with Home Assistant)
23
23
 
24
- Install via the custom component: [custom_homematic](https://github.com/sukramj/custom_homematic).
24
+ Install via the custom component: [Homematic(IP) Local](https://github.com/sukramj/homematicip_local).
25
25
 
26
- Follow the installation guide: https://github.com/sukramj/custom_homematic/wiki/Installation
26
+ Follow the installation guide: https://github.com/sukramj/homematicip_local/wiki/Installation
27
27
 
28
28
  ## Requirements
29
29
 
@@ -11,7 +11,7 @@ import re
11
11
  import sys
12
12
  from typing import Any, Final, NamedTuple, Required, TypedDict
13
13
 
14
- VERSION: Final = "2025.8.6"
14
+ VERSION: Final = "2025.8.7"
15
15
 
16
16
  # Detect test speedup mode via environment
17
17
  _TEST_SPEEDUP: Final = (
@@ -371,6 +371,8 @@ class Device(PayloadMixin):
371
371
  """Return the room of the device, if only one assigned in CCU."""
372
372
  if self._rooms and len(self._rooms) == 1:
373
373
  return list(self._rooms)[0]
374
+ if (maintenance_channel := self.get_channel(channel_address=f"{self._address}:0")) is not None:
375
+ return maintenance_channel.room
374
376
  return None
375
377
 
376
378
  @property
@@ -857,6 +859,10 @@ class Channel(PayloadMixin):
857
859
  """Return the room of the device, if only one assigned in CCU."""
858
860
  if self._rooms and len(self._rooms) == 1:
859
861
  return list(self._rooms)[0]
862
+ if self.is_group_master:
863
+ return None
864
+ if (master_channel := self.group_master) is not None:
865
+ return master_channel.room
860
866
  return None
861
867
 
862
868
  @property
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: aiohomematic
3
- Version: 2025.8.6
3
+ Version: 2025.8.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>
@@ -49,9 +49,9 @@ Unlike pyhomematic, which required manual device mappings, aiohomematic automati
49
49
 
50
50
  ## Installation (with Home Assistant)
51
51
 
52
- Install via the custom component: [custom_homematic](https://github.com/sukramj/custom_homematic).
52
+ Install via the custom component: [Homematic(IP) Local](https://github.com/sukramj/homematicip_local).
53
53
 
54
- Follow the installation guide: https://github.com/sukramj/custom_homematic/wiki/Installation
54
+ Follow the installation guide: https://github.com/sukramj/homematicip_local/wiki/Installation
55
55
 
56
56
  ## Requirements
57
57
 
@@ -1,3 +1,2 @@
1
1
  aiohomematic
2
- aiohomematic_storage
3
2
  aiohomematic_support