forked from fredlcore/BSB-LAN
-
Notifications
You must be signed in to change notification settings - Fork 0
/
BSB_lan_defs.h
7912 lines (7566 loc) · 665 KB
/
BSB_lan_defs.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/****************************************************/
/* DEFINITIONS and TYPEDEFS */
/****************************************************/
/*
* TODO: If someone has some time to spare, replace multiple occasions of the same string with #define STRXXX STRYYY
* where YYY is the first occasion and XXX one of the subsequent occasions.
* To get a full list of string doublettes, use this command chain:
* cat BSB_lan_defs.h | grep "const char STR" | sed -e 's/.* = \(.*\);/\1/g;' | sort | uniq -c | sort | grep -v "^.*1 \""
*/
#define PROGMEM_LATE __attribute__ (( __section__(".fini1") ))
#define PROGMEM_LATEST __attribute__ (( __section__(".fini1") ))
/* telegram types */
#define TYPE_QINF 0x01 // request info telegram
#define TYPE_INF 0x02
#define TYPE_SET 0x03
#define TYPE_ACK 0x04
#define TYPE_NACK 0x05
#define TYPE_QUR 0x06
#define TYPE_ANS 0x07
#define TYPE_ERR 0x08
#define TYPE_QRV 0x0F // query reset value
#define TYPE_ARV 0x10 // answer reset value
/* telegram addresses */
#define ADDR_HEIZ 0x00
#define ADDR_EM1 0x03
#define ADDR_EM2 0x04
#define ADDR_RGT1 0x06
#define ADDR_RGT2 0x07
#define ADDR_CNTR 0x08
#define ADDR_DISP 0x0A
#define ADDR_SRVC 0x0B
#define ADDR_ALL 0x7F
#define BUS_BSB 0
#define BUS_LPB 1
#define BUS_PPS 2
/* special command ids */
#define CMD_UNKNOWN 0x00000000u
#define CMD_END 0xffffffffu
#define FL_RONLY 1
#define FL_NO_CMD 2
#define FL_OEM 5 // Known OEM parameters are set to read-only by default. If you want to have general write-access (not recommended!) to OEM parameters, set FL_OEM to 4.
/* heating systems */
#define DEV_028_ALL 28,255 // Brötje SOB26 / LPB
#define DEV_050_ALL 50,255 // Weishaupt
#define DEV_064_ALL 64,255 // Brötje WGB 2 (über OCI420)
#define DEV_076_ALL 76,255 // RVA63.244/160
#define DEV_085_ALL 85,255 // Elco Aquatop 8es
#define DEV_090_ALL 90,255 // RVS43.222 SSR C
#define DEV_095_ALL 95,255 // Brötje LogoBloc Unit L-UB 25C
#define DEV_096_ALL 96,255 // Brötje NovoCondens SOB 22C, 26C
#define DEV_097_100 97,100 // Brötje WGB 20 C
#define DEV_097_ALL 97,255 // Elco Thision S 17.1, Brötje WBS 14D
#define DEV_098_ALL 98,255 // Brötje Ecotherm Plus WGB Pro Evo 20C, EcoCondens BBS Pro EVO 15 C
#define DEV_103_ALL 103,255 // CTC 380 IC
#define DEV_107_ALL 107,255 // RVS43.222-Z1
#define DEV_108_ALL 108,255 // Brötje Sensotherm BSW-K
#define DEV_116_ALL 116,255 // Brötije ISR-SSR B
#define DEV_119_ALL 119,255 // Waterstage WP 5kw
#define DEV_123_ALL 123,255 // Brötje EcoTherm Kompakt WMS 24
#define DEV_138_ALL 138,255 // Brötje BOB
#define DEV_162_ALL 162,255 // Brötje WGB 15 E, WGB-S 17/20E, WBS 22 E
#define DEV_163_ALL 163,255 // Brötje WGB Evo 20 H
#define DEV_170_ALL 170,255 // Fujitsu Waterstage WSYK160DC9
#define DEV_195_ALL 195,255 // MHG Procon E 25 HS
#define DEV_203_ALL 203,255 // Elco Thision 13 Plus
#define DEV_205_ALL 205,255 // Brötje Sensotherm BLW 15 B
#define DEV_211_ALL 211,255 // Fujitsu Waterstage WSYP100DG6 (Gerätevariante: 127, Geräteindetifikation: RVS21.831F/127)
#define DEV_ALL 255,255 // All devices
#define DEV_NONE 0,0
/*
typedef struct {
uint8_t dev_family; // Gerätefamilie
uint32_t dev_bit_id; // Bitmuster
} device_table;
PROGMEM_LATE const device_table dev_tbl[]={
//{1, DEV_LPB},
{28, DEV_028_ALL},
{85, DEV_085_ALL},
{50, DEV_050_ALL},
{97, DEV_097_ALL},
{90, DEV_090_ALL},
{95, DEV_095_ALL},
{96, DEV_096_ALL},
{98, DEV_098_ALL},
{103, DEV_103_ALL},
{107, DEV_107_ALL},
{108, DEV_108_ALL},
{116, DEV_116_ALL},
{138, DEV_138_ALL},
{162, DEV_162_ALL},
{163, DEV_163_ALL},
{170, DEV_170_ALL},
{203, DEV_203_ALL},
{205, DEV_203_ALL},
{211, DEV_211_ALL},
{255, DEV_NONE},
};
*/
// Menu Categories
typedef enum{
CAT_DATUMZEIT,
CAT_BEDIENEINHEIT,
CAT_FUNK,
CAT_ZEITPROG_HK1,
CAT_ZEITPROG_HK2,
CAT_ZEITPROG_HKP,
CAT_ZEITPROG_TWW,
CAT_ZEITPROG_5,
CAT_FERIEN_HK1,
CAT_FERIEN_HK2,
CAT_FERIEN_HKP,
CAT_HK1,
CAT_KUEHL1,
CAT_HK2,
CAT_HKP,
CAT_TW,
CAT_HXPUMPE,
CAT_SCHWIMMBAD,
CAT_VORREGLERPUMPE,
CAT_KESSEL,
CAT_SITHERM,
CAT_WAERMEPUMPE,
CAT_ENERGIEZAEHLER,
CAT_KASKADE,
CAT_ZUSATZERZEUGER,
CAT_SOLAR,
CAT_FESTSTOFFKESSEL,
CAT_PUFFERSPEICHER,
CAT_TWSPEICHER,
CAT_DRUCHLERHITZER,
CAT_KONFIG,
CAT_LPB,
CAT_FEHLER,
CAT_WARTUNG,
CAT_MODULE,
CAT_IOTEST,
CAT_STATUS,
CAT_DIAG_KASKADE,
CAT_DIAG_ERZEUGER,
CAT_DIAG_VERBRAUCHER,
CAT_FEUERUNGSAUTOMAT,
CAT_USER_DEFINED,
CAT_PPS,
CAT_UNKNOWN
}category_t;
/* Parameter types */
typedef enum{
VT_BIT, // 2 Byte - 1 enable 0x01 / value
VT_BYTE, // 2 Byte - 1 enable 0x01 / value
VT_CLOSEDOPEN, // 2 Byte - 1 enable 0x01 / 0=Offen 1=Geschlossen Choice
VT_DAYS, // 2 Byte - 1 enable 0x01 / day
VT_ENUM, //* 2 Byte - 1 enable 0x01 / value Choice
VT_GRADIENT_SHORT, // 2 Byte - 1 enable / value min/K
VT_HOURS_SHORT, // 2 Byte - 1 enable 0x01 / hours Int08
VT_LPBADDR, //* 2 Byte - 1 enable / adr/seg READ-ONLY
VT_MINUTES_SHORT, // 2 Byte - 1 enable 0x06 / minutes Int08S
VT_MONTHS, // 2 Byte - 1 enable 0x06 / months Int08S
VT_ONOFF, // 2 Byte - 1 enable 0x01 / 0=Aus 1=An (auch 0xff=An)
// VT_MANUAUTO, // 2 Byte - 1 enable 0x01 / 0=Automatisch 1=Manuell //FUJITSU
// VT_BLOCKEDREL, // 2 Byte - 1 enable 0x01 / 0=Gesperrt 1=Freigegeben //FUJITSU
VT_PERCENT, // 2 Byte - 1 enable 0x06 / percent
VT_PERCENT5, // 2 Byte - 1 enable 0x01 / value/2
VT_PRESSURE, // 2 Byte - 1 enable 0x01 / bar/10.0 READ-ONLY
VT_SECONDS_SHORT, // 2 Byte - 1 enable / seconds
VT_SECONDS_SHORT4, // 2 Byte - 1 enable 0x01 / value/4 (signed?)
VT_SECONDS_SHORT5, // 2 Byte - 1 enable 0x01 / value/5 (signed?)
VT_TEMP_SHORT, // 2 Byte - 1 enable 0x01 / value
VT_TEMP_SHORT5, // 2 Byte - 1 enable 0x01 / value/2 (signed)
VT_TEMP_SHORT5_US, // 2 Byte - 1 enable 0x01 / value/2 (unsigned)
VT_TEMP_SHORT64, // 2 Byte - 1 enable 0x01 / value/64 (signed)
VT_VOLTAGE, // 2 Byte - 1 enable / volt z.B. 2.9V
VT_VOLTAGEONOFF, // 2 Byte - 1 enable / volt 0V (0x00) or 230V (0xFF)
VT_WEEKDAY, // 2 Byte - 1 enable 0x01 / weekday (1=Mo..7=So)
VT_YESNO, // 2 Byte - 1 enable 0x01 / 0=Nein 1=Ja (auch 0xff=Ja)
VT_CURRENT, // 3 Byte - 1 enable / value/100 uA
VT_CURRENT1000, // 3 Byte - 1 enable / value/1000 uA
VT_DAYS_WORD, // 3 Byte - 1 enable / day
VT_ERRORCODE, // 3 Byte - 1 enable / value READ-ONLY
VT_FP1, // 3 Byte - 1 enable / value/10 READ-ONLY
VT_FP02, // 3 Byte - 1 enable 0x01 / value/50
VT_GRADIENT, // 3 Byte - 1 enable / value min/K
VT_HOUR_MINUTES, // 3 Byte - 1 enable 0x06 / hh mm
VT_HOURS_WORD, // 3 Byte - 1 enable 0x06 / hours
VT_MINUTES_WORD, // 3 Byte - 1 enable 0x06 / minutes
VT_MINUTES_WORD10, // 3 Byte - 1 enable 0x06 / minutes / 10
VT_PERCENT_WORD1, // 3 Byte - 1 enable / percent
VT_PERCENT_WORD, // 3 Byte - 1 enable / percent/2
VT_PERCENT_100, // 3 Byte - 1 enable / percent/100
VT_POWER_WORD, // 3 Byte - 1 enable / value/10 kW
VT_ENERGY_WORD, // 3 Byte - 1 enable / value/10 kWh
VT_PRESSURE_WORD, // 3 Byte - 1 enable / bar/10.0
VT_PROPVAL, // 3 Byte - 1 enable / value/16
VT_SECONDS_WORD, // 3 Byte - 1 enable / seconds
VT_SECONDS_WORD5, // 3 Byte - 1 enable / seconds / 2
VT_SPEED, // 3 Byte - 1 enable / value * 50 rpm
VT_SPEED2, // 3 Byte - 1 enable / rpm
VT_TEMP, // 3 Byte - 1 enable / value/64
VT_TEMP_WORD, // 3 Byte - 1 enable / value
VT_TEMP_WORD5_US, // 3 Byte - 1 enable / value / 2
VT_LITERPERHOUR, // 3 Byte - 1 enable / value
VT_LITERPERMIN, // 3 Byte - 1 enable / value / 10
VT_UINT, // 3 Byte - 1 enable 0x06 / value
VT_UINT5, // 3 Byte - 1 enable / value * 5
VT_UINT10, // 3 Byte - 1 enable / value / 10
VT_SINT, // 3 Byte - 1 enable 0x06 / value
VT_SINT1000, // 3 Byte - 1 enable value / 1000
VT_PPS_TIME, // 4 Byte
VT_DWORD, // 5 Byte - 1 enable 0x06 / value
VT_HOURS, // 5 Byte - 1 enable / seconds/3600
VT_MINUTES, // 5 Byte - 1 enable 0x01 / seconds/60
VT_POWER, // 5 Byte - 1 enable / value/10 kW
VT_POWER100, // 5 Byte - 1 enable / value/100 kW
VT_ENERGY10, // 5 Byte - 1 enable / value/10 kWh
VT_ENERGY, // 5 Byte - 1 enable / value/1 kWh
VT_UINT100, // 5 Byte - 1 enable / value / 100
VT_DATETIME, //* 9 Byte - 1 enable 0x01 / year+1900 month day weekday hour min sec
VT_SUMMERPERIOD, //* 9 Byte - no flag? 1 enable / byte 2/3 month/year
VT_VACATIONPROG, //* 9 Byte - 1 enable 0x06 / byte 2/3 month/year
VT_TIMEPROG, //*12 Byte - no flag / 1_ein 1_aus 2_ein 2_aus 3_ein 3_aus (jeweils SS:MM)
VT_STRING, //* x Byte - 1 enable / string
VT_UNKNOWN
}vt_type_t;
const char U_MONTHS[] PROGMEM = "Monate";
const char U_DAYS[] PROGMEM = "Tage";
const char U_HOUR[] PROGMEM = "h";
const char U_MIN[] PROGMEM = "min";
const char U_SEC[] PROGMEM = "s";
const char U_DEG[] PROGMEM = "°C";
const char U_PERC[] PROGMEM = "%";
const char U_RPM[] PROGMEM = "U/min";
const char U_KW[] PROGMEM = "kW";
const char U_KWH[] PROGMEM = "kWh";
const char U_CURR[] PROGMEM = "µA";
const char U_BAR[] PROGMEM = "bar";
const char U_VOLT[] PROGMEM = "V";
const char U_GRADIENT[] PROGMEM = "min/K";
const char U_GRADIENTKS[] PROGMEM = "K/s";
const char U_LITERPERHOUR[] PROGMEM = "l/h";
const char U_LITERPERMIN[] PROGMEM = "l/min";
const char U_NONE[] PROGMEM = "";
typedef struct {
uint32_t cmd; // the command or fieldID
uint8_t category; // the menu category
uint8_t type; // the message type
uint16_t line; // parameter number
const char *desc; // description test
uint16_t enumstr_len; // sizeof enum
const char *enumstr; // enum string
uint8_t flags; // e.g. FL_RONLY
uint8_t dev_fam; // device family
uint8_t dev_var; // device variant
// uint32_t devices; // e.g. DEV_ALL, DEV_097_ALL, DEV_162_ALL+DEV_163_ALL, DEV_ALL-DEV_097_ALL
} cmd_t;
typedef struct {
uint8_t type; // message type (e.g. VT_TEMP)
float operand; // both for divisors as well as factors (1/divisor)
uint8_t data_type; // Value, String, Date...
uint8_t precision; // decimal places
const char *unit;
uint8_t unit_len;
} units;
typedef enum {
DT_VALS, // plain value
DT_ENUM, // value (8/16 Bit) followed by space followed by text
DT_BITS, // bit value followed by bitmask followed by text
DT_WDAY, // weekday
DT_HHMM, // hour:minute
DT_DTTM, // date and time
DT_DDMM, // day and month
DT_STRN, // string
DT_DWHM // PPS time (day of week, hour:minute)
} dt_types_t;
PROGMEM_LATE const units optbl[]={
{VT_BIT, 1.0, DT_BITS, 0, U_NONE, sizeof(U_NONE)},
{VT_BYTE, 1.0, DT_VALS, 0, U_NONE, sizeof(U_NONE)},
{VT_CLOSEDOPEN, 1.0, DT_VALS, 0, U_NONE, sizeof(U_NONE)},
{VT_DAYS, 1.0, DT_VALS, 0, U_NONE, sizeof(U_NONE)},
{VT_ENUM, 1.0, DT_ENUM, 0, U_NONE, sizeof(U_NONE)},
{VT_GRADIENT_SHORT, 1.0, DT_VALS, 0, U_GRADIENT, sizeof(U_GRADIENT)},
{VT_HOURS_SHORT, 1.0, DT_VALS, 0, U_HOUR, sizeof(U_HOUR)},
{VT_LPBADDR, 1.0, DT_VALS, 0, U_NONE, sizeof(U_NONE)},
{VT_MINUTES_SHORT, 1.0, DT_VALS, 0, U_MIN, sizeof(U_MIN)},
{VT_MONTHS, 1.0, DT_VALS, 0, U_MONTHS, sizeof(U_MONTHS)},
{VT_ONOFF, 1.0, DT_ENUM, 0, U_NONE, sizeof(U_NONE)},
{VT_PERCENT, 1.0, DT_VALS, 0, U_PERC, sizeof(U_PERC)},
{VT_PERCENT5, 2.0, DT_VALS, 0, U_PERC, sizeof(U_PERC)},
{VT_PRESSURE, 10.0, DT_VALS, 1, U_BAR, sizeof(U_BAR)},
{VT_SECONDS_SHORT, 1.0, DT_VALS, 0, U_SEC, sizeof(U_SEC)},
{VT_SECONDS_SHORT4, 4.0, DT_VALS, 1, U_SEC, sizeof(U_SEC)},
{VT_SECONDS_SHORT5, 5.0, DT_VALS, 1, U_SEC, sizeof(U_SEC)},
{VT_TEMP_SHORT, 1.0, DT_VALS, 0, U_DEG, sizeof(U_DEG)},
{VT_TEMP_SHORT5, 2.0, DT_VALS, 1, U_DEG, sizeof(U_DEG)},
{VT_TEMP_SHORT5_US, 2.0, DT_VALS, 1, U_DEG, sizeof(U_DEG)},
{VT_TEMP_SHORT64, 64.0, DT_VALS, 6, U_GRADIENTKS, sizeof(U_GRADIENTKS)},
{VT_VOLTAGE, 10.0, DT_VALS, 1, U_VOLT, sizeof(U_VOLT)},
{VT_VOLTAGEONOFF, 1.0, DT_ENUM, 0, U_NONE, sizeof(U_NONE)},
{VT_WEEKDAY, 1.0, DT_WDAY, 0, U_NONE, sizeof(U_NONE)},
{VT_YESNO, 1.0, DT_ENUM, 0, U_NONE, sizeof(U_NONE)},
{VT_CURRENT, 100.0, DT_VALS, 2, U_CURR, sizeof(U_CURR)},
{VT_CURRENT1000, 1000.0, DT_VALS, 2, U_CURR, sizeof(U_CURR)},
{VT_DAYS_WORD, 1.0, DT_VALS, 0, U_NONE, sizeof(U_NONE)},
{VT_ERRORCODE, 1.0, DT_ENUM, 0, U_NONE, sizeof(U_NONE)},
{VT_FP1, 10.0, DT_VALS, 1, U_NONE, sizeof(U_NONE)},
{VT_FP02, 50.0, DT_VALS, 2, U_NONE, sizeof(U_NONE)},
{VT_GRADIENT, 1.0, DT_VALS, 0, U_GRADIENT, sizeof(U_GRADIENT)},
{VT_HOUR_MINUTES, 1.0, DT_HHMM, 0, U_NONE, sizeof(U_NONE)},
{VT_HOURS_WORD, 1.0, DT_VALS, 0, U_HOUR, sizeof(U_HOUR)},
{VT_MINUTES_WORD, 1.0, DT_VALS, 0, U_MIN, sizeof(U_MIN)},
{VT_MINUTES_WORD10, 0.1, DT_VALS, 0, U_MIN, sizeof(U_MIN)},
{VT_PERCENT_WORD1, 1.0, DT_VALS, 1, U_PERC, sizeof(U_PERC)},
{VT_PERCENT_WORD, 2.0, DT_VALS, 1, U_PERC, sizeof(U_PERC)},
{VT_PERCENT_100, 100.0, DT_VALS, 1, U_PERC, sizeof(U_PERC)},
{VT_POWER_WORD, 10.0, DT_VALS, 1, U_KW, sizeof(U_KW)},
{VT_ENERGY_WORD, 10.0, DT_VALS, 1, U_KWH, sizeof(U_KWH)},
{VT_PRESSURE_WORD, 10.0, DT_VALS, 1, U_BAR, sizeof(U_BAR)},
{VT_PROPVAL, 16.0, DT_VALS, 2, U_NONE, sizeof(U_NONE)},
{VT_SECONDS_WORD, 1.0, DT_VALS, 0, U_SEC, sizeof(U_SEC)},
{VT_SECONDS_WORD5, 2.0, DT_VALS, 0, U_SEC, sizeof(U_SEC)},
{VT_SPEED, 0.02, DT_VALS, 0, U_RPM, sizeof(U_RPM)},
{VT_SPEED2, 1.0, DT_VALS, 0, U_RPM, sizeof(U_RPM)},
{VT_TEMP, 64.0, DT_VALS, 1, U_DEG, sizeof(U_DEG)},
{VT_TEMP_WORD, 1.0, DT_VALS, 1, U_DEG, sizeof(U_DEG)},
{VT_TEMP_WORD5_US, 2.0, DT_VALS, 1, U_DEG, sizeof(U_DEG)},
{VT_LITERPERHOUR, 1.0, DT_VALS, 0, U_LITERPERHOUR, sizeof(U_LITERPERHOUR)},
{VT_LITERPERMIN, 10.0, DT_VALS, 1, U_LITERPERMIN, sizeof(U_LITERPERMIN)},
{VT_UINT, 1.0, DT_VALS, 0, U_NONE, sizeof(U_NONE)},
{VT_UINT5, 5.0, DT_VALS, 0, U_NONE, sizeof(U_NONE)},
{VT_UINT10, 10.0, DT_VALS, 1, U_NONE, sizeof(U_NONE)},
{VT_SINT, 1.0, DT_VALS, 0, U_NONE, sizeof(U_NONE)},
{VT_SINT1000, 1000, DT_VALS, 3, U_NONE, sizeof(U_NONE)},
{VT_PPS_TIME, 1.0, DT_DWHM, 0, U_NONE, sizeof(U_NONE)},
{VT_DWORD, 1.0, DT_VALS, 0, U_NONE, sizeof(U_NONE)},
{VT_HOURS, 3600.0, DT_VALS, 0, U_HOUR, sizeof(U_HOUR)},
{VT_MINUTES, 60.0, DT_VALS, 0, U_MIN, sizeof(U_MIN)},
{VT_POWER, 10.0, DT_VALS, 1, U_KW, sizeof(U_KW)},
{VT_POWER100, 100.0, DT_VALS, 2, U_KW, sizeof(U_KW)},
{VT_ENERGY10, 10.0, DT_VALS, 1, U_KWH, sizeof(U_KWH)},
{VT_ENERGY, 1.0, DT_VALS, 0, U_KWH, sizeof(U_KWH)},
{VT_UINT100, 100.0, DT_VALS, 2, U_NONE, sizeof(U_NONE)},
{VT_DATETIME, 1.0, DT_DTTM, 0, U_NONE, sizeof(U_NONE)},
{VT_SUMMERPERIOD, 1.0, DT_DDMM, 0, U_NONE, sizeof(U_NONE)},
{VT_VACATIONPROG, 1.0, DT_DDMM, 0, U_NONE, sizeof(U_NONE)},
{VT_TIMEPROG, 1.0, DT_DTTM, 0, U_NONE, sizeof(U_NONE)},
{VT_STRING, 1.0, DT_STRN, 0, U_NONE, sizeof(U_NONE)},
{VT_UNKNOWN, 1.0, DT_VALS, 1, U_NONE, sizeof(U_NONE)},
};
/****************************************************/
/* PROGMEM TABLES and STRINGS */
/****************************************************/
// Menue Kategorien
const char ENUM_CAT[] PROGMEM_LATEST = {
"\x00 Uhrzeit und Datum\0"
"\x01 Bedieneinheit\0"
"\x02 Funk\0"
"\x03 Zeitprogramm Heizkreis 1\0"
"\x04 Zeitprogramm Heizkreis 2\0"
"\x05 Zeitprogramm 3/HKP\0"
"\x06 Zeitprogramm 4\0"
"\x07 Zeitprogramm 5\0"
"\x08 Ferien Heizkreis 1\0"
"\x09 Ferien Heizkreis 2\0"
"\x0a Ferien Heizkreis P\0"
"\x0b Heizkreis 1\0"
"\x0c Kühlkreis 1\0"
"\x0d Heizkreis 2\0"
"\x0e Heizkreis 3/P\0"
"\x0f Trinkwasser\0"
"\x10 Hx-Pumpe\0"
"\x11 Schwimmbad\0"
"\x12 Vorregler/Zubringerpumpe\0"
"\x13 Kessel\0"
"\x14 Sitherm Pro\0"
"\x15 Wärmepumpe\0"
"\x16 Energiezähler\0"
"\x17 Kaskade\0"
"\x18 Zusatzerzeuger\0"
"\x19 Solar\0"
"\x1a Feststoffkessel\0"
"\x1b Pufferspeicher\0"
"\x1c Trinkwasserspeicher\0"
"\x1d Trinkwasser Durchl'erhitzer\0"
"\x1e Konfiguration\0"
"\x1f LPB-System\0"
"\x20 Fehler\0"
"\x21 Wartung/Sonderbetrieb\0"
"\x22 Konfiguration Erweiterungsmodule\0"
"\x23 Ein-/Ausgangstest\0"
"\x24 Status\0"
"\x25 Diagnose Kaskade\0"
"\x26 Diagnose Erzeuger\0"
"\x27 Diagnose Verbraucher\0"
"\x28 Feuerungsautomat\0"
"\x29 Benutzerdefiniert\0"
"\x2a PPS-Bus\0"
"\x2b unbekannte Kategorie"
};
const uint16_t ENUM_CAT_NR[] PROGMEM_LATEST = {
0, 6,
20, 70,
120, 140,
500, 516,
520, 536,
540, 556,
560, 576,
600, 616,
632, 648,
649, 665,
666, 682,
700, 900,
901, 969,
1000, 1200,
1300, 1500,
1600, 1680,
2008, 2051,
2055, 2080,
2110, 2150,
2200, 2551,
2700, 2732,
2785, 3010,
3095, 3267,
3510, 3590,
3700, 3723,
3810, 3887,
4102, 4141,
4708, 4813,
5010, 5131,
5400, 5544,
5700, 6421,
6600, 6650,
6705, 6846,
7001, 7254,
7300, 7500,
7700, 7999,
8000, 8099,
8100, 8150,
8300, 8570,
8700, 9075,
9500, 9627,
10000, 14999,
15000, 15067
};
/* Menue Strings */
const char STR0[] PROGMEM = "Datum/Zeit";
const char STR1[] PROGMEM = "Stunden/Minuten";
const char STR2[] PROGMEM = "Tag/Monat";
const char STR3[] PROGMEM = "Jahr";
const char STR5[] PROGMEM = "Sommerzeitbeginn Tag/Monat";
const char STR6[] PROGMEM = "Sommerzeitende Tag/Monat";
const char STR20[] PROGMEM = "Sprachauswahl";
const char STR21[] PROGMEM = "Anzeige Sonderbetrieb";
const char STR22[] PROGMEM = "Info";
const char STR23[] PROGMEM = "Fehleranzeige";
const char STR25[] PROGMEM = "Anzeigekontrast";
const char STR26[] PROGMEM = "Sperre Bedienung";
const char STR27[] PROGMEM = "Sperre Programmierung";
const char STR28[] PROGMEM = "Bedieneinheit Direktverstellung";
const char STR29[] PROGMEM = "Einheiten";
const char STR30[] PROGMEM = "Bedieneinheit Grundeinstellung sichern";
const char STR31[] PROGMEM = "Bedieneinheit Grundeinstellung aktivieren";
const char STR40[] PROGMEM = "Einsatz als";
const char STR42[] PROGMEM = "Zuordnung Raumgerät 1";
const char STR44[] PROGMEM = "Bedienung HK 2";
const char STR46[] PROGMEM = "Bedienung HK P";
const char STR48[] PROGMEM = "Wirkung Präsenztaste";
const char STR54[] PROGMEM = "Korrektur Raumfühler";
const char STR70[] PROGMEM = "Geräte-Version Bedienteil";
const char STR120[] PROGMEM = "Binding";
const char STR121[] PROGMEM = "Testmode";
const char STR130[] PROGMEM = "Raumgerät 1 Status";
const char STR131[] PROGMEM = "Raumgerät 2 Status";
const char STR132[] PROGMEM = "Raumgerät P Status";
const char STR133[] PROGMEM = "Außenfühler P Status";
const char STR134[] PROGMEM = "Repeater P Status";
const char STR135[] PROGMEM = "Bedieneinheit 1 Status";
const char STR136[] PROGMEM = "Bedieneinheit 2 Status";
const char STR137[] PROGMEM = "Bedieneinheit P Status";
const char STR138[] PROGMEM = "Servicegerät Status";
const char STR140[] PROGMEM = "Alle Geräte löschen";
/*
const char STR500[] PROGMEM = "Vorwahl";
const char STR501[] PROGMEM = "Mo-So: 1. Phase Ein";
const char STR502[] PROGMEM = "Mo-So: 1. Phase Aus";
const char STR503[] PROGMEM = "Mo-So: 2. Phase Ein";
const char STR504[] PROGMEM = "Mo-So: 2. Phase Aus";
const char STR505[] PROGMEM = "Mo-So: 3. Phase Ein";
const char STR506[] PROGMEM = "Mo-So: 3. Phase Aus";
*/
const char STR500[] PROGMEM = "Mo";
const char STR501[] PROGMEM = "Di";
const char STR502[] PROGMEM = "Mi";
const char STR503[] PROGMEM = "Do";
const char STR504[] PROGMEM = "Fr";
const char STR505[] PROGMEM = "Sa";
const char STR506[] PROGMEM = "So";
const char STR516[] PROGMEM = "Standardwerte";
const char STR520[] PROGMEM = "Mo";
const char STR521[] PROGMEM = "Di";
const char STR522[] PROGMEM = "Mi";
const char STR523[] PROGMEM = "Do";
const char STR524[] PROGMEM = "Fr";
const char STR525[] PROGMEM = "Sa";
const char STR526[] PROGMEM = "So";
const char STR536[] PROGMEM = "Standardwerte";
const char STR540[] PROGMEM = "Mo";
const char STR541[] PROGMEM = "Di";
const char STR542[] PROGMEM = "Mi";
const char STR543[] PROGMEM = "Do";
const char STR544[] PROGMEM = "Fr";
const char STR545[] PROGMEM = "Sa";
const char STR546[] PROGMEM = "So";
const char STR556[] PROGMEM = "Standardwerte";
const char STR560[] PROGMEM = "Mo";
const char STR561[] PROGMEM = "Di";
const char STR562[] PROGMEM = "Mi";
const char STR563[] PROGMEM = "Do";
const char STR564[] PROGMEM = "Fr";
const char STR565[] PROGMEM = "Sa";
const char STR566[] PROGMEM = "So";
const char STR576[] PROGMEM = "Standardwerte";
const char STR600[] PROGMEM = "Mo";
const char STR601[] PROGMEM = "Di";
const char STR602[] PROGMEM = "Mi";
const char STR603[] PROGMEM = "Do";
const char STR604[] PROGMEM = "Fr";
const char STR605[] PROGMEM = "Sa";
const char STR606[] PROGMEM = "So";
const char STR616[] PROGMEM = "Standardwerte";
/* Die Zeilennummern 632-682 entsprechen nicht den Zeilennummern im Bedienteil,
* sondern wurden künstlich hinzugefügt */
const char STR632[] PROGMEM = "Periode 1 Beginn Tag/Monat";
const char STR633[] PROGMEM = "Periode 1 Ende Tag/Monat";
const char STR634[] PROGMEM = "Periode 2 Beginn Tag/Monat";
const char STR635[] PROGMEM = "Periode 2 Ende Tag/Monat";
const char STR636[] PROGMEM = "Periode 3 Beginn Tag/Monat";
const char STR637[] PROGMEM = "Periode 3 Ende Tag/Monat";
const char STR638[] PROGMEM = "Periode 4 Beginn Tag/Monat";
const char STR639[] PROGMEM = "Periode 4 Ende Tag/Monat";
const char STR640[] PROGMEM = "Periode 5 Beginn Tag/Monat";
const char STR641[] PROGMEM = "Periode 5 Ende Tag/Monat";
const char STR642[] PROGMEM = "Periode 6 Beginn Tag/Monat";
const char STR643[] PROGMEM = "Periode 6 Ende Tag/Monat";
const char STR644[] PROGMEM = "Periode 7 Beginn Tag/Monat";
const char STR645[] PROGMEM = "Periode 7 Ende Tag/Monat";
const char STR646[] PROGMEM = "Periode 8 Beginn Tag/Monat";
const char STR647[] PROGMEM = "Periode 8 Ende Tag/Monat";
const char STR648[] PROGMEM = "Betriebsniveau Ferien";
#define STR649 STR632
#define STR650 STR633
#define STR651 STR634
#define STR652 STR635
#define STR653 STR636
#define STR654 STR637
#define STR655 STR638
#define STR656 STR639
#define STR657 STR640
#define STR658 STR641
#define STR659 STR642
#define STR660 STR643
#define STR661 STR644
#define STR662 STR645
#define STR663 STR646
#define STR664 STR647
#define STR665 STR648
#define STR666 STR632
#define STR667 STR633
#define STR668 STR634
#define STR669 STR635
#define STR670 STR636
#define STR671 STR637
#define STR672 STR638
#define STR673 STR639
#define STR674 STR640
#define STR675 STR641
#define STR676 STR642
#define STR677 STR643
#define STR678 STR644
#define STR679 STR645
#define STR680 STR646
#define STR681 STR647
#define STR682 STR648
/*
const char STR641[] PROGMEM = "Vorwahl";
const char STR642[] PROGMEM = "Beginn Tag/Monat";
const char STR643[] PROGMEM = "Ende Tag/Monat";
const char STR648[] PROGMEM = "Betriebsniveau";
const char STR651[] PROGMEM = "Vorwahl";
const char STR652[] PROGMEM = "Beginn Tag/Monat";
const char STR653[] PROGMEM = "Ende Tag/Monat";
const char STR658[] PROGMEM = "Betriebsniveau";
const char STR661[] PROGMEM = "Vorwahl";
const char STR662[] PROGMEM = "Beginn Tag/Monat";
const char STR663[] PROGMEM = "Ende Tag/Monat";
const char STR668[] PROGMEM = "Betriebsniveau";
*/
// Heizkreis 1
const char STR700[] PROGMEM = "Betriebsart";
const char STR701[] PROGMEM = "Präsenztaste (temporäre Abwesenheit)";
const char STR710[] PROGMEM = "Komfortsollwert";
const char STR711[] PROGMEM = "Komfortsollwert Maximum";
const char STR712[] PROGMEM = "Reduziertsollwert";
const char STR714[] PROGMEM = "Frostschutzsollwert";
const char STR720[] PROGMEM = "Kennlinie Steilheit";
const char STR721[] PROGMEM = "Kennlinie Verschiebung";
const char STR726[] PROGMEM = "Kennlinie Adaption";
const char STR730[] PROGMEM = "Sommer-/ Winterheizgrenze";
const char STR732[] PROGMEM = "Tagesheizgrenze";
const char STR740[] PROGMEM = "Vorlaufsollwert Minimum";
const char STR741[] PROGMEM = "Vorlaufsollwert Maximum";
const char STR742[] PROGMEM = "Vorlaufsollwert Raumthermostat HK1";
const char STR744[] PROGMEM = "Soll Einschaltverh R'stat";
const char STR750[] PROGMEM = "Raumeinfluss";
const char STR760[] PROGMEM = "Raumtemperaturbegrenzung";
const char STR761[] PROGMEM = "Heizgrenze Raumregler";
const char STR770[] PROGMEM = "Schnellaufheizung";
const char STR780[] PROGMEM = "Schnellabsenkung";
const char STR790[] PROGMEM = "Einschalt-Optimierung Max.";
const char STR791[] PROGMEM = "Ausschalt-Optimierung Max.";
const char STR800[] PROGMEM = "Reduziert-Anhebung Beginn";
const char STR801[] PROGMEM = "Reduziert-Anhebung Ende";
const char STR809[] PROGMEM = "Pumpendauerlauf HK1";
const char STR820[] PROGMEM = "Überhitzschutz Pumpenkreis";
const char STR830[] PROGMEM = "Mischerüberhöhung";
const char STR831[] PROGMEM = "Mischerunterkühlung";
const char STR832[] PROGMEM = "Antrieb Typ";
const char STR833[] PROGMEM = "Schaltdifferenz 2-Punkt";
const char STR834[] PROGMEM = "Antrieb Laufzeit";
const char STR835[] PROGMEM = "Mischer P-Band Xp";
const char STR836[] PROGMEM = "Mischer Nachstellzeit Tn";
const char STR850[] PROGMEM = "Estrichfunktion HK1";
const char STR851[] PROGMEM = "Estrich Sollwert manuell HK1";
const char STR855[] PROGMEM = "Vorlauftemp-Sollwert Estrich-Austrocknung HK1";
const char STR856[] PROGMEM = "Estrich Tag aktuell HK1";
const char STR857[] PROGMEM = "Estrich Tage erfüllt";
const char STR861[] PROGMEM = "Übertemperaturabnahme";
const char STR864[] PROGMEM = "Sperrsignalverstärkung";
const char STR870[] PROGMEM = "Mit Pufferspeicher";
const char STR872[] PROGMEM = "Mit Vorregler/Zubring`pumpe";
const char STR880[] PROGMEM = "HK1 Pumpe Drehzahlreduktion";
const char STR882[] PROGMEM = "Pumpendrehzahl Minimum";
const char STR883[] PROGMEM = "Pumpendrehzahl Maximum";
const char STR884[] PROGMEM = "Drehzahlstufe Ausleg'punkt";
const char STR885[] PROGMEM = "Pumpe-PWM Minimum";
const char STR886[] PROGMEM = "Norm Aussentemperatur";
const char STR887[] PROGMEM = "Vorlaufsoll NormAussentemp";
const char STR888[] PROGMEM = "dt Überhöhungsfaktor";
const char STR888_2[] PROGMEM = "Kennliniekorr bei 50% Drehz";
const char STR890[] PROGMEM = "Vorl'sollwertkorr Drehz'reg HK1";
const char STR894[] PROGMEM = "dT Spreizung Norm Aussent.";
const char STR895[] PROGMEM = "dT Spreizung Maximum";
const char STR898[] PROGMEM = "Betriebsniveauumschaltung";
const char STR900[] PROGMEM = "Betriebsartumschaltung";
// Einstellungen Kühlkreis 1
const char STR901[] PROGMEM = "Betriebsart";
const char STR902[] PROGMEM = "Komfortsollwert";
const char STR904[] PROGMEM = "Schutzsollwert";
const char STR907[] PROGMEM = "Freigabe";
const char STR908[] PROGMEM = "Vorlaufsollwert bei TA 25 °C";
const char STR909[] PROGMEM = "Vorlaufsollwert bei TA 35 °C";
const char STR912[] PROGMEM = "Kühlgrenze bei TA";
const char STR913[] PROGMEM = "Sperrdauer nach Heizende";
const char STR918[] PROGMEM = "Sommerkomp Beginn bei TA";
const char STR919[] PROGMEM = "Sommerkomp Ende bei TA";
const char STR920[] PROGMEM = "Sommerkomp Sollw’anhebung";
const char STR923[] PROGMEM = "Vorlaufsollwert Min bei TA 25 °C";
const char STR924[] PROGMEM = "Vorlaufsollwert Min bei TA 35 °C";
const char STR928[] PROGMEM = "Raumeinfluss";
const char STR932[] PROGMEM = "Raumtemperaturbegrenzung";
const char STR938[] PROGMEM = "Mischerunterkühlung";
const char STR939[] PROGMEM = "Antrieb Typ";
const char STR940[] PROGMEM = "Schaltdifferenz 2-Punkt";
#define STR941 STR834
#define STR942 STR835
#define STR943 STR836
const char STR945[] PROGMEM = "Mischventil im Heizbetrieb";
const char STR946[] PROGMEM = "Sperrdauer Taupunktwächt";
const char STR947[] PROGMEM = "Vorlaufsollw’anhebung Hygro";
const char STR948[] PROGMEM = "Vorl'anhebung Beginn bei r. F.";
const char STR950[] PROGMEM = "Vorlauftemp'diff Taupunkt";
const char STR962[] PROGMEM = "Mit Pufferspeicher";
const char STR963[] PROGMEM = "Mit Vorregler/Zubring'pumpe";
const char STR969[] PROGMEM = "Betriebsartumschaltung";
// Einstellungen Heizkreis 2
const char STR1000[] PROGMEM = "Betriebsart";
#define STR1001 STR710
const char STR1010[] PROGMEM = "Komfortsollwert";
const char STR1011[] PROGMEM = "Komfortsollwert Maximum";
const char STR1012[] PROGMEM = "Reduziertsollwert";
const char STR1014[] PROGMEM = "Frostschutzsollwert";
const char STR1020[] PROGMEM = "Kennlinie Steilheit";
const char STR1021[] PROGMEM = "Kennlinie Verschiebung";
const char STR1026[] PROGMEM = "Kennlinie Adaption";
const char STR1030[] PROGMEM = "Sommer-/Winterheizgrenze";
const char STR1032[] PROGMEM = "Tagesheizgrenze";
const char STR1040[] PROGMEM = "Vorlaufsollwert Minimum";
const char STR1041[] PROGMEM = "Vorlaufsollwert Maximum";
const char STR1042[] PROGMEM = "Vorlaufsollwert Raumthermostat";
const char STR1050[] PROGMEM = "Raumeinfluss";
const char STR1060[] PROGMEM = "Raumtemperaturbegrenzung";
const char STR1070[] PROGMEM = "Schnellaufheizung";
const char STR1080[] PROGMEM = "Schnellabsenkung";
const char STR1090[] PROGMEM = "Einschalt-Optimierung Max.";
const char STR1091[] PROGMEM = "Ausschalt-Optimierung Max.";
const char STR1100[] PROGMEM = "Reduziert-Anhebung Begin";
const char STR1101[] PROGMEM = "Reduziert-Anhebung Ende";
const char STR1109[] PROGMEM = "Pumpendauerlauf HK2";
const char STR1120[] PROGMEM = "Überhitzschutz Pumpenkreis";
#define STR1130 STR830
#define STR1131 STR831
#define STR1132 STR832
#define STR1133 STR833
#define STR1134 STR834
#define STR1135 STR835
#define STR1136 STR836
const char STR1150[] PROGMEM = "Estrichfunktion";
const char STR1151[] PROGMEM = "Estrich Sollwert manuell";
const char STR1155[] PROGMEM = "Estrich Sollwert aktuell";
const char STR1156[] PROGMEM = "Estrich Tag aktuell";
const char STR1157[] PROGMEM = "Estrich Tag erfüllt";
const char STR1161[] PROGMEM = "Übertemperaturabnahme";
const char STR1170[] PROGMEM = "Mit Pufferspeicher";
const char STR1172[] PROGMEM = "Mit Vorregler/Zubring`pumpe";
const char STR1180[] PROGMEM = "HK2 Pumpe Drehzahlreduktion";
const char STR1182[] PROGMEM = "Pumpendrehzahl Minimum";
const char STR1183[] PROGMEM = "Pumpendrehzahl Maximum";
const char STR1200[] PROGMEM = "Betriebsartumschaltung";
// Heizkreis 3/P
const char STR1300[] PROGMEM = "Betriebsart";
#define STR1301 STR701
const char STR1310[] PROGMEM = "Komfortsollwert";
const char STR1311[] PROGMEM = "Komfortsollwert Maximum";
const char STR1312[] PROGMEM = "Reduziertsollwert";
const char STR1314[] PROGMEM = "Frostschutzsollwert";
const char STR1320[] PROGMEM = "Kennlinie Steilheit";
const char STR1321[] PROGMEM = "Kennlinie Verschiebung";
const char STR1326[] PROGMEM = "Kennlinie Adaption";
const char STR1330[] PROGMEM = "Sommer-/ Winterheizgrenze";
const char STR1332[] PROGMEM = "Tagesheizgrenze";
const char STR1340[] PROGMEM = "Vorlaufsollwert Minimum";
const char STR1341[] PROGMEM = "Vorlaufsollwert Maximum";
const char STR1350[] PROGMEM = "Raumeinfluss";
const char STR1360[] PROGMEM = "Raumtemperaturbegrenzung";
const char STR1370[] PROGMEM = "Schnellaufheizung";
const char STR1380[] PROGMEM = "Schnellabsenkung";
const char STR1390[] PROGMEM = "Einschalt-Optimierung Max.";
const char STR1391[] PROGMEM = "Ausschalt-Optimierung Max.";
const char STR1400[] PROGMEM = "Reduziert-Anhebung Begin";
const char STR1401[] PROGMEM = "Reduziert-Anhebung Ende";
const char STR1420[] PROGMEM = "Überhitzschutz Pumpenkreis";
#define STR1430 STR830
#define STR1431 STR831
#define STR1432 STR832
#define STR1433 STR833
#define STR1434 STR834
const char STR1450[] PROGMEM = "Estrichfunktion";
const char STR1451[] PROGMEM = "Estrich sollwert manuell";
const char STR1455[] PROGMEM = "Estrich Sollwert aktuell";
const char STR1456[] PROGMEM = "Estrich Tag aktuell";
const char STR1457[] PROGMEM = "Estrich Tag erfüllt";
const char STR1461[] PROGMEM = "Übertemperaturabnahme";
const char STR1470[] PROGMEM = "Mit Pufferspeicher";
const char STR1472[] PROGMEM = "Mit Vorregler/Zubring`pumpe";
const char STR1482[] PROGMEM = "Pumpendrehzahl Minimum";
const char STR1483[] PROGMEM = "Pumpendrehzahl Maximum";
const char STR1500[] PROGMEM = "Betriebsartumschaltung";
// Trinkwasser
const char STR1600[] PROGMEM = "Trinkwasserbetrieb";
const char STR1601[] PROGMEM = "Manueller TWW-Push";
const char STR1602[] PROGMEM = "TWW Status";
const char STR1610[] PROGMEM = "TWW Nennsollwert";
const char STR1612[] PROGMEM = "TWW Reduziertsollwert";
const char STR1614[] PROGMEM = "TWW Nennsollwert Maximum";
const char STR1620[] PROGMEM = "TWW Freigabe";
const char STR1630[] PROGMEM = "TWW Ladevorrang";
const char STR1640[] PROGMEM = "Legionellenfunktion";
const char STR1641[] PROGMEM = "Legionellenfkt. Periodizität";
const char STR1642[] PROGMEM = "Legionellenfkt. Wochentag";
const char STR1644[] PROGMEM = "Legionellenfkt. Zeitpunkt";
const char STR1645[] PROGMEM = "Legionellenfkt. Sollwert";
const char STR1646[] PROGMEM = "Legionellenfkt. Verweildauer";
const char STR1647[] PROGMEM = "Legionellenfkt. Zirk`pumpe";
const char STR1660[] PROGMEM = "Zirkulationspumpe Freigabe";
const char STR1661[] PROGMEM = "Zirk`pumpe Taktbetrieb";
const char STR1663[] PROGMEM = "Zirkulations Sollwert";
const char STR1680[] PROGMEM = "Trinkwasser Betriebsartumschaltung";
// Hx Pumpe
const char STR2008[] PROGMEM = "H1 TWW-Ladevorrang";
const char STR2010[] PROGMEM = "H1 Übertemperaturabnahme";
const char STR2012[] PROGMEM = "H1 mit Pufferspeicher";
const char STR2014[] PROGMEM = "H1 Vorregler/Zubring`pumpe";
const char STR2015[] PROGMEM = "H1 Kälteanforderung";
const char STR2033[] PROGMEM = "H2 TWW-Ladevorrang";
const char STR2035[] PROGMEM = "H2 Übertemperaturabnahme";
const char STR2037[] PROGMEM = "H2 mit Pufferspeicher";
const char STR2039[] PROGMEM = "H2 Vorregler / Zubring'pumpe";
const char STR2040[] PROGMEM = "H2 Kälteanforderung";
const char STR2044[] PROGMEM = "H3 TWW-Ladevorrang";
const char STR2046[] PROGMEM = "H3 Übertemperaturabnahme";
const char STR2048[] PROGMEM = "H3 mit Pufferspeicher";
const char STR2050[] PROGMEM = "H3 Vorregler/Zubring`pumpe";
const char STR2051[] PROGMEM = "H3 Kälteanforderung";
// Schwimmbad
const char STR2055[] PROGMEM = "Sollwert Solarbeheizung";
const char STR2056[] PROGMEM = "Sollwert Erzeugerbeheizung";
const char STR2065[] PROGMEM = "Ladevorrang Solar";
const char STR2070[] PROGMEM = "Schwimmbadtemp Maximum";
const char STR2080[] PROGMEM = "Mit Solareinbindung";
// Vorregler/Zubringerpumpe
const char STR2110[] PROGMEM = "Vorlaufsollwert Minimum";
const char STR2111[] PROGMEM = "Vorlaufsollwert Maximum";
const char STR2112[] PROGMEM = "Vorlaufsollwert Kühlen Min";
#define STR2130 STR830
#define STR2131 STR831
#define STR2132 STR832
#define STR2133 STR833
#define STR2134 STR834
#define STR2135 STR835
#define STR2136 STR836
const char STR2150[] PROGMEM = "Vorregler/Zubringerpumpe";
// Kessel
const char STR2200[] PROGMEM = "Betriebsart";
const char STR2201[] PROGMEM = "Erzeugersperre";
const char STR2203[] PROGMEM = "Freigabe unter Außentemp";
const char STR2204[] PROGMEM = "Freigabe über Außentemp";
const char STR2205[] PROGMEM = "Bei Ökobetrieb";
const char STR2206[] PROGMEM = "Betrieb/Standby";
const char STR2208[] PROGMEM = "Durchladung Pufferspeicher";
const char STR2210[] PROGMEM = "Sollwert Minimum";
const char STR2211[] PROGMEM = "Sollwert Minimum OEM";
const char STR2212[] PROGMEM = "Sollwert Maximum";
const char STR2213[] PROGMEM = "Sollwert Maximum OEM";
const char STR2214[] PROGMEM = "Sollwert Handbetrieb";
const char STR2220[] PROGMEM = "Freigabeintegral Stufe 2";
const char STR2221[] PROGMEM = "Rückstellintegral Stufe 2";
const char STR2222[] PROGMEM = "Zwangseinschaltung Stufe 2";
const char STR2232[] PROGMEM = "Klappenantrieb Laufzeit";
const char STR2233[] PROGMEM = "Klappenantrieb P-Band Xp";
const char STR2234[] PROGMEM = "Klappenantrieb Nach'zeit Tn";
const char STR2235[] PROGMEM = "Klappenantrieb Vorh'zeit Tv";
const char STR2240[] PROGMEM = "Schaltdifferenz Kessel";
const char STR2241[] PROGMEM = "Kessel Brennerlaufzeit Minimum";
const char STR2243[] PROGMEM = "Brennpausenzeit Minimum";
const char STR2245[] PROGMEM = "SD Brennerpause";
const char STR2250[] PROGMEM = "Pumpennachlaufzeit";
const char STR2253[] PROGMEM = "Pumpennachlaufzeit n. TWW-Betrieb";
const char STR2260[] PROGMEM = "Anfahrentlast Verbraucher";
const char STR2261[] PROGMEM = "Anfahrentlast Kesselpumpe";
const char STR2262[] PROGMEM = "Einschaltoptimierung";
const char STR2270[] PROGMEM = "Rücklaufsollwert Minimum";
const char STR2271[] PROGMEM = "Rücklaufsollwert Min OEM";
const char STR2272[] PROGMEM = "Rückl'einfluss Verbraucher";
#define STR2282 STR834
#define STR2283 STR835
#define STR2284 STR836
const char STR2285[] PROGMEM = "Mischer Vorhaltezeit Tv";
const char STR2290[] PROGMEM = "Schaltdiff Bypasspumpe";
const char STR2291[] PROGMEM = "Steuerung Bypasspumpe";
const char STR2300[] PROGMEM = "Anl'frostschutz Kess'pumpe";
const char STR2301[] PROGMEM = "Kesselpumpe bei Erzeugersperre";
const char STR2305[] PROGMEM = "Wirkung Erzeugersperre";
const char STR2310[] PROGMEM = "TR-Funktion";
const char STR2315[] PROGMEM = "Temperaturhub Minimum";
const char STR2316[] PROGMEM = "Temperaturhub Maximum";
const char STR2317[] PROGMEM = "Temperaturhub Nenn";
const char STR2320[] PROGMEM = "Pumpenmodulation";
const char STR2322[] PROGMEM = "Pumpendrehzahl Minimum";
const char STR2323[] PROGMEM = "Pumpendrehzahl Maximum";
const char STR2324[] PROGMEM = "Drehzahl P-Band Xp";
const char STR2325[] PROGMEM = "Drehzahl Nachstellzeit Tn";
const char STR2326[] PROGMEM = "Drehzahl Vorhaltezeit Tv";
const char STR2330[] PROGMEM = "Leistung Nenn";
const char STR2331[] PROGMEM = "Leistung Grundstufe";
const char STR2334[] PROGMEM = "Leistung bei Pumpendehz. min";
const char STR2335[] PROGMEM = "Leistung bei Pumpendehz. max";
const char STR2340[] PROGMEM = "Auto Erz’folge 2 x 1 Kaskade";
const char STR2440[] PROGMEM = "Gebläse-PWM Hz Maximum";
const char STR2441[] PROGMEM = "Gebläsedrehzahl Hz Maximum";
const char STR2441_2[] PROGMEM = "Gebläseleistung Heizen Max";
const char STR2442[] PROGMEM = "Gebläse-PWM Reglerverzögerung";
const char STR2442_2[] PROGMEM = "Gebl'leistung Durchladen Max";
const char STR2443[] PROGMEM = "Gebläse-PWM Startwert DLH";
const char STR2443_2[] PROGMEM = "Gebl'leistung Startwert DLH";
const char STR2444[] PROGMEM = "Leistung Minimum";
const char STR2444_2[] PROGMEM = "Gebläseleistung TWW Max";
const char STR2445[] PROGMEM = "Nennleistung Kessel";
const char STR2445_2[] PROGMEM = "Gebl'abschaltung Heizbetrieb";
const char STR2446[] PROGMEM = "Gebläseabschaltverzögerung";
const char STR2450[] PROGMEM = "Reglerverzögerung";
const char STR2451[] PROGMEM = "Brennerpausenzeit Minimum";
const char STR2452[] PROGMEM = "SD Brennerpause";
const char STR2452_2[] PROGMEM = "Reglerverzög' Gebl'leistung";
const char STR2453[] PROGMEM = "Reglerverzögerung Dauer";
const char STR2454[] PROGMEM = "Schaltdifferenz Ein HK's";
const char STR2455[] PROGMEM = "Schaltdiff Aus Min HK's";
const char STR2456[] PROGMEM = "Schaltdiff Aus Max HK's";
const char STR2457[] PROGMEM = "Einschwingzeit HK's";
const char STR2459[] PROGMEM = "Sperrzeit dynam Schaltdiff";
const char STR2460[] PROGMEM = "Schaltdiff Ein TWW";
const char STR2461[] PROGMEM = "Schaltdiff Aus Min TWW";
const char STR2462[] PROGMEM = "Schaltdiff Aus Max TWW";
const char STR2463[] PROGMEM = "Einschwingzeit TWW";
const char STR2464[] PROGMEM = "Dyn SD bei Sollwertänderung";
const char STR2465[] PROGMEM = "Min Sollwertänderung dyn SD";
const char STR2466[] PROGMEM = "Dyn SD bei Wechsel HK/TWW";
const char STR2467[] PROGMEM = "Dyn SD bei Brenner ein";
const char STR2470[] PROGMEM = "Verz' Wärmeanfo Sonderbet";
const char STR2471[] PROGMEM = "Pumpennachlaufzeit HK's";
const char STR2472[] PROGMEM = "Pumpennachlauftemp TWW";
const char STR2473[] PROGMEM = "Abgastemp Leistungsredukt";
const char STR2474[] PROGMEM = "Abgastemp Abschaltgrenze";
const char STR2476[] PROGMEM = "Abgasüberwach' Abschaltung";
const char STR2477[] PROGMEM = "Abgasüberw Startverhin'zeit";
const char STR2478[] PROGMEM = "Parameter";
const char STR2479[] PROGMEM = "Parameter";
const char STR2480[] PROGMEM = "Statisch' Drucküberw' Absch'";
const char STR2490[] PROGMEM = "Dynam' Drucküberw Abschalt";
const char STR2491[] PROGMEM = "Dyn Überw Druckdiff Min";
const char STR2492[] PROGMEM = "Dyn Überw Druckdiff Max";
const char STR2494[] PROGMEM = "Dyn Überw Druckanhebung";
const char STR2495[] PROGMEM = "Dyn Drucküberw Überw'zeit";
const char STR2496[] PROGMEM = "Dyn Drucküberw Zeitkonst";
const char STR2500[] PROGMEM = "Druckschalter Abschaltung";
const char STR2502[] PROGMEM = "Durchfl'schalter Abschaltung";
const char STR2504[] PROGMEM = "Min Einschaltzeit Schalter";
const char STR2510[] PROGMEM = "Schnellabschaltung Temp'grad";
const char STR2511[] PROGMEM = "Schnellabschalt Überw'zeit";
const char STR2512[] PROGMEM = "Schnellabschalt Überw' RT";
const char STR2521[] PROGMEM = "Frostschutz Einschalttemp";
const char STR2522[] PROGMEM = "Frostschutz Ausschalttemp";
const char STR2527[] PROGMEM = "Kesseltemp Leistungsredukt";
const char STR2528[] PROGMEM = "Schaltdiff Leistungsredukt";
const char STR2531[] PROGMEM = "Auslösetemperatur Wächter";
const char STR2540[] PROGMEM = "Proportionalbeiwert Kp TWW";
const char STR2543[] PROGMEM = "Proportionalbeiwert Kp HK's";
const char STR2550[] PROGMEM = "Gasenergiezählung";
const char STR2551[] PROGMEM = "Gasenergiezähl Korrektur";
const char STR2630[] PROGMEM = "Auto Entlüftungsfunktion";
const char STR2655[] PROGMEM = "Ein'dauer Entlüftung";
const char STR2656[] PROGMEM = "Aus'dauer Entlüftung";
const char STR2657[] PROGMEM = "Anzahl Wiederholungen";
const char STR2662[] PROGMEM = "Entlüft'dauer Heizkreis";
const char STR2663[] PROGMEM = "Entlüft'dauer Trinkwasser";
const char STR2670[] PROGMEM = "Parameter";
//Sitherm Pro
const char STR2700[] PROGMEM = "Ergebnis letzter Drifttest";
const char STR2700_2[] PROGMEM = "Ion'strom gefiltert";
const char STR2702[] PROGMEM = "Auslösen neuer Drifttest";
const char STR2702_2[] PROGMEM = "Position Schrittmotor";
const char STR2703[] PROGMEM = "Reset Drifttest";
const char STR2703_2[] PROGMEM = "Lernwert Gasqualität";
const char STR2704[] PROGMEM = "Untergrenze Drifttest Störung";
const char STR2705[] PROGMEM = "Obergrenze Drifttest Störung";
const char STR2705_2[] PROGMEM = "R-Wert";
const char STR2706[] PROGMEM = "Betriebsphase";
const char STR2720[] PROGMEM = "Freigabe Einstellung Gasart";
const char STR2721[] PROGMEM = "Gasart";
const char STR2727[] PROGMEM = "Zünd und Überwach'bereich";
const char STR2730[] PROGMEM = "Ionisationsstrom";
const char STR2731[] PROGMEM = "Position Schrittmotor";
const char STR2732[] PROGMEM = "Lernwert Gasqualität";
const char STR2741[] PROGMEM = "ADA Punkt Nr";
const char STR2742[] PROGMEM = "ADA Filterwert";
const char STR2743[] PROGMEM = "ADA Korrektur";