diff --git a/src/data/zwave_js.ts b/src/data/zwave_js.ts index b0e5ae8cbe..8f756d9d1c 100644 --- a/src/data/zwave_js.ts +++ b/src/data/zwave_js.ts @@ -439,6 +439,7 @@ export interface ZwaveJSProvisioningEntry { dsk: string; securityClasses: SecurityClass[]; nodeId?: number; + status: ProvisioningEntryStatus; [prop: string]: any; } diff --git a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-config-dashboard.ts b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-config-dashboard.ts index 70776bb5bd..085defbdfa 100644 --- a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-config-dashboard.ts +++ b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-config-dashboard.ts @@ -37,6 +37,7 @@ import { fetchZwaveNetworkStatus, fetchZwaveProvisioningEntries, InclusionState, + ProvisioningEntryStatus, restoreZwaveNVM, setZwaveDataCollectionPreference, subscribeS2Inclusion, @@ -134,7 +135,10 @@ class ZWaveJSConfigDashboard extends SubscribeMixin(LitElement) { return this._renderErrorScreen(); } const provisioningDevices = - this._provisioningEntries?.filter((entry) => !entry.nodeId).length ?? 0; + this._provisioningEntries?.filter( + (entry) => + !entry.nodeId && entry.status === ProvisioningEntryStatus.Active + ).length ?? 0; const notReadyDevices = (this._network?.controller.nodes.filter((node) => !node.ready).length ?? 0) + provisioningDevices; diff --git a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-provisioned.ts b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-provisioned.ts index e4b13608d6..48be58c639 100644 --- a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-provisioned.ts +++ b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-provisioned.ts @@ -6,6 +6,7 @@ import type { DataTableColumnContainer } from "../../../../../components/data-ta import type { ZwaveJSProvisioningEntry } from "../../../../../data/zwave_js"; import { fetchZwaveProvisioningEntries, + ProvisioningEntryStatus, SecurityClass, unprovisionZwaveSmartStartNode, } from "../../../../../data/zwave_js"; @@ -68,6 +69,14 @@ class ZWaveJSProvisioned extends LitElement { > `, }, + active: { + title: localize("ui.panel.config.zwave_js.provisioned.active"), + type: "icon", + template: (entry) => + entry.status === ProvisioningEntryStatus.Active + ? html`` + : html``, + }, dsk: { main: true, title: localize("ui.panel.config.zwave_js.provisioned.dsk"), diff --git a/src/translations/en.json b/src/translations/en.json index 55aa8e75b6..4d556e38d7 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -6192,9 +6192,10 @@ "security_classes": "Security classes", "unprovision": "Unprovision", "included": "Included", - "not_included": "Not Included", + "not_included": "Not included", "confirm_unprovision_title": "Remove device?", - "confirm_unprovision_text": "{name} will be permanently removed from Home Assistant and your Z-Wave network." + "confirm_unprovision_text": "{name} will be permanently removed from Home Assistant and your Z-Wave network.", + "active": "Active" }, "security_classes": { "None": {