]> git.basschouten.com Git - openhab-addons.git/commitdiff
[danfossairunit] Remove deprecated channel main#manual_fan_speed when unlinked (...
authorjlaur <jacob-github@vindvejr.dk>
Fri, 17 Dec 2021 18:16:13 +0000 (19:16 +0100)
committerGitHub <noreply@github.com>
Fri, 17 Dec 2021 18:16:13 +0000 (19:16 +0100)
* Remove deprecated channel if unlinked.

Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
bundles/org.openhab.binding.danfossairunit/src/main/java/org/openhab/binding/danfossairunit/internal/handler/DanfossAirUnitHandler.java
bundles/org.openhab.binding.danfossairunit/src/main/resources/OH-INF/i18n/danfossairunit.properties
bundles/org.openhab.binding.danfossairunit/src/main/resources/OH-INF/thing/thing-types.xml

index 6b69008c99927a723cb56987086d64f755eaf7ad..f94e7932dcba38858412c55363a538e1cd1fbb17 100644 (file)
@@ -23,12 +23,14 @@ import java.util.concurrent.TimeUnit;
 import org.eclipse.jdt.annotation.NonNullByDefault;
 import org.eclipse.jdt.annotation.Nullable;
 import org.openhab.binding.danfossairunit.internal.Channel;
+import org.openhab.binding.danfossairunit.internal.ChannelGroup;
 import org.openhab.binding.danfossairunit.internal.DanfossAirUnit;
 import org.openhab.binding.danfossairunit.internal.DanfossAirUnitCommunicationController;
 import org.openhab.binding.danfossairunit.internal.DanfossAirUnitConfiguration;
 import org.openhab.binding.danfossairunit.internal.DanfossAirUnitWriteAccessor;
 import org.openhab.binding.danfossairunit.internal.UnexpectedResponseValueException;
 import org.openhab.binding.danfossairunit.internal.ValueCache;
+import org.openhab.core.thing.ChannelGroupUID;
 import org.openhab.core.thing.ChannelUID;
 import org.openhab.core.thing.Thing;
 import org.openhab.core.thing.ThingStatus;
@@ -96,6 +98,7 @@ public class DanfossAirUnitHandler extends BaseThingHandler {
         updateStatus(ThingStatus.UNKNOWN);
         config = getConfigAs(DanfossAirUnitConfiguration.class);
         valueCache = new ValueCache(config.updateUnchangedValuesEveryMillis);
+        removeDeprecatedChannels();
         try {
             var localCommunicationController = new DanfossAirUnitCommunicationController(
                     InetAddress.getByName(config.host), TCP_PORT);
@@ -119,6 +122,21 @@ public class DanfossAirUnitHandler extends BaseThingHandler {
         }
     }
 
+    private void removeDeprecatedChannels() {
+        ChannelGroupUID mainChannelGroupUid = new ChannelGroupUID(thing.getUID(), ChannelGroup.MAIN.getGroupName());
+        ChannelUID manualFanSpeedChannelUid = new ChannelUID(mainChannelGroupUid,
+                Channel.CHANNEL_MANUAL_FAN_SPEED.getChannelName());
+        if (this.isLinked(manualFanSpeedChannelUid)) {
+            ChannelUID manualFanStepChannelUid = new ChannelUID(mainChannelGroupUid,
+                    Channel.CHANNEL_MANUAL_FAN_STEP.getChannelName());
+            logger.warn("Channel '{}' is deprecated, please use '{}' instead.", manualFanSpeedChannelUid,
+                    manualFanStepChannelUid);
+        } else {
+            logger.debug("Removing deprecated unlinked channel '{}'.", manualFanSpeedChannelUid);
+            updateThing(editThing().withoutChannel(manualFanSpeedChannelUid).build());
+        }
+    }
+
     private void updateAllChannels() {
         DanfossAirUnit localAirUnit = this.airUnit;
         if (localAirUnit == null) {
index 02fe397076e9bbb18e69f12bcc3f9ed336c83132..7777616d2b1c3a3cf958107ae5206e2b9d7c88a0 100644 (file)
@@ -24,6 +24,8 @@ channel-group-type.danfossairunit.humidity.channel.humidity.description = Curren
 channel-group-type.danfossairunit.main.label = Mode and Fan Speeds
 channel-group-type.danfossairunit.main.channel.boost.label = Boost
 channel-group-type.danfossairunit.main.channel.boost.description = Enables fan boost
+channel-group-type.danfossairunit.main.channel.manual_fan_speed.label = Manual Fan Speed
+channel-group-type.danfossairunit.main.channel.manual_fan_speed.description = Deprecated, please use Manual Fan Step instead. This channel will be removed in a later version.
 channel-group-type.danfossairunit.main.channel.night_cooling.label = Night Cooling
 channel-group-type.danfossairunit.main.channel.night_cooling.description = Enables night cooling
 channel-group-type.danfossairunit.recuperator.label = Recuperator
@@ -60,8 +62,6 @@ channel-type.danfossairunit.extractFanStep.description = Current step setting of
 channel-type.danfossairunit.filterPeriod.label = Filter Period
 channel-type.danfossairunit.filterPeriod.description = Number of months between filter replacements
 channel-type.danfossairunit.humidity.label = Humidity
-channel-type.danfossairunit.manualFanSpeed.label = Manual Fan Speed
-channel-type.danfossairunit.manualFanSpeed.description = Deprecated, please use Manual Fan Step instead. This channel will be removed in a later version.
 channel-type.danfossairunit.manualFanStep.label = Manual Fan Step
 channel-type.danfossairunit.manualFanStep.description = Controls 10-step setting of the fan when operation mode is manual
 channel-type.danfossairunit.mode.label = Mode
index b526e27bb41847ccdbede9a1994dede46aaffcba..3873c72cd89fcd82dbe8b4a221a27eada758b80d 100644 (file)
                        <channel id="current_time" typeId="currentTime"/>
                        <channel id="mode" typeId="mode"/>
                        <channel id="manual_fan_step" typeId="manualFanStep"/>
-                       <channel id="manual_fan_speed" typeId="manualFanSpeed"/>
+                       <channel id="manual_fan_speed" typeId="manualFanStep">
+                               <label>Manual Fan Speed</label>
+                               <description>Deprecated, please use Manual Fan Step instead. This channel will be removed in a later version.</description>
+                       </channel>
                        <channel id="supply_fan_speed" typeId="supplyFanSpeed"/>
                        <channel id="extract_fan_speed" typeId="extractFanSpeed"/>
                        <channel id="supply_fan_step" typeId="supplyFanStep"/>
                <category>Fan</category>
                <state step="10" min="0" max="100"/>
        </channel-type>
-       <channel-type id="manualFanSpeed" advanced="true">
-               <item-type>Dimmer</item-type>
-               <label>Manual Fan Speed</label>
-               <description>Deprecated, please use Manual Fan Step instead. This channel will be removed in a later version.</description>
-               <category>Fan</category>
-               <state step="10" min="0" max="100"/>
-       </channel-type>
        <channel-type id="supplyFanSpeed">
                <item-type>Number</item-type>
                <label>Supply Fan Speed</label>