From 54e5334ccadba54bee2924bf8abfdd86e70898cb Mon Sep 17 00:00:00 2001 From: Mike Robinet Date: Wed, 4 Nov 2015 14:38:28 -0600 Subject: [PATCH] CREX-1094 Delete stale device subscriptions on IFTTT app update --- smartapps/smartthings/ifttt.src/ifttt.groovy | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/smartapps/smartthings/ifttt.src/ifttt.groovy b/smartapps/smartthings/ifttt.src/ifttt.groovy index 0bc3b20..cad83d2 100644 --- a/smartapps/smartthings/ifttt.src/ifttt.groovy +++ b/smartapps/smartthings/ifttt.src/ifttt.groovy @@ -98,6 +98,15 @@ def installed() { } def updated() { + def currentDeviceIds = settings.collect { k, devices -> devices }.flatten().collect { it.id }.unique() + def subscriptionDevicesToRemove = app.subscriptions*.device.findAll { device -> + !currentDeviceIds.contains(device.id) + } + subscriptionDevicesToRemove.each { device -> + log.debug "Removing $device.displayName subscription" + state.remove(device.id) + unsubscribe(device) + } log.debug settings }