[RELEASE] ST Insteon Integration with Indigo Server 7 on Mac, Version 1.2

smartapp
smartapp_lighting
insteon
virtualdevice

(Brandt Barretto) #1

I blame it on Alexa. My barrier to entry was that I couldn’t integrate my existing Insteon infrastructure running in Indigo on my Mac with my Echo Dots. An Indigo plugin fixed that, but then I added Schlage Connect locks, Z-Wave garage door control, and a SmartThings hub on sale from Amazon…and then I wanted to have my SmartThings hub be able to control my Insteon devices in Indigo and have the status updated when devices are controlled via Indigo.

It ain’t perfect, and it was designed for my own use. But for those who are in a similar boat, I present to you my InsteonIntegration SmartApp and device handlers.

You may find the device handlers and smartapp here: https://github.com/brbarret/InsteonIntegrationREST

The device handlers are required, so you’ll need to install those as well.

Please post if you are interested in exploring this further. I will be updating this thread over the next few days with some more of the particulars. Thanks!

From the README.md:

InsteonIntegrationREST

SmartThings device handlers and SmartApp to facilitate integration between SmartThings and Insteon devices running on Indigo.

These tools allow a user to create devices in SmartThings corresponding to your Insteon lighting devices
(other things may work, but aren’t yet supported) in Indigo. These devices may be controlled by Indigo or by
SmartThings and the device handlers will help keept the device state in sync on both platforms.

Indigo ultimately manages the devices, but SmartThings can control the devices and get their status.

Requirements

  • Apple Mac computer running Indigo Domotics Server 7.0+, with REST services enabled
  • Insteon devices (designed for lighting, should work with anything switched
  • SmartThings Hub (duh)
  • Knowledge of using triggers in Indigo 7.0+ when device state changes

Architecture

The device handlers allow the user to create devices in SmartThings corresponding to the lighting (or switched) Insteon devices. The intention is that the device handler could control the device and the REST server on Indigowould return an HTTP Response containing the current state of the device. A refresh() command was intended to allow the user to ask Indigo for status without initiating control of the device.

But as usual, things didn’t quite work that way. The device handlers were unable to properly capture the HTTP response despite many hours of searching and trying stuff.

Enter the SmartApp: It establishes an endpoint that allows Indigo to send device status to SmartThings, pretty much acting like a callback. It is called by triggers in Indigo that sense when an applicable device has changed and then initiates an HTTP GET to your ST hub to update the state of the corresponding device in HT by calling the devices refresh() command.

Device Handlers

  • dimmer-insteon-rest : Intended for devices that support dimming
  • switch-insteon-rest : Intended for devices that only support on/off functionality

SmartApp

  • insteon-status-grabber : Sets up the endpoint on your ST hub and allows calls that update your corresponding
    devices in SmartThings.

TODO 28 Sep 2017:

  • Would like to initiate refresh from the devices on the SmartThings side
  • Need to allow users to specify their own device maps in the SmartApp (or dispense with the map altogether)
  • Iron out and document the OAuth process for any other users

(Brandt Barretto) #2

I’ve made a few modifications and have declared the code ready for prime time. I still need to add some documentation, but my time table will depend on demand.

I know there are a few Indigo users out there…if you have solutions of your own, I’d love to talk to you about them.

Here’s the repository: https://github.com/brbarret/InsteonIntegrationREST