PyPlumIO 0.5.31__py3-none-any.whl → 0.5.33__py3-none-any.whl

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: PyPlumIO
3
- Version: 0.5.31
3
+ Version: 0.5.33
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
  pyplumio/__init__.py,sha256=ditJTIOFGJDg60atHzOpiggdUrZHpSynno7MtpZUGVk,3299
2
2
  pyplumio/__main__.py,sha256=3IwHHSq-iay5FaeMc95klobe-xv82yydSKcBE7BFZ6M,500
3
- pyplumio/_version.py,sha256=Kr7Tq9KjyxEp8tm444HGzXvFWTTLR8xyIJ5ABXwwKGA,413
3
+ pyplumio/_version.py,sha256=d2snzG_5UV96MrQixDY6w_MQnsJ44n12onZwU8NUqBM,413
4
4
  pyplumio/connection.py,sha256=6mUbcjGxxEhMVIbzZgCqH-Ez-fcYoRj7ZbVSzpikpNA,5949
5
5
  pyplumio/const.py,sha256=LyXa5aVy2KxnZq7H7F8s5SYsAgEC2UzZYMMRauliB2E,5502
6
6
  pyplumio/exceptions.py,sha256=Wn-y5AJ5xfaBlHhTUVKB27_0Us8_OVHqh-sicnr9sYA,700
@@ -9,7 +9,7 @@ pyplumio/protocol.py,sha256=VRxrj8vZ1FMawqblKkyxg_V61TBSvVynd9u0JXYnMUU,8090
9
9
  pyplumio/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  pyplumio/stream.py,sha256=mtMpnUR3TfEmL5JUGXr6GnpPGBwzCokqIKDWp4vYiVg,4654
11
11
  pyplumio/utils.py,sha256=TnBzRopinyp92wruguijxcIYmaeyNVTFX0dygI5FCMU,823
12
- pyplumio/devices/__init__.py,sha256=BEUpL2XxEk4YDfp4w0VX_LI4JQwK27eGWoJ6al_e1nE,8038
12
+ pyplumio/devices/__init__.py,sha256=OQ9VEo0CxwgjiNmVQwhxjFFQt5fw4o3yTtD4U2Q4sOg,7972
13
13
  pyplumio/devices/ecomax.py,sha256=ybFLJN7O3unBcyzuVmYTssBv86bPiiTGvFpFJezwUE4,15478
14
14
  pyplumio/devices/ecoster.py,sha256=jNWli7ye9T6yfkcFJZhhUHH7KOv-L6AgYFp_dKyv3OM,263
15
15
  pyplumio/devices/mixer.py,sha256=CnHWrJELtFgs2YTHGpQwKr2UTRdetX76OvLBA2PH-fs,3207
@@ -22,7 +22,7 @@ pyplumio/helpers/__init__.py,sha256=H2xxdkF-9uADLwEbfBUoxNTdwru3L5Z2cfJjgsuRsn0,
22
22
  pyplumio/helpers/data_types.py,sha256=nB3afOLmppgSCWkZoX1-1yWPNMMNSem77x7XQ1Mi8H8,9103
23
23
  pyplumio/helpers/event_manager.py,sha256=xQOfiP_nP1Pz5zhB6HU5gXyyJXjhisYshL8_HRxDgt8,6412
24
24
  pyplumio/helpers/factory.py,sha256=6ArzJDq3MiiMaRpMEP0kC6wJWsoqOqe32V1RCxg1478,1005
25
- pyplumio/helpers/parameter.py,sha256=hOGYkhd7-MG1euNdbHYN_2vXFlWPi-XLy_yAotYSyck,12311
25
+ pyplumio/helpers/parameter.py,sha256=I0LJ4d29kLRt83ukfumWP6NJXfEuPS7vRlS_1HeZHT4,12306
26
26
  pyplumio/helpers/schedule.py,sha256=PnVEkgthg6tHpHvZK9fXJz9VKNDyQ_7BFT4TTVEwNhI,5310
27
27
  pyplumio/helpers/task_manager.py,sha256=HAd69yGTRL0zQsu-ywnbLu1UXiJzgHWuhYWA--vs4lQ,1181
28
28
  pyplumio/helpers/timeout.py,sha256=JAhWNtIpcXyVILIwHWVy5mYofqbbRDGKLdTUKkQuajs,772
