Unique_id vs entity_id

Question: am I the only one doing this:

mqtt:
  binary_sensor:
    - name: "Slaapkamer 1 Licht 1"
      unique_id: "binary_sensor.slaapkamer_1_licht_1"
      state_topic: "SmartDEN_Notifier/E8EADA0033EA/DI1"
      payload_on: "On"

Notice that I’m assigning the unique_id.

I currently always name it the entity_id for clarity. What’s the added benefit of the unique_id if we already have/had the entity_id ?

If you want to change something of this entity in the ui it’s only possible if it has a unique ID (for example the icon or the area).
For automations and things like this it makes no difference as far as i know.

Here is another explanation which makes it clearer.

I understand the need for a unique id but wasn’t the entity_id already unique?

In case you haven’t set the unique_id the entity_id will be the “unique sign” of your entity, right. But once a “unique sign” for an entity is set, it cannot be changed. That’s why you cannon change the entity_id in the frontend (which is sometimes really good usable), you have to change it in your yaml config files.
Because of this I think the newer template and mqtt platforms can use a unique_id (older platforms as sensor or binary_sensor don’t have it), it’s up to you to use it if you want to change something later in your entity in the frontend/ui.
In Germany we would say it can’t hurt to use it :wink: