Signed-off-by: Massimo Valla <mvcode00@gmail.com>
This commit is contained in:
@@ -314,16 +314,26 @@ public class OpenWebNetBridgeHandler extends ConfigStatusBridgeHandler implement
|
||||
/**
|
||||
* Un-register a device from this bridge handler
|
||||
*
|
||||
* @param oId the device OpenWebNet id
|
||||
* @param ownId the device OpenWebNet id
|
||||
*/
|
||||
protected void unregisterDevice(String oId) {
|
||||
if (registeredDevices.remove(oId) != null) {
|
||||
logger.debug("un-registered device ownId={}", oId);
|
||||
protected void unregisterDevice(String ownId) {
|
||||
if (registeredDevices.remove(ownId) != null) {
|
||||
logger.debug("un-registered device ownId={}", ownId);
|
||||
} else {
|
||||
logger.warn("could not un-register ownId={} (not found)", oId);
|
||||
logger.warn("could not un-register ownId={} (not found)", ownId);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get an already registered device on this bridge handler
|
||||
*
|
||||
* @param ownId the device OpenWebNet id
|
||||
* @return the registered device Thing handler or null if the id cannot be found
|
||||
*/
|
||||
public @Nullable OpenWebNetThingHandler getRegisteredDevice(String ownId) {
|
||||
return registeredDevices.get(ownId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEventMessage(@Nullable OpenMessage msg) {
|
||||
logger.trace("RECEIVED <<<<< {}", msg);
|
||||
|
||||
@@ -138,6 +138,15 @@ public class OpenWebNetDeviceDiscoveryService extends AbstractDiscoveryService
|
||||
deviceWho = baseMsg.getWho();
|
||||
}
|
||||
}
|
||||
|
||||
String ownId = bridgeHandler.ownIdFromWhoWhere(where, deviceWho);
|
||||
if (thingTypeUID == OpenWebNetBindingConstants.THING_TYPE_BUS_ON_OFF_SWITCH) {
|
||||
if (bridgeHandler.getRegisteredDevice(ownId) != null) {
|
||||
logger.debug("dimmer/switch with WHERE={} already registered, skipping this discovery result", where);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
String tId = bridgeHandler.thingIdFromWhere(where);
|
||||
ThingUID thingUID = new ThingUID(thingTypeUID, bridgeUID, tId);
|
||||
|
||||
@@ -159,7 +168,7 @@ public class OpenWebNetDeviceDiscoveryService extends AbstractDiscoveryService
|
||||
}
|
||||
Map<String, Object> properties = new HashMap<>(2);
|
||||
properties.put(OpenWebNetBindingConstants.CONFIG_PROPERTY_WHERE, bridgeHandler.normalizeWhere(where));
|
||||
properties.put(OpenWebNetBindingConstants.PROPERTY_OWNID, bridgeHandler.ownIdFromWhoWhere(where, deviceWho));
|
||||
properties.put(OpenWebNetBindingConstants.PROPERTY_OWNID, ownId);
|
||||
if (thingTypeUID == OpenWebNetBindingConstants.THING_TYPE_GENERIC_DEVICE) {
|
||||
thingLabel = thingLabel + " (WHO=" + deviceWho + ", WHERE=" + whereLabel + ")";
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user