From 46eee66714384f8a3fe16226d294f0883daaa733 Mon Sep 17 00:00:00 2001 From: dominikkv Date: Thu, 3 Jan 2019 18:48:04 +0100 Subject: [PATCH 1/6] Add ramping time to dimmer channel for central command Signed-off-by: Dominik Krickl-Vorreiter --- .../ESH-INF/thing/channels.xml | 6 +++++ .../internal/eep/A5_38/A5_38_08_Dimming.java | 23 +++++++++++-------- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/addons/binding/org.openhab.binding.enocean/ESH-INF/thing/channels.xml b/addons/binding/org.openhab.binding.enocean/ESH-INF/thing/channels.xml index 99739797869f0..4b765639dce12 100644 --- a/addons/binding/org.openhab.binding.enocean/ESH-INF/thing/channels.xml +++ b/addons/binding/org.openhab.binding.enocean/ESH-INF/thing/channels.xml @@ -68,6 +68,12 @@ Dimmer DimmableLight + + + + Ramping Time (in seconds), 0 = no ramping, 1..255 = seconds to 100% + + diff --git a/addons/binding/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_38/A5_38_08_Dimming.java b/addons/binding/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_38/A5_38_08_Dimming.java index f3c3672309c83..18a730eae1b93 100644 --- a/addons/binding/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_38/A5_38_08_Dimming.java +++ b/addons/binding/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/A5_38/A5_38_08_Dimming.java @@ -14,6 +14,7 @@ import org.eclipse.smarthome.core.library.types.PercentType; import org.eclipse.smarthome.core.types.Command; import org.eclipse.smarthome.core.types.State; +import org.openhab.binding.enocean.internal.config.EnOceanChannelDimmerConfig; import org.openhab.binding.enocean.internal.eep.Base._4BSMessage; import org.openhab.binding.enocean.internal.messages.ERP1Message; @@ -40,26 +41,30 @@ public A5_38_08_Dimming(ERP1Message packet) { protected void convertFromCommandImpl(String channelId, String channelTypeId, Command outputCommand, State currentState, Configuration config) { + EnOceanChannelDimmerConfig c = config.as(EnOceanChannelDimmerConfig.class); + byte rampingTime = (c.rampingTime == null) ? Zero : c.rampingTime.byteValue(); + if (outputCommand instanceof DecimalType) { if (((DecimalType) outputCommand).equals(DecimalType.ZERO)) { - setData(CommandId, Zero, Zero, (byte) (TeachInBit | SwitchOff)); + setData(CommandId, Zero, rampingTime, (byte) (TeachInBit | SwitchOff)); } else { - setData(CommandId, ((DecimalType) outputCommand).byteValue(), Zero, (byte) (TeachInBit | SwitchOn)); + setData(CommandId, ((DecimalType) outputCommand).byteValue(), rampingTime, + (byte) (TeachInBit | SwitchOn)); } } else if ((OnOffType) outputCommand == OnOffType.ON) { - setData(CommandId, Switch100Percent, Zero, (byte) (TeachInBit | SwitchOn)); + setData(CommandId, Switch100Percent, rampingTime, (byte) (TeachInBit | SwitchOn)); } else { - setData(CommandId, Zero, Zero, (byte) (TeachInBit | SwitchOff)); + setData(CommandId, Zero, rampingTime, (byte) (TeachInBit | SwitchOff)); } } @Override public State convertToStateImpl(String channelId, String channelTypeId, State currentState, Configuration config) { - if (getDB_0() == (TeachInBit | SwitchOff)) { - return new PercentType(0); - } else { - return new PercentType(getDB_2Value()); + if (getDB_0() == (TeachInBit | SwitchOff)) { + return new PercentType(0); + } else { + return new PercentType(getDB_2Value()); + } } } -} From 16c80563f5b1afa0697ae63a557e97f7c69f8db4 Mon Sep 17 00:00:00 2001 From: dominikkv Date: Thu, 3 Jan 2019 18:53:19 +0100 Subject: [PATCH 2/6] Change whitespace to tab signed-off-by: Dominik Krickl-Vorreiter --- .../ESH-INF/thing/channels.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/addons/binding/org.openhab.binding.enocean/ESH-INF/thing/channels.xml b/addons/binding/org.openhab.binding.enocean/ESH-INF/thing/channels.xml index 4b765639dce12..c0d137f233f56 100644 --- a/addons/binding/org.openhab.binding.enocean/ESH-INF/thing/channels.xml +++ b/addons/binding/org.openhab.binding.enocean/ESH-INF/thing/channels.xml @@ -68,12 +68,12 @@ Dimmer DimmableLight - - - - Ramping Time (in seconds), 0 = no ramping, 1..255 = seconds to 100% - - + + + + Ramping Time (in seconds), 0 = no ramping, 1..255 = seconds to 100% + + From 2542024ff93b53fa96dc28bcbe59d6e9dd8bffa0 Mon Sep 17 00:00:00 2001 From: dominikkv Date: Sun, 6 Jan 2019 23:39:27 +0100 Subject: [PATCH 3/6] Add missing config class. Signed-off-by: Dominik Krickl-Vorreiter --- .../config/EnOceanChannelDimmerConfig.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelDimmerConfig.java diff --git a/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelDimmerConfig.java b/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelDimmerConfig.java new file mode 100644 index 0000000000000..c1c84e31367a1 --- /dev/null +++ b/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelDimmerConfig.java @@ -0,0 +1,23 @@ +/** + * Copyright (c) 2010-2018 by the respective copyright holders. + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + */ + +package org.openhab.binding.enocean.internal.config; + +/** + * + * @author Dominik Krickl-Vorreiter - Initial contribution + */ +public class EnOceanChannelDimmerConfig { + + public Integer rampingTime; + + public EnOceanChannelDimmerConfig() { + rampingTime = 0; + } +} From 575553c880652bceafe170e9a1c5bfa5bc9474a4 Mon Sep 17 00:00:00 2001 From: dominikkv Date: Tue, 8 Jan 2019 23:14:39 +0100 Subject: [PATCH 4/6] Add ramping time for D2-01-01 Signed-off-by: Dominik Krickl-Vorreiter --- .../ESH-INF/thing/channels.xml | 2 +- .../enocean/internal/eep/D2_01/D2_01.java | 20 ++++++++++++------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/addons/binding/org.openhab.binding.enocean/ESH-INF/thing/channels.xml b/addons/binding/org.openhab.binding.enocean/ESH-INF/thing/channels.xml index c0d137f233f56..c1def736655b3 100644 --- a/addons/binding/org.openhab.binding.enocean/ESH-INF/thing/channels.xml +++ b/addons/binding/org.openhab.binding.enocean/ESH-INF/thing/channels.xml @@ -71,7 +71,7 @@ - Ramping Time (in seconds), 0 = no ramping, 1..255 = seconds to 100% + A5-38-08: Ramping Time (in seconds), 0 = no ramping, 1..255 = seconds to 100%; D2-01-01: 0 = switch, 1-3 = timer 1-3, 4 = stop diff --git a/addons/binding/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01.java b/addons/binding/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01.java index f5f71db747eee..ddbd688872ae3 100644 --- a/addons/binding/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01.java +++ b/addons/binding/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/eep/D2_01/D2_01.java @@ -22,6 +22,7 @@ import org.eclipse.smarthome.core.types.State; import org.eclipse.smarthome.core.types.UnDefType; import org.eclipse.smarthome.core.util.HexUtils; +import org.openhab.binding.enocean.internal.config.EnOceanChannelDimmerConfig; import org.openhab.binding.enocean.internal.eep.Base._VLDMessage; import org.openhab.binding.enocean.internal.messages.ERP1Message; @@ -93,20 +94,25 @@ protected State getSwitchingData(byte channel) { return UnDefType.UNDEF; } - protected void setDimmingData(Command command, byte outputChannel) { + protected void setDimmingData(Command command, byte outputChannel, Configuration config) { + byte outputValue; + if (command instanceof DecimalType) { if (((DecimalType) command).equals(DecimalType.ZERO)) { - setData(CMD_ACTUATOR_SET_STATUS, outputChannel, STATUS_SWITCHING_OFF); + outputValue = STATUS_SWITCHING_OFF; } else { - setData(CMD_ACTUATOR_SET_STATUS, outputChannel, ((DecimalType) command).byteValue()); + outputValue = ((DecimalType) command).byteValue(); } } else if ((OnOffType) command == OnOffType.ON) { - setData(CMD_ACTUATOR_SET_STATUS, outputChannel, STATUS_DIMMING_100); + outputValue = STATUS_DIMMING_100; } else { - setData(CMD_ACTUATOR_SET_STATUS, outputChannel, STATUS_SWITCHING_OFF); + outputValue = STATUS_SWITCHING_OFF; } - setData(CMD_ACTUATOR_SET_STATUS, outputChannel); + EnOceanChannelDimmerConfig c = config.as(EnOceanChannelDimmerConfig.class); + byte rampingTime = (c.rampingTime == null) ? Zero : c.rampingTime.byteValue(); + + setData(CMD_ACTUATOR_SET_STATUS, (byte) ((rampingTime << 5) | outputChannel), outputValue); } protected State getDimmingData() { @@ -207,7 +213,7 @@ protected void convertFromCommandImpl(String channelId, String channelTypeId, Co if (command == RefreshType.REFRESH) { setSwitchingQueryData(AllChannels_Mask); } else { - setDimmingData(command, AllChannels_Mask); + setDimmingData(command, AllChannels_Mask, config); } } else if (channelId.equals(CHANNEL_INSTANTPOWER) && command == RefreshType.REFRESH) { setPowerMeasurementQueryData(AllChannels_Mask); From 43f402cbad3fedc4e8f30782cdfba9c204c119dd Mon Sep 17 00:00:00 2001 From: dominikkv Date: Sun, 13 Jan 2019 17:39:14 +0100 Subject: [PATCH 5/6] Fixed patch Signed-off-by: Dominik Krickl-Vorreiter --- .../enocean/internal/config/EnOceanChannelDimmerConfig.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename {src => addons/binding/org.openhab.binding.enocean/src}/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelDimmerConfig.java (89%) diff --git a/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelDimmerConfig.java b/addons/binding/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelDimmerConfig.java similarity index 89% rename from src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelDimmerConfig.java rename to addons/binding/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelDimmerConfig.java index c1c84e31367a1..cf276ab43d51b 100644 --- a/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelDimmerConfig.java +++ b/addons/binding/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelDimmerConfig.java @@ -1,5 +1,5 @@ /** - * Copyright (c) 2010-2018 by the respective copyright holders. + * Copyright (c) 2010-2019 by the respective copyright holders. * * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 From b544380a9b9803000b5cd6475673501c40a2025e Mon Sep 17 00:00:00 2001 From: dominikkv Date: Sun, 27 Jan 2019 19:31:48 +0100 Subject: [PATCH 6/6] Using new EPL v2.0 header. Signed-off-by: Dominik Krickl-Vorreiter --- .../config/EnOceanChannelDimmerConfig.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/addons/binding/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelDimmerConfig.java b/addons/binding/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelDimmerConfig.java index cf276ab43d51b..389a972a687f9 100644 --- a/addons/binding/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelDimmerConfig.java +++ b/addons/binding/org.openhab.binding.enocean/src/main/java/org/openhab/binding/enocean/internal/config/EnOceanChannelDimmerConfig.java @@ -1,10 +1,14 @@ /** - * Copyright (c) 2010-2019 by the respective copyright holders. + * Copyright (c) 2010-2019 Contributors to the openHAB project * - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html + * See the NOTICE file(s) distributed with this work for additional + * information. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License 2.0 which is available at + * http://www.eclipse.org/legal/epl-2.0 + * + * SPDX-License-Identifier: EPL-2.0 */ package org.openhab.binding.enocean.internal.config;