This commit is contained in:
Koen Kanters
2021-05-03 20:04:54 +02:00
parent 2dc409bf38
commit 700e9c0c3a
+17 -2
View File
@@ -214,8 +214,23 @@ class NetworkMap extends Extension {
failed.set(device, []);
await utils.sleep(1); // sleep 1 second between each scan to reduce stress on network.
const resolvedEntity = this.zigbee.resolveEntity(device);
const doRequest = async (request, firstAttempt = true) => {
try {
return await request();
} catch (error) {
if (!firstAttempt) {
throw error;
} else {
// Network is possibly congested, sleep 5 seconds to let the network settle.
await utils.sleep(5);
return await doRequest(request, false);
}
}
};
try {
const result = await device.lqi();
const result = await doRequest(async () => await device.lqi());
lqis.set(device, result);
logger.debug(`LQI succeeded for '${resolvedEntity.name}'`);
} catch (error) {
@@ -225,7 +240,7 @@ class NetworkMap extends Extension {
if (includeRoutes) {
try {
const result = await device.routingTable();
const result = await doRequest(async () => await device.routingTable());
routingTables.set(device, result);
logger.debug(`Routing table succeeded for '${resolvedEntity.name}'`);
} catch (error) {