Only show zwave_js firmware action if no other updates in progress (#13002)
* Only show zwave_js firmware update action if no other updates in progress * readability
This commit is contained in:
parent
535fe2686b
commit
c03849d30b
|
@ -674,6 +674,15 @@ export const fetchZwaveNodeIsFirmwareUpdateInProgress = (
|
||||||
device_id,
|
device_id,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
export const fetchZwaveIsAnyFirmwareUpdateInProgress = (
|
||||||
|
hass: HomeAssistant,
|
||||||
|
entry_id: string
|
||||||
|
): Promise<boolean> =>
|
||||||
|
hass.callWS({
|
||||||
|
type: "zwave_js/get_any_firmware_update_progress",
|
||||||
|
entry_id,
|
||||||
|
});
|
||||||
|
|
||||||
export const fetchZwaveNodeFirmwareUpdateCapabilities = (
|
export const fetchZwaveNodeFirmwareUpdateCapabilities = (
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
device_id: string
|
device_id: string
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
import { getConfigEntries } from "../../../../../../data/config_entries";
|
import { getConfigEntries } from "../../../../../../data/config_entries";
|
||||||
import { DeviceRegistryEntry } from "../../../../../../data/device_registry";
|
import { DeviceRegistryEntry } from "../../../../../../data/device_registry";
|
||||||
import {
|
import {
|
||||||
|
fetchZwaveIsAnyFirmwareUpdateInProgress,
|
||||||
fetchZwaveNodeFirmwareUpdateCapabilities,
|
fetchZwaveNodeFirmwareUpdateCapabilities,
|
||||||
|
fetchZwaveNodeIsFirmwareUpdateInProgress,
|
||||||
fetchZwaveNodeStatus,
|
fetchZwaveNodeStatus,
|
||||||
} from "../../../../../../data/zwave_js";
|
} from "../../../../../../data/zwave_js";
|
||||||
import { showConfirmationDialog } from "../../../../../../dialogs/generic/show-dialog-box";
|
import { showConfirmationDialog } from "../../../../../../dialogs/generic/show-dialog-box";
|
||||||
|
@ -85,10 +87,20 @@ export const getZwaveDeviceActions = async (
|
||||||
return actions;
|
return actions;
|
||||||
}
|
}
|
||||||
|
|
||||||
const firmwareUpdateCapabilities =
|
const [
|
||||||
await fetchZwaveNodeFirmwareUpdateCapabilities(hass, device.id);
|
firmwareUpdateCapabilities,
|
||||||
|
isAnyFirmwareUpdateInProgress,
|
||||||
|
isNodeFirmwareUpdateInProgress,
|
||||||
|
] = await Promise.all([
|
||||||
|
fetchZwaveNodeFirmwareUpdateCapabilities(hass, device.id),
|
||||||
|
fetchZwaveIsAnyFirmwareUpdateInProgress(hass, entryId),
|
||||||
|
fetchZwaveNodeIsFirmwareUpdateInProgress(hass, device.id),
|
||||||
|
]);
|
||||||
|
|
||||||
if (firmwareUpdateCapabilities.firmware_upgradable) {
|
if (
|
||||||
|
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"
|
||||||
|
|
Loading…
Reference in New Issue