PyPlumIO 0.5.45__tar.gz → 0.5.46__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 (152) hide show
  1. {pyplumio-0.5.45 → pyplumio-0.5.46}/PKG-INFO +1 -1
  2. {pyplumio-0.5.45 → pyplumio-0.5.46}/PyPlumIO.egg-info/PKG-INFO +1 -1
  3. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/_version.py +2 -2
  4. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/devices/ecomax.py +3 -10
  5. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/test_devices.py +1 -0
  6. {pyplumio-0.5.45 → pyplumio-0.5.46}/.gitattributes +0 -0
  7. {pyplumio-0.5.45 → pyplumio-0.5.46}/.github/CODE_OF_CONDUCT.md +0 -0
  8. {pyplumio-0.5.45 → pyplumio-0.5.46}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  9. {pyplumio-0.5.45 → pyplumio-0.5.46}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
  10. {pyplumio-0.5.45 → pyplumio-0.5.46}/.github/dependabot.yml +0 -0
  11. {pyplumio-0.5.45 → pyplumio-0.5.46}/.github/workflows/ci.yml +0 -0
  12. {pyplumio-0.5.45 → pyplumio-0.5.46}/.github/workflows/codeql.yml +0 -0
  13. {pyplumio-0.5.45 → pyplumio-0.5.46}/.github/workflows/deploy.yml +0 -0
  14. {pyplumio-0.5.45 → pyplumio-0.5.46}/.github/workflows/documentation.yml +0 -0
  15. {pyplumio-0.5.45 → pyplumio-0.5.46}/.gitignore +0 -0
  16. {pyplumio-0.5.45 → pyplumio-0.5.46}/.pre-commit-config.yaml +0 -0
  17. {pyplumio-0.5.45 → pyplumio-0.5.46}/.qlty/qlty.toml +0 -0
  18. {pyplumio-0.5.45 → pyplumio-0.5.46}/.vscode/settings.json +0 -0
  19. {pyplumio-0.5.45 → pyplumio-0.5.46}/LICENSE +0 -0
  20. {pyplumio-0.5.45 → pyplumio-0.5.46}/MANIFEST.in +0 -0
  21. {pyplumio-0.5.45 → pyplumio-0.5.46}/PyPlumIO.egg-info/SOURCES.txt +0 -0
  22. {pyplumio-0.5.45 → pyplumio-0.5.46}/PyPlumIO.egg-info/dependency_links.txt +0 -0
  23. {pyplumio-0.5.45 → pyplumio-0.5.46}/PyPlumIO.egg-info/requires.txt +0 -0
  24. {pyplumio-0.5.45 → pyplumio-0.5.46}/PyPlumIO.egg-info/top_level.txt +0 -0
  25. {pyplumio-0.5.45 → pyplumio-0.5.46}/README.md +0 -0
  26. {pyplumio-0.5.45 → pyplumio-0.5.46}/docs/Makefile +0 -0
  27. {pyplumio-0.5.45 → pyplumio-0.5.46}/docs/make.bat +0 -0
  28. {pyplumio-0.5.45 → pyplumio-0.5.46}/docs/source/callbacks.rst +0 -0
  29. {pyplumio-0.5.45 → pyplumio-0.5.46}/docs/source/conf.py +0 -0
  30. {pyplumio-0.5.45 → pyplumio-0.5.46}/docs/source/connecting.rst +0 -0
  31. {pyplumio-0.5.45 → pyplumio-0.5.46}/docs/source/frames.rst +0 -0
  32. {pyplumio-0.5.45 → pyplumio-0.5.46}/docs/source/index.rst +0 -0
  33. {pyplumio-0.5.45 → pyplumio-0.5.46}/docs/source/mixers_thermostats.rst +0 -0
  34. {pyplumio-0.5.45 → pyplumio-0.5.46}/docs/source/protocol.rst +0 -0
  35. {pyplumio-0.5.45 → pyplumio-0.5.46}/docs/source/reading.rst +0 -0
  36. {pyplumio-0.5.45 → pyplumio-0.5.46}/docs/source/schedules.rst +0 -0
  37. {pyplumio-0.5.45 → pyplumio-0.5.46}/docs/source/writing.rst +0 -0
  38. {pyplumio-0.5.45 → pyplumio-0.5.46}/images/ecomax.png +0 -0
  39. {pyplumio-0.5.45 → pyplumio-0.5.46}/images/rs485.png +0 -0
  40. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/__init__.py +0 -0
  41. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/__main__.py +0 -0
  42. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/connection.py +0 -0
  43. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/const.py +0 -0
  44. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/data_types.py +0 -0
  45. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/devices/__init__.py +0 -0
  46. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/devices/ecoster.py +0 -0
  47. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/devices/mixer.py +0 -0
  48. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/devices/thermostat.py +0 -0
  49. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/exceptions.py +0 -0
  50. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/filters.py +0 -0
  51. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/frames/__init__.py +0 -0
  52. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/frames/messages.py +0 -0
  53. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/frames/requests.py +0 -0
  54. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/frames/responses.py +0 -0
  55. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/helpers/__init__.py +0 -0
  56. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/helpers/async_cache.py +0 -0
  57. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/helpers/event_manager.py +0 -0
  58. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/helpers/factory.py +0 -0
  59. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/helpers/schedule.py +0 -0
  60. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/helpers/task_manager.py +0 -0
  61. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/helpers/timeout.py +0 -0
  62. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/helpers/uid.py +0 -0
  63. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/parameters/__init__.py +0 -0
  64. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/parameters/ecomax.py +0 -0
  65. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/parameters/mixer.py +0 -0
  66. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/parameters/thermostat.py +0 -0
  67. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/protocol.py +0 -0
  68. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/py.typed +0 -0
  69. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/stream.py +0 -0
  70. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/structures/__init__.py +0 -0
  71. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/structures/alerts.py +0 -0
  72. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/structures/boiler_load.py +0 -0
  73. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/structures/boiler_power.py +0 -0
  74. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/structures/ecomax_parameters.py +0 -0
  75. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/structures/fan_power.py +0 -0
  76. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/structures/frame_versions.py +0 -0
  77. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/structures/fuel_consumption.py +0 -0
  78. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/structures/fuel_level.py +0 -0
  79. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/structures/lambda_sensor.py +0 -0
  80. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/structures/mixer_parameters.py +0 -0
  81. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/structures/mixer_sensors.py +0 -0
  82. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/structures/modules.py +0 -0
  83. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/structures/network_info.py +0 -0
  84. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/structures/output_flags.py +0 -0
  85. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/structures/outputs.py +0 -0
  86. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/structures/pending_alerts.py +0 -0
  87. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/structures/product_info.py +0 -0
  88. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/structures/program_version.py +0 -0
  89. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/structures/regulator_data.py +0 -0
  90. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/structures/regulator_data_schema.py +0 -0
  91. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/structures/schedules.py +0 -0
  92. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/structures/statuses.py +0 -0
  93. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/structures/temperatures.py +0 -0
  94. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/structures/thermostat_parameters.py +0 -0
  95. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/structures/thermostat_sensors.py +0 -0
  96. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyplumio/utils.py +0 -0
  97. {pyplumio-0.5.45 → pyplumio-0.5.46}/pyproject.toml +0 -0
  98. {pyplumio-0.5.45 → pyplumio-0.5.46}/requirements.txt +0 -0
  99. {pyplumio-0.5.45 → pyplumio-0.5.46}/requirements_docs.txt +0 -0
  100. {pyplumio-0.5.45 → pyplumio-0.5.46}/requirements_test.txt +0 -0
  101. {pyplumio-0.5.45 → pyplumio-0.5.46}/setup.cfg +0 -0
  102. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/__init__.py +0 -0
  103. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/conftest.py +0 -0
  104. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/frames/test_init.py +0 -0
  105. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/frames/test_messages.py +0 -0
  106. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/frames/test_requests.py +0 -0
  107. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/frames/test_responses.py +0 -0
  108. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/helpers/__init__.py +0 -0
  109. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/helpers/test_async_cache.py +0 -0
  110. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/helpers/test_event_manager.py +0 -0
  111. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/helpers/test_factory.py +0 -0
  112. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/helpers/test_schedule.py +0 -0
  113. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/helpers/test_task_manager.py +0 -0
  114. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/helpers/test_timeout.py +0 -0
  115. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/helpers/test_uid.py +0 -0
  116. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/parameters/__init__.py +0 -0
  117. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/parameters/test_ecomax.py +0 -0
  118. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/parameters/test_init.py +0 -0
  119. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/parameters/test_mixers.py +0 -0
  120. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/parameters/test_thermostats.py +0 -0
  121. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/ruff.toml +0 -0
  122. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/test_connection.py +0 -0
  123. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/test_data_types.py +0 -0
  124. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/test_filters.py +0 -0
  125. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/test_init.py +0 -0
  126. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/test_main.py +0 -0
  127. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/test_protocol.py +0 -0
  128. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/test_stream.py +0 -0
  129. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/test_utils.py +0 -0
  130. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/testdata/messages/regulator_data.json +0 -0
  131. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/testdata/messages/sensor_data.json +0 -0
  132. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/testdata/requests/alerts.json +0 -0
  133. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/testdata/requests/ecomax_control.json +0 -0
  134. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/testdata/requests/ecomax_parameters.json +0 -0
  135. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/testdata/requests/mixer_parameters.json +0 -0
  136. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/testdata/requests/set_ecomax_parameter.json +0 -0
  137. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/testdata/requests/set_mixer_parameter.json +0 -0
  138. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/testdata/requests/set_schedule.json +0 -0
  139. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/testdata/requests/set_thermostat_parameter.json +0 -0
  140. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/testdata/requests/thermostat_parameters.json +0 -0
  141. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/testdata/responses/alerts.json +0 -0
  142. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/testdata/responses/device_available.json +0 -0
  143. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/testdata/responses/ecomax_parameters.json +0 -0
  144. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/testdata/responses/mixer_parameters.json +0 -0
  145. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/testdata/responses/password.json +0 -0
  146. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/testdata/responses/program_version.json +0 -0
  147. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/testdata/responses/regulator_data_schema.json +0 -0
  148. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/testdata/responses/schedules.json +0 -0
  149. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/testdata/responses/thermostat_parameters.json +0 -0
  150. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/testdata/responses/uid.json +0 -0
  151. {pyplumio-0.5.45 → pyplumio-0.5.46}/tests/testdata/unknown/unknown_ecomax_parameter.json +0 -0
  152. {pyplumio-0.5.45 → pyplumio-0.5.46}/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.45
