diff --git a/README.md b/README.md index 4a577da..974be38 100644 --- a/README.md +++ b/README.md @@ -230,7 +230,7 @@ The channels of a thing are determined automatically based on the chosen EEP. | occupancy | Switch | Occupancy button pressed (ON) or released (OFF) | | motionDetection | Switch | On=Motion detected, Off=not | | setPoint | Number | linear set point | -| fanSpeedStage | String | Fan speed: -1 (Auto), 0, 1, 2, 3 | +| fanSpeedStage | Number | Fan speed: -1 (Auto), 0, 1, 2, 3, 4, 5, 6 | | dimmer | Dimmer | Dimmer value in percent | | generalSwitch(/A/B) | Switch | Switch something (channel A/B) ON/OFF | | rollershutter | Rollershutter | Shut time (shutTime) in seconds can be configured | @@ -246,6 +246,7 @@ The channels of a thing are determined automatically based on the chosen EEP. | batteryVoltage | Number:ElectricPotential | Battery voltage for things with battery | | energyStorage | Number:ElectricPotential | Energy storage, don't know what this means... | | batterLevel | Number | Battery level in percent | +| dayNightModeState | Number | 0 = Night mode on, 1 = day mode on | | rssi | Number | Received Signal Strength Indication (dBm) of last received message | | repeatCount | Number | Number of repeaters involved in the transmission of the telegram | | lastReceived | DateTime | Date and time the last telegram was received | diff --git a/src/main/java/org/openhab/binding/enocean/internal/EnOceanBindingConstants.java b/src/main/java/org/openhab/binding/enocean/internal/EnOceanBindingConstants.java index 88a6dbe..9df661c 100644 --- a/src/main/java/org/openhab/binding/enocean/internal/EnOceanBindingConstants.java +++ b/src/main/java/org/openhab/binding/enocean/internal/EnOceanBindingConstants.java @@ -114,6 +114,7 @@ public class EnOceanBindingConstants { public final static String CHANNEL_CURRENTNUMBER = "currentNumber"; public final static String CHANNEL_SMOKDEDETECTION = "smokeDetection"; public final static String CHANNEL_PILOTWIREMODE = "pilotWireMode"; + public final static String CHANNEL_DAYNIGHTMODESTATE = "dayNightModeState"; public final static String CHANNEL_PUSHBUTTON = "pushButton"; public final static String CHANNEL_DOUBLEPRESS = "doublePress"; @@ -195,7 +196,7 @@ public class EnOceanBindingConstants { put(CHANNEL_HUMIDITY, new EnOceanChannelDescription( new ChannelTypeUID(BINDING_ID, CHANNEL_HUMIDITY), CoreItemFactory.NUMBER)); put(CHANNEL_FANSPEEDSTAGE, new EnOceanChannelDescription( - new ChannelTypeUID(BINDING_ID, CHANNEL_FANSPEEDSTAGE), CoreItemFactory.STRING)); + new ChannelTypeUID(BINDING_ID, CHANNEL_FANSPEEDSTAGE), CoreItemFactory.NUMBER)); put(CHANNEL_OCCUPANCY, new EnOceanChannelDescription( new ChannelTypeUID(BINDING_ID, CHANNEL_OCCUPANCY), CoreItemFactory.SWITCH)); put(CHANNEL_MOTIONDETECTION, new EnOceanChannelDescription( @@ -222,6 +223,8 @@ public class EnOceanBindingConstants { new ChannelTypeUID(BINDING_ID, CHANNEL_SMOKDEDETECTION), CoreItemFactory.SWITCH)); put(CHANNEL_PILOTWIREMODE, new EnOceanChannelDescription( new ChannelTypeUID(BINDING_ID, CHANNEL_PILOTWIREMODE), CoreItemFactory.NUMBER)); + put(CHANNEL_DAYNIGHTMODESTATE, new EnOceanChannelDescription( + new ChannelTypeUID(BINDING_ID, CHANNEL_DAYNIGHTMODESTATE), CoreItemFactory.NUMBER)); put(CHANNEL_SETPOINT, new EnOceanChannelDescription( new ChannelTypeUID(BINDING_ID, CHANNEL_SETPOINT), CoreItemFactory.NUMBER)); put(CHANNEL_CONTACT, new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_CONTACT), diff --git a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10.java b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10.java index 241d818..a634796 100644 --- a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10.java +++ b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10.java @@ -19,9 +19,10 @@ import org.eclipse.smarthome.config.core.Configuration; import org.eclipse.smarthome.core.library.types.DecimalType; import org.eclipse.smarthome.core.library.types.OnOffType; +import org.eclipse.smarthome.core.library.types.OpenClosedType; import org.eclipse.smarthome.core.library.types.QuantityType; -import org.eclipse.smarthome.core.library.types.StringType; import org.eclipse.smarthome.core.library.unit.SIUnits; +import org.eclipse.smarthome.core.library.unit.SmartHomeUnits; import org.eclipse.smarthome.core.types.State; import org.eclipse.smarthome.core.types.UnDefType; import org.openhab.binding.enocean.internal.eep.Base._4BSMessage; @@ -37,32 +38,90 @@ public A5_10(ERP1Message packet) { super(packet); } + protected int getSetPointValue() { + // this is the default one + return getDB_2Value(); + } + + protected int getMaxUnscaledValue() { + return 255; + } + + protected double getTempScalingFactor() { + return -6.375; // 255/40 + } + + protected State getTemperature() { + double temp = (getDB_1Value() - getMaxUnscaledValue()) / getTempScalingFactor(); + return new QuantityType<>(temp, SIUnits.CELSIUS); + } + + protected State getFanSpeedStage() { + if (getDB_3Value() > 209) { + return new DecimalType(-1); + } else if (getDB_3Value() > 189) { + return new DecimalType(0); + } else if (getDB_3Value() > 164) { + return new DecimalType(1); + } else if (getDB_3Value() > 144) { + return new DecimalType(2); + } else { + return new DecimalType(3); + } + } + + protected int getIlluminationValue(){ + return getDB_3Value(); + } + + protected State getIllumination() { + return new QuantityType<>(getIlluminationValue() * 4, SmartHomeUnits.LUX); + } + + protected double getHumidityValue() { + return getDB_2Value(); + } + + protected State getSupplyVoltage() { + double voltage = ((double)getDB_3Value()) / 50.0; + return new QuantityType<>(voltage, SmartHomeUnits.VOLT); + } + @Override protected State convertToStateImpl(String channelId, String channelTypeId, Function getCurrentStateFunc, Configuration config) { switch (channelId) { + + case CHANNEL_BATTERY_VOLTAGE: + return getSupplyVoltage(); + + case CHANNEL_ILLUMINATION: + return getIllumination(); + case CHANNEL_FANSPEEDSTAGE: - if (getDB_3Value() > 209) { - return new StringType("-1"); - } else if (getDB_3Value() > 189) { - return new StringType("0"); - } else if (getDB_3Value() > 164) { - return new StringType("1"); - } else if (getDB_3Value() > 144) { - return new StringType("2"); - } else { - return new StringType("3"); - } + return getFanSpeedStage(); case CHANNEL_SETPOINT: - return new DecimalType(getDB_2Value()); + return new DecimalType(getSetPointValue()); + + case CHANNEL_HUMIDITY: + return new DecimalType(getHumidityValue() / 2.5); case CHANNEL_TEMPERATURE: - double temp = (getDB_1Value() - 255) / -6.375; - return new QuantityType<>(temp, SIUnits.CELSIUS); + return getTemperature(); + + case CHANNEL_BATTERYLOW: + return getBit(getDB_0(), 4) ? OnOffType.ON : OnOffType.OFF; case CHANNEL_OCCUPANCY: return getBit(getDB_0(), 0) ? OnOffType.OFF : OnOffType.ON; + + case CHANNEL_DAYNIGHTMODESTATE: + return new DecimalType(getDB_0Value() & 0x01); + + case CHANNEL_CONTACT: + return getBit(getDB_0(), 0) ? OpenClosedType.OPEN : OpenClosedType.CLOSED; + } return UnDefType.UNDEF; diff --git a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_10.java b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_10.java index ead768b..7ed3cc5 100644 --- a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_10.java +++ b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_10.java @@ -12,6 +12,9 @@ */ package org.openhab.binding.enocean.internal.eep.A5_10; +import org.eclipse.smarthome.core.library.types.QuantityType; +import org.eclipse.smarthome.core.library.unit.SIUnits; +import org.eclipse.smarthome.core.types.State; import org.openhab.binding.enocean.internal.messages.ERP1Message; /** @@ -20,7 +23,20 @@ */ public class A5_10_10 extends A5_10 { + protected final double tempFactor = 40.0 / 250.0; + public A5_10_10(ERP1Message packet) { super(packet); } + + @Override + protected int getSetPointValue() { + return getDB_3Value(); + } + + @Override + protected State getTemperature() { + double temp = (getDB_1Value()) * tempFactor; + return new QuantityType<>(temp, SIUnits.CELSIUS); + } } diff --git a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_11.java b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_11.java index d3d6f5d..422bc5a 100644 --- a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_11.java +++ b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_11.java @@ -18,7 +18,7 @@ * * @author Daniel Weber - Initial contribution */ -public class A5_10_11 extends A5_10 { +public class A5_10_11 extends A5_10_10 { public A5_10_11(ERP1Message packet) { super(packet); diff --git a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_12.java b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_12.java index da00c43..0d04c50 100644 --- a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_12.java +++ b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_12.java @@ -18,7 +18,7 @@ * * @author Daniel Weber - Initial contribution */ -public class A5_10_12 extends A5_10 { +public class A5_10_12 extends A5_10_10 { public A5_10_12(ERP1Message packet) { super(packet); diff --git a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_13.java b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_13.java index c848e96..50f6b11 100644 --- a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_13.java +++ b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_13.java @@ -18,7 +18,7 @@ * * @author Daniel Weber - Initial contribution */ -public class A5_10_13 extends A5_10 { +public class A5_10_13 extends A5_10_10 { public A5_10_13(ERP1Message packet) { super(packet); diff --git a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_14.java b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_14.java index b390548..07d6cbe 100644 --- a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_14.java +++ b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_14.java @@ -18,7 +18,7 @@ * * @author Daniel Weber - Initial contribution */ -public class A5_10_14 extends A5_10 { +public class A5_10_14 extends A5_10_10 { public A5_10_14(ERP1Message packet) { super(packet); diff --git a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_15.java b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_15.java index a5e9c1a..6152ee1 100644 --- a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_15.java +++ b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_15.java @@ -12,6 +12,9 @@ */ package org.openhab.binding.enocean.internal.eep.A5_10; +import org.eclipse.smarthome.core.library.types.QuantityType; +import org.eclipse.smarthome.core.library.unit.SIUnits; +import org.eclipse.smarthome.core.types.State; import org.openhab.binding.enocean.internal.messages.ERP1Message; /** @@ -23,4 +26,16 @@ public class A5_10_15 extends A5_10 { public A5_10_15(ERP1Message packet) { super(packet); } + + @Override + protected int getSetPointValue() { + return getDB_2Value() >>> 2; + } + + @Override + protected State getTemperature() { + int value = ((getDB_2Value() & 0b11) << 8) + getDB_1Value(); + double temp = 41.2 - (value * (41.2 + 10.0) / 1023.0); + return new QuantityType<>(temp, SIUnits.CELSIUS); + } } diff --git a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_16.java b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_16.java index 09093e0..4b05227 100644 --- a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_16.java +++ b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_16.java @@ -18,7 +18,7 @@ * * @author Daniel Weber - Initial contribution */ -public class A5_10_16 extends A5_10 { +public class A5_10_16 extends A5_10_15 { public A5_10_16(ERP1Message packet) { super(packet); diff --git a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_17.java b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_17.java index fbb3c55..8bb9aeb 100644 --- a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_17.java +++ b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_17.java @@ -18,7 +18,7 @@ * * @author Daniel Weber - Initial contribution */ -public class A5_10_17 extends A5_10 { +public class A5_10_17 extends A5_10_15 { public A5_10_17(ERP1Message packet) { super(packet); diff --git a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_18.java b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_18.java index b63f4fa..5ebc3d5 100644 --- a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_18.java +++ b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_18.java @@ -12,6 +12,8 @@ */ package org.openhab.binding.enocean.internal.eep.A5_10; +import org.eclipse.smarthome.core.library.types.DecimalType; +import org.eclipse.smarthome.core.types.State; import org.openhab.binding.enocean.internal.messages.ERP1Message; /** @@ -23,4 +25,19 @@ public class A5_10_18 extends A5_10 { public A5_10_18(ERP1Message packet) { super(packet); } + + @Override + protected int getMaxUnscaledValue() { + return 250; + } + + @Override + protected double getTempScalingFactor() { + return -6.25; // 250/40 + } + + @Override + protected State getFanSpeedStage(){ + return new DecimalType((getDB_0Value() >>> 4) -1); + } } diff --git a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_19.java b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_19.java index 4fb6c43..d7a3920 100644 --- a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_19.java +++ b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_19.java @@ -18,9 +18,14 @@ * * @author Daniel Weber - Initial contribution */ -public class A5_10_19 extends A5_10 { +public class A5_10_19 extends A5_10_18 { public A5_10_19(ERP1Message packet) { super(packet); } + + @Override + protected double getHumidityValue() { + return getDB_3Value(); + } } diff --git a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1A.java b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1A.java index a15a1d4..2254948 100644 --- a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1A.java +++ b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1A.java @@ -18,7 +18,7 @@ * * @author Daniel Weber - Initial contribution */ -public class A5_10_1A extends A5_10 { +public class A5_10_1A extends A5_10_18 { public A5_10_1A(ERP1Message packet) { super(packet); diff --git a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1B.java b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1B.java index d424dfb..55ebc60 100644 --- a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1B.java +++ b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1B.java @@ -18,9 +18,14 @@ * * @author Daniel Weber - Initial contribution */ -public class A5_10_1B extends A5_10 { +public class A5_10_1B extends A5_10_18 { public A5_10_1B(ERP1Message packet) { super(packet); } + + @Override + protected int getIlluminationValue() { + return getDB_2Value(); + } } diff --git a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1C.java b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1C.java index 862138a..af3a808 100644 --- a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1C.java +++ b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1C.java @@ -18,7 +18,7 @@ * * @author Daniel Weber - Initial contribution */ -public class A5_10_1C extends A5_10 { +public class A5_10_1C extends A5_10_18 { public A5_10_1C(ERP1Message packet) { super(packet); diff --git a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1D.java b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1D.java index 2455271..54efeda 100644 --- a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1D.java +++ b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1D.java @@ -18,9 +18,14 @@ * * @author Daniel Weber - Initial contribution */ -public class A5_10_1D extends A5_10 { +public class A5_10_1D extends A5_10_18 { public A5_10_1D(ERP1Message packet) { super(packet); } + + @Override + protected double getHumidityValue() { + return getDB_3Value(); + } } diff --git a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1E.java b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1E.java index 7fdc4ee..6b9520f 100644 --- a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1E.java +++ b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1E.java @@ -18,7 +18,7 @@ * * @author Daniel Weber - Initial contribution */ -public class A5_10_1E extends A5_10 { +public class A5_10_1E extends A5_10_1B { public A5_10_1E(ERP1Message packet) { super(packet); diff --git a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_20.java b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_20.java index 7205eee..b2634ef 100644 --- a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_20.java +++ b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_20.java @@ -18,7 +18,7 @@ * * @author Daniel Weber - Initial contribution */ -public class A5_10_20 extends A5_10 { +public class A5_10_20 extends A5_10_10 { public A5_10_20(ERP1Message packet) { super(packet); diff --git a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_21.java b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_21.java index aa846a5..73bcb3a 100644 --- a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_21.java +++ b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_21.java @@ -18,7 +18,7 @@ * * @author Daniel Weber - Initial contribution */ -public class A5_10_21 extends A5_10 { +public class A5_10_21 extends A5_10_10 { public A5_10_21(ERP1Message packet) { super(packet); diff --git a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_22.java b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_22.java index 10eb5e0..3a5ab1b 100644 --- a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_22.java +++ b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_22.java @@ -12,15 +12,22 @@ */ package org.openhab.binding.enocean.internal.eep.A5_10; +import org.eclipse.smarthome.core.library.types.DecimalType; +import org.eclipse.smarthome.core.types.State; import org.openhab.binding.enocean.internal.messages.ERP1Message; /** * * @author Daniel Weber - Initial contribution */ -public class A5_10_22 extends A5_10 { +public class A5_10_22 extends A5_10_10 { public A5_10_22(ERP1Message packet) { super(packet); } + + @Override + protected State getFanSpeedStage(){ + return new DecimalType((getDB_0Value() >>> 5) -1); + } } diff --git a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_23.java b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_23.java index e7537f8..ed788fc 100644 --- a/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_23.java +++ b/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_23.java @@ -18,7 +18,7 @@ * * @author Daniel Weber - Initial contribution */ -public class A5_10_23 extends A5_10 { +public class A5_10_23 extends A5_10_22 { public A5_10_23(ERP1Message packet) { super(packet); diff --git a/src/main/java/org/openhab/binding/enocean/internal/eep/EEPType.java b/src/main/java/org/openhab/binding/enocean/internal/eep/EEPType.java index 373d9a5..e534475 100644 --- a/src/main/java/org/openhab/binding/enocean/internal/eep/EEPType.java +++ b/src/main/java/org/openhab/binding/enocean/internal/eep/EEPType.java @@ -295,7 +295,7 @@ public enum EEPType { RoomPanel_A5_10_01(RORG._4BS, 0x10, 0x01, false, A5_10_01.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, CHANNEL_SETPOINT, CHANNEL_FANSPEEDSTAGE, CHANNEL_OCCUPANCY), RoomPanel_A5_10_02(RORG._4BS, 0x10, 0x02, false, A5_10_02.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, - CHANNEL_SETPOINT, CHANNEL_FANSPEEDSTAGE), + CHANNEL_SETPOINT, CHANNEL_FANSPEEDSTAGE, CHANNEL_DAYNIGHTMODESTATE), RoomPanel_A5_10_03(RORG._4BS, 0x10, 0x03, false, A5_10_03.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, CHANNEL_SETPOINT), RoomPanel_A5_10_04(RORG._4BS, 0x10, 0x04, false, A5_10_04.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, @@ -303,61 +303,61 @@ public enum EEPType { RoomPanel_A5_10_05(RORG._4BS, 0x10, 0x05, false, A5_10_05.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, CHANNEL_SETPOINT, CHANNEL_OCCUPANCY), RoomPanel_A5_10_06(RORG._4BS, 0x10, 0x06, false, A5_10_06.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, - CHANNEL_SETPOINT), + CHANNEL_SETPOINT, CHANNEL_DAYNIGHTMODESTATE), RoomPanel_A5_10_07(RORG._4BS, 0x10, 0x07, false, A5_10_07.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, CHANNEL_FANSPEEDSTAGE), RoomPanel_A5_10_08(RORG._4BS, 0x10, 0x08, false, A5_10_08.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, CHANNEL_FANSPEEDSTAGE, CHANNEL_OCCUPANCY), RoomPanel_A5_10_09(RORG._4BS, 0x10, 0x09, false, A5_10_09.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, - CHANNEL_FANSPEEDSTAGE), + CHANNEL_FANSPEEDSTAGE, CHANNEL_DAYNIGHTMODESTATE), RoomPanel_A5_10_0A(RORG._4BS, 0x10, 0x0A, false, A5_10_0A.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, - CHANNEL_SETPOINT), + CHANNEL_SETPOINT, CHANNEL_CONTACT), RoomPanel_A5_10_0B(RORG._4BS, 0x10, 0x0B, false, A5_10_0B.class, THING_TYPE_ROOMOPERATINGPANEL, - CHANNEL_TEMPERATURE), + CHANNEL_TEMPERATURE, CHANNEL_CONTACT), RoomPanel_A5_10_0C(RORG._4BS, 0x10, 0x0C, false, A5_10_0C.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, CHANNEL_OCCUPANCY), RoomPanel_A5_10_0D(RORG._4BS, 0x10, 0x0D, false, A5_10_0D.class, THING_TYPE_ROOMOPERATINGPANEL, - CHANNEL_TEMPERATURE), - RoomPanel_A5_10_10(RORG._4BS, 0x10, 0x10, false, A5_10_10.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, - CHANNEL_SETPOINT, CHANNEL_OCCUPANCY), - RoomPanel_A5_10_11(RORG._4BS, 0x10, 0x11, false, A5_10_11.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, - CHANNEL_SETPOINT), - RoomPanel_A5_10_12(RORG._4BS, 0x10, 0x12, false, A5_10_12.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, - CHANNEL_SETPOINT), - RoomPanel_A5_10_13(RORG._4BS, 0x10, 0x13, false, A5_10_13.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, - CHANNEL_OCCUPANCY), + CHANNEL_TEMPERATURE, CHANNEL_DAYNIGHTMODESTATE), + RoomPanel_A5_10_10(RORG._4BS, 0x10, 0x10, false, A5_10_10.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_SETPOINT, + CHANNEL_HUMIDITY, CHANNEL_TEMPERATURE, CHANNEL_OCCUPANCY), + RoomPanel_A5_10_11(RORG._4BS, 0x10, 0x11, false, A5_10_11.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_SETPOINT, + CHANNEL_HUMIDITY, CHANNEL_TEMPERATURE, CHANNEL_DAYNIGHTMODESTATE), + RoomPanel_A5_10_12(RORG._4BS, 0x10, 0x12, false, A5_10_12.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_SETPOINT, + CHANNEL_HUMIDITY, CHANNEL_TEMPERATURE), + RoomPanel_A5_10_13(RORG._4BS, 0x10, 0x13, false, A5_10_13.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_HUMIDITY, + CHANNEL_TEMPERATURE, CHANNEL_OCCUPANCY), RoomPanel_A5_10_14(RORG._4BS, 0x10, 0x14, false, A5_10_14.class, THING_TYPE_ROOMOPERATINGPANEL, - CHANNEL_TEMPERATURE), + CHANNEL_HUMIDITY, CHANNEL_TEMPERATURE, CHANNEL_DAYNIGHTMODESTATE), RoomPanel_A5_10_15(RORG._4BS, 0x10, 0x15, false, A5_10_15.class, THING_TYPE_ROOMOPERATINGPANEL, - CHANNEL_TEMPERATURE), - RoomPanel_A5_10_16(RORG._4BS, 0x10, 0x16, false, A5_10_16.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, - CHANNEL_OCCUPANCY), + CHANNEL_SETPOINT, CHANNEL_TEMPERATURE), + RoomPanel_A5_10_16(RORG._4BS, 0x10, 0x16, false, A5_10_16.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_SETPOINT, + CHANNEL_TEMPERATURE, CHANNEL_OCCUPANCY), RoomPanel_A5_10_17(RORG._4BS, 0x10, 0x17, false, A5_10_17.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, CHANNEL_OCCUPANCY), - RoomPanel_A5_10_18(RORG._4BS, 0x10, 0x18, false, A5_10_18.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, - CHANNEL_OCCUPANCY), - RoomPanel_A5_10_19(RORG._4BS, 0x10, 0x19, false, A5_10_19.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, - CHANNEL_OCCUPANCY), - RoomPanel_A5_10_1A(RORG._4BS, 0x10, 0x1A, false, A5_10_1A.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, - CHANNEL_OCCUPANCY), - RoomPanel_A5_10_1B(RORG._4BS, 0x10, 0x1B, false, A5_10_1B.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, - CHANNEL_OCCUPANCY), - RoomPanel_A5_10_1C(RORG._4BS, 0x10, 0x1C, false, A5_10_1C.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, - CHANNEL_OCCUPANCY), - RoomPanel_A5_10_1D(RORG._4BS, 0x10, 0x1D, false, A5_10_1D.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, - CHANNEL_OCCUPANCY), - RoomPanel_A5_10_1E(RORG._4BS, 0x10, 0x1E, false, A5_10_1E.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, - CHANNEL_OCCUPANCY), - RoomPanel_A5_10_1F(RORG._4BS, 0x10, 0x1F, false, A5_10_1F.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, - CHANNEL_OCCUPANCY, CHANNEL_SETPOINT, CHANNEL_FANSPEEDSTAGE), - RoomPanel_A5_10_20(RORG._4BS, 0x10, 0x20, false, A5_10_20.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, - CHANNEL_SETPOINT), - RoomPanel_A5_10_21(RORG._4BS, 0x10, 0x21, false, A5_10_21.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, - CHANNEL_SETPOINT), - RoomPanel_A5_10_22(RORG._4BS, 0x10, 0x22, false, A5_10_22.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, - CHANNEL_SETPOINT), - RoomPanel_A5_10_23(RORG._4BS, 0x10, 0x23, false, A5_10_23.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_TEMPERATURE, - CHANNEL_SETPOINT, CHANNEL_OCCUPANCY), + RoomPanel_A5_10_18(RORG._4BS, 0x10, 0x18, false, A5_10_18.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_ILLUMINATION, + CHANNEL_SETPOINT, CHANNEL_TEMPERATURE, CHANNEL_FANSPEEDSTAGE, CHANNEL_OCCUPANCY), + RoomPanel_A5_10_19(RORG._4BS, 0x10, 0x19, false, A5_10_19.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_HUMIDITY, + CHANNEL_SETPOINT, CHANNEL_TEMPERATURE, CHANNEL_FANSPEEDSTAGE, CHANNEL_OCCUPANCY), + RoomPanel_A5_10_1A(RORG._4BS, 0x10, 0x1A, false, A5_10_1A.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_BATTERY_LEVEL, + CHANNEL_SETPOINT, CHANNEL_TEMPERATURE, CHANNEL_FANSPEEDSTAGE, CHANNEL_OCCUPANCY), + RoomPanel_A5_10_1B(RORG._4BS, 0x10, 0x1B, false, A5_10_1B.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_BATTERY_LEVEL, + CHANNEL_ILLUMINATION, CHANNEL_TEMPERATURE, CHANNEL_FANSPEEDSTAGE, CHANNEL_OCCUPANCY), + RoomPanel_A5_10_1C(RORG._4BS, 0x10, 0x1C, false, A5_10_1C.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_ILLUMINATION, + CHANNEL_TEMPERATURE, CHANNEL_FANSPEEDSTAGE, CHANNEL_OCCUPANCY), + RoomPanel_A5_10_1D(RORG._4BS, 0x10, 0x1D, false, A5_10_1D.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_HUMIDITY, + CHANNEL_TEMPERATURE, CHANNEL_FANSPEEDSTAGE, CHANNEL_OCCUPANCY), + RoomPanel_A5_10_1E(RORG._4BS, 0x10, 0x1E, false, A5_10_1E.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_BATTERY_LEVEL, + CHANNEL_ILLUMINATION, CHANNEL_TEMPERATURE, CHANNEL_FANSPEEDSTAGE, CHANNEL_OCCUPANCY), + RoomPanel_A5_10_1F(RORG._4BS, 0x10, 0x1F, false, A5_10_1F.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_FANSPEEDSTAGE, + CHANNEL_SETPOINT, CHANNEL_TEMPERATURE, CHANNEL_OCCUPANCY), + RoomPanel_A5_10_20(RORG._4BS, 0x10, 0x20, false, A5_10_20.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_SETPOINT, + CHANNEL_TEMPERATURE, CHANNEL_BATTERYLOW), + RoomPanel_A5_10_21(RORG._4BS, 0x10, 0x21, false, A5_10_21.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_SETPOINT, + CHANNEL_TEMPERATURE, CHANNEL_HUMIDITY, CHANNEL_BATTERYLOW), + RoomPanel_A5_10_22(RORG._4BS, 0x10, 0x22, false, A5_10_22.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_SETPOINT, + CHANNEL_HUMIDITY, CHANNEL_TEMPERATURE, CHANNEL_FANSPEEDSTAGE), + RoomPanel_A5_10_23(RORG._4BS, 0x10, 0x23, false, A5_10_23.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_SETPOINT, + CHANNEL_HUMIDITY, CHANNEL_TEMPERATURE, CHANNEL_FANSPEEDSTAGE, CHANNEL_OCCUPANCY), AutomatedMeterReading_00(RORG._4BS, 0x12, 0x00, false, A5_12_00.class, THING_TYPE_AUTOMATEDMETERSENSOR, CHANNEL_COUNTER, CHANNEL_CURRENTNUMBER), diff --git a/src/main/resources/ESH-INF/thing/channels.xml b/src/main/resources/ESH-INF/thing/channels.xml index fe3b553..bc4073e 100644 --- a/src/main/resources/ESH-INF/thing/channels.xml +++ b/src/main/resources/ESH-INF/thing/channels.xml @@ -110,7 +110,7 @@ - String + Number @@ -119,6 +119,9 @@ + + + @@ -489,4 +492,16 @@ + + Number + + Day (1) or Night (0) mode activated. + + + + + + + +