This doesn't look like a maintainable design to me. You are attaching device aliases to individual channels. This means that the same device alias, on two different channels, can point to two different devices. And if a device is removed from a channel, there's nothing in this code that ensures the alias is removed with it; so a channel might have dangling aliases to a device that has been removed from that channel.
I would prefer to see device aliases handled globally, not per channel.
This doesn't look like a maintainable design to me. You are attaching device aliases to individual channels. This means that the same device alias, on two different channels, can point to two different devices. And if a device is removed from a channel, there's nothing in this code that ensures the alias is removed with it; so a channel might have dangling aliases to a device that has been removed from that channel.
I would prefer to see device aliases handled globally, not per channel.