diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/discovery/AVMFritzDiscoveryService.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/discovery/AVMFritzDiscoveryService.java index 946f21a2e..596b73d3c 100644 --- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/discovery/AVMFritzDiscoveryService.java +++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/discovery/AVMFritzDiscoveryService.java @@ -99,8 +99,9 @@ public class AVMFritzDiscoveryService extends AbstractDiscoveryService @Override public void onDeviceAdded(AVMFritzBaseModel device) { - ThingTypeUID thingTypeUID = new ThingTypeUID(BINDING_ID, bridgeHandler.getThingTypeId(device)); - if (getSupportedThingTypes().contains(thingTypeUID)) { + String id = bridgeHandler.getThingTypeId(device); + ThingTypeUID thingTypeUID = id.isEmpty() ? null : new ThingTypeUID(BINDING_ID, id); + if (thingTypeUID != null && getSupportedThingTypes().contains(thingTypeUID)) { ThingUID thingUID = new ThingUID(thingTypeUID, bridgeHandler.getThing().getUID(), bridgeHandler.getThingName(device)); onDeviceAddedInternal(thingUID, device); diff --git a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/AVMFritzBaseBridgeHandler.java b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/AVMFritzBaseBridgeHandler.java index fee924a81..50d150bea 100644 --- a/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/AVMFritzBaseBridgeHandler.java +++ b/bundles/org.openhab.binding.avmfritz/src/main/java/org/openhab/binding/avmfritz/internal/handler/AVMFritzBaseBridgeHandler.java @@ -297,13 +297,14 @@ public abstract class AVMFritzBaseBridgeHandler extends BaseBridgeHandler { * @return ThingUID without illegal characters. */ public @Nullable ThingUID getThingUID(AVMFritzBaseModel device) { - ThingTypeUID thingTypeUID = new ThingTypeUID(BINDING_ID, getThingTypeId(device)); + String id = getThingTypeId(device); + ThingTypeUID thingTypeUID = id.isEmpty() ? null : new ThingTypeUID(BINDING_ID, id); ThingUID bridgeUID = thing.getUID(); String thingName = getThingName(device); - if (SUPPORTED_BUTTON_THING_TYPES_UIDS.contains(thingTypeUID) + if (thingTypeUID != null && (SUPPORTED_BUTTON_THING_TYPES_UIDS.contains(thingTypeUID) || SUPPORTED_HEATING_THING_TYPES.contains(thingTypeUID) - || SUPPORTED_DEVICE_THING_TYPES_UIDS.contains(thingTypeUID)) { + || SUPPORTED_DEVICE_THING_TYPES_UIDS.contains(thingTypeUID))) { return new ThingUID(thingTypeUID, bridgeUID, thingName); } else if (device.isHeatingThermostat()) { return new ThingUID(GROUP_HEATING_THING_TYPE, bridgeUID, thingName);