From 363792aee8f9535163e7c0aa3e5b9961165fc088 Mon Sep 17 00:00:00 2001 From: slugzero <2014249+slugzero@users.noreply.github.com> Date: Tue, 9 Jan 2024 19:54:49 +0100 Subject: [PATCH] fix: Set Home Assistant entity categories `config` and `diagnostic` according to expose categories (#20663) * Add exposes starting with 'config' or 'diagnostic' to respective Home Assistant categories * alt proposal: default category based on new Expose property * Use single category 'system' instead of 'config' and 'diagnostic' * Revert "Use single category 'system' instead of 'config' and 'diagnostic'" This reverts commit 416dd9c56815147c9af7eea8de282159f1f40937. * lint --- lib/extension/homeassistant.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/extension/homeassistant.ts b/lib/extension/homeassistant.ts index fa03042f3..2e6e0dd97 100644 --- a/lib/extension/homeassistant.ts +++ b/lib/extension/homeassistant.ts @@ -1039,6 +1039,14 @@ export default class HomeAssistant extends Extension { throw new Error(`Unsupported exposes type: '${firstExpose.type}'`); } + // Exposes with category 'config' or 'diagnostic' are always added to the respective category. + // This takes precedence over definitions in this file. + if (firstExpose.category === 'config') { + discoveryEntries.forEach((d) => d.discovery_payload.entity_category = 'config'); + } else if (firstExpose.category === 'diagnostic') { + discoveryEntries.forEach((d) => d.discovery_payload.entity_category = 'diagnostic'); + } + discoveryEntries.forEach((d) => { // If a sensor has entity category `config`, then change // it to `diagnostic`. Sensors have no input, so can't be configured.