Don't set name for entities that use device name already (#16613)

This commit is contained in:
Bram Kragten 2023-05-26 14:54:49 +02:00 committed by GitHub
parent a09db75980
commit ef51336770
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1224,6 +1224,7 @@ export class HaConfigDevicePage extends LitElement {
),
text: err.message,
});
return;
}
if (
@ -1251,16 +1252,32 @@ export class HaConfigDevicePage extends LitElement {
const updateProms = entities.map((entity) => {
const name = entity.name || entity.stateName;
let newEntityId: string | null = null;
let newName: string | null = null;
let newEntityId: string | undefined;
let newName: string | null | undefined;
if (name && name.includes(oldDeviceName)) {
let shouldUpdateName: boolean;
let shouldUpdateEntityId = false;
if (entity.has_entity_name && !entity.name) {
shouldUpdateName = false;
} else if (
entity.has_entity_name &&
(entity.name === oldDeviceName || entity.name === newDeviceName)
) {
shouldUpdateName = true;
// clear name if it matches the device name and it uses the device name (entity naming)
newName = null;
} else if (name && name.includes(oldDeviceName)) {
shouldUpdateName = true;
newName = name.replace(oldDeviceName, newDeviceName);
} else {
shouldUpdateName = false;
}
if (renameEntityid) {
const oldSearch = slugify(oldDeviceName);
if (entity.entity_id.includes(oldSearch)) {
shouldUpdateEntityId = true;
newEntityId = entity.entity_id.replace(
oldSearch,
slugify(newDeviceName)
@ -1268,13 +1285,13 @@ export class HaConfigDevicePage extends LitElement {
}
}
if (!newName && !newEntityId) {
if (newName === undefined && newEntityId === undefined) {
return undefined;
}
return updateEntityRegistryEntry(this.hass!, entity.entity_id, {
name: newName || name,
new_entity_id: newEntityId || entity.entity_id,
name: shouldUpdateName ? newName : undefined,
new_entity_id: shouldUpdateEntityId ? newEntityId : undefined,
});
});
await Promise.all(updateProms);