diff --git a/src/data/zwave_js.ts b/src/data/zwave_js.ts index 8cc704db2abb..4281c408d409 100644 --- a/src/data/zwave_js.ts +++ b/src/data/zwave_js.ts @@ -912,3 +912,14 @@ export const setZWaveJSLogLevel = ( entry_id, config: { level }, }); + +export interface ZWaveJSIntegrationSettings { + installer_mode: boolean; +} + +export const fetchZwaveIntegrationSettings = ( + hass: HomeAssistant +): Promise => + hass.callWS({ + type: "zwave_js/get_integration_settings", + }); diff --git a/src/panels/config/devices/device-detail/integration-elements/zwave_js/device-actions.ts b/src/panels/config/devices/device-detail/integration-elements/zwave_js/device-actions.ts index d7b61fa84b36..5e4d719a7eed 100644 --- a/src/panels/config/devices/device-detail/integration-elements/zwave_js/device-actions.ts +++ b/src/panels/config/devices/device-detail/integration-elements/zwave_js/device-actions.ts @@ -10,6 +10,7 @@ import { import { getConfigEntries } from "../../../../../../data/config_entries"; import type { DeviceRegistryEntry } from "../../../../../../data/device_registry"; import { + fetchZwaveIntegrationSettings, fetchZwaveIsAnyOTAFirmwareUpdateInProgress, fetchZwaveIsNodeFirmwareUpdateInProgress, fetchZwaveNodeStatus, @@ -99,17 +100,22 @@ export const getZwaveDeviceActions = async ( showZWaveJSNodeStatisticsDialog(el, { device, }), - }, - { - label: hass.localize( - "ui.panel.config.zwave_js.device_info.installer_settings" - ), - icon: mdiWrench, - href: `/config/zwave_js/node_installer/${device.id}?config_entry=${entryId}`, } ); } + const integrationSettings = await fetchZwaveIntegrationSettings(hass); + + if (integrationSettings.installer_mode) { + actions.push({ + label: hass.localize( + "ui.panel.config.zwave_js.device_info.installer_settings" + ), + icon: mdiWrench, + href: `/config/zwave_js/node_installer/${device.id}?config_entry=${entryId}`, + }); + } + if ( !( nodeStatus.ready &&