[wundergroundupdatereceiver] Check whether the thing is managed (#12998)
Ie. created in the UI or by discovery Signed-off-by: Daniel Demus <daniel-github@demus.dk>
This commit is contained in:
@@ -33,6 +33,7 @@ import org.openhab.core.library.types.StringType;
|
||||
import org.openhab.core.thing.Channel;
|
||||
import org.openhab.core.thing.ChannelGroupUID;
|
||||
import org.openhab.core.thing.ChannelUID;
|
||||
import org.openhab.core.thing.ManagedThingProvider;
|
||||
import org.openhab.core.thing.Thing;
|
||||
import org.openhab.core.thing.ThingStatus;
|
||||
import org.openhab.core.thing.ThingStatusDetail;
|
||||
@@ -63,6 +64,7 @@ public class WundergroundUpdateReceiverHandler extends BaseThingHandler {
|
||||
private final WundergroundUpdateReceiverDiscoveryService discoveryService;
|
||||
private final WundergroundUpdateReceiverUnknownChannelTypeProvider channelTypeProvider;
|
||||
private final ChannelTypeRegistry channelTypeRegistry;
|
||||
private final ManagedThingProvider managedThingProvider;
|
||||
|
||||
private final ChannelUID dateutcDatetimeChannel;
|
||||
private final ChannelUID lastReceivedChannel;
|
||||
@@ -75,11 +77,12 @@ public class WundergroundUpdateReceiverHandler extends BaseThingHandler {
|
||||
WundergroundUpdateReceiverServlet wunderGroundUpdateReceiverServlet,
|
||||
WundergroundUpdateReceiverDiscoveryService discoveryService,
|
||||
WundergroundUpdateReceiverUnknownChannelTypeProvider channelTypeProvider,
|
||||
ChannelTypeRegistry channelTypeRegistry) {
|
||||
ChannelTypeRegistry channelTypeRegistry, ManagedThingProvider managedThingProvider) {
|
||||
super(thing);
|
||||
this.discoveryService = discoveryService;
|
||||
this.channelTypeProvider = channelTypeProvider;
|
||||
this.channelTypeRegistry = channelTypeRegistry;
|
||||
this.managedThingProvider = managedThingProvider;
|
||||
|
||||
final ChannelGroupUID metadatGroupUID = new ChannelGroupUID(getThing().getUID(), METADATA_GROUP);
|
||||
|
||||
@@ -205,7 +208,8 @@ public class WundergroundUpdateReceiverHandler extends BaseThingHandler {
|
||||
updateState(channelUID, new DecimalType(numberValue));
|
||||
}
|
||||
} else if (this.discoveryService.isDiscovering()
|
||||
&& !WundergroundUpdateReceiverParameterMapping.isExcluded(parameterName)) {
|
||||
&& !WundergroundUpdateReceiverParameterMapping.isExcluded(parameterName)
|
||||
&& this.managedThingProvider.get(this.thing.getUID()) != null) {
|
||||
ThingBuilder thingBuilder = editThing();
|
||||
buildChannel(thingBuilder, parameterName, state);
|
||||
updateThing(thingBuilder.build());
|
||||
|
||||
@@ -16,6 +16,7 @@ import static org.openhab.binding.wundergroundupdatereceiver.internal.Wundergrou
|
||||
|
||||
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||
import org.eclipse.jdt.annotation.Nullable;
|
||||
import org.openhab.core.thing.ManagedThingProvider;
|
||||
import org.openhab.core.thing.Thing;
|
||||
import org.openhab.core.thing.ThingTypeUID;
|
||||
import org.openhab.core.thing.binding.BaseThingHandlerFactory;
|
||||
@@ -42,15 +43,17 @@ public class WundergroundUpdateReceiverHandlerFactory extends BaseThingHandlerFa
|
||||
private final ChannelTypeRegistry channelTypeRegistry;
|
||||
private final WundergroundUpdateReceiverUnknownChannelTypeProvider channelTypeProvider;
|
||||
private final WundergroundUpdateReceiverServlet wunderGroundUpdateReceiverServlet;
|
||||
private final ManagedThingProvider managedThingProvider;
|
||||
|
||||
@Activate
|
||||
public WundergroundUpdateReceiverHandlerFactory(@Reference HttpService httpService,
|
||||
@Reference WundergroundUpdateReceiverDiscoveryService discoveryService,
|
||||
@Reference WundergroundUpdateReceiverUnknownChannelTypeProvider channelTypeProvider,
|
||||
@Reference ChannelTypeRegistry channelTypeRegistry) {
|
||||
@Reference ChannelTypeRegistry channelTypeRegistry, @Reference ManagedThingProvider managedThingProvider) {
|
||||
this.discoveryService = discoveryService;
|
||||
this.channelTypeRegistry = channelTypeRegistry;
|
||||
this.channelTypeProvider = channelTypeProvider;
|
||||
this.managedThingProvider = managedThingProvider;
|
||||
this.wunderGroundUpdateReceiverServlet = new WundergroundUpdateReceiverServlet(httpService,
|
||||
this.discoveryService);
|
||||
this.discoveryService.servletControls = this.wunderGroundUpdateReceiverServlet;
|
||||
@@ -70,7 +73,8 @@ public class WundergroundUpdateReceiverHandlerFactory extends BaseThingHandlerFa
|
||||
|
||||
if (THING_TYPE_UPDATE_RECEIVER.equals(thingTypeUID)) {
|
||||
return new WundergroundUpdateReceiverHandler(thing, this.wunderGroundUpdateReceiverServlet,
|
||||
this.discoveryService, this.channelTypeProvider, this.channelTypeRegistry);
|
||||
this.discoveryService, this.channelTypeProvider, this.channelTypeRegistry,
|
||||
this.managedThingProvider);
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
Reference in New Issue
Block a user