From 14e044093c4f481fc7c4f58c35c68ebddddf621c Mon Sep 17 00:00:00 2001 From: Sergei Salimov <32013287+mrskycriper@users.noreply.github.com> Date: Sat, 9 Mar 2024 00:39:15 +0300 Subject: [PATCH] fix: Home Assistant: remove button name if `device_class` is present (#21726) * Remove preset name if button has device class * fix device_class for consumer_connected * combine device_class checks --- lib/extension/homeassistant.ts | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/lib/extension/homeassistant.ts b/lib/extension/homeassistant.ts index 806920d2f..e490e1647 100644 --- a/lib/extension/homeassistant.ts +++ b/lib/extension/homeassistant.ts @@ -614,7 +614,7 @@ export default class HomeAssistant extends Extension { card: {entity_category: 'config', icon: 'mdi:clipboard-check'}, child_lock: {entity_category: 'config', icon: 'mdi:account-lock'}, color_sync: {entity_category: 'config', icon: 'mdi:sync-circle'}, - consumer_connected: {entity_category: 'diagnostic', device_class: 'connectivity'}, + consumer_connected: {device_class: 'plug'}, contact: {device_class: 'door'}, garage_door_contact: {device_class: 'garage_door', payload_on: false, payload_off: true}, eco_mode: {entity_category: 'config', icon: 'mdi:leaf'}, @@ -685,9 +685,6 @@ export default class HomeAssistant extends Extension { }, }; - // Let Home Assistant generate entity name when device_class is present - if (discoveryEntry.discovery_payload.device_class) delete discoveryEntry.discovery_payload.name; - discoveryEntries.push(discoveryEntry); } else { const discoveryEntry: DiscoveryEntry = { @@ -703,9 +700,6 @@ export default class HomeAssistant extends Extension { }, }; - // Let Home Assistant generate entity name when device_class is present - if (discoveryEntry.discovery_payload.device_class) delete discoveryEntry.discovery_payload.name; - discoveryEntries.push(discoveryEntry); } } else if (isNumericExposeFeature(firstExpose)) { @@ -901,9 +895,6 @@ export default class HomeAssistant extends Extension { discoveryEntry.discovery_payload.entity_category = 'diagnostic'; } - // Let Home Assistant generate entity name when device_class is present - if (discoveryEntry.discovery_payload.device_class) delete discoveryEntry.discovery_payload.name; - discoveryEntries.push(discoveryEntry); /** @@ -934,9 +925,6 @@ export default class HomeAssistant extends Extension { delete discoveryEntry.discovery_payload.device_class; } - // Let Home Assistant generate entity name when device_class is present - if (discoveryEntry.discovery_payload.device_class) delete discoveryEntry.discovery_payload.name; - if (firstExpose.value_min != null) discoveryEntry.discovery_payload.min = firstExpose.value_min; if (firstExpose.value_max != null) discoveryEntry.discovery_payload.max = firstExpose.value_max; @@ -1111,6 +1099,13 @@ export default class HomeAssistant extends Extension { } }); + discoveryEntries.forEach((d) => { + // Let Home Assistant generate entity name when device_class is present + if (d.discovery_payload.device_class) { + delete d.discovery_payload.name; + } + }); + return discoveryEntries; }