PyPlumIO 0.5.21__py3-none-any.whl → 0.5.23__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.
- {PyPlumIO-0.5.21.dist-info → PyPlumIO-0.5.23.dist-info}/METADATA +12 -10
- PyPlumIO-0.5.23.dist-info/RECORD +60 -0
- {PyPlumIO-0.5.21.dist-info → PyPlumIO-0.5.23.dist-info}/WHEEL +1 -1
- pyplumio/__init__.py +2 -2
- pyplumio/_version.py +2 -2
- pyplumio/connection.py +3 -12
- pyplumio/devices/__init__.py +16 -16
- pyplumio/devices/ecomax.py +126 -126
- pyplumio/devices/mixer.py +50 -44
- pyplumio/devices/thermostat.py +36 -35
- pyplumio/exceptions.py +9 -9
- pyplumio/filters.py +56 -37
- pyplumio/frames/__init__.py +6 -6
- pyplumio/frames/messages.py +4 -6
- pyplumio/helpers/data_types.py +8 -7
- pyplumio/helpers/event_manager.py +53 -33
- pyplumio/helpers/parameter.py +138 -52
- pyplumio/helpers/task_manager.py +7 -2
- pyplumio/helpers/timeout.py +0 -3
- pyplumio/helpers/uid.py +2 -2
- pyplumio/protocol.py +35 -28
- pyplumio/stream.py +2 -2
- pyplumio/structures/alerts.py +40 -31
- pyplumio/structures/ecomax_parameters.py +493 -282
- pyplumio/structures/frame_versions.py +5 -6
- pyplumio/structures/lambda_sensor.py +6 -6
- pyplumio/structures/mixer_parameters.py +136 -71
- pyplumio/structures/network_info.py +2 -3
- pyplumio/structures/product_info.py +0 -4
- pyplumio/structures/program_version.py +24 -17
- pyplumio/structures/schedules.py +35 -15
- pyplumio/structures/thermostat_parameters.py +82 -50
- pyplumio/utils.py +12 -7
- PyPlumIO-0.5.21.dist-info/RECORD +0 -61
- pyplumio/helpers/typing.py +0 -29
- {PyPlumIO-0.5.21.dist-info → PyPlumIO-0.5.23.dist-info}/LICENSE +0 -0
- {PyPlumIO-0.5.21.dist-info → PyPlumIO-0.5.23.dist-info}/top_level.txt +0 -0
@@ -6,6 +6,8 @@ from collections.abc import Generator
|
|
6
6
|
from dataclasses import dataclass
|
7
7
|
from typing import Any, Final
|
8
8
|
|
9
|
+
from dataslots import dataslots
|
10
|
+
|
9
11
|
from pyplumio.const import (
|
10
12
|
ATTR_INDEX,
|
11
13
|
ATTR_OFFSET,
|
@@ -19,14 +21,16 @@ from pyplumio.const import (
|
|
19
21
|
from pyplumio.devices import AddressableDevice
|
20
22
|
from pyplumio.frames import Request
|
21
23
|
from pyplumio.helpers.parameter import (
|
22
|
-
|
23
|
-
|
24
|
+
SET_TIMEOUT,
|
25
|
+
Number,
|
26
|
+
NumberDescription,
|
24
27
|
Parameter,
|
25
28
|
ParameterDescription,
|
26
29
|
ParameterValues,
|
30
|
+
Switch,
|
31
|
+
SwitchDescription,
|
27
32
|
unpack_parameter,
|
28
33
|
)
|
29
|
-
from pyplumio.helpers.typing import ParameterValueType
|
30
34
|
from pyplumio.structures import StructureDecoder
|
31
35
|
from pyplumio.structures.thermostat_parameters import ATTR_THERMOSTAT_PROFILE
|
32
36
|
from pyplumio.utils import ensure_dict
|
@@ -37,6 +41,16 @@ ATTR_ECOMAX_PARAMETERS: Final = "ecomax_parameters"
|
|
37
41
|
ECOMAX_PARAMETER_SIZE: Final = 3
|
38
42
|
|
39
43
|
|
44
|
+
@dataclass
|
45
|
+
class EcomaxParameterDescription(ParameterDescription):
|
46
|
+
"""Represents an ecoMAX parameter description."""
|
47
|
+
|
48
|
+
__slots__ = ()
|
49
|
+
|
50
|
+
multiplier: float = 1.0
|
51
|
+
offset: int = 0
|
52
|
+
|
53
|
+
|
40
54
|
class EcomaxParameter(Parameter):
|
41
55
|
"""Represents an ecoMAX parameter."""
|
42
56
|
|
@@ -69,549 +83,746 @@ class EcomaxParameter(Parameter):
|
|
69
83
|
frame_type, recipient=self.device.address, data=data
|
70
84
|
)
|
71
85
|
|
72
|
-
async def set(self, value: ParameterValueType, retries: int = 5) -> bool:
|
73
|
-
"""Set a parameter value."""
|
74
|
-
if isinstance(value, (int, float)):
|
75
|
-
value = int((value + self.description.offset) / self.description.multiplier)
|
76
86
|
|
87
|
+
@dataslots
|
88
|
+
@dataclass
|
89
|
+
class EcomaxNumberDescription(EcomaxParameterDescription, NumberDescription):
|
90
|
+
"""Represents an ecoMAX number description."""
|
91
|
+
|
92
|
+
|
93
|
+
class EcomaxNumber(EcomaxParameter, Number):
|
94
|
+
"""Represents a ecoMAX number."""
|
95
|
+
|
96
|
+
__slots__ = ()
|
97
|
+
|
98
|
+
description: EcomaxNumberDescription
|
99
|
+
|
100
|
+
async def set(self, value: float | int, retries: int = SET_TIMEOUT) -> bool:
|
101
|
+
"""Set a parameter value."""
|
102
|
+
value = (value + self.description.offset) / self.description.multiplier
|
77
103
|
return await super().set(value, retries)
|
78
104
|
|
79
105
|
@property
|
80
|
-
def value(self) ->
|
81
|
-
"""Return the
|
106
|
+
def value(self) -> float:
|
107
|
+
"""Return the value."""
|
82
108
|
return (
|
83
109
|
self.values.value - self.description.offset
|
84
110
|
) * self.description.multiplier
|
85
111
|
|
86
112
|
@property
|
87
|
-
def min_value(self) ->
|
113
|
+
def min_value(self) -> float:
|
88
114
|
"""Return the minimum allowed value."""
|
89
115
|
return (
|
90
116
|
self.values.min_value - self.description.offset
|
91
117
|
) * self.description.multiplier
|
92
118
|
|
93
119
|
@property
|
94
|
-
def max_value(self) ->
|
120
|
+
def max_value(self) -> float:
|
95
121
|
"""Return the maximum allowed value."""
|
96
122
|
return (
|
97
123
|
self.values.max_value - self.description.offset
|
98
124
|
) * self.description.multiplier
|
99
125
|
|
100
126
|
|
101
|
-
|
102
|
-
"""Represents an ecoMAX binary parameter."""
|
103
|
-
|
104
|
-
|
127
|
+
@dataslots
|
105
128
|
@dataclass
|
106
|
-
class EcomaxParameterDescription
|
107
|
-
"""Represents an ecoMAX
|
129
|
+
class EcomaxSwitchDescription(EcomaxParameterDescription, SwitchDescription):
|
130
|
+
"""Represents an ecoMAX switch description."""
|
108
131
|
|
109
|
-
multiplier: float = 1
|
110
|
-
offset: int = 0
|
111
132
|
|
133
|
+
class EcomaxSwitch(EcomaxParameter, Switch):
|
134
|
+
"""Represents an ecoMAX switch."""
|
112
135
|
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
):
|
117
|
-
"""Represents an ecoMAX binary parameter description."""
|
136
|
+
__slots__ = ()
|
137
|
+
|
138
|
+
description: EcomaxSwitchDescription
|
118
139
|
|
119
140
|
|
120
141
|
ECOMAX_PARAMETERS: dict[ProductType, tuple[EcomaxParameterDescription, ...]] = {
|
121
142
|
ProductType.ECOMAX_P: (
|
122
|
-
|
123
|
-
name="airflow_power_100",
|
143
|
+
EcomaxNumberDescription(
|
144
|
+
name="airflow_power_100",
|
145
|
+
unit_of_measurement=PERCENTAGE,
|
124
146
|
),
|
125
|
-
|
126
|
-
name="airflow_power_50",
|
147
|
+
EcomaxNumberDescription(
|
148
|
+
name="airflow_power_50",
|
149
|
+
unit_of_measurement=PERCENTAGE,
|
127
150
|
),
|
128
|
-
|
129
|
-
name="airflow_power_30",
|
151
|
+
EcomaxNumberDescription(
|
152
|
+
name="airflow_power_30",
|
153
|
+
unit_of_measurement=PERCENTAGE,
|
130
154
|
),
|
131
|
-
|
132
|
-
name="boiler_power_100",
|
155
|
+
EcomaxNumberDescription(
|
156
|
+
name="boiler_power_100",
|
157
|
+
unit_of_measurement=UnitOfMeasurement.KILO_WATT,
|
133
158
|
),
|
134
|
-
|
135
|
-
name="boiler_power_50",
|
159
|
+
EcomaxNumberDescription(
|
160
|
+
name="boiler_power_50",
|
161
|
+
unit_of_measurement=UnitOfMeasurement.KILO_WATT,
|
136
162
|
),
|
137
|
-
|
138
|
-
name="boiler_power_30",
|
163
|
+
EcomaxNumberDescription(
|
164
|
+
name="boiler_power_30",
|
165
|
+
unit_of_measurement=UnitOfMeasurement.KILO_WATT,
|
139
166
|
),
|
140
|
-
|
141
|
-
name="max_fan_boiler_power",
|
167
|
+
EcomaxNumberDescription(
|
168
|
+
name="max_fan_boiler_power",
|
169
|
+
unit_of_measurement=PERCENTAGE,
|
142
170
|
),
|
143
|
-
|
144
|
-
name="min_fan_boiler_power",
|
171
|
+
EcomaxNumberDescription(
|
172
|
+
name="min_fan_boiler_power",
|
173
|
+
unit_of_measurement=PERCENTAGE,
|
145
174
|
),
|
146
|
-
|
147
|
-
name="fuel_feeding_work_100",
|
175
|
+
EcomaxNumberDescription(
|
176
|
+
name="fuel_feeding_work_100",
|
177
|
+
unit_of_measurement=UnitOfMeasurement.SECONDS,
|
148
178
|
),
|
149
|
-
|
150
|
-
name="fuel_feeding_work_50",
|
179
|
+
EcomaxNumberDescription(
|
180
|
+
name="fuel_feeding_work_50",
|
181
|
+
unit_of_measurement=UnitOfMeasurement.SECONDS,
|
151
182
|
),
|
152
|
-
|
153
|
-
name="fuel_feeding_work_30",
|
183
|
+
EcomaxNumberDescription(
|
184
|
+
name="fuel_feeding_work_30",
|
185
|
+
unit_of_measurement=UnitOfMeasurement.SECONDS,
|
154
186
|
),
|
155
|
-
|
156
|
-
name="fuel_feeding_pause_100",
|
187
|
+
EcomaxNumberDescription(
|
188
|
+
name="fuel_feeding_pause_100",
|
189
|
+
unit_of_measurement=UnitOfMeasurement.SECONDS,
|
190
|
+
),
|
191
|
+
EcomaxNumberDescription(
|
192
|
+
name="fuel_feeding_pause_50",
|
193
|
+
unit_of_measurement=UnitOfMeasurement.SECONDS,
|
157
194
|
),
|
158
|
-
|
159
|
-
name="
|
195
|
+
EcomaxNumberDescription(
|
196
|
+
name="fuel_feeding_pause_30",
|
197
|
+
unit_of_measurement=UnitOfMeasurement.SECONDS,
|
160
198
|
),
|
161
|
-
|
162
|
-
name="
|
199
|
+
EcomaxNumberDescription(
|
200
|
+
name="cycle_duration",
|
201
|
+
unit_of_measurement=UnitOfMeasurement.SECONDS,
|
163
202
|
),
|
164
|
-
|
165
|
-
name="
|
203
|
+
EcomaxNumberDescription(
|
204
|
+
name="h2_hysteresis",
|
205
|
+
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
166
206
|
),
|
167
|
-
|
168
|
-
name="
|
207
|
+
EcomaxNumberDescription(
|
208
|
+
name="h1_hysteresis",
|
209
|
+
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
169
210
|
),
|
170
|
-
|
171
|
-
name="
|
211
|
+
EcomaxNumberDescription(
|
212
|
+
name="heating_hysteresis",
|
213
|
+
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
172
214
|
),
|
173
|
-
|
174
|
-
name="
|
215
|
+
EcomaxSwitchDescription(
|
216
|
+
name="fuzzy_logic",
|
175
217
|
),
|
176
|
-
|
177
|
-
|
178
|
-
|
218
|
+
EcomaxNumberDescription(
|
219
|
+
name="min_fuzzy_logic_power",
|
220
|
+
unit_of_measurement=PERCENTAGE,
|
179
221
|
),
|
180
|
-
|
181
|
-
name="max_fuzzy_logic_power",
|
222
|
+
EcomaxNumberDescription(
|
223
|
+
name="max_fuzzy_logic_power",
|
224
|
+
unit_of_measurement=PERCENTAGE,
|
182
225
|
),
|
183
|
-
|
184
|
-
name="min_boiler_power",
|
226
|
+
EcomaxNumberDescription(
|
227
|
+
name="min_boiler_power",
|
228
|
+
unit_of_measurement=UnitOfMeasurement.KILO_WATT,
|
185
229
|
),
|
186
|
-
|
187
|
-
name="max_boiler_power",
|
230
|
+
EcomaxNumberDescription(
|
231
|
+
name="max_boiler_power",
|
232
|
+
unit_of_measurement=UnitOfMeasurement.KILO_WATT,
|
188
233
|
),
|
189
|
-
|
190
|
-
name="min_fan_power",
|
234
|
+
EcomaxNumberDescription(
|
235
|
+
name="min_fan_power",
|
236
|
+
unit_of_measurement=PERCENTAGE,
|
191
237
|
),
|
192
|
-
|
193
|
-
name="max_fan_power",
|
238
|
+
EcomaxNumberDescription(
|
239
|
+
name="max_fan_power",
|
240
|
+
unit_of_measurement=PERCENTAGE,
|
194
241
|
),
|
195
|
-
|
196
|
-
name="reduction_airflow_temp",
|
242
|
+
EcomaxNumberDescription(
|
243
|
+
name="reduction_airflow_temp",
|
244
|
+
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
197
245
|
),
|
198
|
-
|
199
|
-
name="fan_power_gain",
|
246
|
+
EcomaxNumberDescription(
|
247
|
+
name="fan_power_gain",
|
248
|
+
unit_of_measurement=PERCENTAGE,
|
200
249
|
),
|
201
|
-
|
250
|
+
EcomaxNumberDescription(
|
202
251
|
name="fuzzy_logic_fuel_flow_correction",
|
203
252
|
unit_of_measurement=PERCENTAGE,
|
204
253
|
),
|
205
|
-
|
206
|
-
name="fuel_flow_correction",
|
254
|
+
EcomaxNumberDescription(
|
255
|
+
name="fuel_flow_correction",
|
256
|
+
unit_of_measurement=PERCENTAGE,
|
207
257
|
),
|
208
|
-
|
209
|
-
name="airflow_correction_100",
|
258
|
+
EcomaxNumberDescription(
|
259
|
+
name="airflow_correction_100",
|
260
|
+
unit_of_measurement=PERCENTAGE,
|
210
261
|
),
|
211
|
-
|
212
|
-
name="feeder_correction_100",
|
262
|
+
EcomaxNumberDescription(
|
263
|
+
name="feeder_correction_100",
|
264
|
+
unit_of_measurement=PERCENTAGE,
|
213
265
|
),
|
214
|
-
|
215
|
-
name="airflow_correction_50",
|
266
|
+
EcomaxNumberDescription(
|
267
|
+
name="airflow_correction_50",
|
268
|
+
unit_of_measurement=PERCENTAGE,
|
216
269
|
),
|
217
|
-
|
218
|
-
name="feeder_correction_50",
|
270
|
+
EcomaxNumberDescription(
|
271
|
+
name="feeder_correction_50",
|
272
|
+
unit_of_measurement=PERCENTAGE,
|
219
273
|
),
|
220
|
-
|
221
|
-
name="airflow_correction_30",
|
274
|
+
EcomaxNumberDescription(
|
275
|
+
name="airflow_correction_30",
|
276
|
+
unit_of_measurement=PERCENTAGE,
|
222
277
|
),
|
223
|
-
|
224
|
-
name="feeder_correction_30",
|
278
|
+
EcomaxNumberDescription(
|
279
|
+
name="feeder_correction_30",
|
280
|
+
unit_of_measurement=PERCENTAGE,
|
225
281
|
),
|
226
|
-
|
227
|
-
name="grate_airflow_power",
|
282
|
+
EcomaxNumberDescription(
|
283
|
+
name="grate_airflow_power",
|
284
|
+
unit_of_measurement=PERCENTAGE,
|
228
285
|
),
|
229
|
-
|
286
|
+
EcomaxNumberDescription(
|
230
287
|
name="grate_heating_hysteresis",
|
231
288
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
232
289
|
),
|
233
|
-
|
290
|
+
EcomaxNumberDescription(
|
234
291
|
name="supervision_airflow_work",
|
235
292
|
unit_of_measurement=UnitOfMeasurement.SECONDS,
|
236
293
|
),
|
237
|
-
|
294
|
+
EcomaxNumberDescription(
|
238
295
|
name="supervision_airflow_pause",
|
239
296
|
unit_of_measurement=UnitOfMeasurement.MINUTES,
|
240
297
|
),
|
241
|
-
|
242
|
-
name="grate_heating_temp",
|
298
|
+
EcomaxNumberDescription(
|
299
|
+
name="grate_heating_temp",
|
300
|
+
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
243
301
|
),
|
244
|
-
|
302
|
+
EcomaxNumberDescription(
|
245
303
|
name="grate_fuel_detection_time",
|
246
304
|
unit_of_measurement=UnitOfMeasurement.MINUTES,
|
247
305
|
),
|
248
|
-
|
249
|
-
name="kindling_airflow_power",
|
306
|
+
EcomaxNumberDescription(
|
307
|
+
name="kindling_airflow_power",
|
308
|
+
unit_of_measurement=PERCENTAGE,
|
250
309
|
),
|
251
|
-
|
310
|
+
EcomaxNumberDescription(
|
252
311
|
name="kindling_low_airflow_power",
|
253
312
|
unit_of_measurement=PERCENTAGE,
|
254
313
|
),
|
255
|
-
|
256
|
-
name="kindling_airflow_delay",
|
314
|
+
EcomaxNumberDescription(
|
315
|
+
name="kindling_airflow_delay",
|
316
|
+
unit_of_measurement=UnitOfMeasurement.SECONDS,
|
257
317
|
),
|
258
|
-
|
259
|
-
name="kindling_test_time",
|
318
|
+
EcomaxNumberDescription(
|
319
|
+
name="kindling_test_time",
|
320
|
+
unit_of_measurement=UnitOfMeasurement.SECONDS,
|
260
321
|
),
|
261
|
-
|
262
|
-
|
263
|
-
name="kindling_feeder_dose", unit_of_measurement=UnitOfMeasurement.GRAMS
|
322
|
+
EcomaxNumberDescription(
|
323
|
+
name="kindling_feeder_work",
|
264
324
|
),
|
265
|
-
|
266
|
-
name="
|
325
|
+
EcomaxNumberDescription(
|
326
|
+
name="kindling_feeder_dose",
|
327
|
+
unit_of_measurement=UnitOfMeasurement.GRAMS,
|
328
|
+
),
|
329
|
+
EcomaxNumberDescription(
|
330
|
+
name="kindling_time",
|
331
|
+
unit_of_measurement=UnitOfMeasurement.MINUTES,
|
267
332
|
),
|
268
|
-
|
269
|
-
name="warming_up_time",
|
333
|
+
EcomaxNumberDescription(
|
334
|
+
name="warming_up_time",
|
335
|
+
unit_of_measurement=UnitOfMeasurement.MINUTES,
|
270
336
|
),
|
271
|
-
|
337
|
+
EcomaxNumberDescription(
|
272
338
|
name="kindling_finish_exhaust_temp",
|
273
339
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
274
340
|
),
|
275
|
-
|
341
|
+
EcomaxNumberDescription(
|
276
342
|
name="kindling_finish_threshold_temp",
|
277
343
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
278
344
|
),
|
279
|
-
|
345
|
+
EcomaxNumberDescription(
|
280
346
|
name="kindling_fumes_delta_temp",
|
281
347
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
282
348
|
),
|
283
|
-
|
284
|
-
name="kindling_delta_temp",
|
349
|
+
EcomaxNumberDescription(
|
350
|
+
name="kindling_delta_temp",
|
351
|
+
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
285
352
|
),
|
286
|
-
|
353
|
+
EcomaxNumberDescription(
|
287
354
|
name="kindling_min_power_time",
|
288
355
|
unit_of_measurement=UnitOfMeasurement.MINUTES,
|
289
356
|
),
|
290
|
-
|
357
|
+
EcomaxNumberDescription(
|
291
358
|
name="stabilization_time",
|
292
359
|
unit_of_measurement=UnitOfMeasurement.MINUTES,
|
293
360
|
),
|
294
|
-
|
361
|
+
EcomaxNumberDescription(
|
295
362
|
name="stabilization_airflow_power",
|
296
363
|
unit_of_measurement=PERCENTAGE,
|
297
364
|
),
|
298
|
-
|
299
|
-
|
365
|
+
EcomaxNumberDescription(
|
366
|
+
name="supervision_time",
|
367
|
+
),
|
368
|
+
EcomaxNumberDescription(
|
300
369
|
name="supervision_feeder_work",
|
301
370
|
unit_of_measurement=UnitOfMeasurement.SECONDS,
|
302
371
|
),
|
303
|
-
|
372
|
+
EcomaxNumberDescription(
|
304
373
|
name="supervision_feeder_dose",
|
305
374
|
unit_of_measurement=UnitOfMeasurement.GRAMS,
|
306
375
|
),
|
307
|
-
|
376
|
+
EcomaxNumberDescription(
|
308
377
|
name="supervision_feeder_pause",
|
309
378
|
unit_of_measurement=UnitOfMeasurement.MINUTES,
|
310
379
|
),
|
311
|
-
|
380
|
+
EcomaxNumberDescription(
|
312
381
|
name="supervision_cycle_duration",
|
313
382
|
unit_of_measurement=UnitOfMeasurement.SECONDS,
|
314
383
|
),
|
315
|
-
|
384
|
+
EcomaxNumberDescription(
|
316
385
|
name="supervision_airflow_power",
|
317
386
|
unit_of_measurement=PERCENTAGE,
|
318
387
|
),
|
319
|
-
|
320
|
-
name="supervision_fan_pause",
|
388
|
+
EcomaxNumberDescription(
|
389
|
+
name="supervision_fan_pause",
|
390
|
+
unit_of_measurement=UnitOfMeasurement.MINUTES,
|
321
391
|
),
|
322
|
-
|
323
|
-
name="supervision_fan_work",
|
392
|
+
EcomaxNumberDescription(
|
393
|
+
name="supervision_fan_work",
|
394
|
+
unit_of_measurement=UnitOfMeasurement.SECONDS,
|
324
395
|
),
|
325
|
-
|
326
|
-
|
327
|
-
name="burning_off_max_time", unit_of_measurement=UnitOfMeasurement.MINUTES
|
396
|
+
EcomaxNumberDescription(
|
397
|
+
name="increase_fan_support_mode",
|
328
398
|
),
|
329
|
-
|
330
|
-
name="
|
399
|
+
EcomaxNumberDescription(
|
400
|
+
name="burning_off_max_time",
|
401
|
+
unit_of_measurement=UnitOfMeasurement.MINUTES,
|
402
|
+
),
|
403
|
+
EcomaxNumberDescription(
|
404
|
+
name="burning_off_min_time",
|
405
|
+
unit_of_measurement=UnitOfMeasurement.MINUTES,
|
331
406
|
),
|
332
|
-
|
333
|
-
|
407
|
+
EcomaxNumberDescription(
|
408
|
+
name="burning_off_time",
|
409
|
+
),
|
410
|
+
EcomaxNumberDescription(
|
334
411
|
name="burning_off_airflow_power",
|
335
412
|
unit_of_measurement=PERCENTAGE,
|
336
413
|
),
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
name="
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
414
|
+
EcomaxNumberDescription(
|
415
|
+
name="burning_off_airflow_work",
|
416
|
+
),
|
417
|
+
EcomaxNumberDescription(
|
418
|
+
name="burning_off_airflow_pause",
|
419
|
+
),
|
420
|
+
EcomaxNumberDescription(
|
421
|
+
name="start_burning_off",
|
422
|
+
unit_of_measurement=PERCENTAGE,
|
423
|
+
),
|
424
|
+
EcomaxNumberDescription(
|
425
|
+
name="stop_burning_off",
|
426
|
+
unit_of_measurement=PERCENTAGE,
|
427
|
+
),
|
428
|
+
EcomaxNumberDescription(
|
429
|
+
name="cleaning_begin_time",
|
430
|
+
),
|
431
|
+
EcomaxNumberDescription(
|
432
|
+
name="burning_off_cleaning_time",
|
433
|
+
),
|
434
|
+
EcomaxNumberDescription(
|
435
|
+
name="cleaning_airflow_power",
|
436
|
+
unit_of_measurement=PERCENTAGE,
|
437
|
+
),
|
438
|
+
EcomaxNumberDescription(
|
439
|
+
name="warming_up_pause_time",
|
440
|
+
),
|
441
|
+
EcomaxNumberDescription(
|
442
|
+
name="warming_up_cycle_time",
|
443
|
+
),
|
444
|
+
EcomaxNumberDescription(
|
445
|
+
name="remind_time",
|
446
|
+
),
|
447
|
+
EcomaxSwitchDescription(
|
448
|
+
name="lambda_control",
|
449
|
+
),
|
450
|
+
EcomaxNumberDescription(
|
451
|
+
name="lambda_correction_range",
|
452
|
+
),
|
453
|
+
EcomaxNumberDescription(
|
454
|
+
name="oxygen_100",
|
455
|
+
),
|
456
|
+
EcomaxNumberDescription(
|
457
|
+
name="oxygen_50",
|
458
|
+
),
|
459
|
+
EcomaxNumberDescription(
|
460
|
+
name="oxygen_30",
|
461
|
+
),
|
462
|
+
EcomaxNumberDescription(
|
463
|
+
name="fuzzy_logic_oxygen_correction",
|
464
|
+
),
|
465
|
+
EcomaxNumberDescription(
|
360
466
|
name="max_fuel_flow",
|
361
467
|
multiplier=0.1,
|
362
468
|
unit_of_measurement=UnitOfMeasurement.KILOGRAMS_PER_HOUR,
|
363
469
|
),
|
364
|
-
|
365
|
-
|
366
|
-
|
470
|
+
EcomaxNumberDescription(
|
471
|
+
name="feeder_calibration",
|
472
|
+
),
|
473
|
+
EcomaxNumberDescription(
|
474
|
+
name="fuel_factor",
|
475
|
+
),
|
476
|
+
EcomaxNumberDescription(
|
367
477
|
name="fuel_calorific_value",
|
368
478
|
multiplier=0.1,
|
369
479
|
unit_of_measurement=UnitOfMeasurement.KILO_WATT_HOUR_PER_KILOGRAM,
|
370
480
|
),
|
371
|
-
|
372
|
-
name="fuel_detection_time",
|
481
|
+
EcomaxNumberDescription(
|
482
|
+
name="fuel_detection_time",
|
483
|
+
unit_of_measurement=UnitOfMeasurement.MINUTES,
|
373
484
|
),
|
374
|
-
|
485
|
+
EcomaxNumberDescription(
|
375
486
|
name="fuel_detection_exhaust_temp",
|
376
487
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
377
488
|
),
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
489
|
+
EcomaxSwitchDescription(
|
490
|
+
name="schedule_feeder_2",
|
491
|
+
),
|
492
|
+
EcomaxNumberDescription(
|
493
|
+
name="feed2_h1",
|
494
|
+
),
|
495
|
+
EcomaxNumberDescription(
|
496
|
+
name="feed2_h2",
|
497
|
+
),
|
498
|
+
EcomaxNumberDescription(
|
499
|
+
name="feed2_h3",
|
387
500
|
),
|
388
|
-
|
501
|
+
EcomaxNumberDescription(
|
502
|
+
name="feed2_h4",
|
503
|
+
),
|
504
|
+
EcomaxNumberDescription(
|
505
|
+
name="feed2_work",
|
506
|
+
),
|
507
|
+
EcomaxNumberDescription(
|
508
|
+
name="feed2_pause",
|
509
|
+
),
|
510
|
+
EcomaxNumberDescription(
|
511
|
+
name="heating_target_temp",
|
512
|
+
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
513
|
+
),
|
514
|
+
EcomaxNumberDescription(
|
389
515
|
name="min_heating_target_temp",
|
390
516
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
391
517
|
),
|
392
|
-
|
518
|
+
EcomaxNumberDescription(
|
393
519
|
name="max_heating_target_temp",
|
394
520
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
395
521
|
),
|
396
|
-
|
522
|
+
EcomaxNumberDescription(
|
397
523
|
name="heating_pump_enable_temp",
|
398
524
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
399
525
|
),
|
400
|
-
|
526
|
+
EcomaxNumberDescription(
|
401
527
|
name="pause_heating_for_water_heater",
|
402
528
|
unit_of_measurement=UnitOfMeasurement.MINUTES,
|
403
529
|
),
|
404
|
-
|
405
|
-
|
406
|
-
|
530
|
+
EcomaxNumberDescription(
|
531
|
+
name="thermostat_pause",
|
532
|
+
),
|
533
|
+
EcomaxNumberDescription(
|
534
|
+
name="thermostat_work",
|
535
|
+
),
|
536
|
+
EcomaxNumberDescription(
|
407
537
|
name="increase_heating_temp_for_water_heater",
|
408
538
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
409
539
|
),
|
410
|
-
|
411
|
-
|
412
|
-
|
540
|
+
EcomaxSwitchDescription(
|
541
|
+
name="weather_control",
|
542
|
+
),
|
543
|
+
EcomaxNumberDescription(
|
544
|
+
name="heating_curve",
|
545
|
+
multiplier=0.1,
|
546
|
+
),
|
547
|
+
EcomaxNumberDescription(
|
413
548
|
name="heating_curve_shift",
|
414
549
|
offset=20,
|
415
550
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
416
551
|
),
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
552
|
+
EcomaxNumberDescription(
|
553
|
+
name="weather_factor",
|
554
|
+
),
|
555
|
+
EcomaxNumberDescription(
|
556
|
+
name="thermostat_operation",
|
557
|
+
),
|
558
|
+
EcomaxSwitchDescription(
|
559
|
+
name="thermostat_mode",
|
560
|
+
),
|
561
|
+
EcomaxNumberDescription(
|
421
562
|
name="thermostat_decrease_target_temp",
|
422
563
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
423
564
|
),
|
424
|
-
|
425
|
-
|
426
|
-
name="boiler_alert_temp", unit_of_measurement=UnitOfMeasurement.CELSIUS
|
565
|
+
EcomaxSwitchDescription(
|
566
|
+
name="disable_pump_on_thermostat",
|
427
567
|
),
|
428
|
-
|
429
|
-
name="
|
568
|
+
EcomaxNumberDescription(
|
569
|
+
name="boiler_alert_temp",
|
570
|
+
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
430
571
|
),
|
431
|
-
|
432
|
-
name="
|
572
|
+
EcomaxNumberDescription(
|
573
|
+
name="max_feeder_temp",
|
574
|
+
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
433
575
|
),
|
434
|
-
|
435
|
-
name="
|
576
|
+
EcomaxNumberDescription(
|
577
|
+
name="external_boiler_temp",
|
578
|
+
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
579
|
+
),
|
580
|
+
EcomaxNumberDescription(
|
581
|
+
name="alert_notify",
|
582
|
+
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
436
583
|
),
|
437
|
-
|
438
|
-
name="pump_hysteresis",
|
584
|
+
EcomaxNumberDescription(
|
585
|
+
name="pump_hysteresis",
|
586
|
+
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
439
587
|
),
|
440
|
-
|
588
|
+
EcomaxNumberDescription(
|
441
589
|
name="water_heater_target_temp",
|
442
590
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
443
591
|
),
|
444
|
-
|
592
|
+
EcomaxNumberDescription(
|
445
593
|
name="min_water_heater_target_temp",
|
446
594
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
447
595
|
),
|
448
|
-
|
596
|
+
EcomaxNumberDescription(
|
449
597
|
name="max_water_heater_target_temp",
|
450
598
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
451
599
|
),
|
452
|
-
|
453
|
-
|
600
|
+
EcomaxNumberDescription(
|
601
|
+
name="water_heater_work_mode",
|
602
|
+
),
|
603
|
+
EcomaxNumberDescription(
|
454
604
|
name="water_heater_hysteresis",
|
455
605
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
456
606
|
),
|
457
|
-
|
458
|
-
|
459
|
-
|
607
|
+
EcomaxSwitchDescription(
|
608
|
+
name="water_heater_disinfection",
|
609
|
+
),
|
610
|
+
EcomaxNumberDescription(
|
611
|
+
name="summer_mode",
|
612
|
+
),
|
613
|
+
EcomaxNumberDescription(
|
460
614
|
name="summer_mode_enable_temp",
|
461
615
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
462
616
|
),
|
463
|
-
|
617
|
+
EcomaxNumberDescription(
|
464
618
|
name="summer_mode_disable_temp",
|
465
619
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
466
620
|
),
|
467
|
-
|
621
|
+
EcomaxNumberDescription(
|
468
622
|
name="water_heater_work_extension",
|
469
623
|
unit_of_measurement=UnitOfMeasurement.MINUTES,
|
470
624
|
),
|
471
|
-
|
472
|
-
|
473
|
-
|
625
|
+
EcomaxSwitchDescription(
|
626
|
+
name="circulation_control",
|
627
|
+
),
|
628
|
+
EcomaxNumberDescription(
|
629
|
+
name="circulation_pause",
|
630
|
+
unit_of_measurement=UnitOfMeasurement.MINUTES,
|
631
|
+
),
|
632
|
+
EcomaxNumberDescription(
|
633
|
+
name="circulation_work",
|
634
|
+
unit_of_measurement=UnitOfMeasurement.MINUTES,
|
474
635
|
),
|
475
|
-
|
476
|
-
name="
|
636
|
+
EcomaxNumberDescription(
|
637
|
+
name="circulation_start_temp",
|
638
|
+
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
477
639
|
),
|
478
|
-
|
479
|
-
name="
|
640
|
+
EcomaxSwitchDescription(
|
641
|
+
name="buffer_control",
|
480
642
|
),
|
481
|
-
|
482
|
-
|
483
|
-
|
643
|
+
EcomaxNumberDescription(
|
644
|
+
name="max_buffer_temp",
|
645
|
+
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
484
646
|
),
|
485
|
-
|
486
|
-
name="min_buffer_temp",
|
647
|
+
EcomaxNumberDescription(
|
648
|
+
name="min_buffer_temp",
|
649
|
+
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
487
650
|
),
|
488
|
-
|
489
|
-
name="buffer_hysteresis",
|
651
|
+
EcomaxNumberDescription(
|
652
|
+
name="buffer_hysteresis",
|
653
|
+
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
490
654
|
),
|
491
|
-
|
492
|
-
name="buffer_load_start",
|
655
|
+
EcomaxNumberDescription(
|
656
|
+
name="buffer_load_start",
|
657
|
+
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
493
658
|
),
|
494
|
-
|
495
|
-
name="buffer_load_stop",
|
659
|
+
EcomaxNumberDescription(
|
660
|
+
name="buffer_load_stop",
|
661
|
+
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
496
662
|
),
|
497
663
|
),
|
498
664
|
ProductType.ECOMAX_I: (
|
499
|
-
|
665
|
+
EcomaxNumberDescription(
|
500
666
|
name="water_heater_target_temp",
|
501
667
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
502
668
|
),
|
503
|
-
|
504
|
-
|
505
|
-
|
669
|
+
EcomaxSwitchDescription(
|
670
|
+
name="water_heater_priority",
|
671
|
+
),
|
672
|
+
EcomaxNumberDescription(
|
673
|
+
name="water_heater_support",
|
674
|
+
),
|
675
|
+
EcomaxNumberDescription(
|
506
676
|
name="min_water_heater_target_temp",
|
507
677
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
508
678
|
),
|
509
|
-
|
679
|
+
EcomaxNumberDescription(
|
510
680
|
name="max_water_heater_target_temp",
|
511
681
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
512
682
|
),
|
513
|
-
|
683
|
+
EcomaxNumberDescription(
|
514
684
|
name="water_heater_work_extension",
|
515
685
|
unit_of_measurement=UnitOfMeasurement.MINUTES,
|
516
686
|
),
|
517
|
-
|
687
|
+
EcomaxNumberDescription(
|
518
688
|
name="water_heater_hysteresis",
|
519
689
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
520
690
|
),
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
691
|
+
EcomaxSwitchDescription(
|
692
|
+
name="water_heater_disinfection",
|
693
|
+
),
|
694
|
+
EcomaxNumberDescription(
|
695
|
+
name="water_heater_work_mode",
|
696
|
+
),
|
697
|
+
EcomaxSwitchDescription(
|
698
|
+
name="solar_support",
|
699
|
+
),
|
700
|
+
EcomaxNumberDescription(
|
525
701
|
name="solar_pump_on_delta_temp",
|
526
702
|
multiplier=0.1,
|
527
703
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
528
704
|
),
|
529
|
-
|
705
|
+
EcomaxNumberDescription(
|
530
706
|
name="solar_pump_off_delta_temp",
|
531
707
|
multiplier=0.1,
|
532
708
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
533
709
|
),
|
534
|
-
|
535
|
-
name="min_collector_temp",
|
710
|
+
EcomaxNumberDescription(
|
711
|
+
name="min_collector_temp",
|
712
|
+
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
536
713
|
),
|
537
|
-
|
538
|
-
name="max_collector_temp",
|
714
|
+
EcomaxNumberDescription(
|
715
|
+
name="max_collector_temp",
|
716
|
+
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
539
717
|
),
|
540
|
-
|
541
|
-
name="collector_off_temp",
|
718
|
+
EcomaxNumberDescription(
|
719
|
+
name="collector_off_temp",
|
720
|
+
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
721
|
+
),
|
722
|
+
EcomaxNumberDescription(
|
723
|
+
name="min_pump_revolutions",
|
724
|
+
),
|
725
|
+
EcomaxNumberDescription(
|
726
|
+
name="solar_antifreeze",
|
727
|
+
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
728
|
+
),
|
729
|
+
EcomaxSwitchDescription(
|
730
|
+
name="circulation_control",
|
542
731
|
),
|
543
|
-
|
544
|
-
|
545
|
-
|
732
|
+
EcomaxNumberDescription(
|
733
|
+
name="circulation_pause",
|
734
|
+
unit_of_measurement=UnitOfMeasurement.MINUTES,
|
546
735
|
),
|
547
|
-
|
548
|
-
|
549
|
-
|
736
|
+
EcomaxNumberDescription(
|
737
|
+
name="circulation_work",
|
738
|
+
unit_of_measurement=UnitOfMeasurement.MINUTES,
|
550
739
|
),
|
551
|
-
|
552
|
-
name="
|
740
|
+
EcomaxNumberDescription(
|
741
|
+
name="circulation_start_temp",
|
742
|
+
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
553
743
|
),
|
554
|
-
|
555
|
-
name="
|
744
|
+
EcomaxNumberDescription(
|
745
|
+
name="main_heat_source",
|
556
746
|
),
|
557
|
-
|
558
|
-
EcomaxParameterDescription(
|
747
|
+
EcomaxNumberDescription(
|
559
748
|
name="min_main_heat_source_temp",
|
560
749
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
561
750
|
),
|
562
|
-
|
751
|
+
EcomaxNumberDescription(
|
563
752
|
name="max_main_heat_source_temp",
|
564
753
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
565
754
|
),
|
566
|
-
|
755
|
+
EcomaxNumberDescription(
|
567
756
|
name="main_heat_source_hysteresis",
|
568
757
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
569
758
|
),
|
570
|
-
|
759
|
+
EcomaxNumberDescription(
|
571
760
|
name="critical_main_heat_source_temp",
|
572
761
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
573
762
|
),
|
574
|
-
|
575
|
-
|
576
|
-
|
763
|
+
EcomaxNumberDescription(
|
764
|
+
name="main_heat_source_pump_extension_time",
|
765
|
+
),
|
766
|
+
EcomaxNumberDescription(
|
767
|
+
name="additional_heat_source",
|
768
|
+
),
|
769
|
+
EcomaxNumberDescription(
|
577
770
|
name="main_heat_source_off_temp",
|
578
771
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
579
772
|
),
|
580
|
-
|
773
|
+
EcomaxNumberDescription(
|
581
774
|
name="additional_heat_source_pump_startup_temp",
|
582
775
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
583
776
|
),
|
584
|
-
|
585
|
-
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
|
590
|
-
|
591
|
-
|
777
|
+
EcomaxNumberDescription(
|
778
|
+
name="hydraulic_diagram",
|
779
|
+
),
|
780
|
+
EcomaxSwitchDescription(
|
781
|
+
name="antifreeze",
|
782
|
+
),
|
783
|
+
EcomaxNumberDescription(
|
784
|
+
name="antifreeze_delay",
|
785
|
+
),
|
786
|
+
EcomaxNumberDescription(
|
787
|
+
name="circuit_lock_time",
|
788
|
+
),
|
789
|
+
EcomaxNumberDescription(
|
790
|
+
name="circuit_work_time",
|
791
|
+
),
|
792
|
+
EcomaxNumberDescription(
|
793
|
+
name="alert_out_c",
|
794
|
+
),
|
795
|
+
EcomaxNumberDescription(
|
796
|
+
name="alert_on_out_c",
|
797
|
+
),
|
798
|
+
EcomaxNumberDescription(
|
592
799
|
name="thermostat_hysteresis",
|
593
800
|
multiplier=0.1,
|
594
801
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
595
802
|
),
|
596
|
-
|
803
|
+
EcomaxNumberDescription(
|
597
804
|
name="critial_additional_heat_source_temp",
|
598
805
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
599
806
|
),
|
600
|
-
|
601
|
-
|
602
|
-
|
807
|
+
EcomaxNumberDescription(
|
808
|
+
name="automatic_pump_lock_time",
|
809
|
+
),
|
810
|
+
EcomaxNumberDescription(
|
811
|
+
name="summer_mode",
|
812
|
+
),
|
813
|
+
EcomaxNumberDescription(
|
603
814
|
name="summer_mode_enable_temp",
|
604
815
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
605
816
|
),
|
606
|
-
|
817
|
+
EcomaxNumberDescription(
|
607
818
|
name="summer_mode_disable_temp",
|
608
819
|
unit_of_measurement=UnitOfMeasurement.CELSIUS,
|
609
820
|
),
|
610
821
|
),
|
611
822
|
}
|
612
823
|
|
613
|
-
ECOMAX_CONTROL_PARAMETER =
|
614
|
-
THERMOSTAT_PROFILE_PARAMETER =
|
824
|
+
ECOMAX_CONTROL_PARAMETER = EcomaxSwitchDescription(name=ATTR_ECOMAX_CONTROL)
|
825
|
+
THERMOSTAT_PROFILE_PARAMETER = EcomaxNumberDescription(name=ATTR_THERMOSTAT_PROFILE)
|
615
826
|
|
616
827
|
|
617
828
|
class EcomaxParametersStructure(StructureDecoder):
|