From 5fe4810467c9a0182e63b5e959ee01fe00d72602 Mon Sep 17 00:00:00 2001 From: Raymon de Looff Date: Sun, 23 Apr 2017 12:54:14 +0200 Subject: [PATCH] Remove unusable accessories from cache --- lib/HueAccessory/Factory.js | 3 --- lib/HuePlatform.js | 12 +++++++++++- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/lib/HueAccessory/Factory.js b/lib/HueAccessory/Factory.js index d8e8e90..8ad1567 100644 --- a/lib/HueAccessory/Factory.js +++ b/lib/HueAccessory/Factory.js @@ -1,7 +1,5 @@ 'use strict'; -const PLATFORM_VERSION = require('../../package.json').version; - const HueError = require('../HueError'); let Accessory; @@ -29,7 +27,6 @@ class Factory { const uuid = UUIDGen.generate(hueAccessory.uniqueId); const accessory = new Accessory(hueAccessory.name, uuid); accessory.context.uniqueId = hueAccessory.uniqueId; - accessory.context.platformVersion = PLATFORM_VERSION; accessory.context.cached = false; return accessory; diff --git a/lib/HuePlatform.js b/lib/HuePlatform.js index ac64405..59a5cec 100644 --- a/lib/HuePlatform.js +++ b/lib/HuePlatform.js @@ -53,17 +53,27 @@ class HuePlatform { } _removeUnusableCachedAccessories() { + const usableCachedAccessories = []; + for (const accessory of this.cachedAccessories) { - if (accessory.context.uniqueId === undefined || accessory.context.platformVersion === undefined || accessory.context.platformVersion !== PLATFORM_VERSION) { + if (accessory.context.uniqueId === undefined) { this.log.debug(`Unregistering accessory '${accessory.displayName}'...`); this.api.unregisterPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [accessory]); + + continue; } if (this.config.ignoreAccessories.indexOf(accessory.context.uniqueId) !== -1) { this.log.info(`Ignoring accessory with ID ${accessory.context.uniqueId}...`); this.api.unregisterPlatformAccessories(PLUGIN_NAME, PLATFORM_NAME, [accessory]); + + continue; } + + usableCachedAccessories.push(accessory); } + + this.cachedAccessories = usableCachedAccessories; } _loadAccessories() {