From efa6203c41edcfa7bc8fd44320046448f1a0c122 Mon Sep 17 00:00:00 2001 From: Dominic Griesel Date: Tue, 15 Mar 2022 23:03:36 +0100 Subject: [PATCH] fix: wait for node to wake up before starting lifeline healthcheck --- packages/zwave-js/src/lib/node/Node.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/zwave-js/src/lib/node/Node.ts b/packages/zwave-js/src/lib/node/Node.ts index 6648eb6bf360..4f92f083aa11 100644 --- a/packages/zwave-js/src/lib/node/Node.ts +++ b/packages/zwave-js/src/lib/node/Node.ts @@ -3955,6 +3955,15 @@ protocol version: ${this.protocolVersion}`; })...`, ); + if (this.canSleep && this.status !== NodeStatus.Awake) { + // Wait for node to wake up to avoid incorrectly long delays in the first health check round + this.driver.controllerLog.logNode( + this.id, + `waiting for node to wake up...`, + ); + await this.waitForWakeup(); + } + const results: LifelineHealthCheckResult[] = []; for (let round = 1; round <= rounds; round++) { // Determine the number of repeating neighbors @@ -3975,6 +3984,7 @@ protocol version: ${this.protocolVersion}`; txReport = report; }, }); + for (let i = 1; i <= healthCheckTestFrameCount; i++) { const start = Date.now(); const pingResult = await pingAPI.send().then(