PyPlumIO 0.5.26__py3-none-any.whl → 0.5.28__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.1
2
2
  Name: PyPlumIO
3
- Version: 0.5.26
3
+ Version: 0.5.28
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
@@ -40,7 +40,7 @@ Requires-Dist: mypy ==1.11.2 ; extra == 'test'
40
40
  Requires-Dist: pyserial-asyncio-fast ==0.14 ; extra == 'test'
41
41
  Requires-Dist: pytest ==8.3.2 ; extra == 'test'
42
42
  Requires-Dist: pytest-asyncio ==0.24.0 ; extra == 'test'
43
- Requires-Dist: ruff ==0.5.6 ; extra == 'test'
43
+ Requires-Dist: ruff ==0.6.3 ; extra == 'test'
44
44
  Requires-Dist: tox ==4.18.0 ; extra == 'test'
45
45
  Requires-Dist: types-pyserial ==3.5.0.20240826 ; extra == 'test'
46
46
 
@@ -1,8 +1,8 @@
1
1
  pyplumio/__init__.py,sha256=ditJTIOFGJDg60atHzOpiggdUrZHpSynno7MtpZUGVk,3299
2
2
  pyplumio/__main__.py,sha256=3IwHHSq-iay5FaeMc95klobe-xv82yydSKcBE7BFZ6M,500
3
- pyplumio/_version.py,sha256=neZsG0ypODwYfiboShDxerbS3D4xmsUQFB1gSmdXbSI,413
3
+ pyplumio/_version.py,sha256=CKxZe-gNrWXIa-w5PqPynJOQ9nZVzuvxxoFx7QtLKfw,413
4
4
  pyplumio/connection.py,sha256=6mUbcjGxxEhMVIbzZgCqH-Ez-fcYoRj7ZbVSzpikpNA,5949
5
- pyplumio/const.py,sha256=8rpiVbVb5R_6Rm6J2sgCnaVrkD-2Fzhd1RYMz0MBgwo,3915
5
+ pyplumio/const.py,sha256=LyXa5aVy2KxnZq7H7F8s5SYsAgEC2UzZYMMRauliB2E,5502
6
6
  pyplumio/exceptions.py,sha256=Wn-y5AJ5xfaBlHhTUVKB27_0Us8_OVHqh-sicnr9sYA,700
7
7
  pyplumio/filters.py,sha256=r2DZHwHG0cPWzTcsIX1pjAH19BR3iCOQsaqJ3T106t4,11188
8
8
  pyplumio/protocol.py,sha256=VRxrj8vZ1FMawqblKkyxg_V61TBSvVynd9u0JXYnMUU,8090
@@ -20,7 +20,7 @@ pyplumio/frames/requests.py,sha256=nbSuOLue2rI4WgtXslqTGfFnWBlwzLE6I9wraKC1uqg,6
20
20
  pyplumio/frames/responses.py,sha256=Ch1AVBmD6Ek7BazoEMDDEa6ad_fUdUXf4bNssQOu0sI,6228
21
21
  pyplumio/helpers/__init__.py,sha256=H2xxdkF-9uADLwEbfBUoxNTdwru3L5Z2cfJjgsuRsn0,31
22
22
  pyplumio/helpers/data_types.py,sha256=fNQmZ-fifqNl01jDXoF0BjmBJoDKVr4spZNHBuiUVEY,9059
23
- pyplumio/helpers/event_manager.py,sha256=FQrhDd8LpeTl1-HUUk_y9A-jPHtFokoaaVlPb_Ma1Lc,6406
23
+ pyplumio/helpers/event_manager.py,sha256=xQOfiP_nP1Pz5zhB6HU5gXyyJXjhisYshL8_HRxDgt8,6412
24
24
  pyplumio/helpers/factory.py,sha256=6ArzJDq3MiiMaRpMEP0kC6wJWsoqOqe32V1RCxg1478,1005
25
25
  pyplumio/helpers/parameter.py,sha256=iCtKkYXJI0Zj4ifU3HCwoq_qqSE03giblSP1rqsWzcY,11463
26
26
  pyplumio/helpers/schedule.py,sha256=l-dQwy8TUjlPqiMFcQaMCTxzgtAvQpyuutRIdfI06zo,5302
@@ -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=EzJVZZhZ19beshRG7X6lw9VWDdq4mQoMFSOhWuW7_0U,8064
55
55
  pyplumio/structures/thermostat_sensors.py,sha256=8e1TxYIJTQKT0kIGO9gG4hGdLOBUpIhiPToQyOMyeNE,3237
