mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-23 17:26:42 +00:00
Don't check zwave_js node firmware update capabilities (#13066)
This commit is contained in:
parent
e8da573ba2
commit
77977f64a3
@ -2,7 +2,6 @@ import { getConfigEntries } from "../../../../../../data/config_entries";
|
|||||||
import { DeviceRegistryEntry } from "../../../../../../data/device_registry";
|
import { DeviceRegistryEntry } from "../../../../../../data/device_registry";
|
||||||
import {
|
import {
|
||||||
fetchZwaveIsAnyFirmwareUpdateInProgress,
|
fetchZwaveIsAnyFirmwareUpdateInProgress,
|
||||||
fetchZwaveNodeFirmwareUpdateCapabilities,
|
|
||||||
fetchZwaveNodeIsFirmwareUpdateInProgress,
|
fetchZwaveNodeIsFirmwareUpdateInProgress,
|
||||||
fetchZwaveNodeStatus,
|
fetchZwaveNodeStatus,
|
||||||
} from "../../../../../../data/zwave_js";
|
} from "../../../../../../data/zwave_js";
|
||||||
@ -87,20 +86,13 @@ export const getZwaveDeviceActions = async (
|
|||||||
return actions;
|
return actions;
|
||||||
}
|
}
|
||||||
|
|
||||||
const [
|
const [isAnyFirmwareUpdateInProgress, isNodeFirmwareUpdateInProgress] =
|
||||||
firmwareUpdateCapabilities,
|
await Promise.all([
|
||||||
isAnyFirmwareUpdateInProgress,
|
fetchZwaveIsAnyFirmwareUpdateInProgress(hass, entryId),
|
||||||
isNodeFirmwareUpdateInProgress,
|
fetchZwaveNodeIsFirmwareUpdateInProgress(hass, device.id),
|
||||||
] = await Promise.all([
|
]);
|
||||||
fetchZwaveNodeFirmwareUpdateCapabilities(hass, device.id),
|
|
||||||
fetchZwaveIsAnyFirmwareUpdateInProgress(hass, entryId),
|
|
||||||
fetchZwaveNodeIsFirmwareUpdateInProgress(hass, device.id),
|
|
||||||
]);
|
|
||||||
|
|
||||||
if (
|
if (!isAnyFirmwareUpdateInProgress || isNodeFirmwareUpdateInProgress) {
|
||||||
firmwareUpdateCapabilities.firmware_upgradable &&
|
|
||||||
(!isAnyFirmwareUpdateInProgress || isNodeFirmwareUpdateInProgress)
|
|
||||||
) {
|
|
||||||
actions.push({
|
actions.push({
|
||||||
label: hass.localize(
|
label: hass.localize(
|
||||||
"ui.panel.config.zwave_js.device_info.update_firmware"
|
"ui.panel.config.zwave_js.device_info.update_firmware"
|
||||||
@ -117,7 +109,6 @@ export const getZwaveDeviceActions = async (
|
|||||||
) {
|
) {
|
||||||
showZWaveJUpdateFirmwareNodeDialog(el, {
|
showZWaveJUpdateFirmwareNodeDialog(el, {
|
||||||
device,
|
device,
|
||||||
firmwareUpdateCapabilities,
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -6,7 +6,6 @@ import "@material/mwc-linear-progress/mwc-linear-progress";
|
|||||||
import { mdiCheckCircle, mdiCloseCircle, mdiFileUpload } from "@mdi/js";
|
import { mdiCheckCircle, mdiCloseCircle, mdiFileUpload } from "@mdi/js";
|
||||||
import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit";
|
import { css, CSSResultGroup, html, LitElement, TemplateResult } from "lit";
|
||||||
import { customElement, property, state } from "lit/decorators";
|
import { customElement, property, state } from "lit/decorators";
|
||||||
import memoizeOne from "memoize-one";
|
|
||||||
import { UnsubscribeFunc } from "home-assistant-js-websocket";
|
import { UnsubscribeFunc } from "home-assistant-js-websocket";
|
||||||
import { fireEvent } from "../../../../../common/dom/fire_event";
|
import { fireEvent } from "../../../../../common/dom/fire_event";
|
||||||
import { createCloseHeading } from "../../../../../components/ha-dialog";
|
import { createCloseHeading } from "../../../../../components/ha-dialog";
|
||||||
@ -26,7 +25,6 @@ import {
|
|||||||
ZWaveJSNodeFirmwareUpdateFinishedMessage,
|
ZWaveJSNodeFirmwareUpdateFinishedMessage,
|
||||||
ZWaveJSNodeFirmwareUpdateProgressMessage,
|
ZWaveJSNodeFirmwareUpdateProgressMessage,
|
||||||
ZWaveJSNodeStatusUpdatedMessage,
|
ZWaveJSNodeStatusUpdatedMessage,
|
||||||
ZWaveJSNodeFirmwareUpdateCapabilities,
|
|
||||||
ZWaveJSNodeStatus,
|
ZWaveJSNodeStatus,
|
||||||
} from "../../../../../data/zwave_js";
|
} from "../../../../../data/zwave_js";
|
||||||
import { haStyleDialog } from "../../../../../resources/styles";
|
import { haStyleDialog } from "../../../../../resources/styles";
|
||||||
@ -66,12 +64,9 @@ class DialogZWaveJSUpdateFirmwareNode extends LitElement {
|
|||||||
|
|
||||||
private _deviceName?: string;
|
private _deviceName?: string;
|
||||||
|
|
||||||
private _firmwareUpdateCapabilities?: ZWaveJSNodeFirmwareUpdateCapabilities;
|
|
||||||
|
|
||||||
public showDialog(params: ZWaveJSUpdateFirmwareNodeDialogParams): void {
|
public showDialog(params: ZWaveJSUpdateFirmwareNodeDialogParams): void {
|
||||||
this._deviceName = computeDeviceName(params.device, this.hass!);
|
this._deviceName = computeDeviceName(params.device, this.hass!);
|
||||||
this.device = params.device;
|
this.device = params.device;
|
||||||
this._firmwareUpdateCapabilities = params.firmwareUpdateCapabilities;
|
|
||||||
this._fetchData();
|
this._fetchData();
|
||||||
this._subscribeNodeStatus();
|
this._subscribeNodeStatus();
|
||||||
}
|
}
|
||||||
@ -84,7 +79,6 @@ class DialogZWaveJSUpdateFirmwareNode extends LitElement {
|
|||||||
this._updateFinishedMessage =
|
this._updateFinishedMessage =
|
||||||
this._firmwareFile =
|
this._firmwareFile =
|
||||||
this._nodeStatus =
|
this._nodeStatus =
|
||||||
this._firmwareUpdateCapabilities =
|
|
||||||
undefined;
|
undefined;
|
||||||
this._firmwareTarget = 0;
|
this._firmwareTarget = 0;
|
||||||
this._uploading = this._updateInProgress = false;
|
this._uploading = this._updateInProgress = false;
|
||||||
@ -92,34 +86,21 @@ class DialogZWaveJSUpdateFirmwareNode extends LitElement {
|
|||||||
fireEvent(this, "dialog-closed", { dialog: this.localName });
|
fireEvent(this, "dialog-closed", { dialog: this.localName });
|
||||||
}
|
}
|
||||||
|
|
||||||
private _schema = memoizeOne(
|
|
||||||
(
|
|
||||||
firmwareUpdateCapabilities: ZWaveJSNodeFirmwareUpdateCapabilities
|
|
||||||
): HaFormIntegerSchema => {
|
|
||||||
if (!firmwareUpdateCapabilities.firmware_upgradable) {
|
|
||||||
// We should never get here, this is to pass type checks
|
|
||||||
throw new Error();
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
name: "firmware_target",
|
|
||||||
type: "integer",
|
|
||||||
valueMin: Math.min(...firmwareUpdateCapabilities.firmware_targets),
|
|
||||||
valueMax: Math.max(...firmwareUpdateCapabilities.firmware_targets),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
protected render(): TemplateResult {
|
protected render(): TemplateResult {
|
||||||
if (
|
if (
|
||||||
!this.device ||
|
!this.device ||
|
||||||
!this._nodeStatus ||
|
!this._nodeStatus ||
|
||||||
!this._firmwareUpdateCapabilities ||
|
|
||||||
!this._firmwareUpdateCapabilities.firmware_upgradable ||
|
|
||||||
this._updateInProgress === undefined
|
this._updateInProgress === undefined
|
||||||
) {
|
) {
|
||||||
return html``;
|
return html``;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const schema: HaFormIntegerSchema = {
|
||||||
|
name: "firmware_target",
|
||||||
|
type: "integer",
|
||||||
|
valueMin: 0,
|
||||||
|
};
|
||||||
|
|
||||||
const beginFirmwareUpdateHTML = html`<ha-file-upload
|
const beginFirmwareUpdateHTML = html`<ha-file-upload
|
||||||
.hass=${this.hass}
|
.hass=${this.hass}
|
||||||
.uploading=${this._uploading}
|
.uploading=${this._uploading}
|
||||||
@ -130,19 +111,17 @@ class DialogZWaveJSUpdateFirmwareNode extends LitElement {
|
|||||||
)}
|
)}
|
||||||
@file-picked=${this._uploadFile}
|
@file-picked=${this._uploadFile}
|
||||||
></ha-file-upload>
|
></ha-file-upload>
|
||||||
${this._firmwareUpdateCapabilities.firmware_targets.length > 1
|
<p>
|
||||||
? html`<p>
|
${this.hass.localize(
|
||||||
${this.hass.localize(
|
"ui.panel.config.zwave_js.update_firmware.firmware_target_intro"
|
||||||
"ui.panel.config.zwave_js.update_firmware.firmware_target_intro"
|
)}
|
||||||
)}
|
</p>
|
||||||
</p>
|
<ha-form
|
||||||
<ha-form
|
.hass=${this.hass}
|
||||||
.hass=${this.hass}
|
.data=${{ firmware_target: this._firmwareTarget }}
|
||||||
.data=${{ firmware_target: this._firmwareTarget }}
|
.schema=${[schema]}
|
||||||
.schema=${[this._schema(this._firmwareUpdateCapabilities)]}
|
@value-changed=${this._firmwareTargetChanged}
|
||||||
@value-changed=${this._firmwareTargetChanged}
|
></ha-form>
|
||||||
></ha-form>`
|
|
||||||
: ""}
|
|
||||||
<mwc-button
|
<mwc-button
|
||||||
slot="primaryAction"
|
slot="primaryAction"
|
||||||
@click=${this._beginFirmwareUpdate}
|
@click=${this._beginFirmwareUpdate}
|
||||||
|
@ -1,10 +1,8 @@
|
|||||||
import { fireEvent } from "../../../../../common/dom/fire_event";
|
import { fireEvent } from "../../../../../common/dom/fire_event";
|
||||||
import { DeviceRegistryEntry } from "../../../../../data/device_registry";
|
import { DeviceRegistryEntry } from "../../../../../data/device_registry";
|
||||||
import { ZWaveJSNodeFirmwareUpdateCapabilities } from "../../../../../data/zwave_js";
|
|
||||||
|
|
||||||
export interface ZWaveJSUpdateFirmwareNodeDialogParams {
|
export interface ZWaveJSUpdateFirmwareNodeDialogParams {
|
||||||
device: DeviceRegistryEntry;
|
device: DeviceRegistryEntry;
|
||||||
firmwareUpdateCapabilities: ZWaveJSNodeFirmwareUpdateCapabilities;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export const loadUpdateFirmwareNodeDialog = () =>
|
export const loadUpdateFirmwareNodeDialog = () =>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user