properties.put(HOST, device.getDetails().getBaseURL().getHost());
properties.put(PORT, device.getDetails().getBaseURL().getPort());
properties.put(PROTOCOL, device.getDetails().getBaseURL().getProtocol());
- properties.put(PROPERTY_SERIAL_NUMBER, device.getDetails().getSerialNumber());
+ String serialNumber = device.getDetails().getSerialNumber();
+ DiscoveryResult result;
+ if (serialNumber != null && !serialNumber.isBlank()) {
+ properties.put(PROPERTY_SERIAL_NUMBER, serialNumber.toLowerCase());
- DiscoveryResult result = DiscoveryResultBuilder.create(uid).withProperties(properties)
- .withLabel(device.getDetails().getFriendlyName()).withRepresentationProperty(PROPERTY_SERIAL_NUMBER)
- .build();
+ result = DiscoveryResultBuilder.create(uid).withProperties(properties)
+ .withLabel(device.getDetails().getFriendlyName())
+ .withRepresentationProperty(PROPERTY_SERIAL_NUMBER).build();
+ } else {
+ result = DiscoveryResultBuilder.create(uid).withProperties(properties)
+ .withLabel(device.getDetails().getFriendlyName()).build();
+ }
return result;
} else {
return null;
DeviceDetails details = device.getDetails();
if (details != null) {
ModelDetails modelDetails = details.getModelDetails();
- if (modelDetails != null) {
+ String serialNumber = details.getSerialNumber();
+ if (modelDetails != null && serialNumber != null && !serialNumber.isBlank()) {
String modelName = modelDetails.getModelName();
if (modelName != null) {
if (modelName.startsWith("Philips hue bridge")) {
- return new ThingUID(THING_TYPE_BRIDGE, details.getSerialNumber());
+ return new ThingUID(THING_TYPE_BRIDGE, serialNumber.toLowerCase());
}
}
}
import static org.openhab.core.thing.Thing.PROPERTY_SERIAL_NUMBER;
import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
import java.util.concurrent.TimeUnit;
import org.eclipse.jdt.annotation.NonNullByDefault;
if (isReachableAndValidHueBridge(bridge)) {
String host = bridge.getInternalIpAddress();
String serialNumber = bridge.getId().substring(0, 6) + bridge.getId().substring(10);
+ serialNumber = serialNumber.toLowerCase();
ThingUID uid = new ThingUID(THING_TYPE_BRIDGE, serialNumber);
DiscoveryResult result = DiscoveryResultBuilder.create(uid)
.withProperties(buildProperties(host, serialNumber))
if (config != null) {
Map<String, String> properties = editProperties();
String serialNumber = config.getBridgeId().substring(0, 6) + config.getBridgeId().substring(10);
+ serialNumber = serialNumber.toLowerCase();
properties.put(PROPERTY_SERIAL_NUMBER, serialNumber);
properties.put(PROPERTY_MODEL_ID, config.getModelId());
properties.put(PROPERTY_MAC_ADDRESS, config.getMACAddress());