mirror of
https://github.com/openhab/openhab-addons.git
synced 2025-01-25 14:55:55 +01:00
Remove deprecated channels (#14033)
Signed-off-by: Jacob Laursen <jacob-github@vindvejr.dk>
This commit is contained in:
parent
1df693a6e9
commit
436e7c39ba
@ -50,7 +50,6 @@ import org.openhab.binding.hdpowerview.internal.exceptions.HubException;
|
|||||||
import org.openhab.binding.hdpowerview.internal.exceptions.HubInvalidResponseException;
|
import org.openhab.binding.hdpowerview.internal.exceptions.HubInvalidResponseException;
|
||||||
import org.openhab.binding.hdpowerview.internal.exceptions.HubMaintenanceException;
|
import org.openhab.binding.hdpowerview.internal.exceptions.HubMaintenanceException;
|
||||||
import org.openhab.binding.hdpowerview.internal.exceptions.HubProcessingException;
|
import org.openhab.binding.hdpowerview.internal.exceptions.HubProcessingException;
|
||||||
import org.openhab.core.library.CoreItemFactory;
|
|
||||||
import org.openhab.core.library.types.OnOffType;
|
import org.openhab.core.library.types.OnOffType;
|
||||||
import org.openhab.core.thing.Bridge;
|
import org.openhab.core.thing.Bridge;
|
||||||
import org.openhab.core.thing.Channel;
|
import org.openhab.core.thing.Channel;
|
||||||
@ -63,7 +62,6 @@ import org.openhab.core.thing.ThingStatusInfo;
|
|||||||
import org.openhab.core.thing.ThingUID;
|
import org.openhab.core.thing.ThingUID;
|
||||||
import org.openhab.core.thing.binding.BaseBridgeHandler;
|
import org.openhab.core.thing.binding.BaseBridgeHandler;
|
||||||
import org.openhab.core.thing.binding.ThingHandler;
|
import org.openhab.core.thing.binding.ThingHandler;
|
||||||
import org.openhab.core.thing.binding.builder.ChannelBuilder;
|
|
||||||
import org.openhab.core.thing.type.ChannelTypeUID;
|
import org.openhab.core.thing.type.ChannelTypeUID;
|
||||||
import org.openhab.core.types.Command;
|
import org.openhab.core.types.Command;
|
||||||
import org.openhab.core.types.RefreshType;
|
import org.openhab.core.types.RefreshType;
|
||||||
@ -100,7 +98,6 @@ public class HDPowerViewHubHandler extends BaseBridgeHandler {
|
|||||||
private List<SceneCollection> sceneCollectionCache = new CopyOnWriteArrayList<>();
|
private List<SceneCollection> sceneCollectionCache = new CopyOnWriteArrayList<>();
|
||||||
private List<ScheduledEvent> scheduledEventCache = new CopyOnWriteArrayList<>();
|
private List<ScheduledEvent> scheduledEventCache = new CopyOnWriteArrayList<>();
|
||||||
private Instant userDataUpdated = Instant.MIN;
|
private Instant userDataUpdated = Instant.MIN;
|
||||||
private Boolean deprecatedChannelsCreated = false;
|
|
||||||
|
|
||||||
private final ChannelTypeUID sceneChannelTypeUID = new ChannelTypeUID(HDPowerViewBindingConstants.BINDING_ID,
|
private final ChannelTypeUID sceneChannelTypeUID = new ChannelTypeUID(HDPowerViewBindingConstants.BINDING_ID,
|
||||||
HDPowerViewBindingConstants.CHANNELTYPE_SCENE_ACTIVATE);
|
HDPowerViewBindingConstants.CHANNELTYPE_SCENE_ACTIVATE);
|
||||||
@ -181,7 +178,6 @@ public class HDPowerViewHubHandler extends BaseBridgeHandler {
|
|||||||
sceneCache.clear();
|
sceneCache.clear();
|
||||||
sceneCollectionCache.clear();
|
sceneCollectionCache.clear();
|
||||||
scheduledEventCache.clear();
|
scheduledEventCache.clear();
|
||||||
deprecatedChannelsCreated = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public HDPowerViewWebTargets getWebTargets() {
|
public HDPowerViewWebTargets getWebTargets() {
|
||||||
@ -481,52 +477,9 @@ public class HDPowerViewHubHandler extends BaseBridgeHandler {
|
|||||||
|
|
||||||
updateThing(editThing().withChannels(channelBuilder.build()).build());
|
updateThing(editThing().withChannels(channelBuilder.build()).build());
|
||||||
|
|
||||||
createDeprecatedSceneChannels(scenes);
|
|
||||||
|
|
||||||
return scenes;
|
return scenes;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Create backwards compatible scene channels if any items configured before release 3.2
|
|
||||||
* are still linked. Users should have a reasonable amount of time to migrate to the new
|
|
||||||
* scene channels that are connected to a channel group.
|
|
||||||
*/
|
|
||||||
private void createDeprecatedSceneChannels(List<Scene> scenes) {
|
|
||||||
if (deprecatedChannelsCreated) {
|
|
||||||
// Only do this once.
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
ChannelGroupUID channelGroupUid = new ChannelGroupUID(thing.getUID(),
|
|
||||||
HDPowerViewBindingConstants.CHANNEL_GROUP_SCENES);
|
|
||||||
for (Scene scene : scenes) {
|
|
||||||
String channelId = Integer.toString(scene.id);
|
|
||||||
ChannelUID newChannelUid = new ChannelUID(channelGroupUid, channelId);
|
|
||||||
ChannelUID deprecatedChannelUid = new ChannelUID(getThing().getUID(), channelId);
|
|
||||||
String description = translationProvider.getText("dynamic-channel.scene-activate.deprecated.description",
|
|
||||||
scene.getName());
|
|
||||||
Channel channel = ChannelBuilder.create(deprecatedChannelUid, CoreItemFactory.SWITCH)
|
|
||||||
.withType(sceneChannelTypeUID).withLabel(scene.getName()).withDescription(description).build();
|
|
||||||
logger.debug("Creating deprecated channel '{}' ('{}') to probe for linked items", deprecatedChannelUid,
|
|
||||||
scene.getName());
|
|
||||||
updateThing(editThing().withChannel(channel).build());
|
|
||||||
if (this.isLinked(deprecatedChannelUid) && !this.isLinked(newChannelUid)) {
|
|
||||||
logger.warn("Created deprecated channel '{}' ('{}'), please link items to '{}' instead",
|
|
||||||
deprecatedChannelUid, scene.getName(), newChannelUid);
|
|
||||||
} else {
|
|
||||||
if (this.isLinked(newChannelUid)) {
|
|
||||||
logger.debug("Removing deprecated channel '{}' ('{}') since new channel '{}' is linked",
|
|
||||||
deprecatedChannelUid, scene.getName(), newChannelUid);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
logger.debug("Removing deprecated channel '{}' ('{}') since it has no linked items",
|
|
||||||
deprecatedChannelUid, scene.getName());
|
|
||||||
}
|
|
||||||
updateThing(editThing().withoutChannel(deprecatedChannelUid).build());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
deprecatedChannelsCreated = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
private List<SceneCollection> fetchSceneCollections()
|
private List<SceneCollection> fetchSceneCollections()
|
||||||
throws HubInvalidResponseException, HubProcessingException, HubMaintenanceException {
|
throws HubInvalidResponseException, HubProcessingException, HubMaintenanceException {
|
||||||
SceneCollections sceneCollections = webTargets.getSceneCollections();
|
SceneCollections sceneCollections = webTargets.getSceneCollections();
|
||||||
|
@ -73,7 +73,6 @@ offline.gone.shade-unknown-to-hub = Shade is unknown to Hub
|
|||||||
# dynamic channels
|
# dynamic channels
|
||||||
|
|
||||||
dynamic-channel.scene-activate.description = Activates the scene ''{0}''
|
dynamic-channel.scene-activate.description = Activates the scene ''{0}''
|
||||||
dynamic-channel.scene-activate.deprecated.description = DEPRECATED: Activates the scene ''{0}''
|
|
||||||
dynamic-channel.scene-group-activate.description = Activates the scene group ''{0}''
|
dynamic-channel.scene-group-activate.description = Activates the scene group ''{0}''
|
||||||
dynamic-channel.automation-enabled.description = Enables/disables the automation ''{0}''
|
dynamic-channel.automation-enabled.description = Enables/disables the automation ''{0}''
|
||||||
dynamic-channel.automation-enabled.label = {0}, {1}, {2}
|
dynamic-channel.automation-enabled.label = {0}, {1}, {2}
|
||||||
|
Loading…
Reference in New Issue
Block a user