Sorry to bring back something that has been repeatedly discussed.
This week I had the experience of having two Zigbee bulbs fail, and needing to substitute them.
It took me more than two hours having all rules and apps correctly addressed.
I understand the difficulty of updating the references and apps, specially if the capabilities of the devices do not fully coincide.
But if they do, and especially if the substitution is done with an identical device, which uses the same driver, swapping them should be a straightforward task.
Unless I've not thought this through properly, even if the new device is not identical it shouldn't be a problem for implementing the feature - the user would have a little bit of extra work changing the driver, and then if the capabilities didn't match there could be some rule troubleshooting to do, but off the top of my head I can't think why this needs to be a problem for the actual feature developers - users need to use sensibly.
That’s not very easy at all when the device(s) are referenced in multiple locations and/or rules. Hence the OPs request for a direct method to replace or substitute devices.
What about single substitute device type that has all attributes required to satisfy any rule? If it doesn't send/respond to signals, and things don't work, is that actually a big deal? I mean, I know I put the substitute device into the system, I know those rules aren't going to work, I can accept that.
I paired a bunch of devices as S2 when I set up my C7, and I'm going to be taking another crack at doing firmware updates. It's not something I'm looking forward to doing.
This missing functionality is probably my single biggest knock against HE.
This will not work. Apps don’t use device names. They use device-ids. There is a valid need for a simple method of device substitution. However, I don’t believe that is easy to implement.
This is not an answer to your request but I put all my Motion sensors into Zone Motion Controller even if there is just one device.
This way I just need to change the device in ZMC and it's job done as the ZMC device is used in all dashboards, rules, Hub Mesh etc.
I do the same with contact sensors and water leak sensors by using Device Groups.
I do the same with groups -eg I have a group named Bed1 Ceiling light that currently only contains a single light, but all my rules use the group (my rules are in Node Red but it's the same principal) then if I need to change the light itself it is a one place change.
One of the things I like about the Hubitat hub is how easily one can change the device labels. The device id doesn't change, just the label. But the system matches the label to the id whenever and where ever it finds it.
Yep, this is what I did, but considering the different groups, rules, apps and dashboards, it can take me one hour to substitute a faulty bulb (it did).
That is why I believe this should be straightforward, at least on those cases where devices are substituted with identical replacements.
For sure it definitely doesn’t work. Plus even if it did it’s not recommended to remove a device from HE without first removing it from all rules. Which would then mean adding the new device back in again. Thereby negating this approach anyway.
Although there are "other ways to do it" they take a long time and the entire purpose of computing is to automate things that take a long time. This is a valid feature request imho.