as I posted in another thread this ought to be a bug and we will check this on the Linux platform (it is working under Windows).
Regarding the features for identifying devices
(all from the Standard Features Naming Convention document):
DeviceID is now deprecated by the GenICam SFNC (Standard Features Naming Convention). You should only use it as a fallback for DeviceSerialNumber (they renamed DeviceID to DeviceSerialNumber). This, though, is not unique on its own. If you want a vendor and technology agnostic identification scheme you need:
These three toghether uniquely identify a device.
As @c.hartmann pointed out DeviceUserID is an easier way to identify a camera based on your purpose. You can put something like PartA or TopLeft into it. This also makes it easier to exchange cameras later on and precofigure them based on its purpose.
Of course you can also use technology dependent identifiers like GevMACAddress, which is equivalent to DeviceVendorName, DeviceModelName, DeviceSerialNumber.
Which scheme to choose?
If you want it to be done manually by an operator on-site I would choose the unique identifier approach. You can do this e.g. via camera numberings (port 0 to n) by configuring this with the GenICam Browser. Or by using the new discovery interface inside you application.
If you want to preconfigure the device in your lab and simply exchange the devices on-site I would prefer discovery interface and DeviceUserID.
On Linux I would prefer preconfiguration with the GenICam Browser until 13.01.xxx is released.