56
- PyPlumIO-0.5.26.dist-info/LICENSE,sha256=m-UuZFjXJ22uPTGm9kSHS8bqjsf5T8k2wL9bJn1Y04o,1088
57
- PyPlumIO-0.5.26.dist-info/METADATA,sha256=r3jlFI-YGmMnmO--9qFDNZLm0-lPE93227bPTkjgMnQ,5490
58
- PyPlumIO-0.5.26.dist-info/WHEEL,sha256=UvcQYKBHoFqaQd6LKyqHw9fxEolWLQnlzP0h_LgJAfI,91
59
- PyPlumIO-0.5.26.dist-info/top_level.txt,sha256=kNBz9UPPkPD9teDn3U_sEy5LjzwLm9KfADCXtBlbw8A,9
60
- PyPlumIO-0.5.26.dist-info/RECORD,,
56
+ PyPlumIO-0.5.28.dist-info/LICENSE,sha256=m-UuZFjXJ22uPTGm9kSHS8bqjsf5T8k2wL9bJn1Y04o,1088
57
+ PyPlumIO-0.5.28.dist-info/METADATA,sha256=eFyYRpMwxZF6tmMLwiG2_5HZeacgq7ndFuzBSK8luAE,5490
58
+ PyPlumIO-0.5.28.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
59
+ PyPlumIO-0.5.28.dist-info/top_level.txt,sha256=kNBz9UPPkPD9teDn3U_sEy5LjzwLm9KfADCXtBlbw8A,9
60
+ PyPlumIO-0.5.28.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (74.0.0)
2
+ Generator: setuptools (74.1.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
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.26'
16
- __version_tuple__ = version_tuple = (0, 5, 26)
15
+ __version__ = version = '0.5.28'
16
+ __version_tuple__ = version_tuple = (0, 5, 28)
pyplumio/const.py CHANGED
@@ -106,7 +106,54 @@ class AlertType(IntEnum):
106
106
  MAX_EXHAUST_TEMP_EXCEEDED = 6
107
107
  KINDLING_FAILURE = 7
108
108
  NO_FUEL = 8
109
+ LEAK_DETECTED = 9
110
+ PRESSURE_SENSOR_FAILURE = 10
109
111
  FAN_FAILURE = 11
112
+ INSUFFICIENT_AIR_PRESSURE = 12
113
+ BURN_OFF_FAILURE = 13
114
+ FLAME_SENSOR_FAILURE = 14
115
+ LINEAR_ACTUATOR_BLOCKED = 15
116
+ INCORRECT_PARAMETERS = 16
117
+ CONDENSATION_WARNING = 17
118
+ BOILER_STB_TRIPPED = 18
119
+ FEEDER_STB_TRIPPED = 19
120
+ MIN_WATER_PRESSURE_EXCEEDED = 20
121
+ MAX_WATER_PRESSURE_EXCEEDED = 21
122
+ FEEDER_JAMMED = 22
123
+ FLAMEOUT = 23
124
+ EXHAUST_FAN_FAILURE = 24
125
+ EXTERNAL_FEEDER_FAILURE = 25
126
+ SOLAR_COLLECTOR_TEMP_SENSOR_FAILURE = 26
127
+ SOLAR_CIRCUIT_TEMP_SENSOR_FAILURE = 27
128
+ H1_CIRCUIT_TEMP_SENSOR_FAILURE = 28
129
+ H2_CIRCUIT_TEMP_SENSOR_FAILURE = 29
130
+ H3_CIRCUIT_TEMP_SENSOR_FAILURE = 30
131
+ OUTDOOR_TEMP_SENSOR_FAILURE = 31
132
+ WATER_HEATER_TEMP_SENSOR_FAILURE = 32
133
+ H0_CIRCUIT_TEMP_SENSOR_FAILURE = 33
134
+ FROST_PROTECTION_RUNNING_WO_HS = 34
135
+ FROST_PROTECTION_RUNNING_W_HS = 35
136
+ MAX_SOLAR_COLLECTOR_TEMP_EXCEEDED = 36
137
+ MAX_HEATED_FLOOR_TEMP_EXCEEDED = 37
138
+ BOILER_COOLING_RUNNING = 38
139
+ ECOLAMBDA_CONNECTION_FAILURE = 39
140
+ PRIMARY_AIR_THROTTLE_JAMMED = 40
141
+ SECONDARY_AIR_THROTTLE_JAMMED = 41
142
+ FEEDER_OVERFLOW = 42
143
+ FURNANCE_OVERFLOW = 43
144
+ MODULE_B_CONNECTION_FAILURE = 44
145
+ CLEANING_ACTUATOR_FAILURE = 45
146
+ MIN_PRESSURE_EXCEEDED = 46
147
+ MAX_PRESSURE_EXCEEDED = 47
148
+ PRESSURE_SENSOR_DAMAGED = 48
149
+ MAX_MAIN_HS_TEMP_EXCEEDED = 49
150
+ MAX_ADDITIONAL_HS_TEMP_EXCEEDED = 50
151
+ SOLAR_PANEL_OFFLINE = 51
152
+ FEEDER_CONTROL_FAILURE = 52
153
+ FEEDER_BLOCKED = 53
154
+ MAX_THERMOCOPLE_TEMP_EXCEEDED = 54
155
+ THERMOCOUPLE_WIRING_FAILURE = 55
156
+ UNKNOWN_ERROR = 255
110
157
 
111
158
 
112
159
  @unique
@@ -150,7 +150,7 @@ class EventManager(TaskManager, Generic[T]):
150
150
  async def dispatch(self, name: str, value: T) -> None:
151
151
  """Call registered callbacks and dispatch the event."""
152
152
  if callbacks := self._callbacks.get(name, None):
153
- for callback in callbacks:
153
+ for callback in list(callbacks):
154
154
  if (result := await callback(value)) is not None:
155
155
  value = result
156
156