private static UsbDevice findDeviceByNameLowLevel ( final String name ) throws KNXException { final List < String > list = getDeviceDescriptionsLowLevel ( ) ; if ( name . isEmpty ( ) ) list . removeIf ( i -> ! isKnxInterfaceId ( i . substring ( i . indexOf ( "ID" ) + 3 , i . indexOf ( "\n" ) ) ) ) ; else list . removeIf ( i -> i . toLowerCase ( ) . indexOf ( name . toLowerCase ( ) ) == - 1 ) ; if ( list . isEmpty ( ) ) throw new KNXException ( "no USB device found with name matching '" + name + "'" ) ; final String desc = list . get ( 0 ) ; final String id = desc . substring ( desc . indexOf ( "ID" ) + 3 , desc . indexOf ( "\n" ) ) ; return findDevice ( id ) ; }
string . Pass that ID to findDevice . which will do the lookup by ID .