@@ -53,8 +53,8 @@ pyplumio/structures/statuses.py,sha256=wkoynyMRr1VREwfBC6vU48kPA8ZQ83pcXuciy2xHJ
53
53
  pyplumio/structures/temperatures.py,sha256=1CDzehNmbALz1Jyt_9gZNIk52q6Wv-xQXjijVDCVYec,2337
54
54
  pyplumio/structures/thermostat_parameters.py,sha256=QA-ZyulBG3P10sqgdI7rmpQYlKm9SJIXxBxAXs8Bwow,8295
55
55
  pyplumio/structures/thermostat_sensors.py,sha256=8e1TxYIJTQKT0kIGO9gG4hGdLOBUpIhiPToQyOMyeNE,3237
56
- PyPlumIO-0.5.31.dist-info/LICENSE,sha256=m-UuZFjXJ22uPTGm9kSHS8bqjsf5T8k2wL9bJn1Y04o,1088
57
- PyPlumIO-0.5.31.dist-info/METADATA,sha256=thPWL1GWRLLFkIdMOBz4CUN4LZmGxEA_BvvWYKjR-xA,5510
58
- PyPlumIO-0.5.31.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
59
- PyPlumIO-0.5.31.dist-info/top_level.txt,sha256=kNBz9UPPkPD9teDn3U_sEy5LjzwLm9KfADCXtBlbw8A,9
60
- PyPlumIO-0.5.31.dist-info/RECORD,,
56
+ PyPlumIO-0.5.33.dist-info/LICENSE,sha256=m-UuZFjXJ22uPTGm9kSHS8bqjsf5T8k2wL9bJn1Y04o,1088
57
+ PyPlumIO-0.5.33.dist-info/METADATA,sha256=YKnWmXwDFxCgiaZBo4SM1d6GwMcGG-PlSTJBztuLh44,5510
58
+ PyPlumIO-0.5.33.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
59
+ PyPlumIO-0.5.33.dist-info/top_level.txt,sha256=kNBz9UPPkPD9teDn3U_sEy5LjzwLm9KfADCXtBlbw8A,9
60
+ PyPlumIO-0.5.33.dist-info/RECORD,,
pyplumio/_version.py CHANGED
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '0.5.31'
16
- __version_tuple__ = version_tuple = (0, 5, 31)
15
+ __version__ = version = '0.5.33'
16
+ __version_tuple__ = version_tuple = (0, 5, 33)
@@ -151,15 +151,12 @@ class PhysicalDevice(Device, ABC):
151
151
 
152
152
  self.subscribe(ATTR_FRAME_VERSIONS, update_frame_versions)
153
153
 
154
- def has_frame_version(self, frame_type: int, version: int | None = None) -> bool:
154
+ def has_frame_version(self, frame_type: FrameType | int, version: int) -> bool:
155
155
  """Return True if frame data is up to date, False otherwise."""
156
- if frame_type not in self._frame_versions:
157
- return False
158
-
159
- if version is None or self._frame_versions[frame_type] == version:
160
- return True
161
-
162
- return False
156
+ return (
157
+ frame_type in self._frame_versions
158
+ and self._frame_versions[frame_type] == version
159
+ )
163
160
 
164
161
  def supports_frame_type(self, frame_type: int) -> bool:
165
162
  """Check if frame type is supported by the device."""
@@ -187,9 +187,6 @@ class Parameter(ABC):
187
187
  def validate(self, value: ParameterValue) -> int:
188
188
  """Validate a parameter value."""
189
189
  value = _normalize_parameter_value(value)
190
- if value == self.values.value:
191
- raise ValueError("Parameter value is unchanged.")
192
-
193
190
  if value < self.values.min_value or value > self.values.max_value:
194
191
  raise ValueError(
195
192
  f"Value must be between '{self.min_value}' and '{self.max_value}'"
@@ -209,6 +206,10 @@ class Parameter(ABC):
209
206
  self, value: Any, retries: int = 5, timeout: float = 5.0
210
207
  ) -> bool:
211
208
  """Try to set a parameter value."""
209
+ if value == self.values.value:
210
+ # Value is unchanged
211
+ return True
212
+
212
213
  self._previous_value = self._values.value
213
214
  self._values.value = value
214
215
  self._pending_update = True