diff --git a/platforms/Wink.js b/platforms/Wink.js index b8da568..12ff7a8 100644 --- a/platforms/Wink.js +++ b/platforms/Wink.js @@ -9,7 +9,28 @@ var inherits = require('util').inherits; process.env.WINK_NO_CACHE = true; var model = { - light_bulbs: require('wink-js/lib/model/light') + light_bulbs: require('wink-js/lib/model/light'), + refreshUntil: function(that, maxTimes, predicate, callback, interval, incrementInterval) { + if (!interval) { + interval = 500; + } + if (!incrementInterval) { + incrementInterval = 500; + } + setTimeout(function() { + that.reloadData(function() { + if (predicate == undefined || predicate(that.device) == true) { + if (callback) callback(true); + } else if (maxTimes > 0) { + maxTimes = maxTimes - 1; + interval += incrementInterval; + model.refreshUntil(that, maxTimes, predicate, callback, interval, incrementInterval); + } else { + if (callback) callback(false); + } + }); + }, interval); + } }; function WinkPlatform(log, config){ @@ -32,7 +53,7 @@ WinkPlatform.prototype = { wink.user().devices(function(devices) { for (var i=0; i