Is New friendly_name working properly with HA?

Hello,
as mentioned in the 2023.2 esphome changelog,

ESPHome now supports setting a friendly_name which is sent to Home Assistant. This name will be used for the config entry, the device name, and will be automatically prefixed to all of the entities where needed by Home Assistant.

then

take note that you should remove any friendly name (substitition) that you currently prepend onto entity name in YAML.

So did I, unfortunately what i get is that those entities got all the same name, while I expected HA added the friendly name to all of them as prefix so it was easy to find the needed entity at the occurrence.

I had to remove and add all entities again but what HA done is adding a progressive numeric suffix - eg.: (1) - (2) - to all homonym entities.

Did I understand wrong or something is not working as expected?
thank you

1 Like

I did it this way:

esphome:
  name: study-camera
  friendly_name: Study Camera

# Camera entity
esp32_camera:
  name: ""
  ...

# Wifi SSID Sensor
text_sensor:
  - platform: wifi_info
    ssid:
      name: Wifi SSID

and ended up with the following entities in Home Assistant:

Study Camera 				camera.study_camera
Study Camera Wifi SSID 		sensor.study_camera_wifi_ssid

And a restart of Home Assistant helped remove any old entities I had created using substitutions.

1 Like

Hi, what happens if you remove

# name:""

Not sure since I get a validation error, which says you need either name: or id:. Perhaps you could try removing the name and adding an id instead.

1 Like

Oh yeah, that’s it. Id without name is recognized as internal entity.
That’s why I got issues on some of them.

Thanks!

@Cuddon , your approach makes sense, and I’ve tried it, though am not getting the expected results. All of the entity and attribute names are still generic, and have appended numbers a noted by @raidnet-ms above. Could I ask if you see anything obviously wrong in the yaml below?

esphome:
  name: 'clothes-dryer'
  friendly_name: 'Clothes Dryer'
  name_add_mac_suffix: false

esp8266:
  board: esp8285
  restore_from_flash: true

preferences:
  flash_write_interval: 1min
  
ota:

logger:
  baud_rate: 0

mdns:
  disabled: false

web_server:
  port: 80

#wifi:
#  ap: {} # This spawns an AP with the device name and mac address with no password.

captive_portal:

#dashboard_import:
#  package_import_url: github://athom-tech/athom-configs/athom-smart-plug-v2.yaml

uart:
  rx_pin: RX
  baud_rate: 4800

globals:
  - id: total_energy
    type: float
    restore_value: yes
    initial_value: '0.0' 

binary_sensor:
  - platform: status
    name: "${friendly_name} Status"

  - platform: gpio
    pin:
      number: 5
      mode: INPUT_PULLUP
      inverted: true
    name: "${friendly_name} Power Button"
    disabled_by_default: true
    on_multi_click:
      - timing:
          - ON for at most 1s
          - OFF for at least 0.2s
        then:
          - switch.toggle: relay
      - timing:
          - ON for at least 4s
        then:
          - button.press: Reset

sensor:
  - platform: uptime
    name: "${friendly_name} Uptime Sensor"

  - platform: cse7766
    update_interval: 10s
    current:
      name: "${friendly_name} Current"
      filters:
          - lambda: if (x < 0.060) return 0.0; else return x;   #For the chip will report less than 3w power when no load is connected


    voltage:
      name: "${friendly_name} Voltage"
    power:
      name: "${friendly_name} Power"
      id: power_sensor
      filters:
          - lambda: if (x < 3.0) return 0.0; else return x;    #For the chip will report less than 3w power when no load is connected


    energy:
      name: "${friendly_name} Energy"
      id: energy
      unit_of_measurement: kWh
      filters:
        # Multiplication factor from W to kW is 0.001
        - multiply: 0.001
      on_value:
        then:
          - lambda: |-
              static float previous_energy_value = 0.0;
              float current_energy_value = id(energy).state;
              id(total_energy) += current_energy_value - previous_energy_value;
              previous_energy_value = current_energy_value;
  - platform: template
    name: "${friendly_name} Total Energy"
    unit_of_measurement: kWh
    device_class: "energy"
    state_class: "total_increasing"
    icon: "mdi:lightning-bolt"
    accuracy_decimals: 3
    lambda: |-
      return id(total_energy);
    update_interval: 10s

  - platform: total_daily_energy
    name: "${friendly_name} Total Daily Energy"
    restore: true
    power_id: power_sensor
    unit_of_measurement: kWh
    accuracy_decimals: 3
    filters:
      - multiply: 0.001


button:
  - platform: factory_reset
    name: "Restart with Factory Default Settings"
    id: Reset
    
  - platform: safe_mode
    name: "Safe Mode"
    internal: false

switch:
  - platform: gpio
    name: "${friendly_name}"
    pin: GPIO12
    id: relay
    restore_mode: ${relay_restore_mode}

light:
  - platform: status_led
    name: "${friendly_name} Status LED"
    id: blue_led
    disabled_by_default: true
    pin:
      inverted: true
      number: GPIO13

text_sensor:
  - platform: wifi_info
    ip_address:
      name: "IP Address"
    ssid:
      name: "Connected SSID"
    mac_address:
      name: "Mac Address"
     
time:
  - platform: sntp
    id: sntp_time
api:
  encryption:
    key: 9Oq0tr53+OD3hUHNqjIr/U/PqVRjxabYwl/Sk5XOJhg=

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  use_address: <removed from public posting>

Hi WIlls,
you should remove the friendly name variable from any entity, then remove the esphome device and add it back.

1 Like

I’ve been dealing with this same issue and had to change all my automations and scripts. I opened a feature request here: Add option to remove the prefixing of "friendly_name" since this affects the voice assistant · Issue #2476 · esphome/feature-requests · GitHub.