2 * Copyright (c) 2010-2023 Contributors to the openHAB project
4 * See the NOTICE file(s) distributed with this work for additional
7 * This program and the accompanying materials are made available under the
8 * terms of the Eclipse Public License 2.0 which is available at
9 * http://www.eclipse.org/legal/epl-2.0
11 * SPDX-License-Identifier: EPL-2.0
13 package org.openhab.binding.luxtronikheatpump.internal.enums;
15 import javax.measure.Unit;
17 import org.eclipse.jdt.annotation.NonNullByDefault;
18 import org.eclipse.jdt.annotation.Nullable;
19 import org.openhab.binding.luxtronikheatpump.internal.exceptions.InvalidChannelException;
20 import org.openhab.core.items.Item;
21 import org.openhab.core.library.items.DateTimeItem;
22 import org.openhab.core.library.items.NumberItem;
23 import org.openhab.core.library.items.StringItem;
24 import org.openhab.core.library.items.SwitchItem;
25 import org.openhab.core.library.unit.SIUnits;
26 import org.openhab.core.library.unit.Units;
29 * Represents all valid channels which could be processed by this binding
31 * @author Stefan Giehl - Initial contribution
34 public enum HeatpumpChannel {
36 // The constant names are currently based on the variable names used in the heat pumps internal JAVA applet
37 // for possible values see https://www.loxwiki.eu/display/LOX/Java+Webinterface
38 // or https://github.com/Bouni/Home-Assistant-Luxtronik/blob/master/data.txt
41 * Flow temperature heating circuit
42 * (original: Vorlauftemperatur Heizkreis)
44 CHANNEL_TEMPERATUR_TVL(10, "temperatureHeatingCircuitFlow", NumberItem.class, SIUnits.CELSIUS, false,
45 HeatpumpVisibility.TEMP_VORLAUF),
48 * Return temperature heating circuit
49 * (original: Rücklauftemperatur Heizkreis)
51 CHANNEL_TEMPERATUR_TRL(11, "temperatureHeatingCircuitReturn", NumberItem.class, SIUnits.CELSIUS, false,
52 HeatpumpVisibility.TEMP_RUCKLAUF),
55 * Return set point heating circuit
56 * (original: Rücklauf-Soll Heizkreis)
58 CHANNEL_SOLLWERT_TRL_HZ(12, "temperatureHeatingCircuitReturnTarget", NumberItem.class, SIUnits.CELSIUS, false,
59 HeatpumpVisibility.TEMP_RL_SOLL),
62 * Return temperature in buffer tank
63 * (original: Rücklauftemperatur im Trennspeicher)
65 CHANNEL_TEMPERATUR_TRL_EXT(13, "temperatureBufferTankReturn", NumberItem.class, SIUnits.CELSIUS, false,
66 HeatpumpVisibility.TEMP_RUECKLEXT),
70 * (original: Heißgastemperatur)
72 CHANNEL_TEMPERATUR_THG(14, "temperatureHotGas", NumberItem.class, SIUnits.CELSIUS, false,
73 HeatpumpVisibility.TEMP_HEISSGAS),
77 * (original: Außentemperatur)
79 CHANNEL_TEMPERATUR_TA(15, "temperatureOutside", NumberItem.class, SIUnits.CELSIUS, false,
80 HeatpumpVisibility.TEMP_AUSSENT),
83 * Average temperature outside over 24 h (heating limit function)
84 * (original: Durchschnittstemperatur Außen über 24 h (Funktion Heizgrenze))
86 CHANNEL_MITTELTEMPERATUR(16, "temperatureOutsideMean", NumberItem.class, SIUnits.CELSIUS, false,
87 HeatpumpVisibility.TEMP_AUSSENT),
90 * Hot water actual temperature
91 * (original: Warmwasser Ist-Temperatur)
93 CHANNEL_TEMPERATUR_TBW(17, "temperatureHotWater", NumberItem.class, SIUnits.CELSIUS, false,
94 HeatpumpVisibility.TEMP_BW_IST),
97 * Hot water target temperature
98 * (original: Warmwasser Soll-Temperatur)
100 // Not needed as it duplicates writable param (2)
101 // CHANNEL_EINST_BWS_AKT(18, "temperatureHotWaterTarget", NumberItem.class, SIUnits.CELSIUS, false, null),
104 * Heat source inlet temperature
105 * (original: Wärmequellen-Eintrittstemperatur)
107 CHANNEL_TEMPERATUR_TWE(19, "temperatureHeatSourceInlet", NumberItem.class, SIUnits.CELSIUS, false,
108 HeatpumpVisibility.TEMP_WQ_EIN),
111 * Heat source outlet temperature
112 * (original: Wärmequellen-Austrittstemperatur)
114 CHANNEL_TEMPERATUR_TWA(20, "temperatureHeatSourceOutlet", NumberItem.class, SIUnits.CELSIUS, false,
115 HeatpumpVisibility.TEMP_WQ_EIN),
118 * Mixing circuit 1 Flow temperature
119 * (original: Mischkreis 1 Vorlauftemperatur)
121 CHANNEL_TEMPERATUR_TFB1(21, "temperatureMixingCircuit1Flow", NumberItem.class, SIUnits.CELSIUS, false,
122 HeatpumpVisibility.TEMP_MK1_VORLAUF),
125 * Mixing circuit 1 Flow target temperature
126 * (original: Mischkreis 1 Vorlauf-Soll-Temperatur)
128 CHANNEL_SOLLWERT_TVL_MK1(22, "temperatureMixingCircuit1FlowTarget", NumberItem.class, SIUnits.CELSIUS, false,
129 HeatpumpVisibility.TEMP_MK1VL_SOLL),
132 * Room temperature room station 1
133 * (original: Raumtemperatur Raumstation 1)
135 CHANNEL_TEMPERATUR_RFV(23, "temperatureRoomStation", NumberItem.class, SIUnits.CELSIUS, false,
136 HeatpumpVisibility.TEMP_RAUMSTATION),
139 * Mixing circuit 2 Flow temperature
140 * (original: Mischkreis 2 Vorlauftemperatur)
142 CHANNEL_TEMPERATUR_TFB2(24, "temperatureMixingCircuit2Flow", NumberItem.class, SIUnits.CELSIUS, false,
143 HeatpumpVisibility.TEMP_MK2_VORLAUF),
146 * Mixing circuit 2 Flow target temperature
147 * (original: Mischkreis 2 Vorlauf-Soll-Temperatur)
149 CHANNEL_SOLLWERT_TVL_MK2(25, "temperatureMixingCircuit2FlowTarget", NumberItem.class, SIUnits.CELSIUS, false,
150 HeatpumpVisibility.TEMP_MK2VL_SOLL),
153 * Solar collector sensor
154 * (original: Fühler Solarkollektor)
156 CHANNEL_TEMPERATUR_TSK(26, "temperatureSolarCollector", NumberItem.class, SIUnits.CELSIUS, false,
157 HeatpumpVisibility.TEMP_SOLARKOLL),
161 * (original: Fühler Solarspeicher)
163 CHANNEL_TEMPERATUR_TSS(27, "temperatureSolarTank", NumberItem.class, SIUnits.CELSIUS, false,
164 HeatpumpVisibility.TEMP_SOLARSP),
167 * Sensor external energy source
168 * (original: Fühler externe Energiequelle)
170 CHANNEL_TEMPERATUR_TEE(28, "temperatureExternalEnergySource", NumberItem.class, SIUnits.CELSIUS, false,
171 HeatpumpVisibility.TEMP_EXT_ENERG),
174 * Input "Defrost end, brine pressure, flow rate"
175 * (original: Eingang "Abtauende, Soledruck, Durchfluss")
177 CHANNEL_ASDIN(29, "inputASD", SwitchItem.class, null, false, HeatpumpVisibility.IN_ASD),
180 * Input "Domestic hot water thermostat"
181 * (original: Eingang "Brauchwarmwasserthermostat")
183 CHANNEL_BWTIN(30, "inputHotWaterThermostat", SwitchItem.class, null, false, HeatpumpVisibility.IN_BWT),
187 * (original: Eingang "EVU Sperre")
189 CHANNEL_EVUIN(31, "inputUtilityLock", SwitchItem.class, null, false, HeatpumpVisibility.IN_EVU),
192 * Input "High pressure cooling circuit"
193 * (original: Eingang "Hochdruck Kältekreis")
195 CHANNEL_HDIN(32, "inputHighPressureCoolingCircuit", SwitchItem.class, null, false, HeatpumpVisibility.IN_HD),
198 * Input "Motor protection OK"
199 * (original: Eingang "Motorschutz OK")
201 CHANNEL_MOTIN(33, "inputMotorProtectionOK", SwitchItem.class, null, false, HeatpumpVisibility.IN_MOT),
204 * Input "Low pressure"
205 * (original: Eingang "Niederdruck")
207 CHANNEL_NDIN(34, "inputLowPressure", SwitchItem.class, null, false, HeatpumpVisibility.IN_ND),
210 * Input "Monitoring contact for potentiostat"
211 * (original: Eingang "Überwachungskontakt für Potentiostat")
213 CHANNEL_PEXIN(35, "inputPEX", SwitchItem.class, null, false, HeatpumpVisibility.IN_PEX),
216 * Input "Swimming pool thermostat"
217 * (original: Eingang "Schwimmbadthermostat")
219 CHANNEL_SWTIN(36, "inputSwimmingPoolThermostat", SwitchItem.class, null, false, HeatpumpVisibility.IN_SWT),
222 * Output "Defrost valve"
223 * (original: Ausgang "Abtauventil")
225 CHANNEL_AVOUT(37, "outputDefrostValve", SwitchItem.class, null, false, HeatpumpVisibility.OUT_ABTAUVENTIL),
228 * Output "Domestic hot water pump/changeover valve"
229 * (original: Ausgang "Brauchwasserpumpe/Umstellventil")
231 CHANNEL_BUPOUT(38, "outputBUP", SwitchItem.class, null, false, HeatpumpVisibility.OUT_BUP),
234 * Output "Heating circulation pump"
235 * (original: Ausgang "Heizungsumwälzpumpe")
237 CHANNEL_HUPOUT(39, "outputHeatingCirculationPump", SwitchItem.class, null, false, HeatpumpVisibility.OUT_HUP),
240 * Output "Mixing circuit 1 Open"
241 * (original: Ausgang "Mischkreis 1 Auf")
243 CHANNEL_MA1OUT(40, "outputMixingCircuit1Open", SwitchItem.class, null, false, HeatpumpVisibility.OUT_MISCHER1AUF),
246 * Output "Mixing circuit 1 Closed"
247 * (original: Ausgang "Mischkreis 1 Zu")
249 CHANNEL_MZ1OUT(41, "outputMixingCircuit1Closed", SwitchItem.class, null, false, HeatpumpVisibility.OUT_MISCHER1ZU),
252 * Output "Ventilation"
253 * (original: Ausgang "Ventilation (Lüftung)")
255 CHANNEL_VENOUT(42, "outputVentilation", SwitchItem.class, null, false, HeatpumpVisibility.OUT_VENTILATION),
258 * Output "Brine pump/fan"
259 * (original: Ausgang "Solepumpe/Ventilator")
261 CHANNEL_VBOOUT(43, "outputVBO", SwitchItem.class, null, false, null),
264 * Output "Compressor 1"
265 * (original: Ausgang "Verdichter 1")
267 CHANNEL_VD1OUT(44, "outputCompressor1", SwitchItem.class, null, false, HeatpumpVisibility.OUT_VERDICHTER1),
270 * Output "Compressor 2"
271 * (original: Ausgang "Verdichter 2")
273 CHANNEL_VD2OUT(45, "outputCompressor2", SwitchItem.class, null, false, HeatpumpVisibility.OUT_VERDICHTER2),
276 * Output "Circulation pump"
277 * (original: Ausgang "Zirkulationspumpe")
279 CHANNEL_ZIPOUT(46, "outputCirculationPump", SwitchItem.class, null, false, HeatpumpVisibility.OUT_ZIP),
282 * Output "Auxiliary circulation pump"
283 * (original: Ausgang "Zusatzumwälzpumpe")
285 CHANNEL_ZUPOUT(47, "outputZUP", SwitchItem.class, null, false, HeatpumpVisibility.OUT_ZUP),
288 * Output "Control signal additional heating"
289 * (original: Ausgang "Steuersignal Zusatzheizung v. Heizung")
291 CHANNEL_ZW1OUT(48, "outputControlSignalAdditionalHeating", SwitchItem.class, null, false,
292 HeatpumpVisibility.OUT_ZWE1),
295 * Output "Control signal additional heating/fault signal"
296 * (original: Ausgang "Steuersignal Zusatzheizung/Störsignal")
298 CHANNEL_ZW2SSTOUT(49, "outputFaultSignalAdditionalHeating", SwitchItem.class, null, false,
299 HeatpumpVisibility.OUT_ZWE2_SST),
302 * Output "Auxiliary heater 3"
303 * (original: Ausgang "Zusatzheizung 3")
305 CHANNEL_ZW3SSTOUT(50, "outputAuxiliaryHeater3", SwitchItem.class, null, false, HeatpumpVisibility.OUT_ZWE3),
308 * Output "Pump mixing circuit 2"
309 * (original: Ausgang "Pumpe Mischkreis 2")
311 CHANNEL_FP2OUT(51, "outputMixingCircuitPump2", SwitchItem.class, null, false, HeatpumpVisibility.OUT_FUP2),
314 * Output "Solar charge pump"
315 * (original: Ausgang "Solarladepumpe")
317 CHANNEL_SLPOUT(52, "outputSolarChargePump", SwitchItem.class, null, false, HeatpumpVisibility.OUT_SLP),
320 * Output "Swimming pool pump"
321 * (original: Ausgang "Schwimmbadpumpe")
323 CHANNEL_OUTPUT_SUP(53, "outputSwimmingPoolPump", SwitchItem.class, null, false, HeatpumpVisibility.OUT_SUP),
326 * Output "Mixing circuit 2 Closed"
327 * (original: Ausgang "Mischkreis 2 Zu")
329 CHANNEL_MZ2OUT(54, "outputMixingCircuit2Closed", SwitchItem.class, null, false, HeatpumpVisibility.OUT_MISCHER2ZU),
332 * Output "Mixing circuit 2 Open"
333 * (original: Ausgang "Mischkreis 2 Auf")
335 CHANNEL_MA2OUT(55, "outputMixingCircuit2Open", SwitchItem.class, null, false, HeatpumpVisibility.OUT_MISCHER2AUF),
338 * Operating hours compressor 1
339 * (original: Betriebsstunden Verdichter 1)
341 CHANNEL_ZAEHLER_BETRZEITVD1(56, "runtimeTotalCompressor1", NumberItem.class, Units.SECOND, false,
342 HeatpumpVisibility.BST_BSTDVD1),
345 * Pulses compressor 1
346 * (original: Impulse Verdichter 1)
348 CHANNEL_ZAEHLER_BETRZEITIMPVD1(57, "pulsesCompressor1", NumberItem.class, null, false,
349 HeatpumpVisibility.BST_IMPVD1),
352 * Operating hours compressor 2
353 * (original: Betriebsstunden Verdichter 2)
355 CHANNEL_ZAEHLER_BETRZEITVD2(58, "runtimeTotalCompressor2", NumberItem.class, Units.SECOND, false,
356 HeatpumpVisibility.BST_BSTDVD2),
359 * Pulses compressor 2
360 * (original: Impulse Verdichter 2)
362 CHANNEL_ZAEHLER_BETRZEITIMPVD2(59, "pulsesCompressor2", NumberItem.class, null, false,
363 HeatpumpVisibility.BST_IMPVD2),
366 * Operating hours Second heat generator 1
367 * (original: Betriebsstunden Zweiter Wärmeerzeuger 1)
369 CHANNEL_ZAEHLER_BETRZEITZWE1(60, "runtimeTotalSecondHeatGenerator1", NumberItem.class, Units.SECOND, false,
370 HeatpumpVisibility.BST_BSTDZWE1),
373 * Operating hours Second heat generator 2
374 * (original: Betriebsstunden Zweiter Wärmeerzeuger 2)
376 CHANNEL_ZAEHLER_BETRZEITZWE2(61, "runtimeTotalSecondHeatGenerator2", NumberItem.class, Units.SECOND, false,
377 HeatpumpVisibility.BST_BSTDZWE2),
380 * Operating hours Second heat generator 3
381 * (original: Betriebsstunden Zweiter Wärmeerzeuger 3)
383 CHANNEL_ZAEHLER_BETRZEITZWE3(62, "runtimeTotalSecondHeatGenerator3", NumberItem.class, Units.SECOND, false,
384 HeatpumpVisibility.BST_BSTDZWE3),
387 * Operating hours heat pump
388 * (original: Betriebsstunden Wärmepumpe)
390 CHANNEL_ZAEHLER_BETRZEITWP(63, "runtimeTotalHeatPump", NumberItem.class, Units.SECOND, false,
391 HeatpumpVisibility.BST_BSTDWP),
394 * Operating hours heating
395 * (original: Betriebsstunden Heizung)
397 CHANNEL_ZAEHLER_BETRZEITHZ(64, "runtimeTotalHeating", NumberItem.class, Units.SECOND, false,
398 HeatpumpVisibility.BST_BSTDHZ),
401 * Operating hours hot water
402 * (original: Betriebsstunden Warmwasser)
404 CHANNEL_ZAEHLER_BETRZEITBW(65, "runtimeTotalHotWater", NumberItem.class, Units.SECOND, false,
405 HeatpumpVisibility.BST_BSTDBW),
408 * Operating hours cooling
409 * (original: Betriebsstunden Kühlung)
411 CHANNEL_ZAEHLER_BETRZEITKUE(66, "runtimeTotalCooling", NumberItem.class, Units.SECOND, false,
412 HeatpumpVisibility.BST_BSTDKUE),
415 * Heat pump running since
416 * (original: Wärmepumpe läuft seit)
418 CHANNEL_TIME_WPEIN_AKT(67, "runtimeCurrentHeatPump", NumberItem.class, Units.SECOND, false,
419 HeatpumpVisibility.ABLAUFZ_WP_SEIT),
422 * Second heat generator 1 running since
423 * (original: Zweiter Wärmeerzeuger 1 läuft seit)
425 CHANNEL_TIME_ZWE1_AKT(68, "runtimeCurrentSecondHeatGenerator1", NumberItem.class, Units.SECOND, false,
426 HeatpumpVisibility.ABLAUFZ_ZWE1_SEIT),
429 * Second heat generator 2 running since
430 * (original: Zweiter Wärmeerzeuger 2 läuft seit)
432 CHANNEL_TIME_ZWE2_AKT(69, "runtimeCurrentSecondHeatGenerator2", NumberItem.class, Units.SECOND, false,
433 HeatpumpVisibility.ABLAUFZ_ZWE2_SEIT),
437 * (original: Netzeinschaltverzögerung)
439 CHANNEL_TIMER_EINSCHVERZ(70, "mainsOnDelay", NumberItem.class, Units.SECOND, false,
440 HeatpumpVisibility.ABLAUFZ_NETZEINV),
443 * Switching cycle lock off
444 * (original: Schaltspielsperre Aus)
446 CHANNEL_TIME_SSPAUS_AKT(71, "switchingCycleLockOff", NumberItem.class, Units.SECOND, false,
447 HeatpumpVisibility.ABLAUFZ_SSP_ZEIT1),
450 * Switching cycle lock on
451 * (original: Schaltspielsperre Ein)
453 CHANNEL_TIME_SSPEIN_AKT(72, "switchingCycleLockOn", NumberItem.class, Units.SECOND, false,
454 HeatpumpVisibility.ABLAUFZ_SSP_ZEIT1),
457 * Compressor Idle time
458 * (original: Verdichter-Standzeit)
460 CHANNEL_TIME_VDSTD_AKT(73, "compressorIdleTime", NumberItem.class, Units.SECOND, false,
461 HeatpumpVisibility.ABLAUFZ_VD_STAND),
464 * Heating controller More time
465 * (original: Heizungsregler Mehr-Zeit)
467 CHANNEL_TIME_HRM_AKT(74, "heatingControllerMoreTime", NumberItem.class, Units.SECOND, false,
468 HeatpumpVisibility.ABLAUFZ_HRM_ZEIT),
471 * Heating controller Less time
472 * (original: Heizungsregler Weniger-Zeit)
474 CHANNEL_TIME_HRW_AKT(75, "heatingControllerLessTime", NumberItem.class, Units.SECOND, false,
475 HeatpumpVisibility.ABLAUFZ_HRW_ZEIT),
478 * Thermal disinfection running since
479 * (original: Thermische Desinfektion läuft seit)
481 CHANNEL_TIME_LGS_AKT(76, "runtimeCurrentThermalDisinfection", NumberItem.class, Units.SECOND, false,
482 HeatpumpVisibility.ABLAUFZ_TDI_SEIT),
486 * (original: Sperre Warmwasser)
488 CHANNEL_TIME_SBW_AKT(77, "timeHotWaterLock", NumberItem.class, Units.SECOND, false,
489 HeatpumpVisibility.ABLAUFZ_SPERRE_BW),
491 // Channel 78 (Code_WP_akt_2) represents the heatpump type, will be handeled as property
495 * (original: Bivalenzstufe)
497 CHANNEL_BIV_STUFE_AKT(79, "bivalenceStage", NumberItem.class, null, false, null),
501 * (original: Betriebszustand)
503 CHANNEL_WP_BZ_AKT(80, "operatingStatus", NumberItem.class, null, false, null),
505 // channel 81 - 90 represents the firmware version, will be handeled as property
506 // channel 91 represents the IP address, will be handeled as property
507 // channel 92 represents the Subnet mask, will be handeled as property
508 // channel 93 represents the Broadcast address, will be handeled as property
509 // channel 94 represents the Gateway, will be handeled as property
512 * Timestamp error X in memory
513 * (original: Zeitstempel Fehler X im Speicher)
515 CHANNEL_HEATPUMP_ERROR_TIME0(95, "errorTime0", DateTimeItem.class, Units.SECOND, false, null),
516 CHANNEL_HEATPUMP_ERROR_TIME1(96, "errorTime1", DateTimeItem.class, Units.SECOND, false, null),
517 CHANNEL_HEATPUMP_ERROR_TIME2(97, "errorTime2", DateTimeItem.class, Units.SECOND, false, null),
518 CHANNEL_HEATPUMP_ERROR_TIME3(98, "errorTime3", DateTimeItem.class, Units.SECOND, false, null),
519 CHANNEL_HEATPUMP_ERROR_TIME4(99, "errorTime4", DateTimeItem.class, Units.SECOND, false, null),
522 * Error code Error X in memory
523 * (original: Fehlercode Fehler X im Speicher)
525 CHANNEL_HEATPUMP_ERROR_NR0(100, "errorCode0", NumberItem.class, null, false, null),
526 CHANNEL_HEATPUMP_ERROR_NR1(101, "errorCode1", NumberItem.class, null, false, null),
527 CHANNEL_HEATPUMP_ERROR_NR2(102, "errorCode2", NumberItem.class, null, false, null),
528 CHANNEL_HEATPUMP_ERROR_NR3(103, "errorCode3", NumberItem.class, null, false, null),
529 CHANNEL_HEATPUMP_ERROR_NR4(104, "errorCode4", NumberItem.class, null, false, null),
532 * Number of errors in memory
533 * (original: Anzahl der Fehler im Speicher)
535 CHANNEL_ANZAHLFEHLERINSPEICHER(105, "errorCountInMemory", NumberItem.class, null, false, null),
538 * Reason shutdown X in memory
539 * (original: Grund Abschaltung X im Speicher)
541 CHANNEL_HEATPUMP_SWITCHOFF_FILE_NR0(106, "shutdownReason0", NumberItem.class, null, false, null),
542 CHANNEL_HEATPUMP_SWITCHOFF_FILE_NR1(107, "shutdownReason1", NumberItem.class, null, false, null),
543 CHANNEL_HEATPUMP_SWITCHOFF_FILE_NR2(108, "shutdownReason2", NumberItem.class, null, false, null),
544 CHANNEL_HEATPUMP_SWITCHOFF_FILE_NR3(109, "shutdownReason3", NumberItem.class, null, false, null),
545 CHANNEL_HEATPUMP_SWITCHOFF_FILE_NR4(110, "shutdownReason4", NumberItem.class, null, false, null),
548 * Timestamp shutdown X in memory
549 * (original: Zeitstempel Abschaltung X im Speicher)
551 CHANNEL_HEATPUMP_SWITCHOFF_FILE_TIME0(111, "shutdownTime0", DateTimeItem.class, Units.SECOND, false, null),
552 CHANNEL_HEATPUMP_SWITCHOFF_FILE_TIME1(112, "shutdownTime1", DateTimeItem.class, Units.SECOND, false, null),
553 CHANNEL_HEATPUMP_SWITCHOFF_FILE_TIME2(113, "shutdownTime2", DateTimeItem.class, Units.SECOND, false, null),
554 CHANNEL_HEATPUMP_SWITCHOFF_FILE_TIME3(114, "shutdownTime3", DateTimeItem.class, Units.SECOND, false, null),
555 CHANNEL_HEATPUMP_SWITCHOFF_FILE_TIME4(115, "shutdownTime4", DateTimeItem.class, Units.SECOND, false, null),
558 * Comfort board installed
559 * (original: Comfort Platine installiert)
561 CHANNEL_HEATPUMP_COMFORT_EXISTS(116, "comfortBoardInstalled", SwitchItem.class, null, false, null),
567 CHANNEL_HEATPUMP_HAUPTMENUSTATUS_ZEILE1(117, "menuStateLine1", NumberItem.class, null, false, null),
568 CHANNEL_HEATPUMP_HAUPTMENUSTATUS_ZEILE2(118, "menuStateLine2", NumberItem.class, null, false, null),
569 CHANNEL_HEATPUMP_HAUPTMENUSTATUS_ZEILE3(119, "menuStateLine3", NumberItem.class, null, false, null),
570 CHANNEL_HEATPUMP_HAUPTMENUSTATUS_ZEIT(120, "menuStateTime", NumberItem.class, Units.SECOND, false, null),
573 * Stage bakeout program
574 * (original: Stufe Ausheizprogramm)
576 CHANNEL_HAUPTMENUAHP_STUFE(121, "bakeoutProgramStage", NumberItem.class, null, false,
577 HeatpumpVisibility.SERVICE_AUSHEIZ),
580 * Temperature bakeout program
581 * (original: Temperatur Ausheizprogramm)
583 CHANNEL_HAUPTMENUAHP_TEMP(122, "bakeoutProgramTemperature", NumberItem.class, SIUnits.CELSIUS, false,
584 HeatpumpVisibility.SERVICE_AUSHEIZ),
587 * Runtime bakeout program
588 * (original: Laufzeit Ausheizprogramm)
590 CHANNEL_HAUPTMENUAHP_ZEIT(123, "bakeoutProgramTime", NumberItem.class, Units.SECOND, false,
591 HeatpumpVisibility.SERVICE_AUSHEIZ),
594 * DHW active/inactive icon
595 * (original: Brauchwasser aktiv/inaktiv Symbol)
597 CHANNEL_SH_BWW(124, "iconHotWater", SwitchItem.class, null, false, HeatpumpVisibility.BRAUWASSER),
601 * (original: Heizung Symbol)
603 CHANNEL_SH_HZ(125, "iconHeater", NumberItem.class, null, false, HeatpumpVisibility.HEIZUNG),
606 * Mixing circuit 1 icon
607 * (original: Mischkreis 1 Symbol)
609 CHANNEL_SH_MK1(126, "iconMixingCircuit1", NumberItem.class, null, false, HeatpumpVisibility.MK1),
612 * Mixing circuit 2 icon
613 * (original: Mischkreis 2 Symbol)
615 CHANNEL_SH_MK2(127, "iconMixingCircuit2", NumberItem.class, null, false, HeatpumpVisibility.MK2),
618 * Short program setting
619 * (original: Einstellung Kurzprogramm)
621 CHANNEL_EINST_KURZPROGRAMM(128, "shortProgramSetting", NumberItem.class, null, false, null),
625 * (original: Status Slave X)
627 CHANNEL_STATUSSLAVE1(129, "statusSlave1", NumberItem.class, null, false, null),
628 CHANNEL_STATUSSLAVE2(130, "statusSlave2", NumberItem.class, null, false, null),
629 CHANNEL_STATUSSLAVE3(131, "statusSlave3", NumberItem.class, null, false, null),
630 CHANNEL_STATUSSLAVE4(132, "statusSlave4", NumberItem.class, null, false, null),
631 CHANNEL_STATUSSLAVE5(133, "statusSlave5", NumberItem.class, null, false, null),
634 * Current time of the heat pump
635 * (original: Aktuelle Zeit der Wärmepumpe)
637 CHANNEL_AKTUELLETIMESTAMP(134, "currentTimestamp", DateTimeItem.class, Units.SECOND, false,
638 HeatpumpVisibility.SERVICE_DATUMUHRZEIT),
641 * Mixing circuit 3 icon
642 * (original: Mischkreis 3 Symbol)
644 CHANNEL_SH_MK3(135, "iconMixingCircuit3", NumberItem.class, null, false, HeatpumpVisibility.MK3),
647 * Mixing circuit 3 Flow set temperature
648 * (original: Mischkreis 3 Vorlauf-Soll-Temperatur)
650 CHANNEL_SOLLWERT_TVL_MK3(136, "temperatureMixingCircuit3FlowTarget", NumberItem.class, SIUnits.CELSIUS, false,
651 HeatpumpVisibility.TEMP_MK3VL_SOLL),
654 * Mixing circuit 3 Flow temperature
655 * (original: Mischkreis 3 Vorlauftemperatur)
657 CHANNEL_TEMPERATUR_TFB3(137, "temperatureMixingCircuit3Flow", NumberItem.class, SIUnits.CELSIUS, false,
658 HeatpumpVisibility.TEMP_MK3_VORLAUF),
661 * Output "Mixing circuit 3 close"
662 * (original: Ausgang "Mischkreis 3 Zu")
664 CHANNEL_MZ3OUT(138, "outputMixingCircuit3Close", SwitchItem.class, null, false, HeatpumpVisibility.OUT_MISCHER3ZU),
667 * Output "Mixing circuit 3 open"
668 * (original: Ausgang "Mischkreis 3 Auf")
670 CHANNEL_MA3OUT(139, "outputMixingCircuit3Open", SwitchItem.class, null, false, HeatpumpVisibility.OUT_MISCHER3AUF),
673 * Pump mixing circuit 3
674 * (original: Pumpe Mischkreis 3)
676 CHANNEL_FP3OUT(140, "outputMixingCircuitPump3", SwitchItem.class, null, false, HeatpumpVisibility.OUT_FUP3),
680 * (original: Zeit bis Abtauen)
682 CHANNEL_TIME_ABTIN(141, "timeUntilDefrost", NumberItem.class, Units.SECOND, false,
683 HeatpumpVisibility.ABLAUFZ_ABTAUIN),
686 * Room temperature room station 2
687 * (original: Raumtemperatur Raumstation 2)
689 CHANNEL_TEMPERATUR_RFV2(142, "temperatureRoomStation2", NumberItem.class, SIUnits.CELSIUS, false,
690 HeatpumpVisibility.TEMP_RAUMSTATION2),
693 * Room temperature room station 3
694 * (original: Raumtemperatur Raumstation 3)
696 CHANNEL_TEMPERATUR_RFV3(143, "temperatureRoomStation3", NumberItem.class, SIUnits.CELSIUS, false,
697 HeatpumpVisibility.TEMP_RAUMSTATION3),
700 * Time switch swimming pool icon
701 * (original: Schaltuhr Schwimmbad Symbol)
703 CHANNEL_SH_SW(144, "iconTimeSwitchSwimmingPool", NumberItem.class, null, false, HeatpumpVisibility.SCHWIMMBAD),
706 * Swimming pool operating hours
707 * (original: Betriebsstunden Schwimmbad)
709 CHANNEL_ZAEHLER_BETRZEITSW(145, "runtimeTotalSwimmingPool", NumberItem.class, Units.SECOND, false,
710 HeatpumpVisibility.BST_BSTDSW),
714 * (original: Freigabe Kühlung)
716 CHANNEL_FREIGABKUEHL(146, "coolingRelease", SwitchItem.class, null, false, HeatpumpVisibility.KUHLUNG),
719 * Analog input signal
720 * (original: Analoges Eingangssignal)
722 CHANNEL_ANALOGIN(147, "inputAnalog", NumberItem.class, Units.VOLT, false, HeatpumpVisibility.IN_ANALOGIN),
724 // CHANNEL_SONDERZEICHEN(148, "SonderZeichen", NumberItem.class, null, false, null),
727 * Circulation pumps icon
728 * (original: Zirkulationspumpen Symbol)
730 CHANNEL_SH_ZIP(149, "iconCirculationPump", NumberItem.class, null, false, null),
732 // CHANNEL_WEBSRVPROGRAMMWERTEBEOBARTEN(150, "WebsrvProgrammWerteBeobarten", NumberItem.class, null, false, null),
736 * (original: Wärmemengenzähler Heizung)
738 CHANNEL_WMZ_HEIZUNG(151, "heatMeterHeating", NumberItem.class, Units.KILOWATT_HOUR, false,
739 HeatpumpVisibility.HEIZUNG),
742 * Heat meter domestic water
743 * (original: Wärmemengenzähler Brauchwasser)
745 CHANNEL_WMZ_BRAUCHWASSER(152, "heatMeterHotWater", NumberItem.class, Units.KILOWATT_HOUR, false,
746 HeatpumpVisibility.BRAUWASSER),
749 * Heat meter swimming pool
750 * (original: Wärmemengenzähler Schwimmbad)
752 CHANNEL_WMZ_SCHWIMMBAD(153, "heatMeterSwimmingPool", NumberItem.class, Units.KILOWATT_HOUR, false,
753 HeatpumpVisibility.SCHWIMMBAD),
756 * Total heat meter (since reset)
757 * (original: Wärmemengenzähler seit Reset)
759 CHANNEL_WMZ_SEIT(154, "heatMeterTotalSinceReset", NumberItem.class, Units.KILOWATT_HOUR, false, null),
762 * Heat meter flow rate
763 * (original: Wärmemengenzähler Durchfluss)
765 CHANNEL_WMZ_DURCHFLUSS(155, "heatMeterFlowRate", NumberItem.class, Units.LITRE_PER_MINUTE, false, null),
769 * (original: Analog Ausgang 1)
771 CHANNEL_ANALOGOUT1(156, "outputAnalog1", NumberItem.class, Units.VOLT, false, HeatpumpVisibility.OUT_ANALOG_1),
775 * (original: Analog Ausgang 2)
777 CHANNEL_ANALOGOUT2(157, "outputAnalog2", NumberItem.class, Units.VOLT, false, HeatpumpVisibility.OUT_ANALOG_2),
780 * Lock second compressor hot gas
781 * (original: Sperre zweiter Verdichter Heissgas)
783 CHANNEL_TIME_HEISSGAS(158, "timeLockSecondHotGasCompressor", NumberItem.class, Units.SECOND, false,
784 HeatpumpVisibility.ABLAUFZ_HG_SPERRE),
787 * Supply air temperature
788 * (original: Zulufttemperatur)
790 CHANNEL_TEMP_LUEFTUNG_ZULUFT(159, "temperatureSupplyAir", NumberItem.class, SIUnits.CELSIUS, false,
791 HeatpumpVisibility.TEMPERATUR_LUEFTUNG_ZULUFT),
794 * Exhaust air temperature
795 * (original: Ablufttemperatur)
797 CHANNEL_TEMP_LUEFTUNG_ABLUFT(160, "temperatureExhaustAir", NumberItem.class, SIUnits.CELSIUS, false,
798 HeatpumpVisibility.TEMPERATUR_LUEFTUNG_ABLUFT),
801 * Operating hours solar
802 * (original: Betriebstundenzähler Solar)
804 CHANNEL_ZAEHLER_BETRZEITSOLAR(161, "runtimeTotalSolar", NumberItem.class, Units.SECOND, false,
805 HeatpumpVisibility.SOLAR),
809 * (original: Analog Ausgang 3)
811 CHANNEL_ANALOGOUT3(162, "outputAnalog3", NumberItem.class, Units.VOLT, false, HeatpumpVisibility.OUT_ANALOG_3),
815 * (original: Analog Ausgang 4)
817 CHANNEL_ANALOGOUT4(163, "outputAnalog4", NumberItem.class, Units.VOLT, false, HeatpumpVisibility.OUT_ANALOG_4),
820 * Supply air fan (defrost function)
821 * (original: Zuluft Ventilator (Abtaufunktion))
823 CHANNEL_OUT_VZU(164, "outputSupplyAirFan", NumberItem.class, Units.VOLT, false, HeatpumpVisibility.OUT_VZU),
827 * (original: Abluft Ventilator)
829 CHANNEL_OUT_VAB(165, "outputExhaustFan", NumberItem.class, Units.VOLT, false, HeatpumpVisibility.OUT_VAB),
833 * (original: Ausgang VSK)
835 CHANNEL_OUT_VSK(166, "outputVSK", SwitchItem.class, null, false, HeatpumpVisibility.OUT_VSK),
839 * (original: Ausgang FRH)
841 CHANNEL_OUT_FRH(167, "outputFRH", SwitchItem.class, null, false, HeatpumpVisibility.OUT_FRH),
845 * (original: Analog Eingang 2)
847 CHANNEL_ANALOGIN2(168, "inputAnalog2", NumberItem.class, Units.VOLT, false, HeatpumpVisibility.IN_ANALOG_2),
851 * (original: Analog Eingang 3)
853 CHANNEL_ANALOGIN3(169, "inputAnalog3", NumberItem.class, Units.VOLT, false, HeatpumpVisibility.IN_ANALOG_3),
857 * (original: Eingang SAX)
859 CHANNEL_SAXIN(170, "inputSAX", SwitchItem.class, null, false, HeatpumpVisibility.IN_SAX),
863 * (original: Eingang SPL)
865 CHANNEL_SPLIN(171, "inputSPL", SwitchItem.class, null, false, HeatpumpVisibility.IN_SPL),
868 * Ventilation board installed
869 * (original: Lüftungsplatine verbaut)
871 CHANNEL_COMPACT_EXISTS(172, "ventilationBoardInstalled", SwitchItem.class, null, false, null),
874 * Flow rate heat source
875 * (original: Durchfluss Wärmequelle)
877 CHANNEL_DURCHFLUSS_WQ(173, "flowRateHeatSource", NumberItem.class, Units.LITRE_PER_MINUTE, false, null),
881 * (original: LIN BUS verbaut)
883 CHANNEL_LIN_EXISTS(174, "linBusInstalled", SwitchItem.class, null, false, null),
886 * Temperature suction evaporator
887 * (original: Temperatur Ansaug Verdampfer)
889 CHANNEL_LIN_ANSAUG_VERDAMPFER(175, "temperatureSuctionEvaporator", NumberItem.class, SIUnits.CELSIUS, false,
890 HeatpumpVisibility.LIN_ANSAUG_VERDAMPFER),
893 * Temperature suction compressor
894 * (original: Temperatur Ansaug Verdichter)
896 CHANNEL_LIN_ANSAUG_VERDICHTER(176, "temperatureSuctionCompressor", NumberItem.class, SIUnits.CELSIUS, false,
897 HeatpumpVisibility.LIN_ANSAUG_VERDICHTER),
900 * Temperature compressor heating
901 * (original: Temperatur Verdichter Heizung)
903 CHANNEL_LIN_VDH(177, "temperatureCompressorHeating", NumberItem.class, SIUnits.CELSIUS, false,
904 HeatpumpVisibility.LIN_VDH),
908 * (original: Überhitzung)
910 CHANNEL_LIN_UH(178, "temperatureOverheating", NumberItem.class, Units.KELVIN, false, HeatpumpVisibility.LIN_UH),
914 * (original: Überhitzung Soll)
916 CHANNEL_LIN_UH_SOLL(179, "temperatureOverheatingTarget", NumberItem.class, Units.KELVIN, false,
917 HeatpumpVisibility.LIN_UH),
921 * (original: Hochdruck)
923 CHANNEL_LIN_HD(180, "highPressure", NumberItem.class, Units.BAR, false, HeatpumpVisibility.LIN_DRUCK),
927 * (original: Niederdruck)
929 CHANNEL_LIN_ND(181, "lowPressure", NumberItem.class, Units.BAR, false, HeatpumpVisibility.LIN_DRUCK),
932 * Output compressor heating
933 * (original: Ausgang Verdichterheizung)
935 CHANNEL_LIN_VDH_OUT(182, "outputCompressorHeating", SwitchItem.class, null, false, null),
938 * Control signal circulating pump
939 * (original: Steuersignal Umwälzpumpe)
941 CHANNEL_HZIO_PWM(183, "controlSignalCirculatingPump", NumberItem.class, Units.PERCENT, false, null),
945 * (original: Ventilator Drehzahl)
947 CHANNEL_HZIO_VEN(184, "fanSpeed", NumberItem.class, null, false, null),
953 // CHANNEL_HZIO_EVU2(185, "HZIO_EVU2", NumberItem.class, null, false, null),
956 * Safety tempearture limiter floor heating
957 * (original: Sicherheits-Tempeartur-Begrenzer Fussbodenheizung)
959 CHANNEL_HZIO_STB(186, "temperatureSafetyLimitFloorHeating", SwitchItem.class, null, false, null),
963 * (original: Leistung Sollwert)
965 CHANNEL_SEC_QH_SOLL(187, "powerTargetValue", NumberItem.class, Units.KILOWATT_HOUR, false, null),
969 * (original: Leistung Istwert)
971 CHANNEL_SEC_QH_IST(188, "powerActualValue", NumberItem.class, Units.KILOWATT_HOUR, false, null),
974 * Temperature flow set point
975 * (original: Temperatur Vorlauf Soll)
977 CHANNEL_SEC_TVL_SOLL(189, "temperatureFlowTarget", NumberItem.class, SIUnits.CELSIUS, false, null),
980 * Software version SEC Board
981 * (original: Software Stand SEC Board)
983 // CHANNEL_SEC_SOFTWARE(190, "SEC_Software", NumberItem.class, null, false, null),
986 * SEC Board operating status
987 * (original: Betriebszustand SEC Board)
989 CHANNEL_SEC_BZ(191, "operatingStatusSECBoard", NumberItem.class, null, false, HeatpumpVisibility.SEC),
993 * (original: Vierwegeventil)
995 CHANNEL_SEC_VWV(192, "fourWayValve", NumberItem.class, null, false, HeatpumpVisibility.SEC),
999 * (original: Verdichterdrehzahl)
1001 CHANNEL_SEC_VD(193, "compressorSpeed", NumberItem.class, null, false, HeatpumpVisibility.SEC),
1004 * Compressor temperature EVI (Enhanced Vapour Injection)
1005 * (original: Verdichtertemperatur EVI)
1007 CHANNEL_SEC_VERDEVI(194, "temperatureCompressorEVI", NumberItem.class, SIUnits.CELSIUS, false,
1008 HeatpumpVisibility.SEC),
1011 * Intake temperature EVI
1012 * (original: Ansaugtemperatur EVI)
1014 CHANNEL_SEC_ANSEVI(195, "temperatureIntakeEVI", NumberItem.class, SIUnits.CELSIUS, false, HeatpumpVisibility.SEC),
1018 * (original: Überhitzung EVI)
1020 CHANNEL_SEC_UEH_EVI(196, "temperatureOverheatingEVI", NumberItem.class, Units.KELVIN, false,
1021 HeatpumpVisibility.SEC),
1024 * Overheating EVI target
1025 * (original: Überhitzung EVI Sollwert)
1027 CHANNEL_SEC_UEH_EVI_S(197, "temperatureOverheatingTargetEVI", NumberItem.class, Units.KELVIN, false,
1028 HeatpumpVisibility.SEC),
1031 * Condensation temperature
1032 * (original: Kondensationstemperatur)
1034 CHANNEL_SEC_KONDTEMP(198, "temperatureCondensation", NumberItem.class, SIUnits.CELSIUS, false,
1035 HeatpumpVisibility.SEC),
1038 * Liquid temperature EEV (electronic expansion valve)
1039 * (original: Flüssigtemperatur EEV (elektronisches Expansionsventil))
1041 CHANNEL_SEC_FLUSSIGEX(199, "temperatureLiquidEEV", NumberItem.class, SIUnits.CELSIUS, false,
1042 HeatpumpVisibility.SEC),
1046 * (original: Unterkühlung EEV)
1048 CHANNEL_SEC_UK_EEV(200, "temperatureHypothermiaEEV", NumberItem.class, SIUnits.CELSIUS, false,
1049 HeatpumpVisibility.SEC),
1053 * (original: Druck EVI)
1055 CHANNEL_SEC_EVI_DRUCK(201, "pressureEVI", NumberItem.class, Units.BAR, false, HeatpumpVisibility.SEC),
1059 * (original: Spannung Inverter)
1061 CHANNEL_SEC_U_INV(202, "voltageInverter", NumberItem.class, Units.VOLT, false, HeatpumpVisibility.SEC),
1064 * Hot gas temperature sensor 2
1065 * (original: Temperarturfühler Heissgas 2)
1067 CHANNEL_TEMPERATUR_THG_2(203, "temperatureHotGas2", NumberItem.class, SIUnits.CELSIUS, false, null),
1070 * Temperature sensor heat source inlet 2
1071 * (original: Temperaturfühler Wärmequelleneintritt 2)
1073 CHANNEL_TEMPERATUR_TWE_2(204, "temperatureHeatSourceInlet2", NumberItem.class, SIUnits.CELSIUS, false, null),
1076 * Intake temperature evaporator 2
1077 * (original: Ansaugtemperatur Verdampfer 2)
1079 CHANNEL_LIN_ANSAUG_VERDAMPFER_2(205, "temperatureIntakeEvaporator2", NumberItem.class, SIUnits.CELSIUS, false,
1083 * Intake temperature compressor 2
1084 * (original: Ansaugtemperatur Verdichter 2)
1086 CHANNEL_LIN_ANSAUG_VERDICHTER_2(206, "temperatureIntakeCompressor2", NumberItem.class, SIUnits.CELSIUS, false,
1090 * Temperature compressor 2 heating
1091 * (original: Temperatur Verdichter 2 Heizung)
1093 CHANNEL_LIN_VDH_2(207, "temperatureCompressor2Heating", NumberItem.class, SIUnits.CELSIUS, false, null),
1097 * (original: Überhitzung 2)
1099 CHANNEL_LIN_UH_2(208, "temperatureOverheating2", NumberItem.class, Units.KELVIN, false, HeatpumpVisibility.LIN_UH),
1102 * Overheating target 2
1103 * (original: Überhitzung Soll 2)
1105 CHANNEL_LIN_UH_SOLL_2(209, "temperatureOverheatingTarget2", NumberItem.class, Units.KELVIN, false,
1106 HeatpumpVisibility.LIN_UH),
1110 * (original: Hochdruck 2)
1112 CHANNEL_LIN_HD_2(210, "highPressure2", NumberItem.class, Units.BAR, false, HeatpumpVisibility.LIN_DRUCK),
1116 * (original: Niederdruck 2)
1118 CHANNEL_LIN_ND_2(211, "lowPressure2", NumberItem.class, Units.BAR, false, HeatpumpVisibility.LIN_DRUCK),
1121 * Input pressure switch high pressure 2
1122 * (original: Eingang Druckschalter Hochdruck 2)
1124 CHANNEL_HDIN_2(212, "inputSwitchHighPressure2", SwitchItem.class, null, false, HeatpumpVisibility.IN_HD),
1127 * Output defrost valve 2
1128 * (original: Ausgang Abtauventil 2)
1130 CHANNEL_AVOUT_2(213, "outputDefrostValve2", SwitchItem.class, null, false, HeatpumpVisibility.OUT_ABTAUVENTIL),
1133 * Output brine pump/fan 2
1134 * (original: Ausgang Solepumpe/Ventilator 2)
1136 CHANNEL_VBOOUT_2(214, "outputVBO2", SwitchItem.class, null, false, null),
1139 * Compressor output 1 / 2
1140 * (original: Ausgang Verdichter 1 / 2)
1142 CHANNEL_VD1OUT_2(215, "outputCompressor1_2", SwitchItem.class, null, false, null),
1145 * Compressor output heating 2
1146 * (original: Ausgang Verdichter Heizung 2)
1148 CHANNEL_LIN_VDH_OUT_2(216, "outputCompressorHeating2", SwitchItem.class, null, false, null),
1151 * Reason shutdown X in memory 2
1152 * (original: Grund Abschaltung X im Speicher 2)
1154 CHANNEL_SWITCHOFF2_FILE_NR0(217, "secondShutdownReason0", NumberItem.class, null, false, null),
1155 CHANNEL_SWITCHOFF2_FILE_NR1(218, "secondShutdownReason1", NumberItem.class, null, false, null),
1156 CHANNEL_SWITCHOFF2_FILE_NR2(219, "secondShutdownReason2", NumberItem.class, null, false, null),
1157 CHANNEL_SWITCHOFF2_FILE_NR3(220, "secondShutdownReason3", NumberItem.class, null, false, null),
1158 CHANNEL_SWITCHOFF2_FILE_NR4(221, "secondShutdownReason4", NumberItem.class, null, false, null),
1161 * Timestamp shutdown X in memory 2
1162 * (original: Zeitstempel Abschaltung X im Speicher 2)
1164 CHANNEL_SWITCHOFF2_FILE_TIME0(222, "secondShutdownTime0", DateTimeItem.class, Units.SECOND, false, null),
1165 CHANNEL_SWITCHOFF2_FILE_TIME1(223, "secondShutdownTime1", DateTimeItem.class, Units.SECOND, false, null),
1166 CHANNEL_SWITCHOFF2_FILE_TIME2(224, "secondShutdownTime2", DateTimeItem.class, Units.SECOND, false, null),
1167 CHANNEL_SWITCHOFF2_FILE_TIME3(225, "secondShutdownTime3", DateTimeItem.class, Units.SECOND, false, null),
1168 CHANNEL_SWITCHOFF2_FILE_TIME4(226, "secondShutdownTime4", DateTimeItem.class, Units.SECOND, false, null),
1171 * Room temperature actual value
1172 * (original: Raumtemperatur Istwert)
1174 CHANNEL_RBE_RT_IST(227, "temperatureRoom", NumberItem.class, SIUnits.CELSIUS, false, null),
1177 * Room temperature set point
1178 * (original: Raumtemperatur Sollwert)
1180 CHANNEL_RBE_RT_SOLL(228, "temperatureRoomTarget", NumberItem.class, SIUnits.CELSIUS, false, null),
1183 * Temperature domestic water top
1184 * (original: Temperatur Brauchwasser Oben)
1186 CHANNEL_TEMPERATUR_BW_OBEN(229, "temperatureHotWaterTop", NumberItem.class, SIUnits.CELSIUS, false, null),
1188 // DE: Channel 230 (Code_WP_akt_2) represent the heatpump type 2
1191 * Compressor frequency
1192 * (original: Verdichterfrequenz)
1194 CHANNEL_CODE_FREQ_VD(231, "frequencyCompressor", NumberItem.class, Units.HERTZ, false, null),
1196 // For Heatpumps with a software version > 3.X the socket serves up to 260 values
1197 // As those heatpumps do no longer serve a java applet, but use a web ui, that uses
1198 // a web socket connection instead it's not possible to look up the channels in the
1199 // code. The following channels are determined based on their values and which value
1200 // they match on a heat pump
1202 CHANNEL_232(232, "channel232", NumberItem.class, null, false, null),
1203 CHANNEL_233(233, "channel233", NumberItem.class, null, false, null),
1204 CHANNEL_234(234, "channel234", NumberItem.class, null, false, null),
1205 CHANNEL_235(235, "channel235", NumberItem.class, null, false, null),
1206 CHANNEL_236(236, "frequencyCompressorTarget", NumberItem.class, Units.HERTZ, false, null),
1207 CHANNEL_237(237, "channel237", NumberItem.class, null, false, null),
1208 CHANNEL_238(238, "channel238", NumberItem.class, null, false, null),
1209 CHANNEL_239(239, "channel239", NumberItem.class, null, false, null),
1210 CHANNEL_240(240, "channel240", NumberItem.class, null, false, null),
1211 CHANNEL_241(241, "channel241", NumberItem.class, null, false, null),
1212 CHANNEL_242(242, "channel242", NumberItem.class, null, false, null),
1213 CHANNEL_243(243, "channel243", NumberItem.class, null, false, null),
1214 CHANNEL_244(244, "channel244", NumberItem.class, null, false, null),
1215 CHANNEL_245(245, "channel245", NumberItem.class, null, false, null),
1216 CHANNEL_246(246, "channel246", NumberItem.class, null, false, null),
1217 CHANNEL_247(247, "channel247", NumberItem.class, null, false, null),
1218 CHANNEL_248(248, "channel248", NumberItem.class, null, false, null),
1219 CHANNEL_249(249, "channel249", NumberItem.class, null, false, null),
1220 CHANNEL_250(250, "channel250", NumberItem.class, null, false, null),
1221 CHANNEL_251(251, "channel251", NumberItem.class, null, false, null),
1222 CHANNEL_252(252, "channel252", NumberItem.class, null, false, null),
1223 CHANNEL_253(253, "channel253", NumberItem.class, null, false, null),
1224 CHANNEL_254(254, "flowRateHeatSource2", NumberItem.class, Units.LITRE_PER_MINUTE, false, null),
1225 CHANNEL_255(255, "channel255", NumberItem.class, null, false, null),
1226 CHANNEL_256(256, "channel256", NumberItem.class, null, false, null),
1227 CHANNEL_257(257, "heatingPowerActualValue", NumberItem.class, Units.WATT, false, null),
1228 CHANNEL_258(258, "channel258", NumberItem.class, null, false, null),
1229 CHANNEL_259(259, "channel259", NumberItem.class, null, false, null),
1230 CHANNEL_260(260, "channel260", NumberItem.class, null, false, null),
1232 // Changeable Parameters
1233 // https://www.loxwiki.eu/display/LOX/Java+Webinterface?preview=/13306044/13307658/3003.txt
1236 * Heating temperature (parallel shift)
1237 * (original: Heizung Temperatur (Parallelverschiebung))
1239 CHANNEL_EINST_WK_AKT(1, "temperatureHeatingParallelShift", NumberItem.class, SIUnits.CELSIUS, true,
1240 HeatpumpVisibility.HEIZUNG),
1243 * Coverage Heat pump (Hot Water)
1244 * (original: Deckung Wärmepumpe)
1246 CHANNEL_EINST_BWS_AKT(2, "temperatureHotWaterCoverage", NumberItem.class, SIUnits.CELSIUS, true,
1247 HeatpumpVisibility.BRAUWASSER),
1251 * (original: Heizung Betriebsart)
1253 CHANNEL_BA_HZ_AKT(3, "heatingMode", NumberItem.class, null, true, HeatpumpVisibility.HEIZUNG),
1256 * Hot water operating mode
1257 * (original: Warmwasser Betriebsart)
1259 CHANNEL_BA_BW_AKT(4, "hotWaterMode", NumberItem.class, null, true, HeatpumpVisibility.BRAUWASSER),
1262 * Thermal disinfection (Monday)
1263 * (original: Thermische Desinfektion (Montag))
1265 CHANNEL_EINST_BWTDI_AKT_MO(20, "thermalDisinfectionMonday", SwitchItem.class, null, true,
1266 HeatpumpVisibility.THERMDESINFEKT),
1268 * Thermal disinfection (Tuesday)
1269 * (original: Thermische Desinfektion (Dienstag))
1271 CHANNEL_EINST_BWTDI_AKT_DI(21, "thermalDisinfectionTuesday", SwitchItem.class, null, true,
1272 HeatpumpVisibility.THERMDESINFEKT),
1274 * Thermal disinfection (Wednesday)
1275 * (original: Thermische Desinfektion (Mittwoch))
1277 CHANNEL_EINST_BWTDI_AKT_MI(22, "thermalDisinfectionWednesday", SwitchItem.class, null, true,
1278 HeatpumpVisibility.THERMDESINFEKT),
1280 * Thermal disinfection (Thursday)
1281 * (original: Thermische Desinfektion (Donnerstag))
1283 CHANNEL_EINST_BWTDI_AKT_DO(23, "thermalDisinfectionThursday", SwitchItem.class, null, true,
1284 HeatpumpVisibility.THERMDESINFEKT),
1286 * Thermal disinfection (Friday)
1287 * (original: Thermische Desinfektion (Freitag))
1289 CHANNEL_EINST_BWTDI_AKT_FR(24, "thermalDisinfectionFriday", SwitchItem.class, null, true,
1290 HeatpumpVisibility.THERMDESINFEKT),
1292 * Thermal disinfection (Saturday)
1293 * (original: Thermische Desinfektion (Samstag))
1295 CHANNEL_EINST_BWTDI_AKT_SA(25, "thermalDisinfectionSaturday", SwitchItem.class, null, true,
1296 HeatpumpVisibility.THERMDESINFEKT),
1298 * Thermal disinfection (Sunday)
1299 * (original: Thermische Desinfektion (Sonntag))
1301 CHANNEL_EINST_BWTDI_AKT_SO(26, "thermalDisinfectionSunday", SwitchItem.class, null, true,
1302 HeatpumpVisibility.THERMDESINFEKT),
1304 * Thermal disinfection (Permanent)
1305 * (original: Thermische Desinfektion (Dauerbetrieb))
1307 CHANNEL_EINST_BWTDI_AKT_AL(27, "thermalDisinfectionPermanent", SwitchItem.class, null, true,
1308 HeatpumpVisibility.THERMDESINFEKT),
1311 * Hot water target temperature
1312 * (original: Warmwasser Soll Temperatur)
1314 CHANNEL_SOLL_BWS_AKT(105, "temperatureHotWaterTarget", NumberItem.class, SIUnits.CELSIUS, true,
1315 HeatpumpVisibility.BRAUWASSER),
1318 * Comfort cooling mode
1319 * (original: Comfort Kühlung Betriebsart)
1321 CHANNEL_EINST_BWSTYP_AKT(108, "comfortCoolingMode", NumberItem.class, null, true, HeatpumpVisibility.KUHLUNG),
1324 * Comfort cooling AT release
1325 * (original: Comfort Kühlung AT-Freigabe)
1327 CHANNEL_EINST_KUCFTL_AKT(110, "temperatureComfortCoolingATRelease", NumberItem.class, SIUnits.CELSIUS, true,
1328 HeatpumpVisibility.KUHLUNG),
1331 * Comfort cooling AT release target
1332 * (original: Comfort Kühlung AT-Freigabe Sollwert)
1334 CHANNEL_SOLLWERT_KUCFTL_AKT(132, "temperatureComfortCoolingATReleaseTarget", NumberItem.class, SIUnits.CELSIUS,
1335 true, HeatpumpVisibility.KUHLUNG),
1338 * Temperature heating limit
1339 * (original: Temperatur Heizgrenze)
1341 CHANNEL_EINST_HEIZGRENZE_TEMP(700, "temperatureHeatingLimit", NumberItem.class, SIUnits.CELSIUS, true,
1342 HeatpumpVisibility.HEIZUNG),
1346 * (original: AT-Überschreitung)
1348 CHANNEL_EINST_KUHL_ZEIT_EIN_AKT(850, "comfortCoolingATExcess", NumberItem.class, Units.HOUR, true,
1349 HeatpumpVisibility.KUHLUNG),
1353 * (original: AT-Unterschreitung)
1355 CHANNEL_EINST_KUHL_ZEIT_AUS_AKT(851, "comfortCoolingATUndercut", NumberItem.class, Units.HOUR, true,
1356 HeatpumpVisibility.KUHLUNG),
1359 * Channel holding complete (localized) status message
1361 CHANNEL_HEATPUMP_STATUS(null, "menuStateFull", StringItem.class, null, false, null);
1363 private @Nullable Integer channelId;
1364 private String command;
1365 private Class<? extends Item> itemClass;
1366 private @Nullable Unit<?> unit;
1367 private boolean isParameter;
1368 private @Nullable HeatpumpVisibility requiredVisibility;
1370 private HeatpumpChannel(@Nullable Integer channelId, String command, Class<? extends Item> itemClass,
1371 @Nullable Unit<?> unit, boolean isParameter, @Nullable HeatpumpVisibility requiredVisibility) {
1372 this.channelId = channelId;
1373 this.command = command;
1374 this.itemClass = itemClass;
1376 this.isParameter = isParameter;
1377 this.requiredVisibility = requiredVisibility;
1380 public @Nullable Integer getChannelId() {
1384 public String getCommand() {
1388 public Class<? extends Item> getItemClass() {
1392 public @Nullable Unit<?> getUnit() {
1396 public boolean isWritable() {
1397 return isParameter == Boolean.TRUE;
1400 protected @Nullable HeatpumpVisibility getVisibility() {
1401 return requiredVisibility;
1404 public boolean isVisible(Integer[] visibilityValues) {
1405 HeatpumpVisibility visiblity = getVisibility();
1407 if (visiblity == null) {
1411 int code = visiblity.getCode();
1413 return (visibilityValues.length < code || visibilityValues[code] == 1);
1416 public static HeatpumpChannel fromString(String heatpumpCommand) throws InvalidChannelException {
1417 for (HeatpumpChannel c : HeatpumpChannel.values()) {
1419 if (c.getCommand().equals(heatpumpCommand)) {
1424 throw new InvalidChannelException("cannot find LuxtronikHeatpump channel for '" + heatpumpCommand + "'");
1428 public String toString() {
1429 return getCommand();