Why was a new naming scheme forced on the user and how to reverse it?

Hello everyone,

a new naming scheme was introduced a few weeks back and I am finding it increasingly frustrating.

There are cases where it makes sense. But why force it on us for all entities of all integrations?

I now have a bunch of entities that look something like “Xiaomi Living Room Xiaomi Temperature Living Room”. So first the device and then the entity.
Makes no sense!

Normally the device needs to have a unique name and the entity too. The new scheme asks the user to give the device a useless name which does not identify it properly just so the entity can be a proper name.

If I were to name the device without unique naming, then it would be “Xiaomi Mija Thermometer and Hygrometer” with the entity “Temperature”.
The result would again be a useless long name. And it would still not contain the location. So all entites would have the same name no matter where they are.

These names matter! They are what are seen on dashboards. Whether or not an area is assigned to them is not visible from most dashboards since most people group certain entites by topic (e.g. Temperatures) and not by area.

It seemslike it was not thorougly thought through and no one even considered that HA is not the only thing to use these names. Since no other server or service forces strange names on the user, HA messes all nomenclature up with no reason.

Why is there no opt-in and opt-out for the user? Why force such an annoying and useless thing on the user?
Making it optional would have been so easy. And the whole thing defeats the idea behind MQTT where the user defines all information him/herself. Why does HA feel the need to take away the user’s choice?

Sorry, I can’t “follow” you here, which “naming scheme” ? forced how ?.. i still “name” my entities somehow how ever i like, with NO repeated words etc … Have a “missed” something , which left me “behind” and/or am a soon to be facing a “disaster” due to my “simple” naming strategic ?

i.e camera device "TPC1, TPC2, TPC3 etc … Entities " tcp1_signal_level, tcp1_hd_stream, etc. etc. … Just to “name” one example, i have various “strategies” for various devices/integrations/domains
EDIT: ps: …TPC1 is not what i/one sees in my Views/Cards, unless i want it

So i can’t really see where you got your Idea from, but maybe i have missed something ?
You do know you can change the names when ever you like, Or is this “strange” situation you find your self in, all depended upon MQTT ? , in that case, if the MQTT Provided name to HA, result in i.e " sensor.tp1_temp_tp1_temp" …what prevents you from renaming it to sensor.tp1_temp, in Settings/Entities ?

You’re aware you can change the display name on the dashboard, right?

Interesting, I have a similar issue and didn’t even know about it until you posted this.

I recently started playing around with voice control, and realised that my naming “convention” so far was pretty inconsequent, which I never cared about that much as I could always rename things for display purposes in dashboards etc.
But when I got a new zigbee ceiling light for our workroom a few weeks ago, I wanted to do it properly, also to keep device name and area separate (to allow voice commands like “turn off lights in the workroom”).

So after connecting the lamp to HA via zha, I just named it “Ceiling lamp”, and added it to the workroom area.

First thing that annoyed me (but that is due to zigbee devices having more entity types per device): the actual entitiy for the light itself was “officially” named light.ceiling_lamp, so the light/lamp aspect of the thing was already duplicated, kind of.

After reading your post I checked the config again, and for whatever reason the “light.” entity now ADDITIONALLY has “Light” added to the end of the name:
image

I’m 100% sure that I didnt add that myself, as I only use upper case letters for the first word in the name.

Only remotely related, but when we talk about naming conventions anyway: the whole “entitiy name plus area” concept doesnt really work for me once I have multiple devices of the same type, but in different areas. In my case: I’m thinking about getting the same lamp model also for the livingroom, but I cannot just name it “Ceiliing lamp”, as that name is already taken. So I’m back to adding an area identifier into the device name, duplicating the area information again. Really not sure how a clean consequent solution would look like…

That light in the naming convention is the entity domain it belongs to.
The domain will provide it with the attributes and service calls of a light, light on/off, brightness, temperature, color and the likes.
If you ceiling lamp also had a light sensor, then it would probably also have a sensor.ceiling_lamp and probably added with a _lux or something similar to make it sensor.ceiling_lamp_lux. This is because if it had a humidity sensor too, then it would have two times sensor.ceiling_lamp, which would cause some issues, when your light automations takes the 40% humidity sensor as a value for lux.

In my opinion the device concept should just be dropped completely or just be changed to a organizational group in the HA GUI, which would then also open up for users making their own devices with group of entities.

2 Likes

Integrations are supposed to adopt the proposal, more info here: Entity | Home Assistant Developer Docs

2 Likes

True, and i “suspected” that OP was facing the very well know “issue” of MQTT, and not a “frontend configuration” Issue

EDIT: As a user, one always have to “addapt” to the various integrations one installs, some seems to have a idea of naming in a peculiar way I.E
A temperature Device (with humid / airpress)
Device-name: Temperature
Sensor-name-Temperature: sensor.temperature_sensor_temperature
Sensor-name-Humidity: sensor.temperature_sensor_humidity
Etc. … I bloody well know it’s a sensor, just like a know a switch is a switch

So one just have to “learn” from the first device one add to an integration, and “adapt”, change the names of all entities, when adding each device, some comes from device it self(depending upon brand) and some comes( are added) from the integration) …

The issue is not limited to MQTT but also integrations like Tasmota.

There no longer is a WTH section and essentially the issue is with frontend presentation because that is the only place where this strange naming is shown. In the integration itself everything looks normal because there it is a device and then entities.
The messed up naming is in frontend.

