From 12e5744523675db8452cc746ee21308f253e85e2 Mon Sep 17 00:00:00 2001 From: arteck <6681528+arteck@users.noreply.github.com> Date: Thu, 11 Jan 2024 20:32:34 +0100 Subject: [PATCH] add available icon status requestStorageInformation is dependent on requestStorageInformationBackup --- admin/jsonConfig.json | 1 + main.js | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/admin/jsonConfig.json b/admin/jsonConfig.json index 9738455..12f8cbc 100644 --- a/admin/jsonConfig.json +++ b/admin/jsonConfig.json @@ -109,6 +109,7 @@ "lg": 6 }, "requestStorageInformationBackup": { + "hidden": "!data.requestStorageInformation", "type": "checkbox", "label": "Backup on Storage information", "sm": 12, diff --git a/main.js b/main.js index 57fed28..773760e 100644 --- a/main.js +++ b/main.js @@ -800,10 +800,24 @@ class Proxmox extends utils.Adapter { await this.setStateChangedAsync(`${sid}.status`, { val: res.status, ack: true }); + await this.extendObjectAsync(`${sid}.available`, { + type: 'state', + common: { + name: 'Available', + type: 'boolean', + role: 'state', + read: true, + write: false, + }, + native: {}, + }); + + let available = false; let resourceStatus; if (res.status === 'running') { resourceStatus = await this.proxmox?.getResourceStatus(res.node, type, res.vmid); + available = true; this.log.debug(`new ${type}: ${resourceStatus.name} - ${JSON.stringify(resourceStatus)}`); } else { this.offlineResourceStatus.status = res.status; @@ -813,6 +827,8 @@ class Proxmox extends utils.Adapter { resourceStatus = this.offlineResourceStatus; } + await this.setStateChangedAsync(`${sid}.available`, { val: available, ack: true }); + await this.findState(sid, resourceStatus, async (states) => { for (const s of states) { try { @@ -1197,10 +1213,12 @@ class Proxmox extends utils.Adapter { return void this.restart(); } + let available = false; let resourceStatus; if (res.status === 'running') { resourceStatus = await this.proxmox?.getResourceStatus(res.node, res.type, res.vmid, true); + available = true; } else { this.offlineResourceStatus.status = res.status; this.offlineResourceStatus.type = res.type; @@ -1209,6 +1227,8 @@ class Proxmox extends utils.Adapter { resourceStatus = this.offlineResourceStatus; } + await this.setStateChangedAsync(`${sid}.available`, { val: available, ack: true }); + await this.findState(sid, resourceStatus, async (states) => { for (const element of states) { await this.setStateChangedAsync(`${element[0]}.${element[1]}`, element[3], true);