From 12f73669689bd41c8456f0a910ec9824d6a19d99 Mon Sep 17 00:00:00 2001 From: Charles Garwood Date: Tue, 13 Jul 2021 12:05:22 -0400 Subject: [PATCH] Replace home ID with config entry title in Z-Wave device Info (#9488) --- .../zwave_js/ha-device-info-zwave_js.ts | 42 +++++++++++++++---- src/translations/en.json | 1 + 2 files changed, 36 insertions(+), 7 deletions(-) diff --git a/src/panels/config/devices/device-detail/integration-elements/zwave_js/ha-device-info-zwave_js.ts b/src/panels/config/devices/device-detail/integration-elements/zwave_js/ha-device-info-zwave_js.ts index f8558fc5fb..4aeeaf1cce 100644 --- a/src/panels/config/devices/device-detail/integration-elements/zwave_js/ha-device-info-zwave_js.ts +++ b/src/panels/config/devices/device-detail/integration-elements/zwave_js/ha-device-info-zwave_js.ts @@ -8,6 +8,10 @@ import { } from "lit"; import { customElement, property, state } from "lit/decorators"; import { DeviceRegistryEntry } from "../../../../../../data/device_registry"; +import { + ConfigEntry, + getConfigEntries, +} from "../../../../../../data/config_entries"; import { fetchNodeStatus, getIdentifiersFromDevice, @@ -26,9 +30,11 @@ export class HaDeviceInfoZWaveJS extends LitElement { @state() private _entryId?: string; - @state() private _nodeId?: number; + @state() private _configEntry?: ConfigEntry; - @state() private _homeId?: string; + @state() private _multipleConfigEntries = false; + + @state() private _nodeId?: number; @state() private _node?: ZWaveJSNode; @@ -40,7 +46,6 @@ export class HaDeviceInfoZWaveJS extends LitElement { if (!identifiers) { return; } - this._homeId = identifiers.home_id; this._nodeId = identifiers.node_id; this._entryId = this.device.config_entries[0]; @@ -52,6 +57,25 @@ export class HaDeviceInfoZWaveJS extends LitElement { if (!this._nodeId || !this._entryId) { return; } + + const configEntries = await getConfigEntries(this.hass); + let zwaveJsConfEntries = 0; + for (const entry of configEntries) { + if (entry.domain !== "zwave_js") { + continue; + } + if (zwaveJsConfEntries) { + this._multipleConfigEntries = true; + } + if (entry.entry_id === this._entryId) { + this._configEntry = entry; + } + if (this._configEntry && this._multipleConfigEntries) { + break; + } + zwaveJsConfEntries++; + } + this._node = await fetchNodeStatus(this.hass, this._entryId, this._nodeId); } @@ -63,10 +87,14 @@ export class HaDeviceInfoZWaveJS extends LitElement {

${this.hass.localize("ui.panel.config.zwave_js.device_info.zwave_info")}

-
- ${this.hass.localize("ui.panel.config.zwave_js.common.home_id")}: - ${this._homeId} -
+ ${this._multipleConfigEntries + ? html` +
+ ${this.hass.localize("ui.panel.config.zwave_js.common.source")}: + ${this._configEntry!.title} +
+ ` + : ""}
${this.hass.localize("ui.panel.config.zwave_js.common.node_id")}: ${this._node.node_id} diff --git a/src/translations/en.json b/src/translations/en.json index f371bdaaf0..a652e70a64 100755 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -2593,6 +2593,7 @@ "network": "Network", "node_id": "Node ID", "home_id": "Home ID", + "source": "Source", "close": "Close", "add_node": "Add Node", "remove_node": "Remove Node",