From 511244ea2b994e60266dce0c797e1893baa2de89 Mon Sep 17 00:00:00 2001 From: Markus Michels Date: Fri, 19 Jan 2024 04:53:46 -0500 Subject: [PATCH] make blu gw script more rebust on startup (#16304) Signed-off-by: Markus Michels Co-authored-by: markus7017 --- .../main/resources/scripts/oh-blu-scanner.js | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/bundles/org.openhab.binding.shelly/src/main/resources/scripts/oh-blu-scanner.js b/bundles/org.openhab.binding.shelly/src/main/resources/scripts/oh-blu-scanner.js index c1583a92ec7..3dd38932ad7 100644 --- a/bundles/org.openhab.binding.shelly/src/main/resources/scripts/oh-blu-scanner.js +++ b/bundles/org.openhab.binding.shelly/src/main/resources/scripts/oh-blu-scanner.js @@ -150,11 +150,22 @@ function scanCB(ev, res) { } } +// retry several times to start the scanner if script was started before +// BLE infrastructure was up in the Shelly +function startBLEScan() { + let bleScanSuccess = BLE.Scanner.Start({ duration_ms: SCAN_DURATION, active: true }, scanCB); + if( bleScanSuccess === null ) { + console.log('Unable to start OH-BLU Scanner, make sure Shelly Gateway Support is disabled in device config.'); + Timer.set(3000, false, startBLEScan); + } else { + console.log('Success: OH-BLU Event Gateway running'); + } + } + let BLEConfig = Shelly.getComponentConfig('ble'); if(BLEConfig.enable === false) { - console.log('Error: BLE not enabled, unable to start OH-BLU Scanner'); + console.log('Error: BLE not enabled, unable to start OH-BLU Scanner'); } else { - BLE.Scanner.Start({ duration_ms: SCAN_DURATION, active: true }, scanCB); - console.log('OH-BLU Event Gateway running'); + Timer.set(1000, false, startBLEScan); } \ No newline at end of file