From f260c95add34f37bcf773114ef38dad786571f4f Mon Sep 17 00:00:00 2001 From: Wendelin <12148533+wendevlin@users.noreply.github.com> Date: Thu, 19 Sep 2024 13:17:45 +0200 Subject: [PATCH] Add default value to zwave config params (#21990) * Add default value to zwave config params * Remove unused ha-switch from zwave node config * Small fix of duplicate code in zwave node config --- src/data/zwave_js.ts | 1 + .../zwave_js/zwave_js-node-config.ts | 40 +++++++++++++------ src/translations/en.json | 3 +- 3 files changed, 31 insertions(+), 13 deletions(-) diff --git a/src/data/zwave_js.ts b/src/data/zwave_js.ts index a80a17b6bb..af4ef49bed 100644 --- a/src/data/zwave_js.ts +++ b/src/data/zwave_js.ts @@ -252,6 +252,7 @@ export interface ZWaveJSNodeConfigParamMetadata { type: string; unit: string; states: { [key: number]: string }; + default: any; } export interface ZWaveJSSetConfigParamData { diff --git a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-node-config.ts b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-node-config.ts index abd39c9095..344a0cd507 100644 --- a/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-node-config.ts +++ b/src/panels/config/integrations/integration-panels/zwave_js/zwave_js-node-config.ts @@ -24,8 +24,8 @@ import "../../../../../components/ha-icon-next"; import "../../../../../components/ha-select"; import "../../../../../components/ha-settings-row"; import "../../../../../components/ha-svg-icon"; -import "../../../../../components/ha-switch"; import "../../../../../components/ha-textfield"; +import "../../../../../components/ha-selector/ha-selector-boolean"; import { computeDeviceName } from "../../../../../data/device_registry"; import { ZWaveJSNodeConfigParam, @@ -189,6 +189,11 @@ class ZWaveJSNodeConfig extends LitElement { item: ZWaveJSNodeConfigParam ): TemplateResult { const result = this._results[id]; + + const isTypeBoolean = + item.configuration_value_type === "boolean" || + this._isEnumeratedBool(item); + const labelAndDescription = html` ${this.hass.localize("ui.panel.config.zwave_js.node_config.parameter")} @@ -240,23 +245,36 @@ class ZWaveJSNodeConfig extends LitElement { `; + const defaultLabel = + item.metadata.writeable && item.metadata.default !== undefined + ? `${this.hass.localize("ui.panel.config.zwave_js.node_config.default")}: + ${ + isTypeBoolean + ? this.hass.localize( + item.metadata.default === 1 ? "ui.common.yes" : "ui.common.no" + ) + : item.configuration_value_type === "enumerated" + ? item.metadata.states[item.metadata.default] || + item.metadata.default + : item.metadata.default + }` + : ""; + // Numeric entries with a min value of 0 and max of 1 are considered boolean - if ( - item.configuration_value_type === "boolean" || - this._isEnumeratedBool(item) - ) { + if (isTypeBoolean) { return html` ${labelAndDescription}