3
+ Version: 0.5.46
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.45
3
+ Version: 0.5.46
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
@@ -17,5 +17,5 @@ __version__: str
17
17
  __version_tuple__: VERSION_TUPLE
18
18
  version_tuple: VERSION_TUPLE
19
19
 
20
- __version__ = version = '0.5.45'
21
- __version_tuple__ = version_tuple = (0, 5, 45)
20
+ __version__ = version = '0.5.46'
21
+ __version_tuple__ = version_tuple = (0, 5, 46)
@@ -12,6 +12,7 @@ from pyplumio.const import (
12
12
  ATTR_FRAME_ERRORS,
13
13
  ATTR_PASSWORD,
14
14
  ATTR_SENSORS,
15
+ ATTR_SETUP,
15
16
  STATE_OFF,
16
17
  STATE_ON,
17
18
  DeviceState,
@@ -192,16 +193,8 @@ class EcoMAX(PhysicalDevice):
192
193
  self, frame_type: FrameType | int, version: int
193
194
  ) -> None:
194
195
  """Request frame version from the device."""
195
- request_frame = False
196
- if frame_type not in REQUIRED_TYPES:
197
- # Frame not in required, so we'll request it right away.
198
- request_frame = True
199
-
200
- if frame_type in self._frame_versions:
201
- # Frame in required and has been requested once by setup.
202
- request_frame = True
203
-
204
- if request_frame:
196
+ setup_done = self.get_nowait(ATTR_SETUP, False)
197
+ if setup_done or frame_type not in REQUIRED_TYPES:
205
198
  await super()._request_frame_version(frame_type, version)
206
199
 
207
200
  async def _set_ecomax_state(self, state: State) -> bool:
@@ -195,6 +195,7 @@ async def test_frame_versions_update(ecomax: EcoMAX) -> None:
195
195
  test_data = load_json_test_data("messages/sensor_data.json")[0]
196
196
  message = SensorDataMessage(message=test_data["message"])
197
197
  message.data[ATTR_FRAME_VERSIONS] = {FrameType.REQUEST_REGULATOR_DATA_SCHEMA: 86}
198
+ ecomax.data[ATTR_SETUP] = True
198
199
  with patch("asyncio.Queue.put_nowait") as mock_put_nowait:
199
200
  ecomax.handle_frame(message)
200
201
  await ecomax.wait_until_done()
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