And yes, of course I am aware of the proposal which is actually mandatory now, afaik.

And I think that making this mandatory was not very well thought through.

That defeats the whole point. My devices report to the integration what the device and entity names are. If I now have to rename them all manually because someone messed with a good system… well, that makes no sense at all.

Exactly, i have more than 12 temperature sensors, same model(brand) … They ALL reports the same name
Device: Temperature
Sensor: Temperature
Sensor: Humidity
Sensor: Airpressure

So howto deal with that ?, the integration or HA, adds trailing _1 , _2 , _3 etc … Fun Not … some way or another, i am / you are in control how you want it presented, at entity-level As-Well as in UI / View … And in this example, with more than a dozen of same, one have to “address” this already in the integration-stage, knowing also i.e what HA adds, ( domain )
So calling / naming i.e a sensor for " humidity-sensor " is kind off “redundant”, because it will then be an entity-name as " sensor.humidity_sensor "

Your responses in that thread will just get all the volunteers to ignore you. I recommend removing your over emotional responses if you want to be serious about this.

Outside that, use the tools at your expense. For MQTT discovery, your auto detected names should not have the manufacturer name in it. I.e. Xiaomi should be omitted. This is 100% controlled by whatever is creating these devices (i.e. Not home assisstant). Secondly, you can rename devices and it will propagate to your entities. Lastly, if you want different names in different areas of the UI, that’s what the name field is for. It’s an override.

1 Like

Unfortunately it seems that responses are more likely to be ignored if everything stays emotionless. Threads are then simply closed and nobody reacts.

The nomenclature of an entity can in fact contain the device name or other unique identifier. Because if you just name it with a simple entity name (e.g. Temperature) then you will only ever see a bunch of entities named “Temperature” and will have to look elsewhere for the unique identification (e.g. Xiaomi vs. eQ-3).

HA has gone the less attractive route of demanding device name + entity name as a sum. This means that you have to make each individual parts unclear so the result does not contain redundancy.

Simple:
device = Xiaomi Thermometer Living Room
entity = Xiaomi Temperature Living Room
entity = Xiaomi Humidity Living Room

Each clear by themselves and no redundancy.

HA turned this into
entity = Xiaomi Thermometer Living Room Xiaomi Temperature Living Room

Only way to prevent this would be to miss out on the location (for me theprime identifier) in the device name and skip the manufacturer (also important information) in the entity.

So in a device listing I would not see which Xiaomi Thermometer it is (e.g. whoch room). And in an entity listing I would not know which device it is (i.e. Xiaomi or eQ-3).

Just as examples.
Because all MQTT information should ve unmistakeable, if possible. And it is possible. HA just doesn’t let us use it that way anymore.

Speaking as a former development support manager - I tuned out emotional responses (and yes you go to the bottom of my workload because honestly I wouldn’t want to deal with it)

Most Devs for HA are volunteers and have less patience.

Emotional response is not the answer.

…please, Continue the discussion

1 Like

No, that’s what you aren’t understanding, the device is meant for that. It’s appended to all sub entities. Don’t include it in both.

input via discovery:

Device = Xiaomi Thermometer Living Room
Entity = Temperature
Entity = Humidity

outcome:

Device: Xiaomi Thermometer Living Room
Entity: Xiaomi Thermometer Living Room Temperature
Entity: Xiaomi Thermometer Living Room Humidity

It’s a really simple concept and you’re fighting it for some reason.

Because you’re including the device name in the entity, which is what the change is all about. Instead of trying to understand and pivot with the change, you’re trying to combat it.

I would agree if there was not a history in HA developement that reasonable requests are simply ignored whereas emotional responses are at least reacted to.
I’d rather know that someone saw it and disliked the emotion than having topics just go stale over and over with no reaction at all.

Unfortunately your approach will only work for HA and break everything else.

The naming you propose in your example will only show in the frontend of HA.
The entities will then be named sensor.temperature, sensor.temperature2 etc.
That makes no sense.

And any other program will not show any reasonable names for the entities anymore because nobody except HA forces this strange reformatting/recombination of names.

I am fighting it because HA is the only one trying to break a working system and their approach will break compatibility with everything and everyone else.

No, not at all. Every integration done via the UI follows this naming convention.

No again, you are making assumptions and not trying it. Device names are added to entity_ids. Please try this before you continue your tirade.

No you are fighting it because you have not taken the time to understand it. You’ve made a ton of false claims so far which show me you literally have not used it yet.

3 Likes

So to further expand on this:

Your output entity_id’s would be:

sensor.xiaomi_thermometer_living_room_temperature
sensor.xiaomi_thermometer_living_room_humidity

Keep in mind, this is only for the auto-generated names. You can override this at any time.

If you rename the device, you have the option to propogate the device_name to the entity names and entity_ids. With this, you can rename things to your hearts content. There are times where I rename the device, push it to all entities, then rename the device again without pushing it to all entities.

1 Like

None of my MQTT entities now have device names in the entity_ids.

And I am talking HA and its integrations when I say HA because the devs of integrations were forced to follow this approach.

Any other, HA independent platform (other servers etc) will not work properly/show proper names if I make the changes required for HA in my payloads.

edit:

[sensor.xiaomi_battery_dining_room]

Xiaomi Dining Room Xiaomi Battery Dining Room

← MQTT integration

EDIT2:
seems tasmota changed this now and my entity_ids are not getting this new nomenclature.