From f0b19cc69646e91dce1cf0d1453541ea362e19a3 Mon Sep 17 00:00:00 2001 From: Koenkk Date: Fri, 1 Jun 2018 21:04:48 +0200 Subject: [PATCH] Try to recover in zigbee-shepherd start failure. #79 --- lib/zigbee.js | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/lib/zigbee.js b/lib/zigbee.js index 15eb821a..81180682 100644 --- a/lib/zigbee.js +++ b/lib/zigbee.js @@ -28,12 +28,25 @@ class Zigbee { this.shepherd.start((error) => { if (error) { - logger.error('Error while starting zigbee-shepherd!'); + logger.warn('Error while starting zigbee-shepherd, attemping to fix...'); + this.shepherd.controller._znp.close((() => null)); + logger.info(`Starting zigbee-shepherd`); + + setTimeout(() => { + this.shepherd.start((error) => { + if (error) { + logger.error('Error while starting zigbee-shepherd!'); + callback(error); + } else { + logger.info('zigbee-shepherd started'); + callback(null); + } + }); + }, 5 * 1000); } else { logger.info('zigbee-shepherd started'); + callback(null); } - - callback(error); }); // Register callbacks.