How to easily upgrade to new physical devices? (renaming, name templates, etc.)

Question
I’ve received new color bulbs to replace single color smart bulbs.
Question 1: How do I easily replace the entity names throughout HA and Node Red?
Question 2: Is there a way to make this easier in the future?

Current Setup
I’ve been using HA for a few months and have 6 smart bulbs and received 7 more as a gift. I’d like to replace two single color bulbs with RGB bulbs I received. I’ve not yet added the new bulbs to HA.
The two ‘old’ bulbs are named:

  • light.living_room_lamp_left
  • light.living_room_lamp_right

I’ve used a similar schema for all devices.

Question 1 - Replacing those bulbs
What is the easiest way to replace the single color bulbs with the RGB bulbs?

Option 1
Delete the old bulbs from HA and add the new devices. Give the new devices the same name.

Option 2
Add the new bulbs with their own name and find+replace the old device names through automations, scripts, Groups, Alexa integration, and NodeRed.

Option 3
Is there a better way?

Question 2 - Making it easier in the future
I’m willing to completely redo my setup for device naming to make the future easier…

Option 1 - Using Groups as a variable template?
I’ve considered putting each bulb in it’s own group by itself. Providing an abstraction layer between the friendly name used in automations, scripts, and NodeRed. This way I could change the actual device name without having to change any automation or NodeRed flow.

Is there any downside to this?

Example:

light:
  - platform: group
    name: Living Room Left Lamp
    entities:
      - light.rgb_bulb_1
  - platform: group
    name: Living Room Left Right
    entities:
      - light.rgb_bulb_2

Option 2
I’m at a loss… Any ideas?
Or, is it even necessary to attempt this because Question 1 - Option 1 (see first part of this post) is really the easiest way?

Option 1 seems to involve the least amount of work.

There’s no support for the kind of additional abstraction layer you want. I’ve used another home automation software since 2007 and it has that kind of additional degree of freedom. When I define a light called Home.LivingRoom.Tablelamp, it is a virtual light that I ‘bind’ to a physical light (the concept isn’t limited to lights). At any time, I can bind it to a different physical light (on the fly, without having to restart anything) and all existing automation logic continues to work properly.

Your idea to use a Group (one for each light) is a clever way to provide this additional level of abstraction but it won’t work, chiefly because a Group can only turn on/off its members (i.e. no control of brightness and color).

If you want to go down the abstraction route, I suggest using a Light Group (not the same as a Group). It behaves as a parent light entity for all of its child lights (in your case, it would be only one child per parent). A Light Group appears like any other light entity, offering the ability to control brightness, color, and color temperature.

My recommendation would be to simply use Option 1 (remove old entities and replace with new ones with identical names) and not bother with Light Groups as an abstraction layer.

Thanks @123 Unless someone has a a more compelling answer in the next few days I’ll probably go with your recommendation.
I’ll save the abstraction idea for another WTH in the future.

Out of curiosity, what was the other platform and what did it call the abstraction layer?