Page 1 of 1

Search link tables for Insteon ID

PostPosted: Thu Apr 18, 2019 1:01 pm
by Brandt
I had linked Insteon's Hub Pro to a handful of devices when I was curious about their HomeKit offerings. Unfortunately it never worked out, so I would like to make sure I remove the Insteon ID of the Hub Pro from all my devices.

Is there a way to search the link tables of all devices for a particular Insteon ID? I know holding down the Option key while managing links allows one to remove unknown links.

thanks in advance...

Re: Search link tables for Insteon ID

PostPosted: Fri Apr 26, 2019 10:17 am
by matt (support)
Create an Action Group with an action that executes this embedded python script:

Code: Select all
for dev in indigo.devices:
   links = indigo.rawServerRequest("GetLinksForDevice", {"Name":dev.name})
   indigo.server.log("responder links in \"%s\":" % (dev.name))
   for link in links.get("ResponderList", []):
      indigo.server.log("%s" % (link["AddressStrUI"]))
   indigo.server.log("")
   indigo.server.log("controller links in \"%s\":" % (dev.name))
   for link in links.get("ControllerList", []):
      indigo.server.log("%s" % (link["AddressStrUI"]))
   indigo.server.log("")

Re: Search link tables for Insteon ID

PostPosted: Fri Apr 26, 2019 10:23 am
by Brandt
What does this error mean:

Code: Select all
   Script Error                    embedded script: 'key AddressStrUI not found in dict'
   Script Error                    Exception Traceback (most recent call shown last):

     embedded script, line 5, at top level
KeyError: 'key AddressStrUI not found in dict'

Re: Search link tables for Insteon ID

PostPosted: Fri Apr 26, 2019 10:26 am
by matt (support)
I'm not sure why that key doesn't exist, but just try this instead:

Code: Select all
for dev in indigo.devices:
   links = indigo.rawServerRequest("GetLinksForDevice", {"Name":dev.name})
   indigo.server.log("responder links in \"%s\":" % (dev.name))
   for link in links.get("ResponderList", []):
      indigo.server.log("%s" % (link.get("AddressStrUI", "--")))
   indigo.server.log("")
   indigo.server.log("controller links in \"%s\":" % (dev.name))
   for link in links.get("ControllerList", []):
      indigo.server.log("%s" % (link.get("AddressStrUI", "--")))
   indigo.server.log("")

Re: Search link tables for Insteon ID

PostPosted: Fri Apr 26, 2019 10:34 am
by Brandt
Thanks Matt,

Is there a way to search for just the unknown back links?

Re: Search link tables for Insteon ID

PostPosted: Fri Apr 26, 2019 10:59 am
by matt (support)
Not easily. I figured you had the Insteon address of the old controller and you could just search on that in the results?

Re: Search link tables for Insteon ID

PostPosted: Fri Apr 26, 2019 11:00 am
by Brandt
I do, thank you!