[danfossairunit] Remove deprecated channel main#manual_fan_speed when unlinked (#11668)

* Remove deprecated channel if unlinked.

Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
This commit is contained in:
jlaur 2021-12-17 19:16:13 +01:00 committed by GitHub
parent 2dfcb4cb3c
commit 4eea4ac4f4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 24 additions and 10 deletions

View File

@ -23,12 +23,14 @@ import java.util.concurrent.TimeUnit;
import org.eclipse.jdt.annotation.NonNullByDefault; import org.eclipse.jdt.annotation.NonNullByDefault;
import org.eclipse.jdt.annotation.Nullable; import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.danfossairunit.internal.Channel; 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.DanfossAirUnit;
import org.openhab.binding.danfossairunit.internal.DanfossAirUnitCommunicationController; import org.openhab.binding.danfossairunit.internal.DanfossAirUnitCommunicationController;
import org.openhab.binding.danfossairunit.internal.DanfossAirUnitConfiguration; import org.openhab.binding.danfossairunit.internal.DanfossAirUnitConfiguration;
import org.openhab.binding.danfossairunit.internal.DanfossAirUnitWriteAccessor; import org.openhab.binding.danfossairunit.internal.DanfossAirUnitWriteAccessor;
import org.openhab.binding.danfossairunit.internal.UnexpectedResponseValueException; import org.openhab.binding.danfossairunit.internal.UnexpectedResponseValueException;
import org.openhab.binding.danfossairunit.internal.ValueCache; import org.openhab.binding.danfossairunit.internal.ValueCache;
import org.openhab.core.thing.ChannelGroupUID;
import org.openhab.core.thing.ChannelUID; import org.openhab.core.thing.ChannelUID;
import org.openhab.core.thing.Thing; import org.openhab.core.thing.Thing;
import org.openhab.core.thing.ThingStatus; import org.openhab.core.thing.ThingStatus;
@ -96,6 +98,7 @@ public class DanfossAirUnitHandler extends BaseThingHandler {
updateStatus(ThingStatus.UNKNOWN); updateStatus(ThingStatus.UNKNOWN);
config = getConfigAs(DanfossAirUnitConfiguration.class); config = getConfigAs(DanfossAirUnitConfiguration.class);
valueCache = new ValueCache(config.updateUnchangedValuesEveryMillis); valueCache = new ValueCache(config.updateUnchangedValuesEveryMillis);
removeDeprecatedChannels();
try { try {
var localCommunicationController = new DanfossAirUnitCommunicationController( var localCommunicationController = new DanfossAirUnitCommunicationController(
InetAddress.getByName(config.host), TCP_PORT); 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() { private void updateAllChannels() {
DanfossAirUnit localAirUnit = this.airUnit; DanfossAirUnit localAirUnit = this.airUnit;
if (localAirUnit == null) { if (localAirUnit == null) {

View 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.label = Mode and Fan Speeds
channel-group-type.danfossairunit.main.channel.boost.label = Boost 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.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.label = Night Cooling
channel-group-type.danfossairunit.main.channel.night_cooling.description = Enables night cooling channel-group-type.danfossairunit.main.channel.night_cooling.description = Enables night cooling
channel-group-type.danfossairunit.recuperator.label = Recuperator 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.label = Filter Period
channel-type.danfossairunit.filterPeriod.description = Number of months between filter replacements channel-type.danfossairunit.filterPeriod.description = Number of months between filter replacements
channel-type.danfossairunit.humidity.label = Humidity 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.label = Manual Fan Step
channel-type.danfossairunit.manualFanStep.description = Controls 10-step setting of the fan when operation mode is manual channel-type.danfossairunit.manualFanStep.description = Controls 10-step setting of the fan when operation mode is manual
channel-type.danfossairunit.mode.label = Mode channel-type.danfossairunit.mode.label = Mode

View File

@ -50,7 +50,10 @@
<channel id="current_time" typeId="currentTime"/> <channel id="current_time" typeId="currentTime"/>
<channel id="mode" typeId="mode"/> <channel id="mode" typeId="mode"/>
<channel id="manual_fan_step" typeId="manualFanStep"/> <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="supply_fan_speed" typeId="supplyFanSpeed"/>
<channel id="extract_fan_speed" typeId="extractFanSpeed"/> <channel id="extract_fan_speed" typeId="extractFanSpeed"/>
<channel id="supply_fan_step" typeId="supplyFanStep"/> <channel id="supply_fan_step" typeId="supplyFanStep"/>
@ -157,13 +160,6 @@
<category>Fan</category> <category>Fan</category>
<state step="10" min="0" max="100"/> <state step="10" min="0" max="100"/>
</channel-type> </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"> <channel-type id="supplyFanSpeed">
<item-type>Number</item-type> <item-type>Number</item-type>
<label>Supply Fan Speed</label> <label>Supply Fan Speed</label>