I agree with @tgauchat, this should be “straightforward data manipulation.”
Aren’t we part of the way there with the “replace device” button I see under some Things? I assume a SmartApp is attached to the UniqueID of a device. I understand that a Z-Wave or ZigBee device pairs itself with a hub, but the SmartApp association is strictly at the software level.
So, associate all the SmartApps and Things over to a new Hub at the software level. Then, one by one, select a Thing and say “replace this device” or “move this device.” I then un-pair it from the old hub and run the association with the new one. It then puts it “in the same slot” as the Thing that was being replaced and I don’t have to touch any of the SmartApps. This is so important because some devices are associated with a dozen or more smart apps, including OAuth apps like an Amazon Echo, Harmony Remote, SmartRules, etc. There exists a lot of stuff OUTSIDE of SmartThings that would need to be completely rebuilt as well without a tool.
Yes, I’m over simplifying it and there is probably a lot of backend code involved. But still, this seems quite straightforward. I don’t need to move a device from one hub to another without un-pairing it. I get it that it needs to be re-paired. That happens with Bluetooth and people are used to that process.
So instead of coding the perfect process that copies identifiers between hubs, blah, blah, blah…create a process that does 90% of the work and all the consumer needs to do is un-pair and re-pair.
What am I missing here? I must be missing something because this is the kind of rough design that someone puts together during a hackathon.