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.
Files changed (37) hide show
  1. {PyPlumIO-0.5.21.dist-info → PyPlumIO-0.5.23.dist-info}/METADATA +12 -10
  2. PyPlumIO-0.5.23.dist-info/RECORD +60 -0
  3. {PyPlumIO-0.5.21.dist-info → PyPlumIO-0.5.23.dist-info}/WHEEL +1 -1
  4. pyplumio/__init__.py +2 -2
  5. pyplumio/_version.py +2 -2
  6. pyplumio/connection.py +3 -12
  7. pyplumio/devices/__init__.py +16 -16
  8. pyplumio/devices/ecomax.py +126 -126
  9. pyplumio/devices/mixer.py +50 -44
  10. pyplumio/devices/thermostat.py +36 -35
  11. pyplumio/exceptions.py +9 -9
  12. pyplumio/filters.py +56 -37
  13. pyplumio/frames/__init__.py +6 -6
  14. pyplumio/frames/messages.py +4 -6
  15. pyplumio/helpers/data_types.py +8 -7
  16. pyplumio/helpers/event_manager.py +53 -33
  17. pyplumio/helpers/parameter.py +138 -52
  18. pyplumio/helpers/task_manager.py +7 -2
  19. pyplumio/helpers/timeout.py +0 -3
  20. pyplumio/helpers/uid.py +2 -2
  21. pyplumio/protocol.py +35 -28
  22. pyplumio/stream.py +2 -2
  23. pyplumio/structures/alerts.py +40 -31
  24. pyplumio/structures/ecomax_parameters.py +493 -282
  25. pyplumio/structures/frame_versions.py +5 -6
  26. pyplumio/structures/lambda_sensor.py +6 -6
  27. pyplumio/structures/mixer_parameters.py +136 -71
  28. pyplumio/structures/network_info.py +2 -3
  29. pyplumio/structures/product_info.py +0 -4
  30. pyplumio/structures/program_version.py +24 -17
  31. pyplumio/structures/schedules.py +35 -15
  32. pyplumio/structures/thermostat_parameters.py +82 -50
  33. pyplumio/utils.py +12 -7
  34. PyPlumIO-0.5.21.dist-info/RECORD +0 -61
  35. pyplumio/helpers/typing.py +0 -29
  36. {PyPlumIO-0.5.21.dist-info → PyPlumIO-0.5.23.dist-info}/LICENSE +0 -0
  37. {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
- BinaryParameter,
23
- BinaryParameterDescription,
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) -> ParameterValueType:
81
- """Return the parameter value."""
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) -> ParameterValueType:
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) -> ParameterValueType:
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
- class EcomaxBinaryParameter(BinaryParameter, EcomaxParameter):
102
- """Represents an ecoMAX binary parameter."""
103
-
104
-
127
+ @dataslots
105
128
  @dataclass
