From b9b9bbb74cda8632e9070e45e306629f54af90cc Mon Sep 17 00:00:00 2001 From: Daniel Weber <25605184+fruggy83@users.noreply.github.com> Date: Mon, 28 Aug 2023 22:49:20 +0200 Subject: [PATCH] [enocean] Fix humidity and temperature readings for EEP family A5_10 (#15506) * Updated A5-10 EEP family (corrected readings, added new channels) * Changed fanSpeedStage channel to type Number and added new options to it * Added dayNightModeState channel Fixes #15458 Signed-off-by: Daniel Weber --- bundles/org.openhab.binding.enocean/README.md | 5 +- .../internal/EnOceanBindingConstants.java | 6 +- .../binding/enocean/internal/Helper.java | 22 ++++ .../enocean/internal/eep/A5_10/A5_10.java | 110 +++++++++++++++--- .../enocean/internal/eep/A5_10/A5_10_10.java | 30 ++++- .../enocean/internal/eep/A5_10/A5_10_11.java | 2 +- .../enocean/internal/eep/A5_10/A5_10_12.java | 2 +- .../enocean/internal/eep/A5_10/A5_10_13.java | 2 +- .../enocean/internal/eep/A5_10/A5_10_14.java | 2 +- .../enocean/internal/eep/A5_10/A5_10_15.java | 35 +++++- .../enocean/internal/eep/A5_10/A5_10_16.java | 2 +- .../enocean/internal/eep/A5_10/A5_10_17.java | 2 +- .../enocean/internal/eep/A5_10/A5_10_18.java | 16 ++- .../enocean/internal/eep/A5_10/A5_10_19.java | 7 +- .../enocean/internal/eep/A5_10/A5_10_1A.java | 2 +- .../enocean/internal/eep/A5_10/A5_10_1B.java | 7 +- .../enocean/internal/eep/A5_10/A5_10_1C.java | 2 +- .../enocean/internal/eep/A5_10/A5_10_1D.java | 7 +- .../enocean/internal/eep/A5_10/A5_10_1E.java | 2 +- .../enocean/internal/eep/A5_10/A5_10_20.java | 2 +- .../enocean/internal/eep/A5_10/A5_10_21.java | 2 +- .../enocean/internal/eep/A5_10/A5_10_22.java | 9 +- .../enocean/internal/eep/A5_10/A5_10_23.java | 2 +- .../binding/enocean/internal/eep/EEPType.java | 90 +++++++------- .../resources/OH-INF/i18n/enocean.properties | 7 ++ .../main/resources/OH-INF/thing/channels.xml | 17 ++- 26 files changed, 308 insertions(+), 84 deletions(-) diff --git a/bundles/org.openhab.binding.enocean/README.md b/bundles/org.openhab.binding.enocean/README.md index e3488717c..4454cfcff 100644 --- a/bundles/org.openhab.binding.enocean/README.md +++ b/bundles/org.openhab.binding.enocean/README.md @@ -89,7 +89,7 @@ Hence if your device supports one of the following EEPs the chances are good tha | occupancySensor | A5-07 | 0x01-03 | illumination, batteryVoltage, motionDetection | NodON PIR-2-1-01 | Discovery | | lightTemperatureOccupancySensor | A5-08 | 0x01-03 | illumination, temperature, occupancy, motionDetection | Eltako FABH | Discovery | | lightSensor | A5-06 | 0x01 | illumination | Eltako TF-AHDSB | Discovery | -| roomOperatingPanel | A5-10 | 0x01-23 | temperature, setPoint, fanSpeedStage, occupancy | Thermokon SR04 | Discovery | +| roomOperatingPanel | A5-10 | 0x01-23 | temperature, setPoint, fanSpeedStage, occupancy, dayNightModeState, conntact, humidity, illumination, batteryLevel, batteryLow | Thermokon SR04 | Discovery | | automatedMeterSensor | A5-12 | 0x00-03 | counter, currentNumber, instantpower, totalusage, amrLitre, amrCubicMetre | FWZ12 | Discovery | | environmentalSensor | A5-13 | 0x01-02 | temperature, windspeed, illumination, rainStatus | FWS61 | Discovery | | centralCommand | A5-38 | 0x08 | dimmer, generalSwitch | Eltako FUD14, FSR14 | Teach-in | @@ -297,7 +297,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 | @@ -350,6 +350,7 @@ The channels of a thing are determined automatically based on the chosen EEP. | windowBreachEvent | Trigger | Emits event 'ALARM' | | protectionPlusEvent | Trigger | Emits event 'ALARM' | | vacationModeToggleEvent | Trigger | Emits events 'ACTIVATED', 'DEACTIVATED' | +| dayNightModeState | Number | 0 = Night mode on, 1 = day mode on | Items linked to bi-directional actuators (actuator sends status messages back) should always disable the `autoupdate`. This is especially true for Eltako rollershutter, as their position is calculated out of the current position and the moving time. diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/EnOceanBindingConstants.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/EnOceanBindingConstants.java index 6de90dbbd..346f20252 100644 --- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/EnOceanBindingConstants.java +++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/EnOceanBindingConstants.java @@ -221,6 +221,7 @@ public class EnOceanBindingConstants { public static final String CHANNEL_EXHAUSTAIRFANAIRFLOWRATE = "exhaustAirFanAirFlowRate"; public static final String CHANNEL_SUPPLYFANSPEED = "supplyFanSpeed"; public static final String CHANNEL_EXHAUSTFANSPEED = "exhaustFanSpeed"; + public final static String CHANNEL_DAYNIGHTMODESTATE = "dayNightModeState"; public static final Map CHANNELID2CHANNELDESCRIPTION = Map.ofEntries( Map.entry(CHANNEL_GENERAL_SWITCHING, @@ -263,7 +264,7 @@ public class EnOceanBindingConstants { CoreItemFactory.NUMBER)), Map.entry(CHANNEL_FANSPEEDSTAGE, new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_FANSPEEDSTAGE), - CoreItemFactory.STRING)), + CoreItemFactory.NUMBER)), Map.entry(CHANNEL_OCCUPANCY, new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_OCCUPANCY), CoreItemFactory.SWITCH)), @@ -575,6 +576,9 @@ public class EnOceanBindingConstants { new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_EXHAUSTFANSPEED), CoreItemFactory.NUMBER + ItemUtil.EXTENSION_SEPARATOR + Dimensionless.class.getSimpleName())), + Map.entry(CHANNEL_DAYNIGHTMODESTATE, + new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_DAYNIGHTMODESTATE), + CoreItemFactory.NUMBER)), Map.entry(CHANNEL_STATUS_REQUEST_EVENT, new EnOceanChannelDescription(new ChannelTypeUID(BINDING_ID, CHANNEL_STATUS_REQUEST_EVENT), null, diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/Helper.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/Helper.java index 6420e8d68..897e8010c 100644 --- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/Helper.java +++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/Helper.java @@ -53,4 +53,26 @@ public class Helper { return defaultValue; } } + + /** + * Scales the given value + * + * @param value Value to be scaled + * @param minUnscaled Value for min value in unscaled dimension + * @param maxUnscaled Value for max value in unscaled dimension + * @param minValue + * @param maxValue + * @return + */ + public static double scaleValue(double value, double minUnscaled, double maxUnscaled, double minValue, + double maxValue) { + double range = maxValue - minValue; + double unscaledRange = maxUnscaled - minUnscaled; + + if (maxUnscaled > minUnscaled) { + return minValue + (value * range / unscaledRange); + } else { + return maxValue + (value * range / unscaledRange); + } + } } diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10.java index a78169252..f97c9e704 100644 --- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10.java +++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10.java @@ -18,19 +18,24 @@ import java.util.function.Function; import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.Nullable; +import org.openhab.binding.enocean.internal.Helper; import org.openhab.binding.enocean.internal.eep.Base._4BSMessage; import org.openhab.binding.enocean.internal.messages.ERP1Message; import org.openhab.core.config.core.Configuration; import org.openhab.core.library.types.DecimalType; import org.openhab.core.library.types.OnOffType; +import org.openhab.core.library.types.OpenClosedType; import org.openhab.core.library.types.QuantityType; -import org.openhab.core.library.types.StringType; import org.openhab.core.library.unit.SIUnits; +import org.openhab.core.library.unit.Units; import org.openhab.core.types.State; import org.openhab.core.types.UnDefType; /** - * + * From A5_10_01 up to A5_10_0D temperature is given as a 8Bit value (range: 255..0). + * Therefore higher values mean lower temperatures. + * Temperature range 0..40. + * * @author Daniel Weber - Initial contribution */ @NonNullByDefault @@ -40,32 +45,105 @@ public abstract class A5_10 extends _4BSMessage { super(packet); } + protected int getSetPointValue() { + // this is the default one + return getDB2Value(); + } + + protected double getMinTemperatureValue() { + return 0.0; + } + + protected double getMinUnscaledTemperatureValue() { + return 255.0; + } + + protected double getMaxTemperatureValue() { + return 40.0; + } + + protected double getMaxUnscaledTemperatureValue() { + return 0.0; + } + + protected double getTemperatureValue() { + return getDB1Value(); + } + + protected State getTemperature() { + return new QuantityType<>( + Helper.scaleValue(getTemperatureValue(), getMinUnscaledTemperatureValue(), + getMaxUnscaledTemperatureValue(), getMinTemperatureValue(), getMaxTemperatureValue()), + SIUnits.CELSIUS); + } + + protected State getFanSpeedStage() { + if (getDB3Value() > 209) { + return new DecimalType(-1); + } else if (getDB3Value() > 189) { + return new DecimalType(0); + } else if (getDB3Value() > 164) { + return new DecimalType(1); + } else if (getDB3Value() > 144) { + return new DecimalType(2); + } else { + return new DecimalType(3); + } + } + + protected int getIlluminationValue() { + return getDB3Value(); + } + + protected State getIllumination() { + return new QuantityType<>(getIlluminationValue() * 4, Units.LUX); + } + + protected double getHumidityValue() { + return getDB2Value(); + } + + protected State getSupplyVoltage() { + double voltage = ((double) getDB3Value()) / 50.0; + return new QuantityType<>(voltage, Units.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 (getDB3Value() > 209) { - return new StringType("-1"); - } else if (getDB3Value() > 189) { - return new StringType("0"); - } else if (getDB3Value() > 164) { - return new StringType("1"); - } else if (getDB3Value() > 144) { - return new StringType("2"); - } else { - return new StringType("3"); - } + return getFanSpeedStage(); case CHANNEL_SETPOINT: - return new DecimalType(getDB2Value()); + return new DecimalType(getSetPointValue()); + + case CHANNEL_HUMIDITY: + return new DecimalType(getHumidityValue() / 2.5); case CHANNEL_TEMPERATURE: - double temp = (getDB1Value() - 255) / -6.375; - return new QuantityType<>(temp, SIUnits.CELSIUS); + return getTemperature(); + + case CHANNEL_BATTERYLOW: + return getBit(getDB0(), 4) ? OnOffType.ON : OnOffType.OFF; case CHANNEL_OCCUPANCY: return getBit(getDB0(), 0) ? OnOffType.OFF : OnOffType.ON; + + case CHANNEL_DAYNIGHTMODESTATE: + return new DecimalType(getDB0Value() & 0x01); + + case CHANNEL_CONTACT: + return getBit(getDB0(), 0) ? OpenClosedType.OPEN : OpenClosedType.CLOSED; + } return UnDefType.UNDEF; diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_10.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_10.java index e6e98a1a3..8714354ee 100644 --- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_10.java +++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_10.java @@ -16,7 +16,10 @@ import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.binding.enocean.internal.messages.ERP1Message; /** - * + * From A5_10_10 up to A5_10_14 temperature is given as a 8Bit value (range: 0..250!). + * Therefore higher values mean higher temperatures. + * Temperature range 0..40. + * * @author Daniel Weber - Initial contribution */ @NonNullByDefault @@ -25,4 +28,29 @@ public class A5_10_10 extends A5_10 { public A5_10_10(ERP1Message packet) { super(packet); } + + @Override + protected int getSetPointValue() { + return getDB3Value(); + } + + @Override + protected double getMinTemperatureValue() { + return 0.0; + } + + @Override + protected double getMinUnscaledTemperatureValue() { + return 0.0; + } + + @Override + protected double getMaxTemperatureValue() { + return 40.0; + } + + @Override + protected double getMaxUnscaledTemperatureValue() { + return 250.0; + } } diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_11.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_11.java index 78f53cd4c..49e23e12c 100644 --- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_11.java +++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_11.java @@ -20,7 +20,7 @@ import org.openhab.binding.enocean.internal.messages.ERP1Message; * @author Daniel Weber - Initial contribution */ @NonNullByDefault -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/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_12.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_12.java index e9a8b6665..d9098373a 100644 --- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_12.java +++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_12.java @@ -20,7 +20,7 @@ import org.openhab.binding.enocean.internal.messages.ERP1Message; * @author Daniel Weber - Initial contribution */ @NonNullByDefault -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/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_13.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_13.java index f647693e4..a265647cf 100644 --- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_13.java +++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_13.java @@ -20,7 +20,7 @@ import org.openhab.binding.enocean.internal.messages.ERP1Message; * @author Daniel Weber - Initial contribution */ @NonNullByDefault -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/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_14.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_14.java index 7085dac62..dfdcf155b 100644 --- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_14.java +++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_14.java @@ -20,7 +20,7 @@ import org.openhab.binding.enocean.internal.messages.ERP1Message; * @author Daniel Weber - Initial contribution */ @NonNullByDefault -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/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_15.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_15.java index 2cb138589..815536cc0 100644 --- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_15.java +++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_15.java @@ -16,7 +16,10 @@ import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.binding.enocean.internal.messages.ERP1Message; /** - * + * From A5_10_15 up to A5_10_17 temperature is given as a 10Bit value (range: 1023..0). + * Therefore higher values mean lower temperatures. + * Temperature range -10..41.2. + * * @author Daniel Weber - Initial contribution */ @NonNullByDefault @@ -25,4 +28,34 @@ public class A5_10_15 extends A5_10 { public A5_10_15(ERP1Message packet) { super(packet); } + + @Override + protected int getSetPointValue() { + return getDB2Value() >>> 2; + } + + @Override + protected double getMinTemperatureValue() { + return -10.0; + } + + @Override + protected double getMinUnscaledTemperatureValue() { + return 1023.0; + } + + @Override + protected double getMaxTemperatureValue() { + return 41.2; + } + + @Override + protected double getMaxUnscaledTemperatureValue() { + return 0.0; + } + + @Override + protected double getTemperatureValue() { + return ((getDB2Value() & 0b11) << 8) + getDB1Value(); + } } diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_16.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_16.java index af61d6b21..a1f7b117e 100644 --- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_16.java +++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_16.java @@ -20,7 +20,7 @@ import org.openhab.binding.enocean.internal.messages.ERP1Message; * @author Daniel Weber - Initial contribution */ @NonNullByDefault -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/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_17.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_17.java index 544a625a6..213872d48 100644 --- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_17.java +++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_17.java @@ -20,7 +20,7 @@ import org.openhab.binding.enocean.internal.messages.ERP1Message; * @author Daniel Weber - Initial contribution */ @NonNullByDefault -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/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_18.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_18.java index 519177ade..025b430bf 100644 --- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_18.java +++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_18.java @@ -14,9 +14,14 @@ package org.openhab.binding.enocean.internal.eep.A5_10; import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.binding.enocean.internal.messages.ERP1Message; +import org.openhab.core.library.types.DecimalType; +import org.openhab.core.types.State; /** - * + * From A5_10_18 up to A5_10_17 temperature is given as a 8Bit value (range: 250(!)..0). + * Therefore higher values mean lower temperatures. + * Temperature range 0..40. + * * @author Daniel Weber - Initial contribution */ @NonNullByDefault @@ -25,4 +30,13 @@ public class A5_10_18 extends A5_10 { public A5_10_18(ERP1Message packet) { super(packet); } + + protected double getMinUnscaledTemperatureValue() { + return 250.0; + } + + @Override + protected State getFanSpeedStage() { + return new DecimalType((getDB0Value() >>> 4) - 1); + } } diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_19.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_19.java index 9cef98b3d..222d1b9cf 100644 --- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_19.java +++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_19.java @@ -20,9 +20,14 @@ import org.openhab.binding.enocean.internal.messages.ERP1Message; * @author Daniel Weber - Initial contribution */ @NonNullByDefault -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 getDB3Value(); + } } diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1A.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1A.java index e3552cbaf..be33a5fbb 100644 --- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1A.java +++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1A.java @@ -20,7 +20,7 @@ import org.openhab.binding.enocean.internal.messages.ERP1Message; * @author Daniel Weber - Initial contribution */ @NonNullByDefault -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/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1B.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1B.java index bcf8d06f8..3972e5b11 100644 --- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1B.java +++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1B.java @@ -20,9 +20,14 @@ import org.openhab.binding.enocean.internal.messages.ERP1Message; * @author Daniel Weber - Initial contribution */ @NonNullByDefault -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 getDB2Value(); + } } diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1C.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1C.java index e0d53831a..eb14a14f2 100644 --- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1C.java +++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1C.java @@ -20,7 +20,7 @@ import org.openhab.binding.enocean.internal.messages.ERP1Message; * @author Daniel Weber - Initial contribution */ @NonNullByDefault -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/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1D.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1D.java index 462e7798f..853f89adf 100644 --- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1D.java +++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1D.java @@ -20,9 +20,14 @@ import org.openhab.binding.enocean.internal.messages.ERP1Message; * @author Daniel Weber - Initial contribution */ @NonNullByDefault -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 getDB3Value(); + } } diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1E.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1E.java index 9e38b33c1..074e5e1bb 100644 --- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1E.java +++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_1E.java @@ -20,7 +20,7 @@ import org.openhab.binding.enocean.internal.messages.ERP1Message; * @author Daniel Weber - Initial contribution */ @NonNullByDefault -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/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_20.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_20.java index 36b66763d..ad9871c08 100644 --- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_20.java +++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_20.java @@ -20,7 +20,7 @@ import org.openhab.binding.enocean.internal.messages.ERP1Message; * @author Daniel Weber - Initial contribution */ @NonNullByDefault -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/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_21.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_21.java index 4fa75dcc8..5d01f2abb 100644 --- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_21.java +++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_21.java @@ -20,7 +20,7 @@ import org.openhab.binding.enocean.internal.messages.ERP1Message; * @author Daniel Weber - Initial contribution */ @NonNullByDefault -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/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_22.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_22.java index 1a8d62a17..abf957efe 100644 --- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_22.java +++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_22.java @@ -14,15 +14,22 @@ package org.openhab.binding.enocean.internal.eep.A5_10; import org.eclipse.jdt.annotation.NonNullByDefault; import org.openhab.binding.enocean.internal.messages.ERP1Message; +import org.openhab.core.library.types.DecimalType; +import org.openhab.core.types.State; /** * * @author Daniel Weber - Initial contribution */ @NonNullByDefault -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((getDB0Value() >>> 5) - 1); + } } diff --git a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_23.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_23.java index b29dc6327..2de5fcf80 100644 --- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_23.java +++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_10/A5_10_23.java @@ -20,7 +20,7 @@ import org.openhab.binding.enocean.internal.messages.ERP1Message; * @author Daniel Weber - Initial contribution */ @NonNullByDefault -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/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/EEPType.java b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/EEPType.java index ca86175e6..e1e9cf82e 100644 --- a/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/EEPType.java +++ b/bundles/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/EEPType.java @@ -321,7 +321,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, @@ -329,61 +329,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), - RoomPanel_A5_10_0B(RORG._4BS, 0x10, 0x0B, false, A5_10_0B.class, THING_TYPE_ROOMOPERATINGPANEL, - CHANNEL_TEMPERATURE), + CHANNEL_SETPOINT, CHANNEL_CONTACT), + RoomPanel_A5_10_0B(RORG._4BS, 0x10, 0x0B, false, A5_10_0B.class, THING_TYPE_ROOMOPERATINGPANEL, 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, + RoomPanel_A5_10_0D(RORG._4BS, 0x10, 0x0D, false, A5_10_0D.class, THING_TYPE_ROOMOPERATINGPANEL, 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_HUMIDITY, + CHANNEL_TEMPERATURE, CHANNEL_DAYNIGHTMODESTATE), + RoomPanel_A5_10_15(RORG._4BS, 0x10, 0x15, false, A5_10_15.class, THING_TYPE_ROOMOPERATINGPANEL, CHANNEL_SETPOINT, 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), - RoomPanel_A5_10_14(RORG._4BS, 0x10, 0x14, false, A5_10_14.class, THING_TYPE_ROOMOPERATINGPANEL, - CHANNEL_TEMPERATURE), - 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), + 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/bundles/org.openhab.binding.enocean/src/main/resources/OH-INF/i18n/enocean.properties b/bundles/org.openhab.binding.enocean/src/main/resources/OH-INF/i18n/enocean.properties index 186cdd6dc..8e165ddaf 100644 --- a/bundles/org.openhab.binding.enocean/src/main/resources/OH-INF/i18n/enocean.properties +++ b/bundles/org.openhab.binding.enocean/src/main/resources/OH-INF/i18n/enocean.properties @@ -407,6 +407,10 @@ channel-type.enocean.cumulativeValue.label = Cumulative Value channel-type.enocean.currentFlow.label = Current Flow channel-type.enocean.currentNumber.label = Current channel-type.enocean.currentNumber.description = Current +channel-type.enocean.dayNightModeState.label = Day/Night Mode +channel-type.enocean.dayNightModeState.description = Day (1) or Night (0) mode activated. +channel-type.enocean.dayNightModeState.state.option.0 = Night +channel-type.enocean.dayNightModeState.state.option.1 = Day channel-type.enocean.defrostMode.label = Defrost Mode channel-type.enocean.defrostMode.description = Indicates if defrosting of heat exchanger is active or not channel-type.enocean.delayRadioOFF.label = Delay Radio Off @@ -446,6 +450,9 @@ channel-type.enocean.fanSpeedStage.state.option.0 = Stage 0 channel-type.enocean.fanSpeedStage.state.option.1 = Stage 1 channel-type.enocean.fanSpeedStage.state.option.2 = Stage 2 channel-type.enocean.fanSpeedStage.state.option.3 = Stage 3 +channel-type.enocean.fanSpeedStage.state.option.4 = Stage 4 +channel-type.enocean.fanSpeedStage.state.option.5 = Stage 5 +channel-type.enocean.fanSpeedStage.state.option.6 = Off channel-type.enocean.feedTemperature.label = Feed Temperature channel-type.enocean.feedTemperature.description = Water temperature in the radiator input channel-type.enocean.fireplaceSafetyMode.label = Fireplace Safety Mode diff --git a/bundles/org.openhab.binding.enocean/src/main/resources/OH-INF/thing/channels.xml b/bundles/org.openhab.binding.enocean/src/main/resources/OH-INF/thing/channels.xml index cc4c4f3ad..966f17528 100644 --- a/bundles/org.openhab.binding.enocean/src/main/resources/OH-INF/thing/channels.xml +++ b/bundles/org.openhab.binding.enocean/src/main/resources/OH-INF/thing/channels.xml @@ -171,7 +171,7 @@ - String + Number @@ -180,6 +180,9 @@ + + + @@ -917,4 +920,16 @@ + + Number + + Day (1) or Night (0) mode activated. + + + + + + + +