Updated to cope with strangely named services and devices

Some devices seem to be named Device:1 rather than Device1, added a
test for numerical value and selecting the service from the array of
parts.

There might be a better way to do it.