PyPlumIO 0.5.54__tar.gz → 0.5.55__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.
Files changed (171) hide show
  1. {pyplumio-0.5.54 → pyplumio-0.5.55}/PKG-INFO +1 -1
  2. {pyplumio-0.5.54 → pyplumio-0.5.55}/PyPlumIO.egg-info/PKG-INFO +1 -1
  3. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/_version.py +3 -3
  4. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/devices/ecomax.py +14 -2
  5. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/devices/test_ecomax.py +16 -2
  6. {pyplumio-0.5.54 → pyplumio-0.5.55}/.gitattributes +0 -0
  7. {pyplumio-0.5.54 → pyplumio-0.5.55}/.github/CODE_OF_CONDUCT.md +0 -0
  8. {pyplumio-0.5.54 → pyplumio-0.5.55}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  9. {pyplumio-0.5.54 → pyplumio-0.5.55}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  10. {pyplumio-0.5.54 → pyplumio-0.5.55}/.github/dependabot.yml +0 -0
  11. {pyplumio-0.5.54 → pyplumio-0.5.55}/.github/workflows/ci.yml +0 -0
  12. {pyplumio-0.5.54 → pyplumio-0.5.55}/.github/workflows/codeql.yml +0 -0
  13. {pyplumio-0.5.54 → pyplumio-0.5.55}/.github/workflows/deploy.yml +0 -0
  14. {pyplumio-0.5.54 → pyplumio-0.5.55}/.github/workflows/documentation.yml +0 -0
  15. {pyplumio-0.5.54 → pyplumio-0.5.55}/.gitignore +0 -0
  16. {pyplumio-0.5.54 → pyplumio-0.5.55}/.pre-commit-config.yaml +0 -0
  17. {pyplumio-0.5.54 → pyplumio-0.5.55}/.qlty/qlty.toml +0 -0
  18. {pyplumio-0.5.54 → pyplumio-0.5.55}/.vscode/settings.json +0 -0
  19. {pyplumio-0.5.54 → pyplumio-0.5.55}/LICENSE +0 -0
  20. {pyplumio-0.5.54 → pyplumio-0.5.55}/MANIFEST.in +0 -0
  21. {pyplumio-0.5.54 → pyplumio-0.5.55}/PyPlumIO.egg-info/SOURCES.txt +0 -0
  22. {pyplumio-0.5.54 → pyplumio-0.5.55}/PyPlumIO.egg-info/dependency_links.txt +0 -0
  23. {pyplumio-0.5.54 → pyplumio-0.5.55}/PyPlumIO.egg-info/requires.txt +0 -0
  24. {pyplumio-0.5.54 → pyplumio-0.5.55}/PyPlumIO.egg-info/top_level.txt +0 -0
  25. {pyplumio-0.5.54 → pyplumio-0.5.55}/README.md +0 -0
  26. {pyplumio-0.5.54 → pyplumio-0.5.55}/docs/Makefile +0 -0
  27. {pyplumio-0.5.54 → pyplumio-0.5.55}/docs/make.bat +0 -0
  28. {pyplumio-0.5.54 → pyplumio-0.5.55}/docs/source/callbacks.rst +0 -0
  29. {pyplumio-0.5.54 → pyplumio-0.5.55}/docs/source/conf.py +0 -0
  30. {pyplumio-0.5.54 → pyplumio-0.5.55}/docs/source/connecting.rst +0 -0
  31. {pyplumio-0.5.54 → pyplumio-0.5.55}/docs/source/frames.rst +0 -0
  32. {pyplumio-0.5.54 → pyplumio-0.5.55}/docs/source/index.rst +0 -0
  33. {pyplumio-0.5.54 → pyplumio-0.5.55}/docs/source/mixers_thermostats.rst +0 -0
  34. {pyplumio-0.5.54 → pyplumio-0.5.55}/docs/source/protocol.rst +0 -0
  35. {pyplumio-0.5.54 → pyplumio-0.5.55}/docs/source/reading.rst +0 -0
  36. {pyplumio-0.5.54 → pyplumio-0.5.55}/docs/source/schedules.rst +0 -0
  37. {pyplumio-0.5.54 → pyplumio-0.5.55}/docs/source/writing.rst +0 -0
  38. {pyplumio-0.5.54 → pyplumio-0.5.55}/images/ecomax.png +0 -0
  39. {pyplumio-0.5.54 → pyplumio-0.5.55}/images/rs485.png +0 -0
  40. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/__init__.py +0 -0
  41. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/__main__.py +0 -0
  42. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/connection.py +0 -0
  43. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/const.py +0 -0
  44. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/data_types.py +0 -0
  45. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/devices/__init__.py +0 -0
  46. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/devices/ecoster.py +0 -0
  47. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/devices/mixer.py +0 -0
  48. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/devices/thermostat.py +0 -0
  49. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/exceptions.py +0 -0
  50. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/filters.py +0 -0
  51. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/frames/__init__.py +0 -0
  52. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/frames/messages.py +0 -0
  53. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/frames/requests.py +0 -0
  54. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/frames/responses.py +0 -0
  55. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/helpers/__init__.py +0 -0
  56. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/helpers/async_cache.py +0 -0
  57. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/helpers/event_manager.py +0 -0
  58. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/helpers/factory.py +0 -0
  59. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/helpers/task_manager.py +0 -0
  60. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/parameters/__init__.py +0 -0
  61. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/parameters/custom/__init__.py +0 -0
  62. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/parameters/custom/ecomax_860d3_hb.py +0 -0
  63. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/parameters/ecomax.py +0 -0
  64. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/parameters/mixer.py +0 -0
  65. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/parameters/thermostat.py +0 -0
  66. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/protocol.py +0 -0
  67. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/py.typed +0 -0
  68. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/stream.py +0 -0
  69. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/structures/__init__.py +0 -0
  70. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/structures/alerts.py +0 -0
  71. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/structures/boiler_load.py +0 -0
  72. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/structures/boiler_power.py +0 -0
  73. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/structures/ecomax_parameters.py +0 -0
  74. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/structures/fan_power.py +0 -0
  75. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/structures/frame_versions.py +0 -0
  76. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/structures/fuel_consumption.py +0 -0
  77. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/structures/fuel_level.py +0 -0
  78. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/structures/lambda_sensor.py +0 -0
  79. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/structures/mixer_parameters.py +0 -0
  80. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/structures/mixer_sensors.py +0 -0
  81. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/structures/modules.py +0 -0
  82. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/structures/network_info.py +0 -0
  83. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/structures/output_flags.py +0 -0
  84. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/structures/outputs.py +0 -0
  85. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/structures/pending_alerts.py +0 -0
  86. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/structures/product_info.py +0 -0
  87. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/structures/program_version.py +0 -0
  88. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/structures/regulator_data.py +0 -0
  89. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/structures/regulator_data_schema.py +0 -0
  90. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/structures/schedules.py +0 -0
  91. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/structures/statuses.py +0 -0
  92. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/structures/temperatures.py +0 -0
  93. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/structures/thermostat_parameters.py +0 -0
  94. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/structures/thermostat_sensors.py +0 -0
  95. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyplumio/utils.py +0 -0
  96. {pyplumio-0.5.54 → pyplumio-0.5.55}/pyproject.toml +0 -0
  97. {pyplumio-0.5.54 → pyplumio-0.5.55}/requirements.txt +0 -0
  98. {pyplumio-0.5.54 → pyplumio-0.5.55}/requirements_docs.txt +0 -0
  99. {pyplumio-0.5.54 → pyplumio-0.5.55}/requirements_test.txt +0 -0
  100. {pyplumio-0.5.54 → pyplumio-0.5.55}/setup.cfg +0 -0
  101. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/__init__.py +0 -0
  102. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/conftest.py +0 -0
  103. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/devices/__init__.py +0 -0
  104. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/devices/test_ecoster.py +0 -0
  105. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/devices/test_init.py +0 -0
  106. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/devices/test_mixer.py +0 -0
  107. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/devices/test_thermostat.py +0 -0
  108. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/frames/test_init.py +0 -0
  109. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/frames/test_messages.py +0 -0
  110. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/frames/test_requests.py +0 -0
  111. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/frames/test_responses.py +0 -0
  112. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/helpers/__init__.py +0 -0
  113. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/helpers/test_async_cache.py +0 -0
  114. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/helpers/test_event_manager.py +0 -0
  115. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/helpers/test_factory.py +0 -0
  116. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/helpers/test_task_manager.py +0 -0
  117. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/helpers/test_uid.py +0 -0
  118. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/parameters/__init__.py +0 -0
  119. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/parameters/custom/__init__.py +0 -0
  120. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/parameters/custom/test_ecomax_860d3_hb.py +0 -0
  121. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/parameters/custom/test_init.py +0 -0
  122. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/parameters/test_ecomax.py +0 -0
  123. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/parameters/test_init.py +0 -0
  124. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/parameters/test_mixers.py +0 -0
  125. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/parameters/test_thermostats.py +0 -0
  126. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/ruff.toml +0 -0
  127. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/structures/__init__.py +0 -0
  128. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/structures/test_alerts.py +0 -0
  129. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/structures/test_boiler_load.py +0 -0
  130. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/structures/test_boiler_power.py +0 -0
  131. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/structures/test_ecomax_parameters.py +0 -0
  132. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/structures/test_fan_power.py +0 -0
  133. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/structures/test_frame_versions.py +0 -0
  134. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/structures/test_fuel_consumption.py +0 -0
  135. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/structures/test_fuel_level.py +0 -0
  136. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/structures/test_lambda_sensor.py +0 -0
  137. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/structures/test_mixer_parameters.py +0 -0
  138. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/structures/test_product_info.py +0 -0
  139. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/structures/test_schedules.py +0 -0
  140. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/test_connection.py +0 -0
  141. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/test_data_types.py +0 -0
  142. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/test_filters.py +0 -0
  143. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/test_init.py +0 -0
  144. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/test_main.py +0 -0
  145. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/test_protocol.py +0 -0
  146. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/test_stream.py +0 -0
  147. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/test_utils.py +0 -0
  148. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/testdata/messages/regulator_data.json +0 -0
  149. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/testdata/messages/sensor_data.json +0 -0
  150. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/testdata/parameters/ecomax_860d3_hb.json +0 -0
  151. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/testdata/requests/alerts.json +0 -0
  152. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/testdata/requests/ecomax_control.json +0 -0
  153. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/testdata/requests/ecomax_parameters.json +0 -0
  154. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/testdata/requests/mixer_parameters.json +0 -0
  155. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/testdata/requests/set_ecomax_parameter.json +0 -0
  156. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/testdata/requests/set_mixer_parameter.json +0 -0
  157. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/testdata/requests/set_schedule.json +0 -0
  158. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/testdata/requests/set_thermostat_parameter.json +0 -0
  159. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/testdata/requests/thermostat_parameters.json +0 -0
  160. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/testdata/responses/alerts.json +0 -0
  161. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/testdata/responses/device_available.json +0 -0
  162. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/testdata/responses/ecomax_parameters.json +0 -0
  163. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/testdata/responses/mixer_parameters.json +0 -0
  164. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/testdata/responses/password.json +0 -0
  165. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/testdata/responses/program_version.json +0 -0
  166. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/testdata/responses/regulator_data_schema.json +0 -0
  167. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/testdata/responses/schedules.json +0 -0
  168. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/testdata/responses/thermostat_parameters.json +0 -0
  169. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/testdata/responses/uid.json +0 -0
  170. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/testdata/unknown/unknown_ecomax_parameter.json +0 -0
  171. {pyplumio-0.5.54 → pyplumio-0.5.55}/tests/testdata/unknown/unknown_mixer_parameter.json +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyPlumIO
