[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
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 |
|------------------------------------|--------------------------|---------------------------------|---------------------------------------------------------------------------------------------|-----------|----------|
@ -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#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#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#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#cookerhoodTemperature | Number:Temperature | Cookerhood Temperature | Temperature of cookerhood sensor | true | yes |
| **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#cookerhoodDelay | Number | Menu P20 | End delay for cooker hood control (min) | false | yes |
| **Menu P9: Option States** | | | | | |
| menuP9#chimneyState (dynamic) | 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#ewtState (dynamic) | Switch | EWT State | State of the EWT valve (ON = open / OFF = closed) | true | yes |
| menuP9#heaterState (dynamic) | Switch | Heater State | State of the heater | true | yes |
| menuP9#chimneyState | Switch | Chimney Control State | State of the chimney control | true | yes |
| menuP9#bypassState | Switch | Bypass State | State of the bypass (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 | 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#frostState (dynamic) | Switch | Antifrost State | State of the antifrost control | true | yes |
| menuP9#cookerhoodState (dynamic) | Switch | Cookerhood State | State of the cookerhood control | true | yes |
| menuP9#enthalpyState (dynamic) | Switch | Enthalpy State | State of the enthalpy module | true | yes |
| menuP9#frostState | Switch | Antifrost State | State of the antifrost control | true | yes |
| menuP9#cookerhoodState | Switch | Cookerhood State | State of the cookerhood control | true | yes |
| menuP9#enthalpyState | Switch | Enthalpy State | State of the enthalpy module | true | yes |
| **Error States** | | | | | |
| errors#filterError | Switch | Filter Error | Filter full | true | no |
| errors#errorsCurrent | String | Errors Current | Current errors | true | no |
| errors#errorsLast | String | Errors Last | Last errors | true | yes |
| errors#errorsPrelast | String | Errors Prelast | 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#bypassLevel | Number | Bypass Level | Bypass level state | true | yes |
| bypass#bypassCorrection | Number | Bypass Correction | Bypass correction state | 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#preheaterFrostProtect | Switch | Frost Protection | State of the frost protection | true | yes |
| preheater#preheaterHeating | Switch | Preheater | State of the preheater | true | yes |
| preheater#preheaterFrostTime | Number | Preheater Frost Time | Frost minutes | true | yes |
| preheater#preheaterSafety | Number | Preheater Frost Safety | Frost safety setting | true | yes |
| **EWT Values (dynamic)** | | | | | |
| ewt#ewtTemperatureLow | Number:Temperature | EWT 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#ewtSpeed | Number | EWT Speed Up (%) | Speed up of the geothermal heat exchanger | true | yes |
| **Heater Values (dynamic)** | | | | | |
| **GHX Values** | | | | | |
| ewt#ewtTemperatureLow | Number:Temperature | GHX Temperature (low) | Lower 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 | GHX Speed Up (%) | Speed up of the geothermal heat exchanger | true | yes |
| **Heater Values** | | | | | |
| 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#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 |
| **Enthalpy Values (dynamic)** | | | | | |
| **Enthalpy Values** | | | | | |
| 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#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 |
| **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#isL1Switch | Switch | L1 Switch | Availability of L1 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 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 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 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"}
@ -246,7 +255,7 @@ sitemap comfoair label="ComfoAir" {
Text item=comfoairIncomingFan valuecolor=["black"]
Text item=comfoairBypassMode 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=comfoairFreezeMode valuecolor=[OFF="black", ON="red"]
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");
// Thing properties
// General properties
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_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
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_BYPASS_PREFIX = "bypass#";
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_COOKERHOOD_PREFIX = "cookerhood#";
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_T3 = "isT3Sensor";
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_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_COOKERHOOD = "cookerhoodTemperature";
// Time channels
@ -123,10 +110,10 @@ public class ComfoAirBindingConstants {
public static final String CHANNEL_PREHEATER_HEATING = "preheaterHeating";
public static final String CHANNEL_PREHEATER_FROST_TIME = "preheaterFrostTime";
public static final String CHANNEL_PREHEATER_SAFETY = "preheaterSafety";
// EWT channels
public static final String CHANNEL_EWT_TEMP_LOW = "ewtTemperatureLow";
public static final String CHANNEL_EWT_TEMP_HIGH = "ewtTemperatureHigh";
public static final String CHANNEL_EWT_SPEED = "ewtSpeed";
// GHX channels
public static final String CHANNEL_GHX_TEMP_LOW = "ewtTemperatureLow";
public static final String CHANNEL_GHX_TEMP_HIGH = "ewtTemperatureHigh";
public static final String CHANNEL_GHX_SPEED = "ewtSpeed";
// Heater channels
public static final String CHANNEL_HEATER_POWER = "heaterPower";
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_LEVEL = "enthalpyLevel";
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
public static final String CHANNEL_MENU20_MODE = "menu20Mode";
public static final String CHANNEL_MENU21_MODE = "menu21Mode";
@ -161,7 +159,7 @@ public class ComfoAirBindingConstants {
// Menu P9 channels
public static final String CHANNEL_CHIMNEY_STATE = "chimneyState";
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_VCONTROL_STATE = "vControlState";
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_MAX = "RFMax";
public static final String CHANNEL_RF_VALUE = "RFValue";
public static final String CHANNEL_ANALOG_PRIORITY = "analogPriority";
// Error channels
public static final String CHANNEL_FILTER_ERROR = "filterError";
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,
DataTypeBoolean.getInstance(), Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 8 },
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 },
0x04),
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,
DataTypeBoolean.getInstance(), Constants.REQUEST_GET_TEMPS, Constants.REPLY_GET_TEMPS, new int[] { 5 },
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 },
0x10),
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,
DataTypeBoolean.getInstance(), Constants.REQUEST_GET_TEMPS, Constants.REPLY_GET_TEMPS, new int[] { 5 },
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 }),
HEATER_TEMPERATURE(ComfoAirBindingConstants.CG_TEMPS_PREFIX + ComfoAirBindingConstants.CHANNEL_TEMP_HEATER,
DataTypeTemperature.getInstance(), Constants.REQUEST_GET_TEMPS, Constants.REPLY_GET_TEMPS, new int[] { 7 }),
COOKERHOOD_TEMPERATURE(ComfoAirBindingConstants.CG_TEMPS_PREFIX + ComfoAirBindingConstants.CHANNEL_TEMP_COOKERHOOD,
DataTypeTemperature.getInstance(), Constants.REQUEST_GET_TEMPS, Constants.REPLY_GET_TEMPS, new int[] { 8 }),
EWT_SPEED(ComfoAirBindingConstants.CG_EWT_PREFIX + ComfoAirBindingConstants.CHANNEL_EWT_SPEED,
DataTypeNumber.getInstance(), Constants.REQUEST_SET_EWT, 5, 2,
new ComfoAirCommandType[] { EWT_STATE, EWT_TEMPERATURE }, Constants.REQUEST_GET_EWT,
Constants.REPLY_GET_EWT, new int[] { 2 }),
EWT_TEMPERATURE_LOW(ComfoAirBindingConstants.CG_EWT_PREFIX + ComfoAirBindingConstants.CHANNEL_EWT_TEMP_LOW,
DataTypeTemperature.getInstance(), Constants.REQUEST_SET_EWT, 5, 0, new ComfoAirCommandType[] { EWT_STATE },
Constants.REQUEST_GET_EWT, Constants.REPLY_GET_EWT, new int[] { 0 }),
EWT_TEMPERATURE_HIGH(ComfoAirBindingConstants.CG_EWT_PREFIX + ComfoAirBindingConstants.CHANNEL_EWT_TEMP_HIGH,
DataTypeTemperature.getInstance(), Constants.REQUEST_SET_EWT, 5, 1, new ComfoAirCommandType[] { EWT_STATE },
Constants.REQUEST_GET_EWT, Constants.REPLY_GET_EWT, new int[] { 1 }),
GHX_SPEED(ComfoAirBindingConstants.CG_GHX_PREFIX + ComfoAirBindingConstants.CHANNEL_GHX_SPEED,
DataTypeNumber.getInstance(), Constants.REQUEST_SET_GHX, 5, 2,
new ComfoAirCommandType[] { GHX_STATE, GHX_TEMPERATURE }, Constants.REQUEST_GET_GHX,
Constants.REPLY_GET_GHX, new int[] { 2 }),
GHX_TEMPERATURE_LOW(ComfoAirBindingConstants.CG_GHX_PREFIX + ComfoAirBindingConstants.CHANNEL_GHX_TEMP_LOW,
DataTypeTemperature.getInstance(), Constants.REQUEST_SET_GHX, 5, 0, new ComfoAirCommandType[] { GHX_STATE },
Constants.REQUEST_GET_GHX, Constants.REPLY_GET_GHX, new int[] { 0 }),
GHX_TEMPERATURE_HIGH(ComfoAirBindingConstants.CG_GHX_PREFIX + ComfoAirBindingConstants.CHANNEL_GHX_TEMP_HIGH,
DataTypeTemperature.getInstance(), Constants.REQUEST_SET_GHX, 5, 1, new ComfoAirCommandType[] { GHX_STATE },
Constants.REQUEST_GET_GHX, Constants.REPLY_GET_GHX, new int[] { 1 }),
COOKERHOOD_SPEED(ComfoAirBindingConstants.CG_COOKERHOOD_PREFIX + ComfoAirBindingConstants.CHANNEL_COOKERHOOD_SPEED,
DataTypeNumber.getInstance(), Constants.REQUEST_SET_EWT, 5, 3,
new ComfoAirCommandType[] { COOKERHOOD_STATE, COOKERHOOD_TEMPERATURE }, Constants.REQUEST_GET_EWT,
Constants.REPLY_GET_EWT, new int[] { 3 }),
DataTypeNumber.getInstance(), Constants.REQUEST_SET_GHX, 5, 3,
new ComfoAirCommandType[] { COOKERHOOD_STATE, COOKERHOOD_TEMPERATURE }, Constants.REQUEST_GET_GHX,
Constants.REPLY_GET_GHX, new int[] { 3 }),
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,
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(
ComfoAirBindingConstants.CG_HEATER_PREFIX + ComfoAirBindingConstants.CHANNEL_HEATER_TEMP_TARGET,
DataTypeTemperature.getInstance(), Constants.REQUEST_SET_EWT, 5, 4,
new ComfoAirCommandType[] { HEATER_STATE, HEATER_POWER, HEATER_TEMPERATURE }, Constants.REQUEST_GET_EWT,
Constants.REPLY_GET_EWT, new int[] { 6 }),
IS_PREHEATER(ComfoAirBindingConstants.PROPERTY_OPTION_PREHEATER, DataTypeBoolean.getInstance(),
Constants.REQUEST_SET_STATES, 8, 0,
DataTypeTemperature.getInstance(), Constants.REQUEST_SET_GHX, 5, 4,
new ComfoAirCommandType[] { HEATER_STATE, HEATER_POWER, HEATER_TEMPERATURE }, Constants.REQUEST_GET_GHX,
Constants.REPLY_GET_GHX, new int[] { 6 }),
IS_PREHEATER(ComfoAirBindingConstants.CG_OPTIONS_PREFIX + ComfoAirBindingConstants.CHANNEL_OPTION_PREHEATER,
DataTypeBoolean.getInstance(), Constants.REQUEST_SET_STATES, 8, 0,
new ComfoAirCommandType[] { OUTDOOR_TEMPERATURE_IN, INDOOR_TEMPERATURE_IN, PREHEATER_FROST_PROTECT,
PREHEATER_FROST_TIME, PREHEATER_HEATING, FROST_STATE, PREHEATER_OPTION, PREHEATER_TIME,
PREHEATER_VALVE },
Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 0 }),
IS_BYPASS(ComfoAirBindingConstants.PROPERTY_OPTION_BYPASS, DataTypeBoolean.getInstance(),
Constants.REQUEST_SET_STATES, 8, 1,
IS_BYPASS(ComfoAirBindingConstants.CG_OPTIONS_PREFIX + ComfoAirBindingConstants.CHANNEL_OPTION_BYPASS,
DataTypeBoolean.getInstance(), Constants.REQUEST_SET_STATES, 8, 1,
new ComfoAirCommandType[] { INDOOR_TEMPERATURE_IN, OUTDOOR_TEMPERATURE_OUT }, Constants.REQUEST_GET_STATES,
Constants.REPLY_GET_STATES, new int[] { 1 }),
RECU_TYPE(ComfoAirBindingConstants.PROPERTY_OPTION_RECU_TYPE, DataTypeNumber.getInstance(),
new int[] { 0x01, 0x02 }, Constants.REQUEST_SET_STATES, 8, 2,
RECU_TYPE(ComfoAirBindingConstants.CG_OPTIONS_PREFIX + ComfoAirBindingConstants.CHANNEL_OPTION_RECU_TYPE,
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,
OUTDOOR_TEMPERATURE_IN, OUTDOOR_TEMPERATURE_OUT },
Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 2 }),
RECU_SIZE(ComfoAirBindingConstants.PROPERTY_OPTION_RECU_SIZE, DataTypeNumber.getInstance(),
new int[] { 0x01, 0x02 }, Constants.REQUEST_SET_STATES, 8, 3,
RECU_SIZE(ComfoAirBindingConstants.CG_OPTIONS_PREFIX + ComfoAirBindingConstants.CHANNEL_OPTION_RECU_SIZE,
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,
FAN_OUT_0, FAN_OUT_1, FAN_OUT_2, FAN_OUT_3 },
Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 3 }),
IS_CHIMNEY(ComfoAirBindingConstants.PROPERTY_OPTION_CHIMNEY, DataTypeBoolean.getInstance(), new int[] { 0x01 },
Constants.REQUEST_SET_STATES, 8, 4, Constants.EMPTY_TYPE_ARRAY, Constants.REQUEST_GET_STATES,
Constants.REPLY_GET_STATES, new int[] { 4 }, 0x01),
IS_COOKERHOOD(ComfoAirBindingConstants.PROPERTY_OPTION_COOKERHOOD, DataTypeBoolean.getInstance(),
new int[] { 0x02 }, Constants.REQUEST_SET_STATES, 8, 4,
IS_CHIMNEY(ComfoAirBindingConstants.CG_OPTIONS_PREFIX + ComfoAirBindingConstants.CHANNEL_OPTION_CHIMNEY,
DataTypeBoolean.getInstance(), new int[] { 0x01 }, Constants.REQUEST_SET_STATES, 8, 4,
Constants.EMPTY_TYPE_ARRAY, Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 4 },
0x01),
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 },
Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 4 }, 0x02),
IS_HEATER(ComfoAirBindingConstants.PROPERTY_OPTION_HEATER, DataTypeBoolean.getInstance(), new int[] { 0x04 },
Constants.REQUEST_SET_STATES, 8, 4,
IS_HEATER(ComfoAirBindingConstants.CG_OPTIONS_PREFIX + ComfoAirBindingConstants.CHANNEL_OPTION_HEATER,
DataTypeBoolean.getInstance(), new int[] { 0x04 }, Constants.REQUEST_SET_STATES, 8, 4,
new ComfoAirCommandType[] { HEATER_TARGET_TEMPERATURE, HEATER_POWER, HEATER_STATE, HEATER_POWER_I,
HEATER_TEMPERATURE },
Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 4 }, 0x04),
IS_ENTHALPY(ComfoAirBindingConstants.PROPERTY_OPTION_ENTHALPY, DataTypeNumber.getInstance(),
new int[] { 0x00, 0x01, 0x02 }, Constants.REQUEST_SET_STATES, 8, 6,
IS_ENTHALPY(ComfoAirBindingConstants.CG_OPTIONS_PREFIX + ComfoAirBindingConstants.CHANNEL_OPTION_ENTHALPY,
DataTypeNumber.getInstance(), new int[] { 0x00, 0x01, 0x02 }, Constants.REQUEST_SET_STATES, 8, 6,
new ComfoAirCommandType[] { ENTHALPY_TEMPERATURE, ENTHALPY_HUMIDITY, ENTHALPY_LEVEL, ENTHALPY_STATE,
ENTHALPY_TIME },
Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 9 }),
IS_EWT(ComfoAirBindingConstants.PROPERTY_OPTION_EWT, 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,
EWT_TEMPERATURE },
IS_GHX(ComfoAirBindingConstants.CG_OPTIONS_PREFIX + ComfoAirBindingConstants.CHANNEL_OPTION_GHX,
DataTypeNumber.getInstance(), new int[] { 0x00, 0x01, 0x02 }, Constants.REQUEST_SET_STATES, 8, 7,
new ComfoAirCommandType[] { GHX_SPEED, GHX_TEMPERATURE_LOW, GHX_TEMPERATURE_HIGH, GHX_STATE,
GHX_TEMPERATURE },
Constants.REQUEST_GET_STATES, Constants.REPLY_GET_STATES, new int[] { 10 }),
SOFTWARE_MAIN_VERSION(ComfoAirBindingConstants.PROPERTY_SOFTWARE_MAIN_VERSION, DataTypeNumber.getInstance(),
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,
DataTypeNumber.getInstance(), Constants.REQUEST_SET_ANALOGS, 19, 17, Constants.EMPTY_TYPE_ARRAY,
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,
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,
@ -684,9 +685,9 @@ public enum ComfoAirCommandType {
public static final int REPLY_GET_PREHEATER = 0xe2;
public static final int REQUEST_GET_RF = 0xe5;
public static final int REPLY_GET_RF = 0xe6;
public static final int REQUEST_GET_EWT = 0xeb;
public static final int REPLY_GET_EWT = 0xec;
public static final int REQUEST_SET_EWT = 0xed;
public static final int REQUEST_GET_GHX = 0xeb;
public static final int REPLY_GET_GHX = 0xec;
public static final int REQUEST_SET_GHX = 0xed;
public static final String[] EMPTY_STRING_ARRAY = new String[0];
public static final int[] EMPTY_INT_ARRAY = new int[0];

View File

@ -12,7 +12,6 @@
*/
package org.openhab.binding.comfoair.internal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
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.ThingStatusDetail;
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.RefreshType;
import org.openhab.core.types.State;
@ -116,79 +114,6 @@ public class ComfoAirHandler extends BaseThingHandler {
if (comfoAirConnector != null) {
updateStatus(ThingStatus.ONLINE);
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();
@ -275,9 +200,9 @@ public class ComfoAirHandler extends BaseThingHandler {
preRequestCmd = ComfoAirCommandType.Constants.REQUEST_GET_STATES;
preReplyCmd = ComfoAirCommandType.Constants.REPLY_GET_STATES;
break;
case ComfoAirCommandType.Constants.REQUEST_SET_EWT:
preRequestCmd = ComfoAirCommandType.Constants.REQUEST_GET_EWT;
preReplyCmd = ComfoAirCommandType.Constants.REPLY_GET_EWT;
case ComfoAirCommandType.Constants.REQUEST_SET_GHX:
preRequestCmd = ComfoAirCommandType.Constants.REQUEST_GET_GHX;
preReplyCmd = ComfoAirCommandType.Constants.REPLY_GET_GHX;
break;
default:
preRequestCmd = requestCmd;
@ -330,13 +255,6 @@ public class ComfoAirHandler extends BaseThingHandler {
String[] namedProperties = new String[] { ComfoAirBindingConstants.PROPERTY_SOFTWARE_MAIN_VERSION,
ComfoAirBindingConstants.PROPERTY_SOFTWARE_MINOR_VERSION,
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) {
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);
}
}

View File

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

View File

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

View File

@ -49,7 +49,7 @@ public class DataTypeTemperature implements ComfoAirDataType {
} else {
int[] readReplyDataPos = commandType.getReadReplyDataPos();
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);
} else {
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);
if (celsius != null) {
if (commandType.getReadCommand() == ComfoAirCommandType.Constants.REQUEST_GET_EWT) {
if (commandType.getReadCommand() == ComfoAirCommandType.Constants.REQUEST_GET_GHX) {
template[commandType.getChangeDataPos()] = celsius.intValue();
} else {
template[commandType.getChangeDataPos()] = (int) (celsius.doubleValue() + 20) * 2;

View File

@ -1,46 +1,73 @@
# binding
binding.comfoair.comfoair.name = ComfoAir Binding
binding.comfoair.comfoair.description = ComfoAir Wohnraumlüftung
binding.comfoair.comfoair.description = ComfoAir Wohnraumlüftung
# thing types
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.label = ComfoAir Wohnraumlüftung
thing-type.comfoair.comfoair.description = Serielle Verbindung zu einer ComfoAir-kompatiblen Lüftungsanlage
# thing type configuration
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.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.comfoair.activate.label = Steuerung aktivieren
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.description = Lüftungsstufe
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.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.description = Ziel- bzw. Komforttemperatur
channel-type.comfoair.filter_error.label = Filterfehler
channel-type.comfoair.filter_error.description = Filter voll
channel-type.comfoair.filter_reset.label = Filterzähler Zurücksetzen
channel-type.comfoair.filter_reset.description = Zurücksetzen der Filterlaufzeit
channel-type.comfoair.error_reset.label = Fehler Zurücksetzen
channel-type.comfoair.error_reset.description = Zurücksetzen der Fehlermeldungen
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.state.option.1 = Reset
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.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.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.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.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.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.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.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.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.description = Aktuelle Geschwindigkeit (%) des Zuluftventilators
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_out_RPM.label = Abluftventilator (U/min)
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.description = Temperatur der Außenzuluft
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_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.description = Temperatur der Raumzuluft
channel-type.comfoair.indoor_temperature_out.label = Ablufttemperatur
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.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.description = Verfügbarkeit des Temperatursensors T2 (Zuluft)
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_T4_sensor.label = Sensor T4 Verfügbarkeit
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_EWT_sensor.description = Verfügbarkeit des EWT-Temperatursensors
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_cookerhood_sensor.label = Sensor Dunstabzugshaube Verfügbarkeit
channel-type.comfoair.is_cookerhood_sensor.description = Verfügbarkeit des Dunstabzugshauben-Temperatursensors
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_T2_sensor.label = Sensor T2 Verfügbarkeit
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.description = Verfügbarkeit des Temperatursensors T3 (Abluft)
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_GHX_sensor.label = Sensor EWT Verfügbarkeit
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.description = Verfügbarkeit des Nachheizung-Temperatursensors
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.chimney_state.label = Schornsteinfegerregelung Status
channel-type.comfoair.chimney_state.description = Status der Schornsteinfegerregelung
channel-type.comfoair.bypass_state.label = Bypass Status
channel-type.comfoair.bypass_state.description = Status der Bypassklappe (ON = offen / OFF = geschlossen)
channel-type.comfoair.ewt_state.label = EWT Status
channel-type.comfoair.ewt_state.description = Status des EWT-Ventils (ON = offen / OFF = geschlossen)
channel-type.comfoair.ghx_state.label = EWT Status
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.description = Status des Nacherhitzers
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.enthalpy_state.label = Enthalpietauscher Status
channel-type.comfoair.enthalpy_state.description = Status des Enthalpietauschers
channel-type.comfoair.ewt_temperature.label = EWT Temperatur
channel-type.comfoair.ewt_temperature.description = Temperatur des Erdwärmetauschers
channel-type.comfoair.ghx_temperature.label = Erdwärmetauscher Temperatur
channel-type.comfoair.ghx_temperature.description = Temperatur des Erdwärmetauschers
channel-type.comfoair.heater_temperature.label = Nacherhitzer Temperatur
channel-type.comfoair.heater_temperature.description = Temperatur des Nacherhitzers
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.description = Betriebsstunden der Vorheizung
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.description = Betriebsstunden seit Filterwechsel
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.description = Status der Bypasskorrektur
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.description = Status der Vorheizerklappe
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_safety.label = Frostsicherheit
channel-type.comfoair.preheater_safety.description = Einstellung der Frostsicherheit
channel-type.comfoair.ewt_temperature_low.label = EWT Temperatur (niedrig)
channel-type.comfoair.ewt_temperature_low.description = Untere Temperatur des Erdwärmetauschers
channel-type.comfoair.ewt_temperature_high.label = EWT Temperatur (hoch)
channel-type.comfoair.ewt_temperature_high.description = Obere Temperatur des Erdwärmetauschers
channel-type.comfoair.ewt_speed.label = EWT Hochlauf (%)
channel-type.comfoair.ewt_speed.description = Hochlauf des Erdwärmetauschers
channel-type.comfoair.ghx_temperature_low.label = Erdwärmetauscher Temperatur (niedrig)
channel-type.comfoair.ghx_temperature_low.description = Untere Temperatur des Erdwärmetauschers
channel-type.comfoair.ghx_temperature_high.label = Erdwärmetauscher Temperatur (hoch)
channel-type.comfoair.ghx_temperature_high.description = Obere Temperatur des Erdwärmetauschers
channel-type.comfoair.ghx_speed.label = Erdwärmetauscher Hochlauf (%)
channel-type.comfoair.ghx_speed.description = Hochlauf des Erdwärmetauschers
channel-type.comfoair.heater_power.label = Nachheizung Leistung
channel-type.comfoair.heater_power.description = Leistung der Nachheizung
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_time.label = Enthalpietauscher Timer
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.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.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.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.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.description = Verfügbarkeit eines externen Filters
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_external_filter.description = Verfügbarkeit eines externen Filters
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_bathroom2_switch.label = Badezimmerschalter 2
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.description = Menü 20 zurzeit aktiv? (P10)
channel-type.comfoair.menu21_mode.label = Menü 21 Status (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.description = Menü 22 zurzeit aktiv? (P12)
channel-type.comfoair.menu23_mode.label = Menü 23 Status (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.description = Menü 24 zurzeit aktiv? (P14)
channel-type.comfoair.menu25_mode.label = Menü 25 Status (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.description = Menü 26 zurzeit aktiv? (P16)
channel-type.comfoair.menu27_mode.label = Menü 27 Status (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.description = Menü 28 zurzeit aktiv? (P18)
channel-type.comfoair.menu29_mode.label = Menü 29 Status (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.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.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.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.description = Ausschaltverzögerung für den L1-Schalter (min)
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.description = Menü 20 zurzeit aktiv? (P10)
channel-type.comfoair.menu21_mode.label = Menü 21 Status (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.description = Menü 22 zurzeit aktiv? (P12)
channel-type.comfoair.menu23_mode.label = Menü 23 Status (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.description = Menü 24 zurzeit aktiv? (P14)
channel-type.comfoair.menu25_mode.label = Menü 25 Status (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.description = Menü 26 zurzeit aktiv? (P16)
channel-type.comfoair.menu27_mode.label = Menü 27 Status (P17)
channel-type.comfoair.menu27_mode.description = Menü 27 zurzeit aktiv? (P17)
channel-type.comfoair.menu28_mode.label = Menü 28 Status (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.description = Menü 29 zurzeit aktiv? (P19)
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.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_end_delay.label = Ausschaltverzögerung Badezimmerschalter (P22)
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.description = Ausschaltverzögerung für den L1-Schalter (min)
channel-type.comfoair.filter_weeks.label = Filterlaufzeit (P24)
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.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.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.description = Dauer für die Stoßlüftung (min)
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_RF.label = Verfügbarkeit RF Eingang
channel-type.comfoair.is_RF.description = Verfügbarkeit eines RF-Eingangs
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_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.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.is_analog.label = Verfügbarkeit Analoger Eingang
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.description = Verfügbarkeit eines RF-Eingangs
channel-type.comfoair.analog_mode.label = Status Analoger Eingang
channel-type.comfoair.analog_mode.description = Status des analogen Eingangs
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_value.label = RF Eingang Zielwert
channel-type.comfoair.RF_value.description = Zielwert des RF-Eingangs
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.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.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.description = Aktuelle Fehler
channel-type.comfoair.errors_last.label = Fehler Letzte

View File

@ -15,10 +15,11 @@
<channel-group id="times" typeId="times"/>
<channel-group id="bypass" typeId="bypass"/>
<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="cookerhood" typeId="cookerhood"/>
<channel-group id="enthalpy" typeId="enthalpy"/>
<channel-group id="options" typeId="options"/>
<channel-group id="menuP1" typeId="menuP1"/>
<channel-group id="menuP2" typeId="menuP2"/>
<channel-group id="menuP9" typeId="menuP9"/>
@ -93,10 +94,10 @@
<channel id="isT2Sensor" typeId="is_T2_sensor"/>
<channel id="isT3Sensor" typeId="is_T3_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="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="cookerhoodTemperature" typeId="cookerhood_temperature"/>
</channels>
@ -137,12 +138,12 @@
</channels>
</channel-group-type>
<channel-group-type id="ewt">
<label>EWT Values</label>
<channel-group-type id="ghx">
<label>Geothermal Heat Exchanger Values</label>
<channels>
<channel id="ewtTemperatureLow" typeId="ewt_temperature_low"/>
<channel id="ewtTemperatureHigh" typeId="ewt_temperature_high"/>
<channel id="ewtSpeed" typeId="ewt_speed"/>
<channel id="ewtTemperatureLow" typeId="ghx_temperature_low"/>
<channel id="ewtTemperatureHigh" typeId="ghx_temperature_high"/>
<channel id="ewtSpeed" typeId="ghx_speed"/>
</channels>
</channel-group-type>
@ -172,6 +173,22 @@
</channels>
</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">
<label>Menu P1: Control States</label>
<channels>
@ -207,7 +224,7 @@
<channels>
<channel id="chimneyState" typeId="chimney_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="vControlState" typeId="v_control_state"/>
<channel id="frostState" typeId="frost_state"/>
@ -251,7 +268,6 @@
<channel id="RFMin" typeId="RF_min"/>
<channel id="RFMax" typeId="RF_max"/>
<channel id="RFValue" typeId="RF_value"/>
<channel id="analogPriority" typeId="analog_priority"/>
</channels>
</channel-group-type>
@ -497,10 +513,10 @@
<state readOnly="true"/>
</channel-type>
<channel-type id="is_EWT_sensor" advanced="true">
<channel-type id="is_ghx_sensor" advanced="true">
<item-type>Switch</item-type>
<label>EWT Sensor Available</label>
<description>Availability of EWT temperature sensor</description>
<label>GHX Sensor Available</label>
<description>Availability of geothermal heat exchanger temperature sensor</description>
<category>Temperature</category>
<state readOnly="true"/>
</channel-type>
@ -537,10 +553,10 @@
<state readOnly="true"/>
</channel-type>
<channel-type id="ewt_state" advanced="true">
<channel-type id="ghx_state" advanced="true">
<item-type>Switch</item-type>
<label>EWT State</label>
<description>State of the EWT valve (ON = open / OFF = closed)</description>
<label>Geothermal Heat exchanger State</label>
<description>State of the geothermal heat exchanger valve (ON = open / OFF = closed)</description>
<category>Switch</category>
<state readOnly="true"/>
</channel-type>
@ -585,9 +601,9 @@
<state readOnly="true"/>
</channel-type>
<channel-type id="ewt_temperature" advanced="true">
<channel-type id="ghx_temperature" advanced="true">
<item-type>Number:Temperature</item-type>
<label>EWT Temperature</label>
<label>GHX Temperature</label>
<description>Temperature of geothermal heat exchanger sensor</description>
<category>Temperature</category>
<state readOnly="true" pattern="%.1f %unit%"/>
@ -745,25 +761,25 @@
<state readOnly="true"/>
</channel-type>
<channel-type id="ewt_temperature_low" advanced="true">
<channel-type id="ghx_temperature_low" advanced="true">
<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>
<category>Temperature</category>
<state readOnly="true" pattern="%.1f %unit%"/>
</channel-type>
<channel-type id="ewt_temperature_high" advanced="true">
<channel-type id="ghx_temperature_high" advanced="true">
<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>
<category>Temperature</category>
<state readOnly="true" pattern="%.1f %unit%"/>
</channel-type>
<channel-type id="ewt_speed" advanced="true">
<channel-type id="ghx_speed" advanced="true">
<item-type>Number</item-type>
<label>EWT Speed Up (%)</label>
<label>GHX Speed Up (%)</label>
<description>Speed up of the geothermal heat exchanger</description>
<category>Number</category>
<state readOnly="true"/>
@ -833,6 +849,100 @@
<state readOnly="true"/>
</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">
<item-type>Switch</item-type>
<label>L1 Switch</label>
@ -1140,7 +1250,7 @@
<channel-type id="analog_priority" advanced="true">
<item-type>Number</item-type>
<label>Analog Priority</label>
<description>Priority of control</description>
<description>Priority of analog inputs for highest fan level</description>
<category>Number</category>
<state readOnly="false">
<options>