106
- class EcomaxParameterDescription(ParameterDescription):
107
- """Represents an ecoMAX parameter description."""
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
- @dataclass
114
- class EcomaxBinaryParameterDescription(
115
- EcomaxParameterDescription, BinaryParameterDescription
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
- EcomaxParameterDescription(
123
- name="airflow_power_100", unit_of_measurement=PERCENTAGE
143
+ EcomaxNumberDescription(
144
+ name="airflow_power_100",
145
+ unit_of_measurement=PERCENTAGE,
124
146
  ),
125
- EcomaxParameterDescription(
126
- name="airflow_power_50", unit_of_measurement=PERCENTAGE
147
+ EcomaxNumberDescription(
148
+ name="airflow_power_50",
149
+ unit_of_measurement=PERCENTAGE,
127
150
  ),
128
- EcomaxParameterDescription(
129
- name="airflow_power_30", unit_of_measurement=PERCENTAGE
151
+ EcomaxNumberDescription(
152
+ name="airflow_power_30",
153
+ unit_of_measurement=PERCENTAGE,
130
154
  ),
131
- EcomaxParameterDescription(
132
- name="boiler_power_100", unit_of_measurement=UnitOfMeasurement.KILO_WATT
155
+ EcomaxNumberDescription(
156
+ name="boiler_power_100",
157
+ unit_of_measurement=UnitOfMeasurement.KILO_WATT,
133
158
  ),
134
- EcomaxParameterDescription(
135
- name="boiler_power_50", unit_of_measurement=UnitOfMeasurement.KILO_WATT
159
+ EcomaxNumberDescription(
160
+ name="boiler_power_50",
161
+ unit_of_measurement=UnitOfMeasurement.KILO_WATT,
136
162
  ),
137
- EcomaxParameterDescription(
138
- name="boiler_power_30", unit_of_measurement=UnitOfMeasurement.KILO_WATT
163
+ EcomaxNumberDescription(
164
+ name="boiler_power_30",
165
+ unit_of_measurement=UnitOfMeasurement.KILO_WATT,
139
166
  ),
140
- EcomaxParameterDescription(
141
- name="max_fan_boiler_power", unit_of_measurement=PERCENTAGE
167
+ EcomaxNumberDescription(
168
+ name="max_fan_boiler_power",
169
+ unit_of_measurement=PERCENTAGE,
142
170
  ),
143
- EcomaxParameterDescription(
144
- name="min_fan_boiler_power", unit_of_measurement=PERCENTAGE
171
+ EcomaxNumberDescription(
172
+ name="min_fan_boiler_power",
173
+ unit_of_measurement=PERCENTAGE,
145
174
  ),
146
- EcomaxParameterDescription(
147
- name="fuel_feeding_work_100", unit_of_measurement=UnitOfMeasurement.SECONDS
175
+ EcomaxNumberDescription(
176
+ name="fuel_feeding_work_100",
177
+ unit_of_measurement=UnitOfMeasurement.SECONDS,
148
178
  ),
149
- EcomaxParameterDescription(
150
- name="fuel_feeding_work_50", unit_of_measurement=UnitOfMeasurement.SECONDS
179
+ EcomaxNumberDescription(
180
+ name="fuel_feeding_work_50",
181
+ unit_of_measurement=UnitOfMeasurement.SECONDS,
151
182
  ),
152
- EcomaxParameterDescription(
153
- name="fuel_feeding_work_30", unit_of_measurement=UnitOfMeasurement.SECONDS
183
+ EcomaxNumberDescription(
184
+ name="fuel_feeding_work_30",
185
+ unit_of_measurement=UnitOfMeasurement.SECONDS,
154
186
  ),
155
- EcomaxParameterDescription(
156
- name="fuel_feeding_pause_100", unit_of_measurement=UnitOfMeasurement.SECONDS
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
- EcomaxParameterDescription(
159
- name="fuel_feeding_pause_50", unit_of_measurement=UnitOfMeasurement.SECONDS
195
+ EcomaxNumberDescription(
196
+ name="fuel_feeding_pause_30",
197
+ unit_of_measurement=UnitOfMeasurement.SECONDS,
160
198
  ),
161
- EcomaxParameterDescription(
162
- name="fuel_feeding_pause_30", unit_of_measurement=UnitOfMeasurement.SECONDS
199
+ EcomaxNumberDescription(
200
+ name="cycle_duration",
201
+ unit_of_measurement=UnitOfMeasurement.SECONDS,
163
202
  ),
164
- EcomaxParameterDescription(
165
- name="cycle_duration", unit_of_measurement=UnitOfMeasurement.SECONDS
203
+ EcomaxNumberDescription(
204
+ name="h2_hysteresis",
205
+ unit_of_measurement=UnitOfMeasurement.CELSIUS,
166
206
  ),
167
- EcomaxParameterDescription(
168
- name="h2_hysteresis", unit_of_measurement=UnitOfMeasurement.CELSIUS
207
+ EcomaxNumberDescription(
208
+ name="h1_hysteresis",
209
+ unit_of_measurement=UnitOfMeasurement.CELSIUS,
169
210
  ),
170
- EcomaxParameterDescription(
171
- name="h1_hysteresis", unit_of_measurement=UnitOfMeasurement.CELSIUS
211
+ EcomaxNumberDescription(
212
+ name="heating_hysteresis",
213
+ unit_of_measurement=UnitOfMeasurement.CELSIUS,
172
214
  ),
173
- EcomaxParameterDescription(
174
- name="heating_hysteresis", unit_of_measurement=UnitOfMeasurement.CELSIUS
215
+ EcomaxSwitchDescription(
216
+ name="fuzzy_logic",
175
217
  ),
176
- EcomaxBinaryParameterDescription(name="fuzzy_logic"),
177
- EcomaxParameterDescription(
178
- name="min_fuzzy_logic_power", unit_of_measurement=PERCENTAGE
218
+ EcomaxNumberDescription(
219
+ name="min_fuzzy_logic_power",
220
+ unit_of_measurement=PERCENTAGE,
179
221
  ),
180
- EcomaxParameterDescription(
181
- name="max_fuzzy_logic_power", unit_of_measurement=PERCENTAGE
222
+ EcomaxNumberDescription(
223
+ name="max_fuzzy_logic_power",
224
+ unit_of_measurement=PERCENTAGE,
182
225
  ),
183
- EcomaxParameterDescription(
184
- name="min_boiler_power", unit_of_measurement=UnitOfMeasurement.KILO_WATT
226
+ EcomaxNumberDescription(
227
+ name="min_boiler_power",
228
+ unit_of_measurement=UnitOfMeasurement.KILO_WATT,
185
229
  ),
186
- EcomaxParameterDescription(
187
- name="max_boiler_power", unit_of_measurement=UnitOfMeasurement.KILO_WATT
230
+ EcomaxNumberDescription(
231
+ name="max_boiler_power",
232
+ unit_of_measurement=UnitOfMeasurement.KILO_WATT,
188
233
  ),
189
- EcomaxParameterDescription(
190
- name="min_fan_power", unit_of_measurement=PERCENTAGE
234
+ EcomaxNumberDescription(
235
+ name="min_fan_power",
236
+ unit_of_measurement=PERCENTAGE,
191
237
  ),
192
- EcomaxParameterDescription(
193
- name="max_fan_power", unit_of_measurement=PERCENTAGE
238
+ EcomaxNumberDescription(
239
+ name="max_fan_power",
240
+ unit_of_measurement=PERCENTAGE,
194
241
  ),
195
- EcomaxParameterDescription(
196
- name="reduction_airflow_temp", unit_of_measurement=UnitOfMeasurement.CELSIUS
242
+ EcomaxNumberDescription(
243
+ name="reduction_airflow_temp",
244
+ unit_of_measurement=UnitOfMeasurement.CELSIUS,
197
245
  ),
198
- EcomaxParameterDescription(
199
- name="fan_power_gain", unit_of_measurement=PERCENTAGE
246
+ EcomaxNumberDescription(
247
+ name="fan_power_gain",
248
+ unit_of_measurement=PERCENTAGE,
200
249
  ),
201
- EcomaxParameterDescription(
250
+ EcomaxNumberDescription(
202
251
  name="fuzzy_logic_fuel_flow_correction",
203
252
  unit_of_measurement=PERCENTAGE,
204
253
  ),
205
- EcomaxParameterDescription(
206
- name="fuel_flow_correction", unit_of_measurement=PERCENTAGE
254
+ EcomaxNumberDescription(
255
+ name="fuel_flow_correction",
256
+ unit_of_measurement=PERCENTAGE,
207
257
  ),
208
- EcomaxParameterDescription(
209
- name="airflow_correction_100", unit_of_measurement=PERCENTAGE
258
+ EcomaxNumberDescription(
259
+ name="airflow_correction_100",
260
+ unit_of_measurement=PERCENTAGE,
210
261
  ),
211
- EcomaxParameterDescription(
212
- name="feeder_correction_100", unit_of_measurement=PERCENTAGE
262
+ EcomaxNumberDescription(
263
+ name="feeder_correction_100",
264
+ unit_of_measurement=PERCENTAGE,
213
265
  ),
214
- EcomaxParameterDescription(
215
- name="airflow_correction_50", unit_of_measurement=PERCENTAGE
266
+ EcomaxNumberDescription(
267
+ name="airflow_correction_50",
268
+ unit_of_measurement=PERCENTAGE,
216
269
  ),
217
- EcomaxParameterDescription(
218
- name="feeder_correction_50", unit_of_measurement=PERCENTAGE
270
+ EcomaxNumberDescription(
271
+ name="feeder_correction_50",
272
+ unit_of_measurement=PERCENTAGE,
219
273
  ),
220
- EcomaxParameterDescription(
221
- name="airflow_correction_30", unit_of_measurement=PERCENTAGE
274
+ EcomaxNumberDescription(
275
+ name="airflow_correction_30",
276
+ unit_of_measurement=PERCENTAGE,
222
277
  ),
223
- EcomaxParameterDescription(
224
- name="feeder_correction_30", unit_of_measurement=PERCENTAGE
278
+ EcomaxNumberDescription(
279
+ name="feeder_correction_30",
280
+ unit_of_measurement=PERCENTAGE,
225
281
  ),
226
- EcomaxParameterDescription(
227
- name="grate_airflow_power", unit_of_measurement=PERCENTAGE
282
+ EcomaxNumberDescription(
283
+ name="grate_airflow_power",
284
+ unit_of_measurement=PERCENTAGE,
228
285
  ),
229
- EcomaxParameterDescription(
286
+ EcomaxNumberDescription(
230
287
  name="grate_heating_hysteresis",
231
288
  unit_of_measurement=UnitOfMeasurement.CELSIUS,
232
289
  ),
233
- EcomaxParameterDescription(
290
+ EcomaxNumberDescription(
234
291
  name="supervision_airflow_work",
235
292
  unit_of_measurement=UnitOfMeasurement.SECONDS,
236
293
  ),
237
- EcomaxParameterDescription(
294
+ EcomaxNumberDescription(
238
295
  name="supervision_airflow_pause",
239
296
  unit_of_measurement=UnitOfMeasurement.MINUTES,
240
297
  ),
241
- EcomaxParameterDescription(
242
- name="grate_heating_temp", unit_of_measurement=UnitOfMeasurement.CELSIUS
298
+ EcomaxNumberDescription(
299
+ name="grate_heating_temp",
300
+ unit_of_measurement=UnitOfMeasurement.CELSIUS,
243
301
  ),
244
- EcomaxParameterDescription(
302
+ EcomaxNumberDescription(
245
303
  name="grate_fuel_detection_time",
246
304
  unit_of_measurement=UnitOfMeasurement.MINUTES,
247
305
  ),
248
- EcomaxParameterDescription(
249
- name="kindling_airflow_power", unit_of_measurement=PERCENTAGE
306
+ EcomaxNumberDescription(
307
+ name="kindling_airflow_power",
308
+ unit_of_measurement=PERCENTAGE,
250
309
  ),
251
- EcomaxParameterDescription(
310
+ EcomaxNumberDescription(
252
311
  name="kindling_low_airflow_power",
253
312
  unit_of_measurement=PERCENTAGE,
254
313
  ),
255
- EcomaxParameterDescription(
256
- name="kindling_airflow_delay", unit_of_measurement=UnitOfMeasurement.SECONDS
314
+ EcomaxNumberDescription(
315
+ name="kindling_airflow_delay",
316
+ unit_of_measurement=UnitOfMeasurement.SECONDS,
257
317
  ),
258
- EcomaxParameterDescription(
259
- name="kindling_test_time", unit_of_measurement=UnitOfMeasurement.SECONDS
318
+ EcomaxNumberDescription(
319
+ name="kindling_test_time",
320
+ unit_of_measurement=UnitOfMeasurement.SECONDS,
260
321
  ),
261
- EcomaxParameterDescription(name="kindling_feeder_work"),
262
- EcomaxParameterDescription(
263
- name="kindling_feeder_dose", unit_of_measurement=UnitOfMeasurement.GRAMS
322
+ EcomaxNumberDescription(
323
+ name="kindling_feeder_work",
264
324
  ),
265
- EcomaxParameterDescription(
266
- name="kindling_time", unit_of_measurement=UnitOfMeasurement.MINUTES
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
- EcomaxParameterDescription(
269
- name="warming_up_time", unit_of_measurement=UnitOfMeasurement.MINUTES
333
+ EcomaxNumberDescription(
334
+ name="warming_up_time",
335
+ unit_of_measurement=UnitOfMeasurement.MINUTES,
270
336
  ),
271
- EcomaxParameterDescription(
337
+ EcomaxNumberDescription(
272
338
  name="kindling_finish_exhaust_temp",
273
339
  unit_of_measurement=UnitOfMeasurement.CELSIUS,
274
340
  ),
275
- EcomaxParameterDescription(
341
+ EcomaxNumberDescription(
276
342
  name="kindling_finish_threshold_temp",
277
343
  unit_of_measurement=UnitOfMeasurement.CELSIUS,
278
344
  ),
279
- EcomaxParameterDescription(
345
+ EcomaxNumberDescription(
280
346
  name="kindling_fumes_delta_temp",
281
347
  unit_of_measurement=UnitOfMeasurement.CELSIUS,
282
348
  ),
283
- EcomaxParameterDescription(
284
- name="kindling_delta_temp", unit_of_measurement=UnitOfMeasurement.CELSIUS
349
+ EcomaxNumberDescription(
350
+ name="kindling_delta_temp",
351
+ unit_of_measurement=UnitOfMeasurement.CELSIUS,
285
352
  ),
286
- EcomaxParameterDescription(
353
+ EcomaxNumberDescription(
287
354
  name="kindling_min_power_time",
288
355
  unit_of_measurement=UnitOfMeasurement.MINUTES,
289
356
  ),
290
- EcomaxParameterDescription(
357
+ EcomaxNumberDescription(
291
358
  name="stabilization_time",
292
359
  unit_of_measurement=UnitOfMeasurement.MINUTES,
293
360
  ),
294
- EcomaxParameterDescription(
361
+ EcomaxNumberDescription(
295
362
  name="stabilization_airflow_power",
296
363
  unit_of_measurement=PERCENTAGE,
297
364
  ),
298
- EcomaxParameterDescription(name="supervision_time"),
299
- EcomaxParameterDescription(
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
- EcomaxParameterDescription(
372
+ EcomaxNumberDescription(
304
373
  name="supervision_feeder_dose",
305
374
  unit_of_measurement=UnitOfMeasurement.GRAMS,
306
375
  ),
307
- EcomaxParameterDescription(
376
+ EcomaxNumberDescription(
308
377
  name="supervision_feeder_pause",
309
378
  unit_of_measurement=UnitOfMeasurement.MINUTES,
310
379
  ),
311
- EcomaxParameterDescription(
380
+ EcomaxNumberDescription(
312
381
  name="supervision_cycle_duration",
313
382
  unit_of_measurement=UnitOfMeasurement.SECONDS,
314
383
  ),
315
- EcomaxParameterDescription(
384
+ EcomaxNumberDescription(
316
385
  name="supervision_airflow_power",
317
386
  unit_of_measurement=PERCENTAGE,
318
387
  ),
319
- EcomaxParameterDescription(
320
- name="supervision_fan_pause", unit_of_measurement=UnitOfMeasurement.MINUTES
388
+ EcomaxNumberDescription(
389
+ name="supervision_fan_pause",
390
+ unit_of_measurement=UnitOfMeasurement.MINUTES,
321
391
  ),
322
- EcomaxParameterDescription(
323
- name="supervision_fan_work", unit_of_measurement=UnitOfMeasurement.SECONDS
392
+ EcomaxNumberDescription(
393
+ name="supervision_fan_work",
394
+ unit_of_measurement=UnitOfMeasurement.SECONDS,
324
395
  ),
325
- EcomaxParameterDescription(name="increase_fan_support_mode"),
326
- EcomaxParameterDescription(
327
- name="burning_off_max_time", unit_of_measurement=UnitOfMeasurement.MINUTES
396
+ EcomaxNumberDescription(
397
+ name="increase_fan_support_mode",
328
398
  ),
329
- EcomaxParameterDescription(
330
- name="burning_off_min_time", unit_of_measurement=UnitOfMeasurement.MINUTES
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
- EcomaxParameterDescription(name="burning_off_time"),
333
- EcomaxParameterDescription(
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
- EcomaxParameterDescription(name="burning_off_airflow_work"),
338
- EcomaxParameterDescription(name="burning_off_airflow_pause"),
339
- EcomaxParameterDescription(
340
- name="start_burning_off", unit_of_measurement=PERCENTAGE
341
- ),
342
- EcomaxParameterDescription(
343
- name="stop_burning_off", unit_of_measurement=PERCENTAGE
344
- ),
345
- EcomaxParameterDescription(name="cleaning_begin_time"),
346
- EcomaxParameterDescription(name="burning_off_cleaning_time"),
347
- EcomaxParameterDescription(
348
- name="cleaning_airflow_power", unit_of_measurement=PERCENTAGE
349
- ),
350
- EcomaxParameterDescription(name="warming_up_pause_time"),
351
- EcomaxParameterDescription(name="warming_up_cycle_time"),
352
- EcomaxParameterDescription(name="remind_time"),
353
- EcomaxBinaryParameterDescription(name="lambda_control"),
354
- EcomaxParameterDescription(name="lambda_correction_range"),
355
- EcomaxParameterDescription(name="oxygen_100"),
356
- EcomaxParameterDescription(name="oxygen_50"),
357
- EcomaxParameterDescription(name="oxygen_30"),
358
- EcomaxParameterDescription(name="fuzzy_logic_oxygen_correction"),
359
- EcomaxParameterDescription(
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
- EcomaxParameterDescription(name="feeder_calibration"),
365
- EcomaxParameterDescription(name="fuel_factor"),
366
- EcomaxParameterDescription(
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
- EcomaxParameterDescription(
372
- name="fuel_detection_time", unit_of_measurement=UnitOfMeasurement.MINUTES
481
+ EcomaxNumberDescription(
482
+ name="fuel_detection_time",
483
+ unit_of_measurement=UnitOfMeasurement.MINUTES,
373
484
  ),
374
- EcomaxParameterDescription(
485
+ EcomaxNumberDescription(
375
486
  name="fuel_detection_exhaust_temp",
376
487
  unit_of_measurement=UnitOfMeasurement.CELSIUS,
377
488
  ),
378
- EcomaxBinaryParameterDescription(name="schedule_feeder_2"),
379
- EcomaxParameterDescription(name="feed2_h1"),
380
- EcomaxParameterDescription(name="feed2_h2"),
381
- EcomaxParameterDescription(name="feed2_h3"),
382
- EcomaxParameterDescription(name="feed2_h4"),
383
- EcomaxParameterDescription(name="feed2_work"),
384
- EcomaxParameterDescription(name="feed2_pause"),
385
- EcomaxParameterDescription(
386
- name="heating_target_temp", unit_of_measurement=UnitOfMeasurement.CELSIUS
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
- EcomaxParameterDescription(
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
- EcomaxParameterDescription(
518
+ EcomaxNumberDescription(
393
519
  name="max_heating_target_temp",
394
520
  unit_of_measurement=UnitOfMeasurement.CELSIUS,
395
521
  ),
396
- EcomaxParameterDescription(
522
+ EcomaxNumberDescription(
397
523
  name="heating_pump_enable_temp",
398
524
  unit_of_measurement=UnitOfMeasurement.CELSIUS,
399
525
  ),
400
- EcomaxParameterDescription(
526
+ EcomaxNumberDescription(
401
527
  name="pause_heating_for_water_heater",
402
528
  unit_of_measurement=UnitOfMeasurement.MINUTES,
403
529
  ),
404
- EcomaxParameterDescription(name="thermostat_pause"),
405
- EcomaxParameterDescription(name="thermostat_work"),
406
- EcomaxParameterDescription(
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
- EcomaxBinaryParameterDescription(name="weather_control"),
411
- EcomaxParameterDescription(name="heating_curve", multiplier=0.1),
412
- EcomaxParameterDescription(
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
- EcomaxParameterDescription(name="weather_factor"),
418
- EcomaxParameterDescription(name="thermostat_operation"),
419
- EcomaxBinaryParameterDescription(name="thermostat_mode"),
420
- EcomaxParameterDescription(
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
- EcomaxBinaryParameterDescription(name="disable_pump_on_thermostat"),
425
- EcomaxParameterDescription(
426
- name="boiler_alert_temp", unit_of_measurement=UnitOfMeasurement.CELSIUS
565
+ EcomaxSwitchDescription(
566
+ name="disable_pump_on_thermostat",
427
567
  ),
428
- EcomaxParameterDescription(
429
- name="max_feeder_temp", unit_of_measurement=UnitOfMeasurement.CELSIUS
568
+ EcomaxNumberDescription(
569
+ name="boiler_alert_temp",
570
+ unit_of_measurement=UnitOfMeasurement.CELSIUS,
430
571
  ),
431
- EcomaxParameterDescription(
432
- name="external_boiler_temp", unit_of_measurement=UnitOfMeasurement.CELSIUS
572
+ EcomaxNumberDescription(
573
+ name="max_feeder_temp",
574
+ unit_of_measurement=UnitOfMeasurement.CELSIUS,
433
575
  ),
434
- EcomaxParameterDescription(
435
- name="alert_notify", unit_of_measurement=UnitOfMeasurement.CELSIUS
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
- EcomaxParameterDescription(
438
- name="pump_hysteresis", unit_of_measurement=UnitOfMeasurement.CELSIUS
584
+ EcomaxNumberDescription(
585
+ name="pump_hysteresis",
586
+ unit_of_measurement=UnitOfMeasurement.CELSIUS,
439
587
  ),
440
- EcomaxParameterDescription(
588
+ EcomaxNumberDescription(
441
589
  name="water_heater_target_temp",
442
590
  unit_of_measurement=UnitOfMeasurement.CELSIUS,
443
591
  ),
444
- EcomaxParameterDescription(
592
+ EcomaxNumberDescription(
445
593
  name="min_water_heater_target_temp",
446
594
  unit_of_measurement=UnitOfMeasurement.CELSIUS,
447
595
  ),
448
- EcomaxParameterDescription(
596
+ EcomaxNumberDescription(
449
597
  name="max_water_heater_target_temp",
450
598
  unit_of_measurement=UnitOfMeasurement.CELSIUS,
451
599
  ),
452
- EcomaxParameterDescription(name="water_heater_work_mode"),
453
- EcomaxParameterDescription(
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
- EcomaxBinaryParameterDescription(name="water_heater_disinfection"),
458
- EcomaxParameterDescription(name="summer_mode"),
459
- EcomaxParameterDescription(
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
- EcomaxParameterDescription(
617
+ EcomaxNumberDescription(
464
618
  name="summer_mode_disable_temp",
465
619
  unit_of_measurement=UnitOfMeasurement.CELSIUS,
466
620
  ),
467
- EcomaxParameterDescription(
621
+ EcomaxNumberDescription(
468
622
  name="water_heater_work_extension",
469
623
  unit_of_measurement=UnitOfMeasurement.MINUTES,
470
624
  ),
471
- EcomaxBinaryParameterDescription(name="circulation_control"),
472
- EcomaxParameterDescription(
473
- name="circulation_pause", unit_of_measurement=UnitOfMeasurement.MINUTES
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
- EcomaxParameterDescription(
476
- name="circulation_work", unit_of_measurement=UnitOfMeasurement.MINUTES
636
+ EcomaxNumberDescription(
637
+ name="circulation_start_temp",
638
+ unit_of_measurement=UnitOfMeasurement.CELSIUS,
477
639
  ),
478
- EcomaxParameterDescription(
479
- name="circulation_start_temp", unit_of_measurement=UnitOfMeasurement.CELSIUS
640
+ EcomaxSwitchDescription(
641
+ name="buffer_control",
480
642
  ),
481
- EcomaxBinaryParameterDescription(name="buffer_control"),
482
- EcomaxParameterDescription(
483
- name="max_buffer_temp", unit_of_measurement=UnitOfMeasurement.CELSIUS
643
+ EcomaxNumberDescription(
644
+ name="max_buffer_temp",
645
+ unit_of_measurement=UnitOfMeasurement.CELSIUS,
484
646
  ),
485
- EcomaxParameterDescription(
486
- name="min_buffer_temp", unit_of_measurement=UnitOfMeasurement.CELSIUS
647
+ EcomaxNumberDescription(
648
+ name="min_buffer_temp",
649
+ unit_of_measurement=UnitOfMeasurement.CELSIUS,
487
650
  ),
488
- EcomaxParameterDescription(
489
- name="buffer_hysteresis", unit_of_measurement=UnitOfMeasurement.CELSIUS
651
+ EcomaxNumberDescription(
652
+ name="buffer_hysteresis",
653
+ unit_of_measurement=UnitOfMeasurement.CELSIUS,
490
654
  ),
491
- EcomaxParameterDescription(
492
- name="buffer_load_start", unit_of_measurement=UnitOfMeasurement.CELSIUS
655
+ EcomaxNumberDescription(
656
+ name="buffer_load_start",
657
+ unit_of_measurement=UnitOfMeasurement.CELSIUS,
493
658
  ),
494
- EcomaxParameterDescription(
495
- name="buffer_load_stop", unit_of_measurement=UnitOfMeasurement.CELSIUS
659
+ EcomaxNumberDescription(
660
+ name="buffer_load_stop",
661
+ unit_of_measurement=UnitOfMeasurement.CELSIUS,
496
662
  ),
497
663
  ),
498
664
  ProductType.ECOMAX_I: (
499
- EcomaxParameterDescription(
665
+ EcomaxNumberDescription(
500
666
  name="water_heater_target_temp",
501
667
  unit_of_measurement=UnitOfMeasurement.CELSIUS,
502
668
  ),
503
- EcomaxBinaryParameterDescription(name="water_heater_priority"),
504
- EcomaxParameterDescription(name="water_heater_support"),
505
- EcomaxParameterDescription(
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
- EcomaxParameterDescription(
679
+ EcomaxNumberDescription(
510
680
  name="max_water_heater_target_temp",
511
681
  unit_of_measurement=UnitOfMeasurement.CELSIUS,
512
682
  ),
513
- EcomaxParameterDescription(
683
+ EcomaxNumberDescription(
514
684
  name="water_heater_work_extension",
515
685
  unit_of_measurement=UnitOfMeasurement.MINUTES,
516
686
  ),
517
- EcomaxParameterDescription(
687
+ EcomaxNumberDescription(
518
688
  name="water_heater_hysteresis",
519
689
  unit_of_measurement=UnitOfMeasurement.CELSIUS,
520
690
  ),
521
- EcomaxBinaryParameterDescription(name="water_heater_disinfection"),
522
- EcomaxParameterDescription(name="water_heater_work_mode"),
523
- EcomaxBinaryParameterDescription(name="solar_support"),
524
- EcomaxParameterDescription(
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
- EcomaxParameterDescription(
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
- EcomaxParameterDescription(
535
- name="min_collector_temp", unit_of_measurement=UnitOfMeasurement.CELSIUS
710
+ EcomaxNumberDescription(
711
+ name="min_collector_temp",
712
+ unit_of_measurement=UnitOfMeasurement.CELSIUS,
536
713
  ),
537
- EcomaxParameterDescription(
538
- name="max_collector_temp", unit_of_measurement=UnitOfMeasurement.CELSIUS
714
+ EcomaxNumberDescription(
715
+ name="max_collector_temp",
716
+ unit_of_measurement=UnitOfMeasurement.CELSIUS,
539
717
  ),
540
- EcomaxParameterDescription(
541
- name="collector_off_temp", unit_of_measurement=UnitOfMeasurement.CELSIUS
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
- EcomaxParameterDescription(name="min_pump_revolutions"),
544
- EcomaxParameterDescription(
545
- name="solar_antifreeze", unit_of_measurement=UnitOfMeasurement.CELSIUS
732
+ EcomaxNumberDescription(
733
+ name="circulation_pause",
734
+ unit_of_measurement=UnitOfMeasurement.MINUTES,
546
735
  ),
547
- EcomaxBinaryParameterDescription(name="circulation_control"),
548
- EcomaxParameterDescription(
549
- name="circulation_pause", unit_of_measurement=UnitOfMeasurement.MINUTES
736
+ EcomaxNumberDescription(
737
+ name="circulation_work",
738
+ unit_of_measurement=UnitOfMeasurement.MINUTES,
550
739
  ),
551
- EcomaxParameterDescription(
552
- name="circulation_work", unit_of_measurement=UnitOfMeasurement.MINUTES
740
+ EcomaxNumberDescription(
741
+ name="circulation_start_temp",
742
+ unit_of_measurement=UnitOfMeasurement.CELSIUS,
553
743
  ),
554
- EcomaxParameterDescription(
555
- name="circulation_start_temp", unit_of_measurement=UnitOfMeasurement.CELSIUS
744
+ EcomaxNumberDescription(
745
+ name="main_heat_source",
556
746
  ),
557
- EcomaxParameterDescription(name="main_heat_source"),
558
- EcomaxParameterDescription(
747
+ EcomaxNumberDescription(
559
748
  name="min_main_heat_source_temp",
560
749
  unit_of_measurement=UnitOfMeasurement.CELSIUS,
561
750
  ),
562
- EcomaxParameterDescription(
751
+ EcomaxNumberDescription(
563
752
  name="max_main_heat_source_temp",
564
753
  unit_of_measurement=UnitOfMeasurement.CELSIUS,
565
754
  ),
566
- EcomaxParameterDescription(
755
+ EcomaxNumberDescription(
567
756
  name="main_heat_source_hysteresis",
568
757
  unit_of_measurement=UnitOfMeasurement.CELSIUS,
569
758
  ),
570
- EcomaxParameterDescription(
759
+ EcomaxNumberDescription(
571
760
  name="critical_main_heat_source_temp",
572
761
  unit_of_measurement=UnitOfMeasurement.CELSIUS,
573
762
  ),
574
- EcomaxParameterDescription(name="main_heat_source_pump_extension_time"),
575
- EcomaxParameterDescription(name="additional_heat_source"),
576
- EcomaxParameterDescription(
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
- EcomaxParameterDescription(
773
+ EcomaxNumberDescription(
581
774
  name="additional_heat_source_pump_startup_temp",
582
775
  unit_of_measurement=UnitOfMeasurement.CELSIUS,
583
776
  ),
584
- EcomaxParameterDescription(name="hydraulic_diagram"),
585
- EcomaxBinaryParameterDescription(name="antifreeze"),
586
- EcomaxParameterDescription(name="antifreeze_delay"),
587
- EcomaxParameterDescription(name="circuit_lock_time"),
588
- EcomaxParameterDescription(name="circuit_work_time"),
589
- EcomaxParameterDescription(name="alert_out_c"),
590
- EcomaxParameterDescription(name="alert_on_out_c"),
591
- EcomaxParameterDescription(
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
- EcomaxParameterDescription(
803
+ EcomaxNumberDescription(
597
804
  name="critial_additional_heat_source_temp",
598
805
  unit_of_measurement=UnitOfMeasurement.CELSIUS,
599
806
  ),
600
- EcomaxParameterDescription(name="automatic_pump_lock_time"),
601
- EcomaxParameterDescription(name="summer_mode"),
602
- EcomaxParameterDescription(
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
- EcomaxParameterDescription(
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 = EcomaxBinaryParameterDescription(name=ATTR_ECOMAX_CONTROL)
614
- THERMOSTAT_PROFILE_PARAMETER = EcomaxParameterDescription(name=ATTR_THERMOSTAT_PROFILE)
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):