3
- Version: 0.5.54
3
+ Version: 0.5.55
4
4
  Summary: PyPlumIO is a native ecoNET library for Plum ecoMAX controllers.
5
5
  Author-email: Denis Paavilainen <denpa@denpa.pro>
6
6
  License: MIT License
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: PyPlumIO
3
- Version: 0.5.54
3
+ Version: 0.5.55
4
4
  Summary: PyPlumIO is a native ecoNET library for Plum ecoMAX controllers.
5
5
  Author-email: Denis Paavilainen <denpa@denpa.pro>
6
6
  License: MIT License
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.5.54'
32
- __version_tuple__ = version_tuple = (0, 5, 54)
31
+ __version__ = version = '0.5.55'
32
+ __version_tuple__ = version_tuple = (0, 5, 55)
33
33
 
34
- __commit_id__ = commit_id = 'g7b7ef864f'
34
+ __commit_id__ = commit_id = 'gb0f1bcbdf'
@@ -139,6 +139,8 @@ REQUIRED: tuple[DataFrameDescription, ...] = (
139
139
 
140
140
  REQUIRED_TYPES = [description.frame_type for description in REQUIRED]
141
141
 
142
+ SETUP_TIMEOUT: Final = 60.0
143
+
142
144
 
143
145
  class EcoMAX(PhysicalDevice):
144
146
  """Represents an ecoMAX controller."""
@@ -233,10 +235,19 @@ class EcoMAX(PhysicalDevice):
233
235
  await super().shutdown()
234
236
 
235
237
  @event_listener
236
- async def on_event_setup(self, setup: bool) -> None:
238
+ async def on_event_setup(self, setup: bool) -> bool:
237
239
  """Request frames required to set up an ecoMAX entry."""
238
240
  _LOGGER.debug("Setting up device entry")
239
- await self.wait_for(ATTR_SENSORS, timeout=30.0)
241
+
242
+ try:
243
+ await self.wait_for(ATTR_SENSORS, timeout=SETUP_TIMEOUT)
244
+ except asyncio.TimeoutError:
245
+ _LOGGER.error(
246
+ "Could not setup device entry; no response from device for %u seconds",
247
+ SETUP_TIMEOUT,
248
+ )
249
+ return False
250
+
240
251
  results = await asyncio.gather(
241
252
  *(
242
253
  self.request(description.provides, description.frame_type)
@@ -253,6 +264,7 @@ class EcoMAX(PhysicalDevice):
253
264
  self.dispatch_nowait(ATTR_FRAME_ERRORS, errors)
254
265
 
255
266
  _LOGGER.debug("Device entry setup done")
267
+ return True
256
268
 
257
269
  @event_listener
258
270
  async def on_event_ecomax_parameters(
@@ -1,5 +1,6 @@
1
1
  """Contains tests for the ecoMAX device."""
2
2
 
3
+ import asyncio
3
4
  from datetime import timedelta
4
5
  import logging
5
6
  from typing import Any, cast
@@ -206,7 +207,20 @@ async def test_ecomax_setup(mock_wait_for, mock_request, ecomax: EcoMAX) -> None
206
207
  await ecomax.wait_until_done()
207
208
  assert ATTR_FRAME_ERRORS not in ecomax.data
208
209
  assert mock_request.await_count == len(REQUIRED)
209
- mock_wait_for.assert_awaited_once_with(ATTR_SENSORS, timeout=30.0)
210
+ mock_wait_for.assert_awaited_once_with(ATTR_SENSORS, timeout=60.0)
211
+
212
+
213
+ @patch("pyplumio.devices.ecomax.EcoMAX.request")
214
+ @patch("pyplumio.devices.ecomax.EcoMAX.wait_for", side_effect=(asyncio.TimeoutError,))
215
+ async def test_ecomax_setup_failed(
216
+ mock_wait_for, mock_request, ecomax: EcoMAX, caplog
217
+ ) -> None:
218
+ """Test setting up an ecoMAX entry with failure due to timeout."""
219
+ ecomax.dispatch_nowait(ATTR_SETUP, True)
220
+ await ecomax.wait_until_done()
221
+ assert ecomax.get_nowait(ATTR_SETUP) is False
222
+ assert "Could not setup device entry" in caplog.text
223
+ assert "no response from device for 60 seconds" in caplog.text
210
224
 
211
225
 
212
226
  @patch(
@@ -220,7 +234,7 @@ async def test_ecomax_setup_errors(mock_wait_for, mock_request, ecomax: EcoMAX)
220
234
  await ecomax.wait_until_done()
221
235
  assert FrameType.REQUEST_ALERTS in ecomax.get_nowait(ATTR_FRAME_ERRORS, [])
222
236
  assert mock_request.await_count == len(REQUIRED)
223
- mock_wait_for.assert_awaited_once_with(ATTR_SENSORS, timeout=30.0)
237
+ mock_wait_for.assert_awaited_once_with(ATTR_SENSORS, timeout=60.0)
224
238
 
225
239
 
226
240
  @patch("asyncio.Queue.put")
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes