diff --git a/src/data/integration.ts b/src/data/integration.ts index 7eb60bfb44..78303f7b1c 100644 --- a/src/data/integration.ts +++ b/src/data/integration.ts @@ -22,6 +22,7 @@ export type IntegrationType = export interface IntegrationManifest { is_built_in: boolean; + overwrites_built_in?: boolean; domain: string; name: string; config_flow: boolean; diff --git a/src/data/integrations.ts b/src/data/integrations.ts index 94235ae38c..fdd9c68f31 100644 --- a/src/data/integrations.ts +++ b/src/data/integrations.ts @@ -11,6 +11,7 @@ export interface Integration { iot_class?: string; supported_by?: string; is_built_in?: boolean; + overwrites_built_in?: boolean; single_config_entry?: boolean; } @@ -23,6 +24,7 @@ export interface Brand { integrations?: Integrations; iot_standards?: IotStandards[]; is_built_in?: boolean; + overwrites_built_in?: boolean; } export interface Brands { diff --git a/src/panels/config/integrations/dialog-add-integration.ts b/src/panels/config/integrations/dialog-add-integration.ts index e94008727d..7ca0810f4f 100644 --- a/src/panels/config/integrations/dialog-add-integration.ts +++ b/src/panels/config/integrations/dialog-add-integration.ts @@ -69,6 +69,7 @@ export interface IntegrationListItem { supported_by?: string; cloud?: boolean; is_built_in?: boolean; + overwrites_built_in?: boolean; is_add?: boolean; single_config_entry?: boolean; } @@ -211,6 +212,7 @@ class AddIntegrationDialog extends LitElement { iot_standards: supportedIntegration.iot_standards, supported_by: integration.supported_by, is_built_in: supportedIntegration.is_built_in !== false, + overwrites_built_in: integration.overwrites_built_in, cloud: supportedIntegration.iot_class?.startsWith("cloud_"), single_config_entry: integration.single_config_entry, }); @@ -232,6 +234,7 @@ class AddIntegrationDialog extends LitElement { ? Object.keys(integration.integrations) : undefined, is_built_in: integration.is_built_in !== false, + overwrites_built_in: integration.overwrites_built_in, }); } else if (filter && "integration_type" in integration) { // Integration without a config flow @@ -240,6 +243,7 @@ class AddIntegrationDialog extends LitElement { name: integration.name || domainToName(localize, domain), config_flow: integration.config_flow, is_built_in: integration.is_built_in !== false, + overwrites_built_in: integration.overwrites_built_in, cloud: integration.iot_class?.startsWith("cloud_"), }); } diff --git a/src/panels/config/integrations/ha-integration-card.ts b/src/panels/config/integrations/ha-integration-card.ts index 913335e702..1eec3e3a26 100644 --- a/src/panels/config/integrations/ha-integration-card.ts +++ b/src/panels/config/integrations/ha-integration-card.ts @@ -161,14 +161,20 @@ export class HaIntegrationCard extends LitElement { : html`
`}