diff --git a/src/data/zwave_js.ts b/src/data/zwave_js.ts index 623516ce5941..1c73185656b2 100644 --- a/src/data/zwave_js.ts +++ b/src/data/zwave_js.ts @@ -192,7 +192,7 @@ export interface ZWaveJSController { supported_function_types: number[]; suc_node_id: number; supports_timers: boolean; - is_heal_network_active: boolean; + is_rebuilding_routes: boolean; inclusion_state: InclusionState; nodes: ZWaveJSNodeStatus[]; } @@ -278,9 +278,9 @@ export interface ZWaveJSRefreshNodeStatusMessage { stage?: string; } -export interface ZWaveJSHealNetworkStatusMessage { +export interface ZWaveJSRebuildRoutesStatusMessage { event: string; - heal_node_status: { [key: number]: string }; + rebuild_routes_status: { [key: number]: string }; } export interface ZWaveJSControllerStatisticsUpdatedMessage { @@ -651,12 +651,12 @@ export const reinterviewZwaveNode = ( } ); -export const healZwaveNode = ( +export const rebuildZwaveNodeRoutes = ( hass: HomeAssistant, device_id: string ): Promise => hass.callWS({ - type: "zwave_js/heal_node", + type: "zwave_js/rebuild_node_routes", device_id, }); @@ -673,33 +673,33 @@ export const removeFailedZwaveNode = ( } ); -export const healZwaveNetwork = ( +export const rebuildZwaveNetworkRoutes = ( hass: HomeAssistant, entry_id: string ): Promise => hass.callWS({ - type: "zwave_js/begin_healing_network", + type: "zwave_js/begin_rebuilding_routes", entry_id, }); -export const stopHealZwaveNetwork = ( +export const stopRebuildingZwaveNetworkRoutes = ( hass: HomeAssistant, entry_id: string ): Promise => hass.callWS({ - type: "zwave_js/stop_healing_network", + type: "zwave_js/stop_rebuilding_routes", entry_id, }); -export const subscribeHealZwaveNetworkProgress = ( +export const subscribeRebuildZwaveNetworkRoutesProgress = ( hass: HomeAssistant, entry_id: string, - callbackFunction: (message: ZWaveJSHealNetworkStatusMessage) => void + callbackFunction: (message: ZWaveJSRebuildRoutesStatusMessage) => void ): Promise => hass.connection.subscribeMessage( (message: any) => callbackFunction(message), { - type: "zwave_js/subscribe_heal_network_progress", + type: "zwave_js/subscribe_rebuild_routes_progress", entry_id, } ); 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 ff37acf6f9e4..d6d4af86de27 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 @@ -15,7 +15,7 @@ import { } from "../../../../../../data/zwave_js"; import { showConfirmationDialog } from "../../../../../../dialogs/generic/show-dialog-box"; import type { HomeAssistant } from "../../../../../../types"; -import { showZWaveJSHealNodeDialog } from "../../../../integrations/integration-panels/zwave_js/show-dialog-zwave_js-heal-node"; +import { showZWaveJSRebuildNodeRoutesDialog } from "../../../../integrations/integration-panels/zwave_js/show-dialog-zwave_js-rebuild-node-routes"; import { showZWaveJSNodeStatisticsDialog } from "../../../../integrations/integration-panels/zwave_js/show-dialog-zwave_js-node-statistics"; import { showZWaveJSReinterviewNodeDialog } from "../../../../integrations/integration-panels/zwave_js/show-dialog-zwave_js-reinterview-node"; import { showZWaveJSRemoveFailedNodeDialog } from "../../../../integrations/integration-panels/zwave_js/show-dialog-zwave_js-remove-failed-node"; @@ -69,10 +69,12 @@ export const getZwaveDeviceActions = async ( }), }, { - label: hass.localize("ui.panel.config.zwave_js.device_info.heal_node"), + label: hass.localize( + "ui.panel.config.zwave_js.device_info.rebuild_routes" + ), icon: mdiHospitalBox, action: () => - showZWaveJSHealNodeDialog(el, { + showZWaveJSRebuildNodeRoutesDialog(el, { device, }), }, diff --git a/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-heal-network.ts b/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-rebuild-network-routes.ts similarity index 74% rename from src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-heal-network.ts rename to src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-rebuild-network-routes.ts index db1162519533..ef0eafe4758c 100644 --- a/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-heal-network.ts +++ b/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-rebuild-network-routes.ts @@ -8,18 +8,18 @@ import { fireEvent } from "../../../../../common/dom/fire_event"; import { createCloseHeading } from "../../../../../components/ha-dialog"; import { fetchZwaveNetworkStatus, - healZwaveNetwork, - stopHealZwaveNetwork, - subscribeHealZwaveNetworkProgress, - ZWaveJSHealNetworkStatusMessage, + rebuildZwaveNetworkRoutes, + stopRebuildingZwaveNetworkRoutes, + subscribeRebuildZwaveNetworkRoutesProgress, + ZWaveJSRebuildRoutesStatusMessage, ZWaveJSNetwork, } from "../../../../../data/zwave_js"; import { haStyleDialog } from "../../../../../resources/styles"; import { HomeAssistant } from "../../../../../types"; -import { ZWaveJSHealNetworkDialogParams } from "./show-dialog-zwave_js-heal-network"; +import { ZWaveJSRebuildNetworkRoutesDialogParams } from "./show-dialog-zwave_js-rebuild-network-routes"; -@customElement("dialog-zwave_js-heal-network") -class DialogZWaveJSHealNetwork extends LitElement { +@customElement("dialog-zwave_js-rebuild-network-routes") +class DialogZWaveJSRebuildNetworkRoutes extends LitElement { @property({ attribute: false }) public hass!: HomeAssistant; @state() private entry_id?: string; @@ -34,7 +34,7 @@ class DialogZWaveJSHealNetwork extends LitElement { private _subscribed?: Promise; - public showDialog(params: ZWaveJSHealNetworkDialogParams): void { + public showDialog(params: ZWaveJSRebuildNetworkRoutesDialogParams): void { this._progress_total = 0; this.entry_id = params.entry_id; this._fetchData(); @@ -61,7 +61,9 @@ class DialogZWaveJSHealNetwork extends LitElement { @closed=${this.closeDialog} .heading=${createCloseHeading( this.hass, - this.hass.localize("ui.panel.config.zwave_js.heal_network.title") + this.hass.localize( + "ui.panel.config.zwave_js.rebuild_network_routes.title" + ) )} > ${!this._status @@ -74,7 +76,7 @@ class DialogZWaveJSHealNetwork extends LitElement {

${this.hass.localize( - "ui.panel.config.zwave_js.heal_network.introduction" + "ui.panel.config.zwave_js.rebuild_network_routes.introduction" )}

@@ -82,13 +84,16 @@ class DialogZWaveJSHealNetwork extends LitElement {

${this.hass.localize( - "ui.panel.config.zwave_js.heal_network.traffic_warning" + "ui.panel.config.zwave_js.rebuild_network_routes.traffic_warning" )}

- + ${this.hass.localize( - "ui.panel.config.zwave_js.heal_network.start_heal" + "ui.panel.config.zwave_js.rebuild_network_routes.start_rebuilding_routes" )} ` @@ -99,13 +104,13 @@ class DialogZWaveJSHealNetwork extends LitElement {

${this.hass.localize( - "ui.panel.config.zwave_js.heal_network.in_progress" + "ui.panel.config.zwave_js.rebuild_network_routes.in_progress" )}

${this.hass.localize( - "ui.panel.config.zwave_js.heal_network.run_in_background" + "ui.panel.config.zwave_js.rebuild_network_routes.run_in_background" )}

@@ -114,9 +119,12 @@ class DialogZWaveJSHealNetwork extends LitElement { ` : ""} - + ${this.hass.localize( - "ui.panel.config.zwave_js.heal_network.stop_heal" + "ui.panel.config.zwave_js.rebuild_network_routes.stop_rebuilding_routes" )} @@ -134,7 +142,7 @@ class DialogZWaveJSHealNetwork extends LitElement {

${this.hass.localize( - "ui.panel.config.zwave_js.heal_network.healing_failed" + "ui.panel.config.zwave_js.rebuild_network_routes.rebuilding_routes_failed" )}

@@ -154,7 +162,7 @@ class DialogZWaveJSHealNetwork extends LitElement {

${this.hass.localize( - "ui.panel.config.zwave_js.heal_network.healing_complete" + "ui.panel.config.zwave_js.rebuild_network_routes.rebuilding_routes_complete" )}

@@ -174,7 +182,7 @@ class DialogZWaveJSHealNetwork extends LitElement {

${this.hass.localize( - "ui.panel.config.zwave_js.heal_network.healing_cancelled" + "ui.panel.config.zwave_js.rebuild_network_routes.rebuilding_routes_cancelled" )}

@@ -205,9 +213,9 @@ class DialogZWaveJSHealNetwork extends LitElement { const network: ZWaveJSNetwork = await fetchZwaveNetworkStatus(this.hass!, { entry_id: this.entry_id!, }); - if (network.controller.is_heal_network_active) { + if (network.controller.is_rebuilding_routes) { this._status = "started"; - this._subscribed = subscribeHealZwaveNetworkProgress( + this._subscribed = subscribeRebuildZwaveNetworkRoutesProgress( this.hass, this.entry_id!, this._handleMessage.bind(this) @@ -215,33 +223,33 @@ class DialogZWaveJSHealNetwork extends LitElement { } } - private _startHeal(): void { + private _startRebuildingRoutes(): void { if (!this.hass) { return; } - healZwaveNetwork(this.hass, this.entry_id!); + rebuildZwaveNetworkRoutes(this.hass, this.entry_id!); this._status = "started"; - this._subscribed = subscribeHealZwaveNetworkProgress( + this._subscribed = subscribeRebuildZwaveNetworkRoutesProgress( this.hass, this.entry_id!, this._handleMessage.bind(this) ); } - private _stopHeal(): void { + private _stopRebuildingRoutes(): void { if (!this.hass) { return; } - stopHealZwaveNetwork(this.hass, this.entry_id!); + stopRebuildingZwaveNetworkRoutes(this.hass, this.entry_id!); this._unsubscribe(); this._status = "cancelled"; } - private _handleMessage(message: ZWaveJSHealNetworkStatusMessage): void { - if (message.event === "heal network progress") { + private _handleMessage(message: ZWaveJSRebuildRoutesStatusMessage): void { + if (message.event === "rebuild routes progress") { let finished = 0; let in_progress = 0; - for (const status of Object.values(message.heal_node_status)) { + for (const status of Object.values(message.rebuild_routes_status)) { if (status === "pending") { in_progress++; } @@ -249,11 +257,11 @@ class DialogZWaveJSHealNetwork extends LitElement { finished++; } } - this._progress_total = Object.keys(message.heal_node_status).length; + this._progress_total = Object.keys(message.rebuild_routes_status).length; this._progress_finished = finished / this._progress_total; this._progress_in_progress = in_progress / this._progress_total; } - if (message.event === "heal network done") { + if (message.event === "rebuild routes done") { this._unsubscribe(); this._status = "finished"; } @@ -306,6 +314,6 @@ class DialogZWaveJSHealNetwork extends LitElement { declare global { interface HTMLElementTagNameMap { - "dialog-zwave_js-heal-network": DialogZWaveJSHealNetwork; + "dialog-zwave_js-rebuild-network-routes": DialogZWaveJSRebuildNetworkRoutes; } } diff --git a/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-heal-node.ts b/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-rebuild-node-routes.ts similarity index 80% rename from src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-heal-node.ts rename to src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-rebuild-node-routes.ts index 776f316f44f3..46df0f7edcf4 100644 --- a/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-heal-node.ts +++ b/src/panels/config/integrations/integration-panels/zwave_js/dialog-zwave_js-rebuild-node-routes.ts @@ -11,15 +11,15 @@ import { } from "../../../../../data/device_registry"; import { fetchZwaveNetworkStatus, - healZwaveNode, + rebuildZwaveNodeRoutes, ZWaveJSNetwork, } from "../../../../../data/zwave_js"; import { haStyleDialog } from "../../../../../resources/styles"; import { HomeAssistant } from "../../../../../types"; -import { ZWaveJSHealNodeDialogParams } from "./show-dialog-zwave_js-heal-node"; +import { ZWaveJSRebuildNodeRoutesDialogParams } from "./show-dialog-zwave_js-rebuild-node-routes"; -@customElement("dialog-zwave_js-heal-node") -class DialogZWaveJSHealNode extends LitElement { +@customElement("dialog-zwave_js-rebuild-node-routes") +class DialogZWaveJSRebuildNodeRoutes extends LitElement { @property({ attribute: false }) public hass!: HomeAssistant; @state() private device?: DeviceRegistryEntry; @@ -28,7 +28,7 @@ class DialogZWaveJSHealNode extends LitElement { @state() private _error?: string; - public showDialog(params: ZWaveJSHealNodeDialogParams): void { + public showDialog(params: ZWaveJSRebuildNodeRoutesDialogParams): void { this.device = params.device; this._fetchData(); } @@ -52,7 +52,9 @@ class DialogZWaveJSHealNode extends LitElement { @closed=${this.closeDialog} .heading=${createCloseHeading( this.hass, - this.hass.localize("ui.panel.config.zwave_js.heal_node.title") + this.hass.localize( + "ui.panel.config.zwave_js.rebuild_node_routes.title" + ) )} > ${!this._status @@ -65,7 +67,7 @@ class DialogZWaveJSHealNode extends LitElement {

${this.hass.localize( - "ui.panel.config.zwave_js.heal_node.introduction", + "ui.panel.config.zwave_js.rebuild_node_routes.introduction", { device: html`${computeDeviceName(this.device, this.hass!)} ${this.hass.localize( - "ui.panel.config.zwave_js.heal_node.traffic_warning" + "ui.panel.config.zwave_js.rebuild_node_routes.traffic_warning" )}

- + ${this.hass.localize( - "ui.panel.config.zwave_js.heal_node.start_heal" + "ui.panel.config.zwave_js.rebuild_node_routes.start_rebuilding_routes" )} ` @@ -96,7 +101,7 @@ class DialogZWaveJSHealNode extends LitElement {

${this.hass.localize( - "ui.panel.config.zwave_js.heal_node.in_progress", + "ui.panel.config.zwave_js.rebuild_node_routes.in_progress", { device: html`${computeDeviceName(this.device, this.hass!)}

${this.hass.localize( - "ui.panel.config.zwave_js.heal_node.healing_failed", + "ui.panel.config.zwave_js.rebuild_node_routes.rebuilding_routes_failed", { device: html`${computeDeviceName(this.device, this.hass!)}${this._error} ` : ` ${this.hass.localize( - "ui.panel.config.zwave_js.heal_node.healing_failed_check_logs" + "ui.panel.config.zwave_js.rebuild_node_routes.rebuilding_routes_failed_check_logs" )} `}

@@ -155,7 +160,7 @@ class DialogZWaveJSHealNode extends LitElement {

${this.hass.localize( - "ui.panel.config.zwave_js.heal_node.healing_complete", + "ui.panel.config.zwave_js.rebuild_node_routes.rebuilding_routes_complete", { device: html`${computeDeviceName(this.device, this.hass!)} ` : ``} - ${this._status === "network-healing" + ${this._status === "rebuilding-routes" ? html`

${this.hass.localize( - "ui.panel.config.zwave_js.heal_node.network_heal_in_progress" + "ui.panel.config.zwave_js.rebuild_node_routes.routes_rebuild_in_progress" )}

@@ -201,18 +206,18 @@ class DialogZWaveJSHealNode extends LitElement { const network: ZWaveJSNetwork = await fetchZwaveNetworkStatus(this.hass!, { device_id: this.device!.id, }); - if (network.controller.is_heal_network_active) { - this._status = "network-healing"; + if (network.controller.is_rebuilding_routes) { + this._status = "rebuilding-routes"; } } - private async _startHeal(): Promise { + private async _startRebuildingRoutes(): Promise { if (!this.hass) { return; } this._status = "started"; try { - this._status = (await healZwaveNode(this.hass, this.device!.id)) + this._status = (await rebuildZwaveNodeRoutes(this.hass, this.device!.id)) ? "finished" : "failed"; } catch (err: any) { @@ -258,6 +263,6 @@ class DialogZWaveJSHealNode extends LitElement { declare global { interface HTMLElementTagNameMap { - "dialog-zwave_js-heal-node": DialogZWaveJSHealNode; + "dialog-zwave_js-rebuild-node-routes": DialogZWaveJSRebuildNodeRoutes; } } diff --git a/src/panels/config/integrations/integration-panels/zwave_js/show-dialog-zwave_js-heal-network.ts b/src/panels/config/integrations/integration-panels/zwave_js/show-dialog-zwave_js-heal-network.ts deleted file mode 100644 index cb46ad9d4350..000000000000 --- a/src/panels/config/integrations/integration-panels/zwave_js/show-dialog-zwave_js-heal-network.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { fireEvent } from "../../../../../common/dom/fire_event"; - -export interface ZWaveJSHealNetworkDialogParams { - entry_id: string; -} - -export const loadHealNetworkDialog = () => - import("./dialog-zwave_js-heal-network"); - -export const showZWaveJSHealNetworkDialog = ( - element: HTMLElement, - healNetworkDialogParams: ZWaveJSHealNetworkDialogParams -): void => { - fireEvent(element, "show-dialog", { - dialogTag: "dialog-zwave_js-heal-network", - dialogImport: loadHealNetworkDialog, - dialogParams: healNetworkDialogParams, - }); -}; diff --git a/src/panels/config/integrations/integration-panels/zwave_js/show-dialog-zwave_js-heal-node.ts b/src/panels/config/integrations/integration-panels/zwave_js/show-dialog-zwave_js-heal-node.ts deleted file mode 100644 index 047cebdc47b0..000000000000 --- a/src/panels/config/integrations/integration-panels/zwave_js/show-dialog-zwave_js-heal-node.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { fireEvent } from "../../../../../common/dom/fire_event"; -import { DeviceRegistryEntry } from "../../../../../data/device_registry"; - -export interface ZWaveJSHealNodeDialogParams { - device: DeviceRegistryEntry; -} - -export const loadHealNodeDialog = () => import("./dialog-zwave_js-heal-node"); - -export const showZWaveJSHealNodeDialog = ( - element: HTMLElement, - healNodeDialogParams: ZWaveJSHealNodeDialogParams -): void => { - fireEvent(element, "show-dialog", { - dialogTag: "dialog-zwave_js-heal-node", - dialogImport: loadHealNodeDialog, - dialogParams: healNodeDialogParams, - }); -}; diff --git a/src/panels/config/integrations/integration-panels/zwave_js/show-dialog-zwave_js-rebuild-network-routes.ts b/src/panels/config/integrations/integration-panels/zwave_js/show-dialog-zwave_js-rebuild-network-routes.ts new file mode 100644 index 000000000000..56d7791b7f49 --- /dev/null +++ b/src/panels/config/integrations/integration-panels/zwave_js/show-dialog-zwave_js-rebuild-network-routes.ts @@ -0,0 +1,19 @@ +import { fireEvent } from "../../../../../common/dom/fire_event"; + +export interface ZWaveJSRebuildNetworkRoutesDialogParams { + entry_id: string; +} + +export const loadRebuildNetworkRoutesDialog = () => + import("./dialog-zwave_js-rebuild-network-routes"); + +export const showZWaveJSRebuildNetworkRoutesDialog = ( + element: HTMLElement, + rebuildNetworkRoutesDialogParams: ZWaveJSRebuildNetworkRoutesDialogParams +): void => { + fireEvent(element, "show-dialog", { + dialogTag: "dialog-zwave_js-rebuild-network-routes", + dialogImport: loadRebuildNetworkRoutesDialog, + dialogParams: rebuildNetworkRoutesDialogParams, + }); +}; diff --git a/src/panels/config/integrations/integration-panels/zwave_js/show-dialog-zwave_js-rebuild-node-routes.ts b/src/panels/config/integrations/integration-panels/zwave_js/show-dialog-zwave_js-rebuild-node-routes.ts new file mode 100644 index 000000000000..073c19127f6f --- /dev/null +++ b/src/panels/config/integrations/integration-panels/zwave_js/show-dialog-zwave_js-rebuild-node-routes.ts @@ -0,0 +1,20 @@ +import { fireEvent } from "../../../../../common/dom/fire_event"; +import { DeviceRegistryEntry } from "../../../../../data/device_registry"; + +export interface ZWaveJSRebuildNodeRoutesDialogParams { + device: DeviceRegistryEntry; +} + +export const loadRebuildNodeRoutesDialog = () => + import("./dialog-zwave_js-rebuild-node-routes"); + +export const showZWaveJSRebuildNodeRoutesDialog = ( + element: HTMLElement, + rebuildNodeRoutesDialogParams: ZWaveJSRebuildNodeRoutesDialogParams +): void => { + fireEvent(element, "show-dialog", { + dialogTag: "dialog-zwave_js-rebuild-node-routes", + dialogImport: loadRebuildNodeRoutesDialog, + dialogParams: rebuildNodeRoutesDialogParams, + }); +}; 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 5fedec41f831..4c9a309a1077 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 @@ -52,7 +52,7 @@ import { haStyle } from "../../../../../resources/styles"; import type { HomeAssistant, Route } from "../../../../../types"; import "../../../ha-config-section"; import { showZWaveJSAddNodeDialog } from "./show-dialog-zwave_js-add-node"; -import { showZWaveJSHealNetworkDialog } from "./show-dialog-zwave_js-heal-network"; +import { showZWaveJSRebuildNetworkRoutesDialog } from "./show-dialog-zwave_js-rebuild-network-routes"; import { showZWaveJSRemoveNodeDialog } from "./show-dialog-zwave_js-remove-node"; import { configTabs } from "./zwave_js-config-router"; @@ -430,11 +430,11 @@ class ZWaveJSConfigDashboard extends SubscribeMixin(LitElement) { )} ${this.hass.localize( - "ui.panel.config.zwave_js.common.heal_network" + "ui.panel.config.zwave_js.common.rebuild_network_routes" )} @@ -612,8 +612,8 @@ class ZWaveJSConfigDashboard extends SubscribeMixin(LitElement) { }); } - private async _healNetworkClicked() { - showZWaveJSHealNetworkDialog(this, { + private async _rebuildNetworkRoutesClicked() { + showZWaveJSRebuildNetworkRoutesDialog(this, { entry_id: this.configEntryId!, }); } diff --git a/src/translations/en.json b/src/translations/en.json index 33ac44cddbcf..1329a72971d6 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -3907,7 +3907,7 @@ "add_node": "Add device", "remove_node": "Remove device", "reconfigure_server": "Re-configure server", - "heal_network": "Heal Network", + "rebuild_network_routes": "Rebuild Network Routes", "in_progress_inclusion_exclusion": "Z-Wave JS is searching for devices", "cancel_inclusion_exclusion": "Stop searching" }, @@ -3967,7 +3967,7 @@ "node_ready": "Ready", "device_config": "Configure", "reinterview_device": "Re-interview", - "heal_node": "Heal", + "rebuild_routes": "Rebuild routes", "remove_failed": "Remove failed", "update_firmware": "Update", "highest_security": "Highest security", @@ -4149,28 +4149,28 @@ "interview_failed": "The device interview failed. Additional information may be available in the logs.", "interview_complete": "Device interview complete." }, - "heal_network": { - "title": "Heal your Z-Wave network", - "introduction": "Start a network heal on your Z-Wave network. A network heal will cause all devices to re-calculate their routes back to the controller and is recommended if you have recently moved devices or your controller.", - "traffic_warning": "The healing process generates a large amount of traffic on the Z-Wave network. This may cause devices to respond slowly (or not at all) while the heal is in progress.", - "start_heal": "Start healing", - "in_progress": "Network healing is in progress. This will take some time.", - "run_in_background": "You can close this dialog and the network healing will continue in the background.", - "stop_heal": "Stop Healing", - "healing_complete": "Network healing is complete.", - "healing_failed": "Healing failed. Additional information may be available in the logs.", - "healing_cancelled": "Network healing has been cancelled." - }, - "heal_node": { - "title": "Heal a Z-Wave device", + "rebuild_network_routes": { + "title": "Rebuild routes for your Z-Wave network", + "introduction": "Start rebuilding routes on your Z-Wave network. Rebuilding routes will cause all devices to re-calculate their routes back to the controller and is recommended if you have recently moved devices or your controller.", + "traffic_warning": "The rebuilding process generates a large amount of traffic on the Z-Wave network. This may cause devices to respond slowly (or not at all) while the rebuild is in progress.", + "start_rebuilding_routes": "Start rebuilding routes", + "in_progress": "Rebuild of network routes is in progress. This will take some time.", + "run_in_background": "You can close this dialog and the rebuild of network routes will continue in the background.", + "stop_rebuilding_routes": "Stop rebuilding routes", + "rebuilding_routes_complete": "Routes have been rebuilt.", + "rebuilding_routes_failed": "Route rebuilding failed. Additional information may be available in the logs.", + "rebuilding_routes_cancelled": "Rebuilding network routes has been cancelled." + }, + "rebuild_node_routes": { + "title": "Rebuild routes for a Z-Wave device", "introduction": "Tell {device} to update its routes back to the controller. This can help with communication issues if you have recently moved the device or your controller.", - "traffic_warning": "The healing process generates a large amount of traffic on the Z-Wave network. This may cause devices to respond slowly (or not at all) while the heal is in progress.", - "start_heal": "Heal Device", - "healing_failed": "{device} could not be healed.", - "healing_failed_check_logs": "Additional information may be available in the logs.", - "healing_complete": "{device} has been healed.", - "in_progress": "{device} healing is in progress.", - "network_heal_in_progress": "A Z-Wave network heal is already in progress. Please wait for it to finish before healing an individual device." + "traffic_warning": "The route rebuilding process generates a large amount of traffic on the Z-Wave network. This may cause devices to respond slowly (or not at all) while the rebuilding is in progress.", + "start_rebuilding_routes": "Rebuild Routes for Device", + "rebuilding_routes_failed": "{device} routes could not be rebuild.", + "rebuilding_routes_failed_check_logs": "Additional information may be available in the logs.", + "rebuilding_routes_complete": "{device} routes have been rebuilt.", + "in_progress": "{device} routes rebuild is in progress.", + "routes_rebuild_in_progress": "A Z-Wave routes rebuild is already in progress. Please wait for it to finish before rebuilding routes for an individual device." }, "update_firmware": { "title": "Update device firmware",