[comfoair] Re-implement device options as channels (#8829)

Signed-off-by: Hans Böhm <h.boehm@gmx.at>
This commit is contained in:
boehan 2020-11-02 09:19:39 +01:00 committed by GitHub
parent 482436328e
commit 87c16da527
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 404 additions and 355 deletions

View File

@ -47,8 +47,6 @@ For the thing creation, the appropriate serial port has to be set.
## Channels ## Channels
The ComfoAir binding supports the following channels. The ComfoAir binding supports the following channels.
Some channels are added dynamically based on installed device options.
Available device options are shown in thing properties.
| Channel ID | Item Type | Label | Description | Read Only | Advanced | | Channel ID | Item Type | Label | Description | Read Only | Advanced |
|------------------------------------|--------------------------|---------------------------------|---------------------------------------------------------------------------------------------|-----------|----------| |------------------------------------|--------------------------|---------------------------------|---------------------------------------------------------------------------------------------|-----------|----------|
@ -78,10 +76,10 @@ Available device options are shown in thing properties.
| temperatures#isT2Sensor | Switch | Sensor T2 Available | Availability of temperature sensor T2 (indoor in) | true | yes | | temperatures#isT2Sensor | Switch | Sensor T2 Available | Availability of temperature sensor T2 (indoor in) | true | yes |
| temperatures#isT3Sensor | Switch | Sensor T3 Available | Availability of temperature sensor T3 (indoor out) | true | yes | | temperatures#isT3Sensor | Switch | Sensor T3 Available | Availability of temperature sensor T3 (indoor out) | true | yes |
| temperatures#isT4Sensor | Switch | Sensor T4 Available | Availability of temperature sensor T4 (outdoor out) | true | yes | | temperatures#isT4Sensor | Switch | Sensor T4 Available | Availability of temperature sensor T4 (outdoor out) | true | yes |
| temperatures#isEWTSensor | Switch | EWT Sensor Available | Availability of EWT temperature sensor | true | yes | | temperatures#isEWTSensor | Switch | GHX Sensor Available | Availability of geothermal heat exchanger temperature sensor | true | yes |
| temperatures#isHeaterSensor | Switch | Heater Sensor Available | Availability of heater temperature sensor | true | yes | | temperatures#isHeaterSensor | Switch | Heater Sensor Available | Availability of heater temperature sensor | true | yes |
| temperatures#isCookerhoodSensor | Switch | Cookerhood Sensor Available | Availability of cookerhood temperature sensor | true | yes | | temperatures#isCookerhoodSensor | Switch | Cookerhood Sensor Available | Availability of cookerhood temperature sensor | true | yes |
| temperatures#ewtTemperature | Number:Temperature | EWT Temperature | Temperature of geothermal heat exchanger sensor | true | yes | | temperatures#ewtTemperature | Number:Temperature | GHX Temperature | Temperature of geothermal heat exchanger sensor | true | yes |
| temperatures#heaterTemperature | Number:Temperature | Heater Temperature | Temperature of heater sensor | true | yes | | temperatures#heaterTemperature | Number:Temperature | Heater Temperature | Temperature of heater sensor | true | yes |
| temperatures#cookerhoodTemperature | Number:Temperature | Cookerhood Temperature | Temperature of cookerhood sensor | true | yes | | temperatures#cookerhoodTemperature | Number:Temperature | Cookerhood Temperature | Temperature of cookerhood sensor | true | yes |
| **Uptimes** | | | | | | | **Uptimes** | | | | | |
@ -114,46 +112,57 @@ Available device options are shown in thing properties.
| menuP2#RFLongDelay | Number | Menu P26 | End delay (RF long actuation) for ventilation level 3 (min) | false | yes | | menuP2#RFLongDelay | Number | Menu P26 | End delay (RF long actuation) for ventilation level 3 (min) | false | yes |
| menuP2#cookerhoodDelay | Number | Menu P20 | End delay for cooker hood control (min) | false | yes | | menuP2#cookerhoodDelay | Number | Menu P20 | End delay for cooker hood control (min) | false | yes |
| **Menu P9: Option States** | | | | | | | **Menu P9: Option States** | | | | | |
| menuP9#chimneyState (dynamic) | Switch | Chimney Control State | State of the chimney control | true | yes | | menuP9#chimneyState | Switch | Chimney Control State | State of the chimney control | true | yes |
| menuP9#bypassState (dynamic) | Switch | Bypass State | State of the bypass (ON = open / OFF = closed) | true | yes | | menuP9#bypassState | Switch | Bypass State | State of the bypass (ON = open / OFF = closed) | true | yes |
| menuP9#ewtState (dynamic) | Switch | EWT State | State of the EWT valve (ON = open / OFF = closed) | true | yes | | menuP9#ewtState | Switch | GHX State | State of the geothermal heat exchanger valve (ON = open / OFF = closed) | true | yes |
| menuP9#heaterState (dynamic) | Switch | Heater State | State of the heater | true | yes | | menuP9#heaterState | Switch | Heater State | State of the heater | true | yes |
| menuP9#vControlState | Switch | 0-10V Control State | State of the 0-10V control | true | yes | | menuP9#vControlState | Switch | 0-10V Control State | State of the 0-10V control | true | yes |
| menuP9#frostState (dynamic) | Switch | Antifrost State | State of the antifrost control | true | yes | | menuP9#frostState | Switch | Antifrost State | State of the antifrost control | true | yes |
| menuP9#cookerhoodState (dynamic) | Switch | Cookerhood State | State of the cookerhood control | true | yes | | menuP9#cookerhoodState | Switch | Cookerhood State | State of the cookerhood control | true | yes |
| menuP9#enthalpyState (dynamic) | Switch | Enthalpy State | State of the enthalpy module | true | yes | | menuP9#enthalpyState | Switch | Enthalpy State | State of the enthalpy module | true | yes |
| **Error States** | | | | | | | **Error States** | | | | | |
| errors#filterError | Switch | Filter Error | Filter full | true | no | | errors#filterError | Switch | Filter Error | Filter full | true | no |
| errors#errorsCurrent | String | Errors Current | Current errors | true | no | | errors#errorsCurrent | String | Errors Current | Current errors | true | no |
| errors#errorsLast | String | Errors Last | Last errors | true | yes | | errors#errorsLast | String | Errors Last | Last errors | true | yes |
| errors#errorsPrelast | String | Errors Prelast | Prelast errors | true | yes | | errors#errorsPrelast | String | Errors Prelast | Prelast errors | true | yes |
| errors#errorsPrePrelast | String | Errors Pre-Prelast | Pre-Prelast errors | true | yes | | errors#errorsPrePrelast | String | Errors Pre-Prelast | Pre-Prelast errors | true | yes |
| **Bypass Values (dynamic)** | | | | | | | **Bypass Values** | | | | | |
| bypass#bypassFactor | Number | Bypass Factor | Bypass factor value | true | yes | | bypass#bypassFactor | Number | Bypass Factor | Bypass factor value | true | yes |
| bypass#bypassLevel | Number | Bypass Level | Bypass level state | true | yes | | bypass#bypassLevel | Number | Bypass Level | Bypass level state | true | yes |
| bypass#bypassCorrection | Number | Bypass Correction | Bypass correction state | true | yes | | bypass#bypassCorrection | Number | Bypass Correction | Bypass correction state | true | yes |
| bypass#bypassSummer | Switch | Bypass Summer Mode | Bypass summer mode | true | yes | | bypass#bypassSummer | Switch | Bypass Summer Mode | Bypass summer mode | true | yes |
| **Preheater Values (dynamic)** | | | | | | | **Preheater Values** | | | | | |
| preheater#preheaterValve | Number | Preheater Valve | State of the preheater valve | true | yes | | preheater#preheaterValve | Number | Preheater Valve | State of the preheater valve | true | yes |
| preheater#preheaterFrostProtect | Switch | Frost Protection | State of the frost protection | true | yes | | preheater#preheaterFrostProtect | Switch | Frost Protection | State of the frost protection | true | yes |
| preheater#preheaterHeating | Switch | Preheater | State of the preheater | true | yes | | preheater#preheaterHeating | Switch | Preheater | State of the preheater | true | yes |
| preheater#preheaterFrostTime | Number | Preheater Frost Time | Frost minutes | true | yes | | preheater#preheaterFrostTime | Number | Preheater Frost Time | Frost minutes | true | yes |
| preheater#preheaterSafety | Number | Preheater Frost Safety | Frost safety setting | true | yes | | preheater#preheaterSafety | Number | Preheater Frost Safety | Frost safety setting | true | yes |
| **EWT Values (dynamic)** | | | | | | | **GHX Values** | | | | | |
| ewt#ewtTemperatureLow | Number:Temperature | EWT Temperature (low) | Lower temperature of the geothermal heat exchanger | true | yes | | ewt#ewtTemperatureLow | Number:Temperature | GHX Temperature (low) | Lower temperature of the geothermal heat exchanger | true | yes |
| ewt#ewtTemperatureHigh | Number:Temperature | EWT Temperature (high) | Upper temperature of the geothermal heat exchanger | true | yes | | ewt#ewtTemperatureHigh | Number:Temperature | GHX Temperature (high) | Upper temperature of the geothermal heat exchanger | true | yes |
| ewt#ewtSpeed | Number | EWT Speed Up (%) | Speed up of the geothermal heat exchanger | true | yes | | ewt#ewtSpeed | Number | GHX Speed Up (%) | Speed up of the geothermal heat exchanger | true | yes |
| **Heater Values (dynamic)** | | | | | | | **Heater Values** | | | | | |
| heater#heaterPower | Number | Heater Power | Heater power value | true | yes | | heater#heaterPower | Number | Heater Power | Heater power value | true | yes |
| heater#heaterPowerI | Number | Heater Power I-parameter | Heater power I-parameter value | true | yes | | heater#heaterPowerI | Number | Heater Power I-parameter | Heater power I-parameter value | true | yes |
| heater#heaterTargetTemperature | Number:Temperature | Heater Target Temperature | Target temperature of the heater | true | yes | | heater#heaterTargetTemperature | Number:Temperature | Heater Target Temperature | Target temperature of the heater | true | yes |
| **Cookerhood Values (dynamic)** | | | | | | | **Cookerhood Values** | | | | | |
| cookerhood#cookerhoodSpeed | Number | Cookerhood Speed Up (%) | Speed up of the cookerhood | true | yes | | cookerhood#cookerhoodSpeed | Number | Cookerhood Speed Up (%) | Speed up of the cookerhood | true | yes |
| **Enthalpy Values (dynamic)** | | | | | | | **Enthalpy Values** | | | | | |
| enthalpy#enthalpyTemperature | Number:Temperature | Enthalpy Sensor Temperature | Temperature of the enthalpy sensor | true | yes | | enthalpy#enthalpyTemperature | Number:Temperature | Enthalpy Sensor Temperature | Temperature of the enthalpy sensor | true | yes |
| enthalpy#enthalpyHumidity | Number | Enthalpy Sensor Humidity | Humidity of the enthalpy sensor | true | yes | | enthalpy#enthalpyHumidity | Number | Enthalpy Sensor Humidity | Humidity of the enthalpy sensor | true | yes |
| enthalpy#enthalpyLevel | Number | Enthalpy Sensor Level | Level of the enthalpy sensor | true | yes | | enthalpy#enthalpyLevel | Number | Enthalpy Sensor Level | Level of the enthalpy sensor | true | yes |
| enthalpy#enthalpyTime | Number | Enthalpy Sensor Timer | Timer state of the enthalpy sensor | true | yes | | enthalpy#enthalpyTime | Number | Enthalpy Sensor Timer | Timer state of the enthalpy sensor | true | yes |
| **Option Settings** | | | | | |
| options#isPreheater | Switch | Preheater | Preheater option installed | true | yes |
| options#isBypass | Switch | Bypass | Bypass option installed | true | yes |
| options#recuType | Number | ComfoAir Type | Type of the ComfoAir (1 = left / 2 = right) | true | yes |
| options#recuSize | Number | ComfoAir Size | Size of the ComfoAir (1 = big / 2 = small) | true | yes |
| options#isChimney | Switch | Chimney | Chimney option installed | true | yes |
| options#isCookerhood | Switch | Cookerhood | Cookerhood option installed | true | yes |
| options#isHeater | Switch | Heater | Heater option installed | true | yes |
| options#isEnthalpy | Number | Enthalpy | Enthalpy option installed | true | yes |
| options#isEWT | Number | Geothermal Heat Exchanger | Geothermal heat exchanger option installed | true | yes |
| options#analogPriority | Number | Analog Priority | Priority of analog inputs for highest fan level | true | yes |
| **Inputs** | | | | | | | **Inputs** | | | | | |
| inputs#isL1Switch | Switch | L1 Switch | Availability of L1 step switch | true | yes | | inputs#isL1Switch | Switch | L1 Switch | Availability of L1 step switch | true | yes |
| inputs#isL2Switch | Switch | L2 Switch | Availability of L2 step switch | true | yes | | inputs#isL2Switch | Switch | L2 Switch | Availability of L2 step switch | true | yes |
@ -214,7 +223,7 @@ Number comfoairOutgoingFan "Exhaust capacity [%d %%]" <fan_out> (ComfoAir)
Number comfoairFanIn0 "Supply capacity - level 0 [%d %%]" <fan_in> (ComfoAir) {channel="comfoair:comfoair:myComfoAir:ventilation#fanIn0"} Number comfoairFanIn0 "Supply capacity - level 0 [%d %%]" <fan_in> (ComfoAir) {channel="comfoair:comfoair:myComfoAir:ventilation#fanIn0"}
Number comfoairFanOut0 "Exhaust capacity - level 0 [%d %%]" <fan_out> (ComfoAir) {channel="comfoair:comfoair:myComfoAir:ventilation#fanOut0"} Number comfoairFanOut0 "Exhaust capacity - level 0 [%d %%]" <fan_out> (ComfoAir) {channel="comfoair:comfoair:myComfoAir:ventilation#fanOut0"}
Switch comfoairBypassMode "Bypass [MAP(comfoair_bypass.map):%s]" <climate> (ComfoAir) {channel="comfoair:comfoair:myComfoAir:menuP9#bypassState"} Switch comfoairBypassMode "Bypass [MAP(comfoair_bypass.map):%s]" <climate> (ComfoAir) {channel="comfoair:comfoair:myComfoAir:menuP9#bypassState"}
Switch comfoairEWTMode "EWT [MAP(comfoair_on-off.map):%s]" <climate> (ComfoAir) {channel="comfoair:comfoair:myComfoAir:menuP9#ewtState"} Switch comfoairGHXMode "GHX [MAP(comfoair_on-off.map):%s]" <climate> (ComfoAir) {channel="comfoair:comfoair:myComfoAir:menuP9#ewtState"}
Switch comfoairChimneyMode "Fire programme [MAP(comfoair_on-off.map):%s]" <climate> (ComfoAir) {channel="comfoair:comfoair:myComfoAir:menuP9#chimneyState"} Switch comfoairChimneyMode "Fire programme [MAP(comfoair_on-off.map):%s]" <climate> (ComfoAir) {channel="comfoair:comfoair:myComfoAir:menuP9#chimneyState"}
Switch comfoairHeaterMode "Heater [MAP(comfoair_on-off.map):%s]" <climate> (ComfoAir) {channel="comfoair:comfoair:myComfoAir:menuP9#heaterState"} Switch comfoairHeaterMode "Heater [MAP(comfoair_on-off.map):%s]" <climate> (ComfoAir) {channel="comfoair:comfoair:myComfoAir:menuP9#heaterState"}
Switch comfoairCookerHoodMode "Extractor hood [MAP(comfoair_on-off.map):%s]" <climate> (ComfoAir) {channel="comfoair:comfoair:myComfoAir:menuP9#cookerhoodState"} Switch comfoairCookerHoodMode "Extractor hood [MAP(comfoair_on-off.map):%s]" <climate> (ComfoAir) {channel="comfoair:comfoair:myComfoAir:menuP9#cookerhoodState"}
@ -246,7 +255,7 @@ sitemap comfoair label="ComfoAir" {
Text item=comfoairIncomingFan valuecolor=["black"] Text item=comfoairIncomingFan valuecolor=["black"]
Text item=comfoairBypassMode valuecolor=["black"] Text item=comfoairBypassMode valuecolor=["black"]
Text item=comfoairOutgoingFan valuecolor=["black"] Text item=comfoairOutgoingFan valuecolor=["black"]
Text item=comfoairEWTMode valuecolor=[OFF="silver", ON="black"] Text item=comfoairGHXMode valuecolor=[OFF="silver", ON="black"]
Text item=comfoairEfficiency valuecolor=["black"] Text item=comfoairEfficiency valuecolor=["black"]
Text item=comfoairFreezeMode valuecolor=[OFF="black", ON="red"] Text item=comfoairFreezeMode valuecolor=[OFF="black", ON="red"]
Text item=comfoairFilterRuntime_Message valuecolor=["black"] Text item=comfoairFilterRuntime_Message valuecolor=["black"]

View File

@ -29,22 +29,9 @@ public class ComfoAirBindingConstants {
public static final ThingTypeUID THING_TYPE_COMFOAIR_GENERIC = new ThingTypeUID(BINDING_ID, "comfoair"); public static final ThingTypeUID THING_TYPE_COMFOAIR_GENERIC = new ThingTypeUID(BINDING_ID, "comfoair");
// Thing properties // Thing properties
// General properties
public static final String PROPERTY_SOFTWARE_MAIN_VERSION = "SOFTWARE_VERSION_MAIN"; public static final String PROPERTY_SOFTWARE_MAIN_VERSION = "SOFTWARE_VERSION_MAIN";
public static final String PROPERTY_SOFTWARE_MINOR_VERSION = "SOFTWARE_VERSION_MINOR"; public static final String PROPERTY_SOFTWARE_MINOR_VERSION = "SOFTWARE_VERSION_MINOR";
public static final String PROPERTY_DEVICE_NAME = "DEVICE_NAME"; public static final String PROPERTY_DEVICE_NAME = "DEVICE_NAME";
// Installed options
public static final String PROPERTY_OPTION_PREHEATER = "OPTION_PREHEATER";
public static final String PROPERTY_OPTION_BYPASS = "OPTION_BYPASS";
public static final String PROPERTY_OPTION_RECU_TYPE = "DEVICE_TYPE";
public static final String PROPERTY_OPTION_RECU_SIZE = "DEVICE_SIZE";
public static final String PROPERTY_OPTION_CHIMNEY = "OPTION_CHIMNEY";
public static final String PROPERTY_OPTION_COOKERHOOD = "OPTION_COOKERHOOD";
public static final String PROPERTY_OPTION_HEATER = "OPTION_HEATER";
public static final String PROPERTY_OPTION_ENTHALPY = "OPTION_ENTHALPY";
public static final String PROPERTY_OPTION_EWT = "OPTION_EWT";
// Common option states
public static final String[] COMMON_OPTION_STATES = { "Not installed", "Installed" };
// Channel groups // Channel groups
public static final String CG_CONTROL_PREFIX = "bindingControl#"; public static final String CG_CONTROL_PREFIX = "bindingControl#";
@ -53,7 +40,7 @@ public class ComfoAirBindingConstants {
public static final String CG_TIMES_PREFIX = "times#"; public static final String CG_TIMES_PREFIX = "times#";
public static final String CG_BYPASS_PREFIX = "bypass#"; public static final String CG_BYPASS_PREFIX = "bypass#";
public static final String CG_PREHEATER_PREFIX = "preheater#"; public static final String CG_PREHEATER_PREFIX = "preheater#";
public static final String CG_EWT_PREFIX = "ewt#"; public static final String CG_GHX_PREFIX = "ewt#";
public static final String CG_HEATER_PREFIX = "heater#"; public static final String CG_HEATER_PREFIX = "heater#";
public static final String CG_COOKERHOOD_PREFIX = "cookerhood#"; public static final String CG_COOKERHOOD_PREFIX = "cookerhood#";
public static final String CG_ENTHALPY_PREFIX = "enthalpy#"; public static final String CG_ENTHALPY_PREFIX = "enthalpy#";
@ -97,10 +84,10 @@ public class ComfoAirBindingConstants {
public static final String CHANNEL_IS_SENSOR_T2 = "isT2Sensor"; public static final String CHANNEL_IS_SENSOR_T2 = "isT2Sensor";
public static final String CHANNEL_IS_SENSOR_T3 = "isT3Sensor"; public static final String CHANNEL_IS_SENSOR_T3 = "isT3Sensor";
public static final String CHANNEL_IS_SENSOR_T4 = "isT4Sensor"; public static final String CHANNEL_IS_SENSOR_T4 = "isT4Sensor";
public static final String CHANNEL_IS_SENSOR_EWT = "isEWTSensor"; public static final String CHANNEL_IS_SENSOR_GHX = "isEWTSensor";
public static final String CHANNEL_IS_SENSOR_HEATER = "isHeaterSensor"; public static final String CHANNEL_IS_SENSOR_HEATER = "isHeaterSensor";
public static final String CHANNEL_IS_SENSOR_COOKERHOOD = "isCookerhoodSensor"; public static final String CHANNEL_IS_SENSOR_COOKERHOOD = "isCookerhoodSensor";
public static final String CHANNEL_TEMP_EWT = "ewtTemperature"; public static final String CHANNEL_TEMP_GHX = "ewtTemperature";
public static final String CHANNEL_TEMP_HEATER = "heaterTemperature"; public static final String CHANNEL_TEMP_HEATER = "heaterTemperature";
public static final String CHANNEL_TEMP_COOKERHOOD = "cookerhoodTemperature"; public static final String CHANNEL_TEMP_COOKERHOOD = "cookerhoodTemperature";
// Time channels // Time channels
@ -123,10 +110,10 @@ public class ComfoAirBindingConstants {
public static final String CHANNEL_PREHEATER_HEATING = "preheaterHeating"; public static final String CHANNEL_PREHEATER_HEATING = "preheaterHeating";
public static final String CHANNEL_PREHEATER_FROST_TIME = "preheaterFrostTime"; public static final String CHANNEL_PREHEATER_FROST_TIME = "preheaterFrostTime";
public static final String CHANNEL_PREHEATER_SAFETY = "preheaterSafety"; public static final String CHANNEL_PREHEATER_SAFETY = "preheaterSafety";
// EWT channels // GHX channels
public static final String CHANNEL_EWT_TEMP_LOW = "ewtTemperatureLow"; public static final String CHANNEL_GHX_TEMP_LOW = "ewtTemperatureLow";
public static final String CHANNEL_EWT_TEMP_HIGH = "ewtTemperatureHigh"; public static final String CHANNEL_GHX_TEMP_HIGH = "ewtTemperatureHigh";
public static final String CHANNEL_EWT_SPEED = "ewtSpeed"; public static final String CHANNEL_GHX_SPEED = "ewtSpeed";
// Heater channels // Heater channels
public static final String CHANNEL_HEATER_POWER = "heaterPower"; public static final String CHANNEL_HEATER_POWER = "heaterPower";
public static final String CHANNEL_HEATER_POWER_I = "heaterPowerI"; public static final String CHANNEL_HEATER_POWER_I = "heaterPowerI";
@ -138,6 +125,17 @@ public class ComfoAirBindingConstants {
public static final String CHANNEL_ENTHALPY_HUMIDITY = "enthalpyHumidity"; public static final String CHANNEL_ENTHALPY_HUMIDITY = "enthalpyHumidity";
public static final String CHANNEL_ENTHALPY_LEVEL = "enthalpyLevel"; public static final String CHANNEL_ENTHALPY_LEVEL = "enthalpyLevel";
public static final String CHANNEL_ENTHALPY_TIME = "enthalpyTime"; public static final String CHANNEL_ENTHALPY_TIME = "enthalpyTime";
// Options channels
public static final String CHANNEL_OPTION_PREHEATER = "isPreheater";
public static final String CHANNEL_OPTION_BYPASS = "isBypass";
public static final String CHANNEL_OPTION_RECU_TYPE = "recuType";
public static final String CHANNEL_OPTION_RECU_SIZE = "recuSize";
public static final String CHANNEL_OPTION_CHIMNEY = "isChimney";
public static final String CHANNEL_OPTION_COOKERHOOD = "isCookerhood";
public static final String CHANNEL_OPTION_HEATER = "isHeater";
public static final String CHANNEL_OPTION_ENTHALPY = "isEnthalpy";
public static final String CHANNEL_OPTION_GHX = "isEWT";
public static final String CHANNEL_OPTION_PRIORITY = "analogPriority";
// Menu P1 channels // Menu P1 channels
public static final String CHANNEL_MENU20_MODE = "menu20Mode"; public static final String CHANNEL_MENU20_MODE = "menu20Mode";
public static final String CHANNEL_MENU21_MODE = "menu21Mode"; public static final String CHANNEL_MENU21_MODE = "menu21Mode";
@ -161,7 +159,7 @@ public class ComfoAirBindingConstants {
// Menu P9 channels // Menu P9 channels
public static final String CHANNEL_CHIMNEY_STATE = "chimneyState"; public static final String CHANNEL_CHIMNEY_STATE = "chimneyState";
public static final String CHANNEL_BYPASS_STATE = "bypassState"; public static final String CHANNEL_BYPASS_STATE = "bypassState";
public static final String CHANNEL_EWT_STATE = "ewtState"; public static final String CHANNEL_GHX_STATE = "ewtState";
public static final String CHANNEL_HEATER_STATE = "heaterState"; public static final String CHANNEL_HEATER_STATE = "heaterState";
public static final String CHANNEL_VCONTROL_STATE = "vControlState"; public static final String CHANNEL_VCONTROL_STATE = "vControlState";
public static final String CHANNEL_FROST_STATE = "frostState"; public static final String CHANNEL_FROST_STATE = "frostState";
@ -189,7 +187,6 @@ public class ComfoAirBindingConstants {
public static final String CHANNEL_RF_MIN = "RFMin"; public static final String CHANNEL_RF_MIN = "RFMin";
public static final String CHANNEL_RF_MAX = "RFMax"; public static final String CHANNEL_RF_MAX = "RFMax";
public static final String CHANNEL_RF_VALUE = "RFValue"; public static final String CHANNEL_RF_VALUE = "RFValue";
public static final String CHANNEL_ANALOG_PRIORITY = "analogPriority";
// Error channels // Error channels
public static final String CHANNEL_FILTER_ERROR = "filterError"; public static final String CHANNEL_FILTER_ERROR = "filterError";
public static final String CHANNEL_ERRORS_CURRENT = "errorsCurrent"; public static final String CHANNEL_ERRORS_CURRENT = "errorsCurrent";

View File

@ -136,7 +136,7 @@ public enum ComfoAirCommandType {
BYPASS_STATE(ComfoAirBindingConstants.CG_MENUP9_PREFIX + ComfoAirBindingConstants.CHANNEL_BYPASS_STATE, BYPASS_STATE(ComfoAirBindingConstants.CG_MENUP9_PREFIX + ComfoAirBindingConstants.CHANNEL_BYPASS_STATE,
DataTypeBoolean.getInstance(), Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 8 }, DataTypeBoolean.getInstance(), Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 8 },
0x02), 0x02),
EWT_STATE(ComfoAirBindingConstants.CG_MENUP9_PREFIX + ComfoAirBindingConstants.CHANNEL_EWT_STATE, GHX_STATE(ComfoAirBindingConstants.CG_MENUP9_PREFIX + ComfoAirBindingConstants.CHANNEL_GHX_STATE,
DataTypeBoolean.getInstance(), Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 8 }, DataTypeBoolean.getInstance(), Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 8 },
0x04), 0x04),
HEATER_STATE(ComfoAirBindingConstants.CG_MENUP9_PREFIX + ComfoAirBindingConstants.CHANNEL_HEATER_STATE, HEATER_STATE(ComfoAirBindingConstants.CG_MENUP9_PREFIX + ComfoAirBindingConstants.CHANNEL_HEATER_STATE,
@ -272,7 +272,7 @@ public enum ComfoAirCommandType {
IS_T4_SENSOR(ComfoAirBindingConstants.CG_TEMPS_PREFIX + ComfoAirBindingConstants.CHANNEL_IS_SENSOR_T4, IS_T4_SENSOR(ComfoAirBindingConstants.CG_TEMPS_PREFIX + ComfoAirBindingConstants.CHANNEL_IS_SENSOR_T4,
DataTypeBoolean.getInstance(), Constants.REQUEST_GET_TEMPS, Constants.REPLY_GET_TEMPS, new int[] { 5 }, DataTypeBoolean.getInstance(), Constants.REQUEST_GET_TEMPS, Constants.REPLY_GET_TEMPS, new int[] { 5 },
0x08), 0x08),
IS_EWT_SENSOR(ComfoAirBindingConstants.CG_TEMPS_PREFIX + ComfoAirBindingConstants.CHANNEL_IS_SENSOR_EWT, IS_GHX_SENSOR(ComfoAirBindingConstants.CG_TEMPS_PREFIX + ComfoAirBindingConstants.CHANNEL_IS_SENSOR_GHX,
DataTypeBoolean.getInstance(), Constants.REQUEST_GET_TEMPS, Constants.REPLY_GET_TEMPS, new int[] { 5 }, DataTypeBoolean.getInstance(), Constants.REQUEST_GET_TEMPS, Constants.REPLY_GET_TEMPS, new int[] { 5 },
0x10), 0x10),
IS_HEATER_SENSOR(ComfoAirBindingConstants.CG_TEMPS_PREFIX + ComfoAirBindingConstants.CHANNEL_IS_SENSOR_HEATER, IS_HEATER_SENSOR(ComfoAirBindingConstants.CG_TEMPS_PREFIX + ComfoAirBindingConstants.CHANNEL_IS_SENSOR_HEATER,
@ -282,76 +282,77 @@ public enum ComfoAirCommandType {
ComfoAirBindingConstants.CG_TEMPS_PREFIX + ComfoAirBindingConstants.CHANNEL_IS_SENSOR_COOKERHOOD, ComfoAirBindingConstants.CG_TEMPS_PREFIX + ComfoAirBindingConstants.CHANNEL_IS_SENSOR_COOKERHOOD,
DataTypeBoolean.getInstance(), Constants.REQUEST_GET_TEMPS, Constants.REPLY_GET_TEMPS, new int[] { 5 }, DataTypeBoolean.getInstance(), Constants.REQUEST_GET_TEMPS, Constants.REPLY_GET_TEMPS, new int[] { 5 },
0x40), 0x40),
EWT_TEMPERATURE(ComfoAirBindingConstants.CG_TEMPS_PREFIX + ComfoAirBindingConstants.CHANNEL_TEMP_EWT, GHX_TEMPERATURE(ComfoAirBindingConstants.CG_TEMPS_PREFIX + ComfoAirBindingConstants.CHANNEL_TEMP_GHX,
DataTypeTemperature.getInstance(), Constants.REQUEST_GET_TEMPS, Constants.REPLY_GET_TEMPS, new int[] { 6 }), DataTypeTemperature.getInstance(), Constants.REQUEST_GET_TEMPS, Constants.REPLY_GET_TEMPS, new int[] { 6 }),
HEATER_TEMPERATURE(ComfoAirBindingConstants.CG_TEMPS_PREFIX + ComfoAirBindingConstants.CHANNEL_TEMP_HEATER, HEATER_TEMPERATURE(ComfoAirBindingConstants.CG_TEMPS_PREFIX + ComfoAirBindingConstants.CHANNEL_TEMP_HEATER,
DataTypeTemperature.getInstance(), Constants.REQUEST_GET_TEMPS, Constants.REPLY_GET_TEMPS, new int[] { 7 }), DataTypeTemperature.getInstance(), Constants.REQUEST_GET_TEMPS, Constants.REPLY_GET_TEMPS, new int[] { 7 }),
COOKERHOOD_TEMPERATURE(ComfoAirBindingConstants.CG_TEMPS_PREFIX + ComfoAirBindingConstants.CHANNEL_TEMP_COOKERHOOD, COOKERHOOD_TEMPERATURE(ComfoAirBindingConstants.CG_TEMPS_PREFIX + ComfoAirBindingConstants.CHANNEL_TEMP_COOKERHOOD,
DataTypeTemperature.getInstance(), Constants.REQUEST_GET_TEMPS, Constants.REPLY_GET_TEMPS, new int[] { 8 }), DataTypeTemperature.getInstance(), Constants.REQUEST_GET_TEMPS, Constants.REPLY_GET_TEMPS, new int[] { 8 }),
EWT_SPEED(ComfoAirBindingConstants.CG_EWT_PREFIX + ComfoAirBindingConstants.CHANNEL_EWT_SPEED, GHX_SPEED(ComfoAirBindingConstants.CG_GHX_PREFIX + ComfoAirBindingConstants.CHANNEL_GHX_SPEED,
DataTypeNumber.getInstance(), Constants.REQUEST_SET_EWT, 5, 2, DataTypeNumber.getInstance(), Constants.REQUEST_SET_GHX, 5, 2,
new ComfoAirCommandType[] { EWT_STATE, EWT_TEMPERATURE }, Constants.REQUEST_GET_EWT, new ComfoAirCommandType[] { GHX_STATE, GHX_TEMPERATURE }, Constants.REQUEST_GET_GHX,
Constants.REPLY_GET_EWT, new int[] { 2 }), Constants.REPLY_GET_GHX, new int[] { 2 }),
EWT_TEMPERATURE_LOW(ComfoAirBindingConstants.CG_EWT_PREFIX + ComfoAirBindingConstants.CHANNEL_EWT_TEMP_LOW, GHX_TEMPERATURE_LOW(ComfoAirBindingConstants.CG_GHX_PREFIX + ComfoAirBindingConstants.CHANNEL_GHX_TEMP_LOW,
DataTypeTemperature.getInstance(), Constants.REQUEST_SET_EWT, 5, 0, new ComfoAirCommandType[] { EWT_STATE }, DataTypeTemperature.getInstance(), Constants.REQUEST_SET_GHX, 5, 0, new ComfoAirCommandType[] { GHX_STATE },
Constants.REQUEST_GET_EWT, Constants.REPLY_GET_EWT, new int[] { 0 }), Constants.REQUEST_GET_GHX, Constants.REPLY_GET_GHX, new int[] { 0 }),
EWT_TEMPERATURE_HIGH(ComfoAirBindingConstants.CG_EWT_PREFIX + ComfoAirBindingConstants.CHANNEL_EWT_TEMP_HIGH, GHX_TEMPERATURE_HIGH(ComfoAirBindingConstants.CG_GHX_PREFIX + ComfoAirBindingConstants.CHANNEL_GHX_TEMP_HIGH,
DataTypeTemperature.getInstance(), Constants.REQUEST_SET_EWT, 5, 1, new ComfoAirCommandType[] { EWT_STATE }, DataTypeTemperature.getInstance(), Constants.REQUEST_SET_GHX, 5, 1, new ComfoAirCommandType[] { GHX_STATE },
Constants.REQUEST_GET_EWT, Constants.REPLY_GET_EWT, new int[] { 1 }), Constants.REQUEST_GET_GHX, Constants.REPLY_GET_GHX, new int[] { 1 }),
COOKERHOOD_SPEED(ComfoAirBindingConstants.CG_COOKERHOOD_PREFIX + ComfoAirBindingConstants.CHANNEL_COOKERHOOD_SPEED, COOKERHOOD_SPEED(ComfoAirBindingConstants.CG_COOKERHOOD_PREFIX + ComfoAirBindingConstants.CHANNEL_COOKERHOOD_SPEED,
DataTypeNumber.getInstance(), Constants.REQUEST_SET_EWT, 5, 3, DataTypeNumber.getInstance(), Constants.REQUEST_SET_GHX, 5, 3,
new ComfoAirCommandType[] { COOKERHOOD_STATE, COOKERHOOD_TEMPERATURE }, Constants.REQUEST_GET_EWT, new ComfoAirCommandType[] { COOKERHOOD_STATE, COOKERHOOD_TEMPERATURE }, Constants.REQUEST_GET_GHX,
Constants.REPLY_GET_EWT, new int[] { 3 }), Constants.REPLY_GET_GHX, new int[] { 3 }),
HEATER_POWER(ComfoAirBindingConstants.CG_HEATER_PREFIX + ComfoAirBindingConstants.CHANNEL_HEATER_POWER, HEATER_POWER(ComfoAirBindingConstants.CG_HEATER_PREFIX + ComfoAirBindingConstants.CHANNEL_HEATER_POWER,
DataTypeNumber.getInstance(), Constants.REQUEST_GET_EWT, Constants.REPLY_GET_EWT, new int[] { 4 }), DataTypeNumber.getInstance(), Constants.REQUEST_GET_GHX, Constants.REPLY_GET_GHX, new int[] { 4 }),
HEATER_POWER_I(ComfoAirBindingConstants.CG_HEATER_PREFIX + ComfoAirBindingConstants.CHANNEL_HEATER_POWER_I, HEATER_POWER_I(ComfoAirBindingConstants.CG_HEATER_PREFIX + ComfoAirBindingConstants.CHANNEL_HEATER_POWER_I,
DataTypeNumber.getInstance(), Constants.REQUEST_GET_EWT, Constants.REPLY_GET_EWT, new int[] { 5 }), DataTypeNumber.getInstance(), Constants.REQUEST_GET_GHX, Constants.REPLY_GET_GHX, new int[] { 5 }),
HEATER_TARGET_TEMPERATURE( HEATER_TARGET_TEMPERATURE(
ComfoAirBindingConstants.CG_HEATER_PREFIX + ComfoAirBindingConstants.CHANNEL_HEATER_TEMP_TARGET, ComfoAirBindingConstants.CG_HEATER_PREFIX + ComfoAirBindingConstants.CHANNEL_HEATER_TEMP_TARGET,
DataTypeTemperature.getInstance(), Constants.REQUEST_SET_EWT, 5, 4, DataTypeTemperature.getInstance(), Constants.REQUEST_SET_GHX, 5, 4,
new ComfoAirCommandType[] { HEATER_STATE, HEATER_POWER, HEATER_TEMPERATURE }, Constants.REQUEST_GET_EWT, new ComfoAirCommandType[] { HEATER_STATE, HEATER_POWER, HEATER_TEMPERATURE }, Constants.REQUEST_GET_GHX,
Constants.REPLY_GET_EWT, new int[] { 6 }), Constants.REPLY_GET_GHX, new int[] { 6 }),
IS_PREHEATER(ComfoAirBindingConstants.PROPERTY_OPTION_PREHEATER, DataTypeBoolean.getInstance(), IS_PREHEATER(ComfoAirBindingConstants.CG_OPTIONS_PREFIX + ComfoAirBindingConstants.CHANNEL_OPTION_PREHEATER,
Constants.REQUEST_SET_STATES, 8, 0, DataTypeBoolean.getInstance(), Constants.REQUEST_SET_STATES, 8, 0,
new ComfoAirCommandType[] { OUTDOOR_TEMPERATURE_IN, INDOOR_TEMPERATURE_IN, PREHEATER_FROST_PROTECT, new ComfoAirCommandType[] { OUTDOOR_TEMPERATURE_IN, INDOOR_TEMPERATURE_IN, PREHEATER_FROST_PROTECT,
PREHEATER_FROST_TIME, PREHEATER_HEATING, FROST_STATE, PREHEATER_OPTION, PREHEATER_TIME, PREHEATER_FROST_TIME, PREHEATER_HEATING, FROST_STATE, PREHEATER_OPTION, PREHEATER_TIME,
PREHEATER_VALVE }, PREHEATER_VALVE },
Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 0 }), Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 0 }),
IS_BYPASS(ComfoAirBindingConstants.PROPERTY_OPTION_BYPASS, DataTypeBoolean.getInstance(), IS_BYPASS(ComfoAirBindingConstants.CG_OPTIONS_PREFIX + ComfoAirBindingConstants.CHANNEL_OPTION_BYPASS,
Constants.REQUEST_SET_STATES, 8, 1, DataTypeBoolean.getInstance(), Constants.REQUEST_SET_STATES, 8, 1,
new ComfoAirCommandType[] { INDOOR_TEMPERATURE_IN, OUTDOOR_TEMPERATURE_OUT }, Constants.REQUEST_GET_STATES, new ComfoAirCommandType[] { INDOOR_TEMPERATURE_IN, OUTDOOR_TEMPERATURE_OUT }, Constants.REQUEST_GET_STATES,
Constants.REPLY_GET_STATES, new int[] { 1 }), Constants.REPLY_GET_STATES, new int[] { 1 }),
RECU_TYPE(ComfoAirBindingConstants.PROPERTY_OPTION_RECU_TYPE, DataTypeNumber.getInstance(), RECU_TYPE(ComfoAirBindingConstants.CG_OPTIONS_PREFIX + ComfoAirBindingConstants.CHANNEL_OPTION_RECU_TYPE,
new int[] { 0x01, 0x02 }, Constants.REQUEST_SET_STATES, 8, 2, DataTypeNumber.getInstance(), new int[] { 0x01, 0x02 }, Constants.REQUEST_SET_STATES, 8, 2,
new ComfoAirCommandType[] { FAN_IN_PERCENT, FAN_OUT_PERCENT, INDOOR_TEMPERATURE_IN, INDOOR_TEMPERATURE_OUT, new ComfoAirCommandType[] { FAN_IN_PERCENT, FAN_OUT_PERCENT, INDOOR_TEMPERATURE_IN, INDOOR_TEMPERATURE_OUT,
OUTDOOR_TEMPERATURE_IN, OUTDOOR_TEMPERATURE_OUT }, OUTDOOR_TEMPERATURE_IN, OUTDOOR_TEMPERATURE_OUT },
Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 2 }), Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 2 }),
RECU_SIZE(ComfoAirBindingConstants.PROPERTY_OPTION_RECU_SIZE, DataTypeNumber.getInstance(), RECU_SIZE(ComfoAirBindingConstants.CG_OPTIONS_PREFIX + ComfoAirBindingConstants.CHANNEL_OPTION_RECU_SIZE,
new int[] { 0x01, 0x02 }, Constants.REQUEST_SET_STATES, 8, 3, DataTypeNumber.getInstance(), new int[] { 0x01, 0x02 }, Constants.REQUEST_SET_STATES, 8, 3,
new ComfoAirCommandType[] { FAN_IN_PERCENT, FAN_OUT_PERCENT, FAN_IN_0, FAN_IN_1, FAN_IN_2, FAN_IN_3, new ComfoAirCommandType[] { FAN_IN_PERCENT, FAN_OUT_PERCENT, FAN_IN_0, FAN_IN_1, FAN_IN_2, FAN_IN_3,
FAN_OUT_0, FAN_OUT_1, FAN_OUT_2, FAN_OUT_3 }, FAN_OUT_0, FAN_OUT_1, FAN_OUT_2, FAN_OUT_3 },
Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 3 }), Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 3 }),
IS_CHIMNEY(ComfoAirBindingConstants.PROPERTY_OPTION_CHIMNEY, DataTypeBoolean.getInstance(), new int[] { 0x01 }, IS_CHIMNEY(ComfoAirBindingConstants.CG_OPTIONS_PREFIX + ComfoAirBindingConstants.CHANNEL_OPTION_CHIMNEY,
Constants.REQUEST_SET_STATES, 8, 4, Constants.EMPTY_TYPE_ARRAY, Constants.REQUEST_GET_STATES, DataTypeBoolean.getInstance(), new int[] { 0x01 }, Constants.REQUEST_SET_STATES, 8, 4,
Constants.REPLY_GET_STATES, new int[] { 4 }, 0x01), Constants.EMPTY_TYPE_ARRAY, Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 4 },
IS_COOKERHOOD(ComfoAirBindingConstants.PROPERTY_OPTION_COOKERHOOD, DataTypeBoolean.getInstance(), 0x01),
new int[] { 0x02 }, Constants.REQUEST_SET_STATES, 8, 4, IS_COOKERHOOD(ComfoAirBindingConstants.CG_OPTIONS_PREFIX + ComfoAirBindingConstants.CHANNEL_OPTION_COOKERHOOD,
DataTypeBoolean.getInstance(), new int[] { 0x02 }, Constants.REQUEST_SET_STATES, 8, 4,
new ComfoAirCommandType[] { COOKERHOOD_DELAY, COOKERHOOD_STATE, COOKERHOOD_SPEED, COOKERHOOD_TEMPERATURE }, new ComfoAirCommandType[] { COOKERHOOD_DELAY, COOKERHOOD_STATE, COOKERHOOD_SPEED, COOKERHOOD_TEMPERATURE },
Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 4 }, 0x02), Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 4 }, 0x02),
IS_HEATER(ComfoAirBindingConstants.PROPERTY_OPTION_HEATER, DataTypeBoolean.getInstance(), new int[] { 0x04 }, IS_HEATER(ComfoAirBindingConstants.CG_OPTIONS_PREFIX + ComfoAirBindingConstants.CHANNEL_OPTION_HEATER,
Constants.REQUEST_SET_STATES, 8, 4, DataTypeBoolean.getInstance(), new int[] { 0x04 }, Constants.REQUEST_SET_STATES, 8, 4,
new ComfoAirCommandType[] { HEATER_TARGET_TEMPERATURE, HEATER_POWER, HEATER_STATE, HEATER_POWER_I, new ComfoAirCommandType[] { HEATER_TARGET_TEMPERATURE, HEATER_POWER, HEATER_STATE, HEATER_POWER_I,
HEATER_TEMPERATURE }, HEATER_TEMPERATURE },
Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 4 }, 0x04), Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 4 }, 0x04),
IS_ENTHALPY(ComfoAirBindingConstants.PROPERTY_OPTION_ENTHALPY, DataTypeNumber.getInstance(), IS_ENTHALPY(ComfoAirBindingConstants.CG_OPTIONS_PREFIX + ComfoAirBindingConstants.CHANNEL_OPTION_ENTHALPY,
new int[] { 0x00, 0x01, 0x02 }, Constants.REQUEST_SET_STATES, 8, 6, DataTypeNumber.getInstance(), new int[] { 0x00, 0x01, 0x02 }, Constants.REQUEST_SET_STATES, 8, 6,
new ComfoAirCommandType[] { ENTHALPY_TEMPERATURE, ENTHALPY_HUMIDITY, ENTHALPY_LEVEL, ENTHALPY_STATE, new ComfoAirCommandType[] { ENTHALPY_TEMPERATURE, ENTHALPY_HUMIDITY, ENTHALPY_LEVEL, ENTHALPY_STATE,
ENTHALPY_TIME }, ENTHALPY_TIME },
Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 9 }), Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 9 }),
IS_EWT(ComfoAirBindingConstants.PROPERTY_OPTION_EWT, DataTypeNumber.getInstance(), new int[] { 0x00, 0x01, 0x02 }, IS_GHX(ComfoAirBindingConstants.CG_OPTIONS_PREFIX + ComfoAirBindingConstants.CHANNEL_OPTION_GHX,
Constants.REQUEST_SET_STATES, 8, 7, DataTypeNumber.getInstance(), new int[] { 0x00, 0x01, 0x02 }, Constants.REQUEST_SET_STATES, 8, 7,
new ComfoAirCommandType[] { EWT_SPEED, EWT_TEMPERATURE_LOW, EWT_TEMPERATURE_HIGH, EWT_STATE, new ComfoAirCommandType[] { GHX_SPEED, GHX_TEMPERATURE_LOW, GHX_TEMPERATURE_HIGH, GHX_STATE,
EWT_TEMPERATURE }, GHX_TEMPERATURE },
Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 10 }), Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 10 }),
SOFTWARE_MAIN_VERSION(ComfoAirBindingConstants.PROPERTY_SOFTWARE_MAIN_VERSION, DataTypeNumber.getInstance(), SOFTWARE_MAIN_VERSION(ComfoAirBindingConstants.PROPERTY_SOFTWARE_MAIN_VERSION, DataTypeNumber.getInstance(),
Constants.REQUEST_GET_FIRMWARE, Constants.REPLY_GET_FIRMWARE, new int[] { 0 }), Constants.REQUEST_GET_FIRMWARE, Constants.REPLY_GET_FIRMWARE, new int[] { 0 }),
@ -448,7 +449,7 @@ public enum ComfoAirCommandType {
RF_VALUE(ComfoAirBindingConstants.CG_ANALOGRF_PREFIX + ComfoAirBindingConstants.CHANNEL_RF_VALUE, RF_VALUE(ComfoAirBindingConstants.CG_ANALOGRF_PREFIX + ComfoAirBindingConstants.CHANNEL_RF_VALUE,
DataTypeNumber.getInstance(), Constants.REQUEST_SET_ANALOGS, 19, 17, Constants.EMPTY_TYPE_ARRAY, DataTypeNumber.getInstance(), Constants.REQUEST_SET_ANALOGS, 19, 17, Constants.EMPTY_TYPE_ARRAY,
Constants.REQUEST_GET_ANALOGS, Constants.REPLY_GET_ANALOGS, new int[] { 17 }), Constants.REQUEST_GET_ANALOGS, Constants.REPLY_GET_ANALOGS, new int[] { 17 }),
ANALOG_MODE(ComfoAirBindingConstants.CG_ANALOGRF_PREFIX + ComfoAirBindingConstants.CHANNEL_ANALOG_PRIORITY, ANALOG_MODE(ComfoAirBindingConstants.CG_OPTIONS_PREFIX + ComfoAirBindingConstants.CHANNEL_OPTION_PRIORITY,
DataTypeNumber.getInstance(), new int[] { 0x00, 0x01 }, Constants.REQUEST_SET_ANALOGS, 19, 18, DataTypeNumber.getInstance(), new int[] { 0x00, 0x01 }, Constants.REQUEST_SET_ANALOGS, 19, 18,
Constants.EMPTY_TYPE_ARRAY, Constants.REQUEST_GET_ANALOGS, Constants.REPLY_GET_ANALOGS, new int[] { 18 }), Constants.EMPTY_TYPE_ARRAY, Constants.REQUEST_GET_ANALOGS, Constants.REPLY_GET_ANALOGS, new int[] { 18 }),
ANALOG1_VOLT(ComfoAirBindingConstants.CG_ANALOG1_PREFIX + ComfoAirBindingConstants.CHANNEL_ANALOG_VOLT, ANALOG1_VOLT(ComfoAirBindingConstants.CG_ANALOG1_PREFIX + ComfoAirBindingConstants.CHANNEL_ANALOG_VOLT,
@ -684,9 +685,9 @@ public enum ComfoAirCommandType {
public static final int REPLY_GET_PREHEATER = 0xe2; public static final int REPLY_GET_PREHEATER = 0xe2;
public static final int REQUEST_GET_RF = 0xe5; public static final int REQUEST_GET_RF = 0xe5;
public static final int REPLY_GET_RF = 0xe6; public static final int REPLY_GET_RF = 0xe6;
public static final int REQUEST_GET_EWT = 0xeb; public static final int REQUEST_GET_GHX = 0xeb;
public static final int REPLY_GET_EWT = 0xec; public static final int REPLY_GET_GHX = 0xec;
public static final int REQUEST_SET_EWT = 0xed; public static final int REQUEST_SET_GHX = 0xed;
public static final String[] EMPTY_STRING_ARRAY = new String[0]; public static final String[] EMPTY_STRING_ARRAY = new String[0];
public static final int[] EMPTY_INT_ARRAY = new int[0]; public static final int[] EMPTY_INT_ARRAY = new int[0];

View File

@ -12,7 +12,6 @@
*/ */
package org.openhab.binding.comfoair.internal; package org.openhab.binding.comfoair.internal;
import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -31,7 +30,6 @@ import org.openhab.core.thing.Thing;
import org.openhab.core.thing.ThingStatus; import org.openhab.core.thing.ThingStatus;
import org.openhab.core.thing.ThingStatusDetail; import org.openhab.core.thing.ThingStatusDetail;
import org.openhab.core.thing.binding.BaseThingHandler; import org.openhab.core.thing.binding.BaseThingHandler;
import org.openhab.core.thing.binding.builder.ThingBuilder;
import org.openhab.core.types.Command; import org.openhab.core.types.Command;
import org.openhab.core.types.RefreshType; import org.openhab.core.types.RefreshType;
import org.openhab.core.types.State; import org.openhab.core.types.State;
@ -116,79 +114,6 @@ public class ComfoAirHandler extends BaseThingHandler {
if (comfoAirConnector != null) { if (comfoAirConnector != null) {
updateStatus(ThingStatus.ONLINE); updateStatus(ThingStatus.ONLINE);
pullDeviceProperties(); pullDeviceProperties();
Map<String, String> properties = thing.getProperties();
List<Channel> toBeRemovedChannels = new ArrayList<>();
if (properties.get(ComfoAirBindingConstants.PROPERTY_OPTION_PREHEATER)
.equals(ComfoAirBindingConstants.COMMON_OPTION_STATES[0])) {
toBeRemovedChannels.addAll(getThing()
.getChannelsOfGroup(ComfoAirBindingConstants.CG_PREHEATER_PREFIX.replaceAll("#$", "")));
Channel stateChannel = getThing().getChannel(ComfoAirBindingConstants.CG_MENUP9_PREFIX
+ ComfoAirBindingConstants.CHANNEL_FROST_STATE);
if (stateChannel != null) {
toBeRemovedChannels.add(stateChannel);
}
}
if (properties.get(ComfoAirBindingConstants.PROPERTY_OPTION_BYPASS)
.equals(ComfoAirBindingConstants.COMMON_OPTION_STATES[0])) {
toBeRemovedChannels.addAll(getThing()
.getChannelsOfGroup(ComfoAirBindingConstants.CG_BYPASS_PREFIX.replaceAll("#$", "")));
Channel stateChannel = getThing().getChannel(ComfoAirBindingConstants.CG_MENUP9_PREFIX
+ ComfoAirBindingConstants.CHANNEL_BYPASS_STATE);
if (stateChannel != null) {
toBeRemovedChannels.add(stateChannel);
}
}
if (properties.get(ComfoAirBindingConstants.PROPERTY_OPTION_CHIMNEY)
.equals(ComfoAirBindingConstants.COMMON_OPTION_STATES[0])) {
Channel stateChannel = getThing().getChannel(ComfoAirBindingConstants.CG_MENUP9_PREFIX
+ ComfoAirBindingConstants.CHANNEL_CHIMNEY_STATE);
if (stateChannel != null) {
toBeRemovedChannels.add(stateChannel);
}
}
if (properties.get(ComfoAirBindingConstants.PROPERTY_OPTION_COOKERHOOD)
.equals(ComfoAirBindingConstants.COMMON_OPTION_STATES[0])) {
toBeRemovedChannels.addAll(getThing().getChannelsOfGroup(
ComfoAirBindingConstants.CG_COOKERHOOD_PREFIX.replaceAll("#$", "")));
Channel stateChannel = getThing().getChannel(ComfoAirBindingConstants.CG_MENUP9_PREFIX
+ ComfoAirBindingConstants.CHANNEL_COOKERHOOD_STATE);
if (stateChannel != null) {
toBeRemovedChannels.add(stateChannel);
}
}
if (properties.get(ComfoAirBindingConstants.PROPERTY_OPTION_HEATER)
.equals(ComfoAirBindingConstants.COMMON_OPTION_STATES[0])) {
toBeRemovedChannels.addAll(getThing()
.getChannelsOfGroup(ComfoAirBindingConstants.CG_HEATER_PREFIX.replaceAll("#$", "")));
Channel stateChannel = getThing().getChannel(ComfoAirBindingConstants.CG_MENUP9_PREFIX
+ ComfoAirBindingConstants.CHANNEL_HEATER_STATE);
if (stateChannel != null) {
toBeRemovedChannels.add(stateChannel);
}
}
if (properties.get(ComfoAirBindingConstants.PROPERTY_OPTION_ENTHALPY)
.equals(ComfoAirBindingConstants.COMMON_OPTION_STATES[0])) {
toBeRemovedChannels.addAll(getThing()
.getChannelsOfGroup(ComfoAirBindingConstants.CG_ENTHALPY_PREFIX.replaceAll("#$", "")));
Channel stateChannel = getThing().getChannel(ComfoAirBindingConstants.CG_MENUP9_PREFIX
+ ComfoAirBindingConstants.CHANNEL_ENTHALPY_STATE);
if (stateChannel != null) {
toBeRemovedChannels.add(stateChannel);
}
}
if (properties.get(ComfoAirBindingConstants.PROPERTY_OPTION_EWT)
.equals(ComfoAirBindingConstants.COMMON_OPTION_STATES[0])) {
toBeRemovedChannels.addAll(getThing()
.getChannelsOfGroup(ComfoAirBindingConstants.CG_EWT_PREFIX.replaceAll("#$", "")));
Channel stateChannel = getThing().getChannel(
ComfoAirBindingConstants.CG_MENUP9_PREFIX + ComfoAirBindingConstants.CHANNEL_EWT_STATE);
if (stateChannel != null) {
toBeRemovedChannels.add(stateChannel);
}
}
ThingBuilder builder = editThing().withoutChannels(toBeRemovedChannels);
updateThing(builder.build());
List<Channel> channels = this.thing.getChannels(); List<Channel> channels = this.thing.getChannels();
@ -275,9 +200,9 @@ public class ComfoAirHandler extends BaseThingHandler {
preRequestCmd = ComfoAirCommandType.Constants.REQUEST_GET_STATES; preRequestCmd = ComfoAirCommandType.Constants.REQUEST_GET_STATES;
preReplyCmd = ComfoAirCommandType.Constants.REPLY_GET_STATES; preReplyCmd = ComfoAirCommandType.Constants.REPLY_GET_STATES;
break; break;
case ComfoAirCommandType.Constants.REQUEST_SET_EWT: case ComfoAirCommandType.Constants.REQUEST_SET_GHX:
preRequestCmd = ComfoAirCommandType.Constants.REQUEST_GET_EWT; preRequestCmd = ComfoAirCommandType.Constants.REQUEST_GET_GHX;
preReplyCmd = ComfoAirCommandType.Constants.REPLY_GET_EWT; preReplyCmd = ComfoAirCommandType.Constants.REPLY_GET_GHX;
break; break;
default: default:
preRequestCmd = requestCmd; preRequestCmd = requestCmd;
@ -330,13 +255,6 @@ public class ComfoAirHandler extends BaseThingHandler {
String[] namedProperties = new String[] { ComfoAirBindingConstants.PROPERTY_SOFTWARE_MAIN_VERSION, String[] namedProperties = new String[] { ComfoAirBindingConstants.PROPERTY_SOFTWARE_MAIN_VERSION,
ComfoAirBindingConstants.PROPERTY_SOFTWARE_MINOR_VERSION, ComfoAirBindingConstants.PROPERTY_SOFTWARE_MINOR_VERSION,
ComfoAirBindingConstants.PROPERTY_DEVICE_NAME }; ComfoAirBindingConstants.PROPERTY_DEVICE_NAME };
String[] optionProperties = new String[] { ComfoAirBindingConstants.PROPERTY_OPTION_PREHEATER,
ComfoAirBindingConstants.PROPERTY_OPTION_BYPASS, ComfoAirBindingConstants.PROPERTY_OPTION_RECU_TYPE,
ComfoAirBindingConstants.PROPERTY_OPTION_RECU_SIZE,
ComfoAirBindingConstants.PROPERTY_OPTION_CHIMNEY,
ComfoAirBindingConstants.PROPERTY_OPTION_COOKERHOOD,
ComfoAirBindingConstants.PROPERTY_OPTION_HEATER, ComfoAirBindingConstants.PROPERTY_OPTION_ENTHALPY,
ComfoAirBindingConstants.PROPERTY_OPTION_EWT };
for (String prop : namedProperties) { for (String prop : namedProperties) {
ComfoAirCommand readCommand = ComfoAirCommandType.getReadCommand(prop); ComfoAirCommand readCommand = ComfoAirCommandType.getReadCommand(prop);
@ -359,55 +277,6 @@ public class ComfoAirHandler extends BaseThingHandler {
} }
} }
} }
ComfoAirCommand optionsReadCommand = new ComfoAirCommand(ComfoAirBindingConstants.PROPERTY_OPTION_PREHEATER,
ComfoAirCommandType.Constants.REQUEST_GET_STATES, ComfoAirCommandType.Constants.REPLY_GET_STATES,
ComfoAirCommandType.Constants.EMPTY_INT_ARRAY, null, null);
int[] response = comfoAirConnector.sendCommand(optionsReadCommand,
ComfoAirCommandType.Constants.EMPTY_INT_ARRAY);
if (response.length > 0) {
for (String prop : optionProperties) {
ComfoAirCommandType comfoAirCommandType = ComfoAirCommandType.getCommandTypeByKey(prop);
String value = "";
if (comfoAirCommandType != null) {
ComfoAirDataType dataType = comfoAirCommandType.getDataType();
int intValue = dataType.calculateNumberValue(response, comfoAirCommandType);
switch (prop) {
case ComfoAirBindingConstants.PROPERTY_OPTION_RECU_TYPE:
value = intValue == 1 ? "LEFT" : "RIGHT";
break;
case ComfoAirBindingConstants.PROPERTY_OPTION_RECU_SIZE:
value = intValue == 1 ? "BIG" : "SMALL";
break;
case ComfoAirBindingConstants.PROPERTY_OPTION_ENTHALPY:
if (intValue == 1) {
value = ComfoAirBindingConstants.COMMON_OPTION_STATES[1];
} else if (intValue == 2) {
value = "Installed w\\o sensor";
} else {
value = ComfoAirBindingConstants.COMMON_OPTION_STATES[0];
}
break;
case ComfoAirBindingConstants.PROPERTY_OPTION_EWT:
if (intValue == 1) {
value = "Regulated";
} else if (intValue == 2) {
value = "Unregulated";
} else {
value = ComfoAirBindingConstants.COMMON_OPTION_STATES[0];
}
break;
default:
value = intValue > 0 ? ComfoAirBindingConstants.COMMON_OPTION_STATES[1]
: ComfoAirBindingConstants.COMMON_OPTION_STATES[0];
break;
}
}
properties.put(prop, value);
}
}
thing.setProperties(properties); thing.setProperties(properties);
} }
} }

View File

@ -495,7 +495,7 @@ public class ComfoAirSerialConnector {
return ComfoAirCommandType.Constants.EMPTY_INT_ARRAY; return ComfoAirCommandType.Constants.EMPTY_INT_ARRAY;
} }
break; break;
case ComfoAirCommandType.Constants.REQUEST_SET_EWT: case ComfoAirCommandType.Constants.REQUEST_SET_GHX:
newRequestData = new int[5]; newRequestData = new int[5];
if (preRequestData.length > 0 && newRequestData.length <= preRequestData.length) { if (preRequestData.length > 0 && newRequestData.length <= preRequestData.length) {

View File

@ -46,17 +46,23 @@ public interface ComfoAirDataType {
default int calculateNumberValue(int[] data, ComfoAirCommandType commandType) { default int calculateNumberValue(int[] data, ComfoAirCommandType commandType) {
int[] readReplyDataPos = commandType.getReadReplyDataPos(); int[] readReplyDataPos = commandType.getReadReplyDataPos();
int readReplyDataBits = commandType.getReadReplyDataBits();
int value = 0; int value = 0;
if (readReplyDataPos != null) { if (readReplyDataPos != null) {
int base = 0; if (readReplyDataBits == 0) {
int base = 0;
for (int i = readReplyDataPos.length - 1; i >= 0; i--) { for (int i = readReplyDataPos.length - 1; i >= 0; i--) {
if (readReplyDataPos[i] < data.length) { if (readReplyDataPos[i] < data.length) {
value += data[readReplyDataPos[i]] << base; value += data[readReplyDataPos[i]] << base;
base += 8; base += 8;
} else { } else {
return -1; return -1;
}
} }
} else {
value = (data[readReplyDataPos[0]] & readReplyDataBits) == readReplyDataBits ? 1 : 0;
} }
} else { } else {
value = -1; value = -1;

View File

@ -49,7 +49,7 @@ public class DataTypeTemperature implements ComfoAirDataType {
} else { } else {
int[] readReplyDataPos = commandType.getReadReplyDataPos(); int[] readReplyDataPos = commandType.getReadReplyDataPos();
if (readReplyDataPos != null && readReplyDataPos[0] < data.length) { if (readReplyDataPos != null && readReplyDataPos[0] < data.length) {
if (commandType.getReadCommand() == ComfoAirCommandType.Constants.REQUEST_GET_EWT) { if (commandType.getReadCommand() == ComfoAirCommandType.Constants.REQUEST_GET_GHX) {
return new QuantityType<>((double) data[readReplyDataPos[0]], SIUnits.CELSIUS); return new QuantityType<>((double) data[readReplyDataPos[0]], SIUnits.CELSIUS);
} else { } else {
return new QuantityType<>((((double) data[readReplyDataPos[0]]) / 2) - 20, SIUnits.CELSIUS); return new QuantityType<>((((double) data[readReplyDataPos[0]]) / 2) - 20, SIUnits.CELSIUS);
@ -66,7 +66,7 @@ public class DataTypeTemperature implements ComfoAirDataType {
QuantityType<?> celsius = ((QuantityType<?>) value).toUnit(SIUnits.CELSIUS); QuantityType<?> celsius = ((QuantityType<?>) value).toUnit(SIUnits.CELSIUS);
if (celsius != null) { if (celsius != null) {
if (commandType.getReadCommand() == ComfoAirCommandType.Constants.REQUEST_GET_EWT) { if (commandType.getReadCommand() == ComfoAirCommandType.Constants.REQUEST_GET_GHX) {
template[commandType.getChangeDataPos()] = celsius.intValue(); template[commandType.getChangeDataPos()] = celsius.intValue();
} else { } else {
template[commandType.getChangeDataPos()] = (int) (celsius.doubleValue() + 20) * 2; template[commandType.getChangeDataPos()] = (int) (celsius.doubleValue() + 20) * 2;

View File

@ -1,46 +1,73 @@
# binding # binding
binding.comfoair.comfoair.name = ComfoAir Binding binding.comfoair.comfoair.name = ComfoAir Binding
binding.comfoair.comfoair.description = ComfoAir Wohnraumlüftung binding.comfoair.comfoair.description = ComfoAir Wohnraumlüftung
# thing types # thing types
thing-type.comfoair.comfoair.label = ComfoAir Wohnraumlüftung thing-type.comfoair.comfoair.label = ComfoAir Wohnraumlüftung
thing-type.comfoair.comfoair.description = Serielle Verbindung zu einer ComfoAir-kompatiblen Lüftungsanlage thing-type.comfoair.comfoair.description = Serielle Verbindung zu einer ComfoAir-kompatiblen Lüftungsanlage
# thing type configuration # thing type configuration
thing-type.config.comfoair.comfoair.serialPort.label = Serieller Port thing-type.config.comfoair.comfoair.serialPort.label = Serieller Port
thing-type.config.comfoair.comfoair.serialPort.description = Serieller Port über den die Lüftungsanlage verbunden ist thing-type.config.comfoair.comfoair.serialPort.description = Serieller Port über den die Lüftungsanlage verbunden ist
thing-type.config.comfoair.comfoair.refreshInterval.label = Aktualisierungsinterval thing-type.config.comfoair.comfoair.refreshInterval.label = Aktualisierungsinterval
thing-type.config.comfoair.comfoair.refreshInterval.description = Aktualisierungsinterval in Sekunden thing-type.config.comfoair.comfoair.refreshInterval.description = Aktualisierungsinterval in Sekunden
# channel group type
channel-group-type.comfoair.bindingControl.label = Binding-Kontrolle
channel-group-type.comfoair.ventilation.label = Lüftungswerte
channel-group-type.comfoair.temperatures.label = Temperaturwerte
channel-group-type.comfoair.times.label = Laufzeiten
channel-group-type.comfoair.bypass.label = Bypasswerte
channel-group-type.comfoair.preheater.label = Vorheizerwerte
channel-group-type.comfoair.ghx.label = Erdwärmetauscherwerte
channel-group-type.comfoair.heater.label = Nachheizerwerte
channel-group-type.comfoair.cookerhood.label = Küchenhaubenwerte
channel-group-type.comfoair.enthalpy.label = Enthalpietauscherwerte
channel-group-type.comfoair.options.label = Moduleinstellungen
channel-group-type.comfoair.menuP1.label = Menü P1: Status Regelungen
channel-group-type.comfoair.menuP2.label = Menü P2: Einstellung Zeitverzögerungen
channel-group-type.comfoair.menuP9.label = Menü P9: Status Zusatzregelungen
channel-group-type.comfoair.inputs.label = Eingänge
channel-group-type.comfoair.analog.label = Analoge Eingänge
channel-group-type.comfoair.analogRF.label = RF Eingänge
channel-group-type.comfoair.errors.label = Fehlerstatus
channel-group-type.comfoair.resets.label = Reset
# channel type # channel type
channel-type.comfoair.activate.label = Steuerung aktivieren channel-type.comfoair.activate.label = Steuerung aktivieren
channel-type.comfoair.activate.description = Kontrolle aktivieren (über openHAB) oder deaktivieren (zurück auf CCEase) channel-type.comfoair.activate.description = Kontrolle aktivieren (über openHAB) oder deaktivieren (zurück auf CCEase)
channel-type.comfoair.fan_evel.label = Lüftungsstufe channel-type.comfoair.fan_evel.label = Lüftungsstufe
channel-type.comfoair.fan_evel.description = Lüftungsstufe channel-type.comfoair.fan_evel.description = Lüftungsstufe
channel-type.comfoair.fan_evel.state.option.1 = Abwesend
channel-type.comfoair.fan_evel.state.option.2 = Stufe 1
channel-type.comfoair.fan_evel.state.option.3 = Stufe 2
channel-type.comfoair.fan_evel.state.option.4 = Stufe 3
channel-type.comfoair.target_temperature.label = Zieltemperatur channel-type.comfoair.target_temperature.label = Zieltemperatur
channel-type.comfoair.target_temperature.description = Ziel- bzw. Komforttemperatur channel-type.comfoair.target_temperature.description = Ziel- bzw. Komforttemperatur
channel-type.comfoair.filter_error.label = Filterfehler channel-type.comfoair.filter_error.label = Filterfehler
channel-type.comfoair.filter_error.description = Filter voll channel-type.comfoair.filter_error.description = Filter voll
channel-type.comfoair.filter_reset.label = Filterzähler Zurücksetzen channel-type.comfoair.filter_reset.label = Filterzähler Zurücksetzen
channel-type.comfoair.filter_reset.description = Zurücksetzen der Filterlaufzeit channel-type.comfoair.filter_reset.description = Zurücksetzen der Filterlaufzeit
channel-type.comfoair.error_reset.label = Fehler Zurücksetzen channel-type.comfoair.filter_reset.state.option.1 = Reset
channel-type.comfoair.error_reset.description = Zurücksetzen der Fehlermeldungen channel-type.comfoair.error_reset.label = Fehler Zurücksetzen
channel-type.comfoair.error_reset.description = Zurücksetzen der Fehlermeldungen
channel-type.comfoair.error_reset.state.option.1 = Reset
channel-type.comfoair.fan_out_0.label = Abluftstufe 0 (abwesend) channel-type.comfoair.fan_out_0.label = Abluftstufe 0 (abwesend)
channel-type.comfoair.fan_out_0.description = Lüftungsleistung (%) des Abluftventilators auf Stufe 0 channel-type.comfoair.fan_out_0.description = Lüftungsleistung (%) des Abluftventilators auf Stufe 0
channel-type.comfoair.fan_out_1.label = Abluftstufe 1 channel-type.comfoair.fan_out_1.label = Abluftstufe 1
channel-type.comfoair.fan_out_1.description = Lüftungsleistung (%) des Abluftventilators auf Stufe 1 channel-type.comfoair.fan_out_1.description = Lüftungsleistung (%) des Abluftventilators auf Stufe 1
channel-type.comfoair.fan_out_2.label = Abluftstufe 2 channel-type.comfoair.fan_out_2.label = Abluftstufe 2
channel-type.comfoair.fan_out_2.description = Lüftungsleistung (%) des Abluftventilators auf Stufe 2 channel-type.comfoair.fan_out_2.description = Lüftungsleistung (%) des Abluftventilators auf Stufe 2
channel-type.comfoair.fan_out_3.label = Abluftstufe 3 channel-type.comfoair.fan_out_3.label = Abluftstufe 3
channel-type.comfoair.fan_out_3.description = Lüftungsleistung (%) des Abluftventilators auf Stufe 3 channel-type.comfoair.fan_out_3.description = Lüftungsleistung (%) des Abluftventilators auf Stufe 3
channel-type.comfoair.fan_in_0.label = Zuluftstufe 0 (abwesend) channel-type.comfoair.fan_in_0.label = Zuluftstufe 0 (abwesend)
channel-type.comfoair.fan_in_0.description = Lüftungsleistung (%) des Zuluftventilators auf Stufe 0 channel-type.comfoair.fan_in_0.description = Lüftungsleistung (%) des Zuluftventilators auf Stufe 0
channel-type.comfoair.fan_in_1.label = Zuluftstufe 1 channel-type.comfoair.fan_in_1.label = Zuluftstufe 1
channel-type.comfoair.fan_in_1.description = Lüftungsleistung (%) des Zuluftventilators auf Stufe 1 channel-type.comfoair.fan_in_1.description = Lüftungsleistung (%) des Zuluftventilators auf Stufe 1
channel-type.comfoair.fan_in_2.label = Zuluftstufe 2 channel-type.comfoair.fan_in_2.label = Zuluftstufe 2
channel-type.comfoair.fan_in_2.description = Lüftungsleistung (%) des Zuluftventilators auf Stufe 2 channel-type.comfoair.fan_in_2.description = Lüftungsleistung (%) des Zuluftventilators auf Stufe 2
channel-type.comfoair.fan_in_3.label = Zuluftstufe 3 channel-type.comfoair.fan_in_3.label = Zuluftstufe 3
channel-type.comfoair.fan_in_3.description = Lüftungsleistung (%) des Zuluftventilators auf Stufe 3 channel-type.comfoair.fan_in_3.description = Lüftungsleistung (%) des Zuluftventilators auf Stufe 3
channel-type.comfoair.fan_in_percent.label = Zuluftventilator (%) channel-type.comfoair.fan_in_percent.label = Zuluftventilator (%)
channel-type.comfoair.fan_in_percent.description = Aktuelle Geschwindigkeit (%) des Zuluftventilators channel-type.comfoair.fan_in_percent.description = Aktuelle Geschwindigkeit (%) des Zuluftventilators
channel-type.comfoair.fan_out_percent.label = Abluftventilator (%) channel-type.comfoair.fan_out_percent.label = Abluftventilator (%)
@ -49,34 +76,34 @@ channel-type.comfoair.fan_in_RPM.label = Zuluftventilator (U/min)
channel-type.comfoair.fan_in_RPM.description = Aktuelle Drehzahl des Zuluftventilators channel-type.comfoair.fan_in_RPM.description = Aktuelle Drehzahl des Zuluftventilators
channel-type.comfoair.fan_out_RPM.label = Abluftventilator (U/min) channel-type.comfoair.fan_out_RPM.label = Abluftventilator (U/min)
channel-type.comfoair.fan_out_RPM.description = Aktuelle Drehzahl des Abluftventilators channel-type.comfoair.fan_out_RPM.description = Aktuelle Drehzahl des Abluftventilators
channel-type.comfoair.outdoor_temperature_in.label = Außenlufttemperatur channel-type.comfoair.outdoor_temperature_in.label = Außenlufttemperatur
channel-type.comfoair.outdoor_temperature_in.description = Temperatur der Außenzuluft channel-type.comfoair.outdoor_temperature_in.description = Temperatur der Außenzuluft
channel-type.comfoair.outdoor_temperature_out.label = Fortlufttemperatur channel-type.comfoair.outdoor_temperature_out.label = Fortlufttemperatur
channel-type.comfoair.outdoor_temperature_out.description = Temperatur der Außenabluft channel-type.comfoair.outdoor_temperature_out.description = Temperatur der Außenabluft
channel-type.comfoair.indoor_temperature_in.label = Zulufttemperatur channel-type.comfoair.indoor_temperature_in.label = Zulufttemperatur
channel-type.comfoair.indoor_temperature_in.description = Temperatur der Raumzuluft channel-type.comfoair.indoor_temperature_in.description = Temperatur der Raumzuluft
channel-type.comfoair.indoor_temperature_out.label = Ablufttemperatur channel-type.comfoair.indoor_temperature_out.label = Ablufttemperatur
channel-type.comfoair.indoor_temperature_out.description = Temperatur der Raumabluft channel-type.comfoair.indoor_temperature_out.description = Temperatur der Raumabluft
channel-type.comfoair.is_T1_sensor.label = Sensor T1 Verfügbarkeit channel-type.comfoair.is_T1_sensor.label = Sensor T1 Verfügbarkeit
channel-type.comfoair.is_T1_sensor.description = Verfügbarkeit des Temperatursensors T1 (Außenluft) channel-type.comfoair.is_T1_sensor.description = Verfügbarkeit des Temperatursensors T1 (Außenluft)
channel-type.comfoair.is_T2_sensor.label = Sensor T2 Verfügbarkeit channel-type.comfoair.is_T2_sensor.label = Sensor T2 Verfügbarkeit
channel-type.comfoair.is_T2_sensor.description = Verfügbarkeit des Temperatursensors T2 (Zuluft) channel-type.comfoair.is_T2_sensor.description = Verfügbarkeit des Temperatursensors T2 (Zuluft)
channel-type.comfoair.is_T3_sensor.label = Sensor T3 Verfügbarkeit channel-type.comfoair.is_T3_sensor.label = Sensor T3 Verfügbarkeit
channel-type.comfoair.is_T3_sensor.description = Verfügbarkeit des Temperatursensors T3 (Abluft) channel-type.comfoair.is_T3_sensor.description = Verfügbarkeit des Temperatursensors T3 (Abluft)
channel-type.comfoair.is_T4_sensor.label = Sensor T4 Verfügbarkeit channel-type.comfoair.is_T4_sensor.label = Sensor T4 Verfügbarkeit
channel-type.comfoair.is_T4_sensor.description = Verfügbarkeit des Temperatursensors T4 (Fortluft) channel-type.comfoair.is_T4_sensor.description = Verfügbarkeit des Temperatursensors T4 (Fortluft)
channel-type.comfoair.is_EWT_sensor.label = Sensor EWT Verfügbarkeit channel-type.comfoair.is_GHX_sensor.label = Sensor EWT Verfügbarkeit
channel-type.comfoair.is_EWT_sensor.description = Verfügbarkeit des EWT-Temperatursensors channel-type.comfoair.is_GHX_sensor.description = Verfügbarkeit des Erdwärmetauscher-Temperatursensors
channel-type.comfoair.is_heater_sensor.label = Sensor Nachheizung Verfügbarkeit channel-type.comfoair.is_heater_sensor.label = Sensor Nachheizung Verfügbarkeit
channel-type.comfoair.is_heater_sensor.description = Verfügbarkeit des Nachheizung-Temperatursensors channel-type.comfoair.is_heater_sensor.description = Verfügbarkeit des Nachheizung-Temperatursensors
channel-type.comfoair.is_cookerhood_sensor.label = Sensor Dunstabzugshaube Verfügbarkeit channel-type.comfoair.is_cookerhood_sensor.label = Sensor Dunstabzugshaube Verfügbarkeit
channel-type.comfoair.is_cookerhood_sensor.description = Verfügbarkeit des Dunstabzugshauben-Temperatursensors channel-type.comfoair.is_cookerhood_sensor.description = Verfügbarkeit des Dunstabzugshauben-Temperatursensors
channel-type.comfoair.chimney_state.label = Schornsteinfegerregelung Status channel-type.comfoair.chimney_state.label = Schornsteinfegerregelung Status
channel-type.comfoair.chimney_state.description = Status der Schornsteinfegerregelung channel-type.comfoair.chimney_state.description = Status der Schornsteinfegerregelung
channel-type.comfoair.bypass_state.label = Bypass Status channel-type.comfoair.bypass_state.label = Bypass Status
channel-type.comfoair.bypass_state.description = Status der Bypassklappe (ON = offen / OFF = geschlossen) channel-type.comfoair.bypass_state.description = Status der Bypassklappe (ON = offen / OFF = geschlossen)
channel-type.comfoair.ewt_state.label = EWT Status channel-type.comfoair.ghx_state.label = EWT Status
channel-type.comfoair.ewt_state.description = Status des EWT-Ventils (ON = offen / OFF = geschlossen) channel-type.comfoair.ghx_state.description = Status des Erdwärmetauscher-Ventils (ON = offen / OFF = geschlossen)
channel-type.comfoair.heater_state.label = Nacherhitzer Status channel-type.comfoair.heater_state.label = Nacherhitzer Status
channel-type.comfoair.heater_state.description = Status des Nacherhitzers channel-type.comfoair.heater_state.description = Status des Nacherhitzers
channel-type.comfoair.v_control_state.label = 0-10V-Regelung Status channel-type.comfoair.v_control_state.label = 0-10V-Regelung Status
@ -87,8 +114,8 @@ channel-type.comfoair.cookerhood_state.label = Dunstabzugshaube Status
channel-type.comfoair.cookerhood_state.description = Status der Dunstabzugshaubenregelung channel-type.comfoair.cookerhood_state.description = Status der Dunstabzugshaubenregelung
channel-type.comfoair.enthalpy_state.label = Enthalpietauscher Status channel-type.comfoair.enthalpy_state.label = Enthalpietauscher Status
channel-type.comfoair.enthalpy_state.description = Status des Enthalpietauschers channel-type.comfoair.enthalpy_state.description = Status des Enthalpietauschers
channel-type.comfoair.ewt_temperature.label = EWT Temperatur channel-type.comfoair.ghx_temperature.label = Erdwärmetauscher Temperatur
channel-type.comfoair.ewt_temperature.description = Temperatur des Erdwärmetauschers channel-type.comfoair.ghx_temperature.description = Temperatur des Erdwärmetauschers
channel-type.comfoair.heater_temperature.label = Nacherhitzer Temperatur channel-type.comfoair.heater_temperature.label = Nacherhitzer Temperatur
channel-type.comfoair.heater_temperature.description = Temperatur des Nacherhitzers channel-type.comfoair.heater_temperature.description = Temperatur des Nacherhitzers
channel-type.comfoair.cookerhood_temperature.label = Dunstabzugshaube Temperatur channel-type.comfoair.cookerhood_temperature.label = Dunstabzugshaube Temperatur
@ -106,7 +133,7 @@ channel-type.comfoair.freeze_time.description = Betriebsstunden der Frostschutzr
channel-type.comfoair.preheater_time.label = Vorheizung Laufzeit channel-type.comfoair.preheater_time.label = Vorheizung Laufzeit
channel-type.comfoair.preheater_time.description = Betriebsstunden der Vorheizung channel-type.comfoair.preheater_time.description = Betriebsstunden der Vorheizung
channel-type.comfoair.bypass_time.label = Bypass Laufzeit channel-type.comfoair.bypass_time.label = Bypass Laufzeit
channel-type.comfoair.bypass_time.description = Öffnungsstunden der Bypassklappe channel-type.comfoair.bypass_time.description = Öffnungsstunden der Bypassklappe
channel-type.comfoair.filter_hours.label = Filter Laufzeit channel-type.comfoair.filter_hours.label = Filter Laufzeit
channel-type.comfoair.filter_hours.description = Betriebsstunden seit Filterwechsel channel-type.comfoair.filter_hours.description = Betriebsstunden seit Filterwechsel
channel-type.comfoair.bypass_factor.label = Bypass Faktor channel-type.comfoair.bypass_factor.label = Bypass Faktor
@ -116,7 +143,7 @@ channel-type.comfoair.bypass_level.description = Aktuelle Bypassstufe
channel-type.comfoair.bypass_correction.label = Bypass Korrektur channel-type.comfoair.bypass_correction.label = Bypass Korrektur
channel-type.comfoair.bypass_correction.description = Status der Bypasskorrektur channel-type.comfoair.bypass_correction.description = Status der Bypasskorrektur
channel-type.comfoair.bypass_summer.label = Bypass Sommermodus channel-type.comfoair.bypass_summer.label = Bypass Sommermodus
channel-type.comfoair.bypass_summer.description = Aktivität des Sommermodus channel-type.comfoair.bypass_summer.description = Aktivität des Sommermodus
channel-type.comfoair.preheater_valve.label = Vorheizer Klappe channel-type.comfoair.preheater_valve.label = Vorheizer Klappe
channel-type.comfoair.preheater_valve.description = Status der Vorheizerklappe channel-type.comfoair.preheater_valve.description = Status der Vorheizerklappe
channel-type.comfoair.preheater_frost_protect.label = Frostschutz Status channel-type.comfoair.preheater_frost_protect.label = Frostschutz Status
@ -127,12 +154,12 @@ channel-type.comfoair.preheater_frost_time.label = Frostminuten
channel-type.comfoair.preheater_frost_time.description = Gesamtfrostdauer in Minuten channel-type.comfoair.preheater_frost_time.description = Gesamtfrostdauer in Minuten
channel-type.comfoair.preheater_safety.label = Frostsicherheit channel-type.comfoair.preheater_safety.label = Frostsicherheit
channel-type.comfoair.preheater_safety.description = Einstellung der Frostsicherheit channel-type.comfoair.preheater_safety.description = Einstellung der Frostsicherheit
channel-type.comfoair.ewt_temperature_low.label = EWT Temperatur (niedrig) channel-type.comfoair.ghx_temperature_low.label = Erdwärmetauscher Temperatur (niedrig)
channel-type.comfoair.ewt_temperature_low.description = Untere Temperatur des Erdwärmetauschers channel-type.comfoair.ghx_temperature_low.description = Untere Temperatur des Erdwärmetauschers
channel-type.comfoair.ewt_temperature_high.label = EWT Temperatur (hoch) channel-type.comfoair.ghx_temperature_high.label = Erdwärmetauscher Temperatur (hoch)
channel-type.comfoair.ewt_temperature_high.description = Obere Temperatur des Erdwärmetauschers channel-type.comfoair.ghx_temperature_high.description = Obere Temperatur des Erdwärmetauschers
channel-type.comfoair.ewt_speed.label = EWT Hochlauf (%) channel-type.comfoair.ghx_speed.label = Erdwärmetauscher Hochlauf (%)
channel-type.comfoair.ewt_speed.description = Hochlauf des Erdwärmetauschers channel-type.comfoair.ghx_speed.description = Hochlauf des Erdwärmetauschers
channel-type.comfoair.heater_power.label = Nachheizung Leistung channel-type.comfoair.heater_power.label = Nachheizung Leistung
channel-type.comfoair.heater_power.description = Leistung der Nachheizung channel-type.comfoair.heater_power.description = Leistung der Nachheizung
channel-type.comfoair.heater_power_I.label = Nachheizung Leistung I-Parameter channel-type.comfoair.heater_power_I.label = Nachheizung Leistung I-Parameter
@ -149,60 +176,88 @@ channel-type.comfoair.enthalpy_level.label = Enthalpietauscher Koeffizient
channel-type.comfoair.enthalpy_level.description = Koeffizient des Enthalpietauscher channel-type.comfoair.enthalpy_level.description = Koeffizient des Enthalpietauscher
channel-type.comfoair.enthalpy_time.label = Enthalpietauscher Timer channel-type.comfoair.enthalpy_time.label = Enthalpietauscher Timer
channel-type.comfoair.enthalpy_time.description = Timerstatus des Enthalpietauschers channel-type.comfoair.enthalpy_time.description = Timerstatus des Enthalpietauschers
channel-type.comfoair.is_preheater.label = Frostschutzelement
channel-type.comfoair.is_preheater.description = Frostschutzelement installiert
channel-type.comfoair.is_bypass.label = Bypass
channel-type.comfoair.is_bypass.description = Bypass installiert
channel-type.comfoair.recu_type.label = Comfoair Typ
channel-type.comfoair.recu_type.description = Typ der ComfoAir (1 = links / 2 = rechts)
channel-type.comfoair.recu_type.state.option.1 = Links
channel-type.comfoair.recu_type.state.option.2 = Rechts
channel-type.comfoair.recu_size.label = Comfoair Luftmenge
channel-type.comfoair.recu_size.description = Luftmengeneinstellung der ComfoAir (1 = hohe Luftmenge / 2 = normale Luftmenge)
channel-type.comfoair.recu_size.state.option.1 = hohe Luftmenge
channel-type.comfoair.recu_size.state.option.2 = normale Luftmenge
channel-type.comfoair.is_chimney.label = Schornsteinfegerregelung
channel-type.comfoair.is_chimney.description = Schornsteinfegerregelung aktiviert
channel-type.comfoair.is_cookerhood.label = Dunstabzughaube
channel-type.comfoair.is_cookerhood.description = Dunstabzughaube installiert
channel-type.comfoair.is_heater.label = Nacherhitzer
channel-type.comfoair.is_heater.description = Nacherhitzer installiert
channel-type.comfoair.is_enthalpy.label = Enthalpietauscher
channel-type.comfoair.is_enthalpy.description = Enthalpietauscher installiert
channel-type.comfoair.is_enthalpy.state.option.0 = Nicht installiert
channel-type.comfoair.is_enthalpy.state.option.1 = Mit Sensor
channel-type.comfoair.is_enthalpy.state.option.2 = Ohne Sensor
channel-type.comfoair.is_ghx.label = Erdwärmetauscher
channel-type.comfoair.is_ghx.description = Erdwärmetauscher installiert
channel-type.comfoair.is_ghx.state.option.0 = Nicht installiert
channel-type.comfoair.is_ghx.state.option.1 = Reguliert
channel-type.comfoair.is_ghx.state.option.2 = Unreguliert
channel-type.comfoair.is_L1_switch.label = L1-Schalter channel-type.comfoair.is_L1_switch.label = L1-Schalter
channel-type.comfoair.is_L1_switch.description = Verfügbarkeit des L1-Schalters channel-type.comfoair.is_L1_switch.description = Verfügbarkeit des L1-Schalters
channel-type.comfoair.is_L2_switch.label = L2-Schalter channel-type.comfoair.is_L2_switch.label = L2-Schalter
channel-type.comfoair.is_L2_switch.description = Verfügbarkeit des L2-Schalters channel-type.comfoair.is_L2_switch.description = Verfügbarkeit des L2-Schalters
channel-type.comfoair.is_bathroom_switch.label = Badezimmerschalter channel-type.comfoair.is_bathroom_switch.label = Badezimmerschalter
channel-type.comfoair.is_bathroom_switch.description = Verfügbarkeit eines Badezimmerchalters channel-type.comfoair.is_bathroom_switch.description = Verfügbarkeit eines Badezimmerchalters
channel-type.comfoair.is_cookerhood_switch.label = Dunstabzugshaubenschalter channel-type.comfoair.is_cookerhood_switch.label = Dunstabzugshaubenschalter
channel-type.comfoair.is_cookerhood_switch.description = Verfügbarkeit eines Dunstabzugshaubenschalters channel-type.comfoair.is_cookerhood_switch.description = Verfügbarkeit eines Dunstabzugshaubenschalters
channel-type.comfoair.is_external_filter.label = Externer Filter channel-type.comfoair.is_external_filter.label = Externer Filter
channel-type.comfoair.is_external_filter.description = Verfügbarkeit eines externen Filters channel-type.comfoair.is_external_filter.description = Verfügbarkeit eines externen Filters
channel-type.comfoair.is_wtw.label = Wärmerückgewinnung channel-type.comfoair.is_wtw.label = Wärmerückgewinnung
channel-type.comfoair.is_wtw.description = Verfügbarkeit der Wärmerückgewinnung channel-type.comfoair.is_wtw.description = Verfügbarkeit der Wärmerückgewinnung
channel-type.comfoair.is_bathroom2_switch.label = Badezimmerschalter 2 channel-type.comfoair.is_bathroom2_switch.label = Badezimmerschalter 2
channel-type.comfoair.is_bathroom2_switch.description = Verfügbarkeit eines zweiten Badezimmerchalters (luxe) channel-type.comfoair.is_bathroom2_switch.description = Verfügbarkeit eines zweiten Badezimmerchalters (luxe)
channel-type.comfoair.menu20_mode.label = Menü 20 Status (P10) channel-type.comfoair.menu20_mode.label = Menü 20 Status (P10)
channel-type.comfoair.menu20_mode.description = Menü 20 zurzeit aktiv? (P10) channel-type.comfoair.menu20_mode.description = Menü 20 zurzeit aktiv? (P10)
channel-type.comfoair.menu21_mode.label = Menü 21 Status (P11) channel-type.comfoair.menu21_mode.label = Menü 21 Status (P11)
channel-type.comfoair.menu21_mode.description = Menü 21 zurzeit aktiv? (P11) channel-type.comfoair.menu21_mode.description = Menü 21 zurzeit aktiv? (P11)
channel-type.comfoair.menu22_mode.label = Menü 22 Status (P12) channel-type.comfoair.menu22_mode.label = Menü 22 Status (P12)
channel-type.comfoair.menu22_mode.description = Menü 22 zurzeit aktiv? (P12) channel-type.comfoair.menu22_mode.description = Menü 22 zurzeit aktiv? (P12)
channel-type.comfoair.menu23_mode.label = Menü 23 Status (P13) channel-type.comfoair.menu23_mode.label = Menü 23 Status (P13)
channel-type.comfoair.menu23_mode.description = Menü 23 zurzeit aktiv? (P13) channel-type.comfoair.menu23_mode.description = Menü 23 zurzeit aktiv? (P13)
channel-type.comfoair.menu24_mode.label = Menü 24 Status (P14) channel-type.comfoair.menu24_mode.label = Menü 24 Status (P14)
channel-type.comfoair.menu24_mode.description = Menü 24 zurzeit aktiv? (P14) channel-type.comfoair.menu24_mode.description = Menü 24 zurzeit aktiv? (P14)
channel-type.comfoair.menu25_mode.label = Menü 25 Status (P15) channel-type.comfoair.menu25_mode.label = Menü 25 Status (P15)
channel-type.comfoair.menu25_mode.description = Menü 25 zurzeit aktiv? (P15) channel-type.comfoair.menu25_mode.description = Menü 25 zurzeit aktiv? (P15)
channel-type.comfoair.menu26_mode.label = Menü 26 Status (P16) channel-type.comfoair.menu26_mode.label = Menü 26 Status (P16)
channel-type.comfoair.menu26_mode.description = Menü 26 zurzeit aktiv? (P16) channel-type.comfoair.menu26_mode.description = Menü 26 zurzeit aktiv? (P16)
channel-type.comfoair.menu27_mode.label = Menü 27 Status (P17) channel-type.comfoair.menu27_mode.label = Menü 27 Status (P17)
channel-type.comfoair.menu27_mode.description = Menü 27 zurzeit aktiv? (P17) channel-type.comfoair.menu27_mode.description = Menü 27 zurzeit aktiv? (P17)
channel-type.comfoair.menu28_mode.label = MMenü 28 Status (P18) channel-type.comfoair.menu28_mode.label = Menü 28 Status (P18)
channel-type.comfoair.menu28_mode.description = Menü 28 zurzeit aktiv? (P18) channel-type.comfoair.menu28_mode.description = Menü 28 zurzeit aktiv? (P18)
channel-type.comfoair.menu29_mode.label = Menü 29 Status (P19) channel-type.comfoair.menu29_mode.label = Menü 29 Status (P19)
channel-type.comfoair.menu29_mode.description = Menü 29 zurzeit aktiv? (P19) channel-type.comfoair.menu29_mode.description = Menü 29 zurzeit aktiv? (P19)
channel-type.comfoair.cookerhood_delay.label = Ausschaltverzögerung Dunstabzugshaube (P20) channel-type.comfoair.cookerhood_delay.label = Ausschaltverzögerung Dunstabzugshaube (P20)
channel-type.comfoair.cookerhood_delay.description = Ausschaltverzögerung für die Dunstabzugshaubenregelung (min) channel-type.comfoair.cookerhood_delay.description = Ausschaltverzögerung für die Dunstabzugshaubenregelung (min)
channel-type.comfoair.bathroom_start_delay.label = Einschaltverzögerung Badezimmerschalter (P21) channel-type.comfoair.bathroom_start_delay.label = Einschaltverzögerung Badezimmerschalter (P21)
channel-type.comfoair.bathroom_start_delay.description = Einschaltverzögerung für den Badezimmerschalter (min) channel-type.comfoair.bathroom_start_delay.description = Einschaltverzögerung für den Badezimmerschalter (min)
channel-type.comfoair.bathroom_end_delay.label = Ausschaltverzögerung Badezimmerschalter (P22) channel-type.comfoair.bathroom_end_delay.label = Ausschaltverzögerung Badezimmerschalter (P22)
channel-type.comfoair.bathroom_end_delay.description = Ausschaltverzögerung für den Badezimmerschalter (min) channel-type.comfoair.bathroom_end_delay.description = Ausschaltverzögerung für den Badezimmerschalter (min)
channel-type.comfoair.L1_end_delay.label = Ausschaltverzögerung L1-Schalter (P23) channel-type.comfoair.L1_end_delay.label = Ausschaltverzögerung L1-Schalter (P23)
channel-type.comfoair.L1_end_delay.description = Ausschaltverzögerung für den L1-Schalter (min) channel-type.comfoair.L1_end_delay.description = Ausschaltverzögerung für den L1-Schalter (min)
channel-type.comfoair.filter_weeks.label = Filterlaufzeit (P24) channel-type.comfoair.filter_weeks.label = Filterlaufzeit (P24)
channel-type.comfoair.filter_weeks.description = Laufzeit bis "Filter verschmutzt"-Meldung (weeks) channel-type.comfoair.filter_weeks.description = Laufzeit bis "Filter verschmutzt"-Meldung (weeks)
channel-type.comfoair.RF_short_delay.label = Ausschaltverzögerung RF Kurz (P25) channel-type.comfoair.RF_short_delay.label = Ausschaltverzögerung RF Kurz (P25)
channel-type.comfoair.RF_short_delay.description = Ausschaltverzögerung für Lüftungsstufe 3 bei kurzer Betätigung des RF-Schalters (min) channel-type.comfoair.RF_short_delay.description = Ausschaltverzögerung für Lüftungsstufe 3 bei kurzer Betätigung des RF-Schalters (min)
channel-type.comfoair.RF_long_delay.label = Ausschaltverzögerung RF Lang (P26) channel-type.comfoair.RF_long_delay.label = Ausschaltverzögerung RF Lang (P26)
channel-type.comfoair.RF_long_delay.description = Ausschaltverzögerung für Lüftungsstufe 3 bei langer Betätigung des RF-Schalters (min) channel-type.comfoair.RF_long_delay.description = Ausschaltverzögerung für Lüftungsstufe 3 bei langer Betätigung des RF-Schalters (min)
channel-type.comfoair.pulse_ventilation.label = Zeit Stoßlüftung (P27) channel-type.comfoair.pulse_ventilation.label = Zeit Stoßlüftung (P27)
channel-type.comfoair.pulse_ventilation.description = Dauer für die Stoßlüftung (min) channel-type.comfoair.pulse_ventilation.description = Dauer für die Stoßlüftung (min)
channel-type.comfoair.is_analog.label = Verfügbarkeit Analoger Eingang channel-type.comfoair.is_analog.label = Verfügbarkeit Analoger Eingang
channel-type.comfoair.is_analog.description = Verfügbarkeit eines analogen Eingangs channel-type.comfoair.is_analog.description = Verfügbarkeit eines analogen Eingangs
channel-type.comfoair.is_RF.label = Verfügbarkeit RF Eingang channel-type.comfoair.is_RF.label = Verfügbarkeit RF Eingang
channel-type.comfoair.is_RF.description = Verfügbarkeit eines RF-Eingangs channel-type.comfoair.is_RF.description = Verfügbarkeit eines RF-Eingangs
channel-type.comfoair.analog_mode.label = Status Analoger Eingang channel-type.comfoair.analog_mode.label = Status Analoger Eingang
channel-type.comfoair.analog_mode.description = Status des analogen Eingangs channel-type.comfoair.analog_mode.description = Status des analogen Eingangs
channel-type.comfoair.RF_mode.label = Status RF Eingang channel-type.comfoair.RF_mode.label = Status RF Eingang
@ -225,8 +280,10 @@ channel-type.comfoair.RF_max.label = RF Eingang Maximum
channel-type.comfoair.RF_max.description = Maximaleinstellung des RF-Eingangs channel-type.comfoair.RF_max.description = Maximaleinstellung des RF-Eingangs
channel-type.comfoair.RF_value.label = RF Eingang Zielwert channel-type.comfoair.RF_value.label = RF Eingang Zielwert
channel-type.comfoair.RF_value.description = Zielwert des RF-Eingangs channel-type.comfoair.RF_value.description = Zielwert des RF-Eingangs
channel-type.comfoair.analog_priority.label = Controller Priorität channel-type.comfoair.analog_priority.label = Controller Priorität
channel-type.comfoair.analog_priority.description = Priorität der analogen Eingänge für die höchste Lufteinstellung channel-type.comfoair.analog_priority.description = Priorität der analogen Eingänge für die höchste Lufteinstellung
channel-type.comfoair.analog_priority.state.option.0 = Analoge Eingänge
channel-type.comfoair.analog_priority.state.option.1 = Zeitplan
channel-type.comfoair.errors_current.label = Fehler Aktuell channel-type.comfoair.errors_current.label = Fehler Aktuell
channel-type.comfoair.errors_current.description = Aktuelle Fehler channel-type.comfoair.errors_current.description = Aktuelle Fehler
channel-type.comfoair.errors_last.label = Fehler Letzte channel-type.comfoair.errors_last.label = Fehler Letzte

View File

@ -15,10 +15,11 @@
<channel-group id="times" typeId="times"/> <channel-group id="times" typeId="times"/>
<channel-group id="bypass" typeId="bypass"/> <channel-group id="bypass" typeId="bypass"/>
<channel-group id="preheater" typeId="preheater"/> <channel-group id="preheater" typeId="preheater"/>
<channel-group id="ewt" typeId="ewt"/> <channel-group id="ewt" typeId="ghx"/>
<channel-group id="heater" typeId="heater"/> <channel-group id="heater" typeId="heater"/>
<channel-group id="cookerhood" typeId="cookerhood"/> <channel-group id="cookerhood" typeId="cookerhood"/>
<channel-group id="enthalpy" typeId="enthalpy"/> <channel-group id="enthalpy" typeId="enthalpy"/>
<channel-group id="options" typeId="options"/>
<channel-group id="menuP1" typeId="menuP1"/> <channel-group id="menuP1" typeId="menuP1"/>
<channel-group id="menuP2" typeId="menuP2"/> <channel-group id="menuP2" typeId="menuP2"/>
<channel-group id="menuP9" typeId="menuP9"/> <channel-group id="menuP9" typeId="menuP9"/>
@ -93,10 +94,10 @@
<channel id="isT2Sensor" typeId="is_T2_sensor"/> <channel id="isT2Sensor" typeId="is_T2_sensor"/>
<channel id="isT3Sensor" typeId="is_T3_sensor"/> <channel id="isT3Sensor" typeId="is_T3_sensor"/>
<channel id="isT4Sensor" typeId="is_T4_sensor"/> <channel id="isT4Sensor" typeId="is_T4_sensor"/>
<channel id="isEWTSensor" typeId="is_EWT_sensor"/> <channel id="isEWTSensor" typeId="is_ghx_sensor"/>
<channel id="isHeaterSensor" typeId="is_heater_sensor"/> <channel id="isHeaterSensor" typeId="is_heater_sensor"/>
<channel id="isCookerhoodSensor" typeId="is_cookerhood_sensor"/> <channel id="isCookerhoodSensor" typeId="is_cookerhood_sensor"/>
<channel id="ewtTemperature" typeId="ewt_temperature"/> <channel id="ewtTemperature" typeId="ghx_temperature"/>
<channel id="heaterTemperature" typeId="heater_temperature"/> <channel id="heaterTemperature" typeId="heater_temperature"/>
<channel id="cookerhoodTemperature" typeId="cookerhood_temperature"/> <channel id="cookerhoodTemperature" typeId="cookerhood_temperature"/>
</channels> </channels>
@ -137,12 +138,12 @@
</channels> </channels>
</channel-group-type> </channel-group-type>
<channel-group-type id="ewt"> <channel-group-type id="ghx">
<label>EWT Values</label> <label>Geothermal Heat Exchanger Values</label>
<channels> <channels>
<channel id="ewtTemperatureLow" typeId="ewt_temperature_low"/> <channel id="ewtTemperatureLow" typeId="ghx_temperature_low"/>
<channel id="ewtTemperatureHigh" typeId="ewt_temperature_high"/> <channel id="ewtTemperatureHigh" typeId="ghx_temperature_high"/>
<channel id="ewtSpeed" typeId="ewt_speed"/> <channel id="ewtSpeed" typeId="ghx_speed"/>
</channels> </channels>
</channel-group-type> </channel-group-type>
@ -172,6 +173,22 @@
</channels> </channels>
</channel-group-type> </channel-group-type>
<channel-group-type id="options">
<label>Option Settings</label>
<channels>
<channel id="isPreheater" typeId="is_preheater"/>
<channel id="isBypass" typeId="is_bypass"/>
<channel id="recuType" typeId="recu_type"/>
<channel id="recuSize" typeId="recu_size"/>
<channel id="isChimney" typeId="is_chimney"/>
<channel id="isCookerhood" typeId="is_cookerhood"/>
<channel id="isHeater" typeId="is_heater"/>
<channel id="isEnthalpy" typeId="is_enthalpy"/>
<channel id="isEWT" typeId="is_ghx"/>
<channel id="analogPriority" typeId="analog_priority"/>
</channels>
</channel-group-type>
<channel-group-type id="menuP1"> <channel-group-type id="menuP1">
<label>Menu P1: Control States</label> <label>Menu P1: Control States</label>
<channels> <channels>
@ -207,7 +224,7 @@
<channels> <channels>
<channel id="chimneyState" typeId="chimney_state"/> <channel id="chimneyState" typeId="chimney_state"/>
<channel id="bypassState" typeId="bypass_state"/> <channel id="bypassState" typeId="bypass_state"/>
<channel id="ewtState" typeId="ewt_state"/> <channel id="ewtState" typeId="ghx_state"/>
<channel id="heaterState" typeId="heater_state"/> <channel id="heaterState" typeId="heater_state"/>
<channel id="vControlState" typeId="v_control_state"/> <channel id="vControlState" typeId="v_control_state"/>
<channel id="frostState" typeId="frost_state"/> <channel id="frostState" typeId="frost_state"/>
@ -251,7 +268,6 @@
<channel id="RFMin" typeId="RF_min"/> <channel id="RFMin" typeId="RF_min"/>
<channel id="RFMax" typeId="RF_max"/> <channel id="RFMax" typeId="RF_max"/>
<channel id="RFValue" typeId="RF_value"/> <channel id="RFValue" typeId="RF_value"/>
<channel id="analogPriority" typeId="analog_priority"/>
</channels> </channels>
</channel-group-type> </channel-group-type>
@ -497,10 +513,10 @@
<state readOnly="true"/> <state readOnly="true"/>
</channel-type> </channel-type>
<channel-type id="is_EWT_sensor" advanced="true"> <channel-type id="is_ghx_sensor" advanced="true">
<item-type>Switch</item-type> <item-type>Switch</item-type>
<label>EWT Sensor Available</label> <label>GHX Sensor Available</label>
<description>Availability of EWT temperature sensor</description> <description>Availability of geothermal heat exchanger temperature sensor</description>
<category>Temperature</category> <category>Temperature</category>
<state readOnly="true"/> <state readOnly="true"/>
</channel-type> </channel-type>
@ -537,10 +553,10 @@
<state readOnly="true"/> <state readOnly="true"/>
</channel-type> </channel-type>
<channel-type id="ewt_state" advanced="true"> <channel-type id="ghx_state" advanced="true">
<item-type>Switch</item-type> <item-type>Switch</item-type>
<label>EWT State</label> <label>Geothermal Heat exchanger State</label>
<description>State of the EWT valve (ON = open / OFF = closed)</description> <description>State of the geothermal heat exchanger valve (ON = open / OFF = closed)</description>
<category>Switch</category> <category>Switch</category>
<state readOnly="true"/> <state readOnly="true"/>
</channel-type> </channel-type>
@ -585,9 +601,9 @@
<state readOnly="true"/> <state readOnly="true"/>
</channel-type> </channel-type>
<channel-type id="ewt_temperature" advanced="true"> <channel-type id="ghx_temperature" advanced="true">
<item-type>Number:Temperature</item-type> <item-type>Number:Temperature</item-type>
<label>EWT Temperature</label> <label>GHX Temperature</label>
<description>Temperature of geothermal heat exchanger sensor</description> <description>Temperature of geothermal heat exchanger sensor</description>
<category>Temperature</category> <category>Temperature</category>
<state readOnly="true" pattern="%.1f %unit%"/> <state readOnly="true" pattern="%.1f %unit%"/>
@ -745,25 +761,25 @@
<state readOnly="true"/> <state readOnly="true"/>
</channel-type> </channel-type>
<channel-type id="ewt_temperature_low" advanced="true"> <channel-type id="ghx_temperature_low" advanced="true">
<item-type>Number:Temperature</item-type> <item-type>Number:Temperature</item-type>
<label>EWT Temperature (low)</label> <label>GHX Temperature (low)</label>
<description>Lower temperature of the geothermal heat exchanger</description> <description>Lower temperature of the geothermal heat exchanger</description>
<category>Temperature</category> <category>Temperature</category>
<state readOnly="true" pattern="%.1f %unit%"/> <state readOnly="true" pattern="%.1f %unit%"/>
</channel-type> </channel-type>
<channel-type id="ewt_temperature_high" advanced="true"> <channel-type id="ghx_temperature_high" advanced="true">
<item-type>Number:Temperature</item-type> <item-type>Number:Temperature</item-type>
<label>EWT Temperature (high)</label> <label>GHX Temperature (high)</label>
<description>Upper temperature of the geothermal heat exchanger</description> <description>Upper temperature of the geothermal heat exchanger</description>
<category>Temperature</category> <category>Temperature</category>
<state readOnly="true" pattern="%.1f %unit%"/> <state readOnly="true" pattern="%.1f %unit%"/>
</channel-type> </channel-type>
<channel-type id="ewt_speed" advanced="true"> <channel-type id="ghx_speed" advanced="true">
<item-type>Number</item-type> <item-type>Number</item-type>
<label>EWT Speed Up (%)</label> <label>GHX Speed Up (%)</label>
<description>Speed up of the geothermal heat exchanger</description> <description>Speed up of the geothermal heat exchanger</description>
<category>Number</category> <category>Number</category>
<state readOnly="true"/> <state readOnly="true"/>
@ -833,6 +849,100 @@
<state readOnly="true"/> <state readOnly="true"/>
</channel-type> </channel-type>
<channel-type id="is_preheater" advanced="true">
<item-type>Switch</item-type>
<label>Preheater</label>
<description>Preheater option installed</description>
<category>Switch</category>
<state readOnly="false"/>
</channel-type>
<channel-type id="is_bypass" advanced="true">
<item-type>Switch</item-type>
<label>Bypass</label>
<description>Bypass option installed</description>
<category>Switch</category>
<state readOnly="false"/>
</channel-type>
<channel-type id="recu_type" advanced="true">
<item-type>Number</item-type>
<label>Comfoair Type</label>
<description>Type of the ComfoAir (1 = left / 2 = right)</description>
<category>Number</category>
<state readOnly="false">
<options>
<option value="1">Left</option>
<option value="2">Right</option>
</options>
</state>
</channel-type>
<channel-type id="recu_size" advanced="true">
<item-type>Number</item-type>
<label>Comfoair Size</label>
<description>Size of the ComfoAir (1 = big / 2 = small)</description>
<category>Number</category>
<state readOnly="false">
<options>
<option value="1">Big</option>
<option value="2">Small</option>
</options>
</state>
</channel-type>
<channel-type id="is_chimney" advanced="true">
<item-type>Switch</item-type>
<label>Chimney</label>
<description>Chimney option installed</description>
<category>Switch</category>
<state readOnly="false"/>
</channel-type>
<channel-type id="is_cookerhood" advanced="true">
<item-type>Switch</item-type>
<label>Cookerhood</label>
<description>Cookerhood option installed</description>
<category>Switch</category>
<state readOnly="false"/>
</channel-type>
<channel-type id="is_heater" advanced="true">
<item-type>Switch</item-type>
<label>Heater</label>
<description>Heater option installed</description>
<category>Switch</category>
<state readOnly="false"/>
</channel-type>
<channel-type id="is_enthalpy" advanced="true">
<item-type>Number</item-type>
<label>Enthalpy</label>
<description>Enthalpy option installed</description>
<category>Number</category>
<state readOnly="false">
<options>
<option value="0">Not installed</option>
<option value="1">With sensor</option>
<option value="2">Without sensor</option>
</options>
</state>
</channel-type>
<channel-type id="is_ghx" advanced="true">
<item-type>Number</item-type>
<label>Geothermal Heat Exchanger</label>
<description>Geothermal heat exchanger option installed</description>
<category>Number</category>
<state readOnly="false">
<options>
<option value="0">Not installed</option>
<option value="1">Regulated</option>
<option value="2">Not regulated</option>
</options>
</state>
</channel-type>
<channel-type id="is_L1_switch" advanced="true"> <channel-type id="is_L1_switch" advanced="true">
<item-type>Switch</item-type> <item-type>Switch</item-type>
<label>L1 Switch</label> <label>L1 Switch</label>
@ -1140,7 +1250,7 @@
<channel-type id="analog_priority" advanced="true"> <channel-type id="analog_priority" advanced="true">
<item-type>Number</item-type> <item-type>Number</item-type>
<label>Analog Priority</label> <label>Analog Priority</label>
<description>Priority of control</description> <description>Priority of analog inputs for highest fan level</description>
<category>Number</category> <category>Number</category>
<state readOnly="false"> <state readOnly="false">
<options> <options>