The Fate of true Insteon PLM support from an already great product

So this one...

homebridge-platform-insteonlocal

Is the only one you're going to get anywhere with Keypads and Sensors at the moment. Chris and I are going to see if it's possible to get sensor input, but I'm not able to look at that until mid January. Also, Scott Kuester said...

"Battery powered devices such as the leak sensor and open/close sensors go to sleep to save battery and only wake up to update status on a defined interval or as an event occurs. If you’re lucky, you might catch the device while its awake, but 99% of the time the status call won’t work because the device is asleep. For something like this, you need a persistent connection and code like the event listener in the homebridge plugin that triggers action on those events."

Also there's an issue that at the moment, there's no way to get HomeKit feedback into Hubitat unless you create a HomeKit automation between a HomeKit sensor (which is what the Insteon sensors would be essentially) and a virtual switch from Hubitat published in HomeKit via the Homebridge Hubitat app written by @tonesto7. Then you would need to also have either an iPad that can run the latest OS and dedicat it to being a hub for HomeKit automations, or an Apple TV 4 or later works as a HomeKit automation hub. HomeKit automations are not all that reliable in my experience. I'm using HomeKit automations for geolocation with HE right now and that works great, but I've stopped using them for other purposes.

So all we can do at the moment is control switches or dimmers. I was also able to control an I/O Linc, but only the relay. Same issue with the sensors. No input. Maybe we can do more, but I don't want to get your hopes up on the sensors and keypads.

How many door/window sensors do you have? Would replacement with Zigbee or Z-Wave sensors be feasible? I don't have an option for you for Insteaon Keypads and I don't own one, Which keypad or keypads do you have? I might be able to borrow one, but it would take some time to get to that.

As far as installation, if you're going to run the full Homebridge so you can use the Insteonlocal plugin, then you should install Raspbian not Noobs. I can't remember why, but do recall for some reason it made things more difficult.

Raspberry Pi setup

You can either run the Raspberry PI headless, you can get a keyboard and connect it to a monitor, or you can install TightVNC Server and remote into it. Headless is more challenging, but only for initial setup. After that, you really don't have to touch it.

If you're going to run the RPi headless, then you need to enable SSH which is simple.

  1. After imaging Raspian to the SD card, navigate to the boot directory of the SD Card and create a blank file. To do this, at the prompt > just type sudo touch ssh. Another way is to download ATOM text editor. It will be able to navigate to the boot directory of the SD card and then you can just make a new file with nothing in it and save it to the boot directory with the name ssh

  2. Eject the card and boot it up in the Pi. Type SSH pi@ and then enter. The default password is raspberry, but you should change this.

  3. Once you're logged in, change the password with passwd

  4. Type sudo raspi-config at the prompt and you can setup the rest, and If you're going to setup the WiFi, you can do that here as well. I wasn't able to setup WiFi on a RPi Zero W using the raspbian configuration utility, so if it doesn't work you'll have to eject the card and make wpa_supplicant file. Also easy, but try the configuration utility with a RPi 3b+ first.

  5. After those are setup, you need to update with sudo apt-get update

Homebridge and Insteonlocal setup

If you're going to do the Homebridge install, it will install node.js for you. Just follow these instructions.

It should only be necessary to type sudo npm install -g homebridge

  1. After install, at the prompt, type homebridge to see if it works. It will complain about not having plugins or a config.json file. Ignore that for now.
  2. CRTL-C to stop it and now install the insteonlocal plugin with sudo npm -g install homebridge-platform-insteonlocal
  3. Once everything is installed, in the home directory you'll find a directory named .homebridge and inside that you'll create the config.json file.
  4. Type sudo nano config.json
  5. Your homebridge config file should be something like this [see below], obviously replacing "hub username" and "hub password" with your actual hub username and password, and replace host with your hub's IP address. And of course, all the devices will be what you have and your device IDs. The names can be anything you want, that's really just for you. It is the name that will show up in HomeKit, but it's the ID and type that's important to making your Insteon devices work.

Information about the config.json options for various Insteon devices can be found here

{
    "bridge": {
        "name": "Homebridge",
        "username": "1A:2B:3C:4D:5E:6F",
        "port": 45525,
        "pin": "777-20-543"
    },
    "description": "Hubitat Integrations, Insteon integrations",
    "accessories": [],
    "platforms": [{
            "platform": "InsteonLocal",
            "name": "Insteon Local Platform",
            "user": "[hub username]",
            "pass": "[hub password]",
            "host": "192.168.0.2",
            "port": "25105",
            "model": "2245",
            "refresh": "300",
            "use_express": "true",
            "server_port": "3000",
            "devices": [
		{
         	     "name": "Kitchen Light",
        	    "deviceID": "22D508",
       		    "dimmable": "no",
         	    "deviceType": "lightbulb"
       		},
		{
                    "name": "Table Lamp",
                    "deviceID": "3381AA",
                    "dimmable": "yes",
                    "deviceType": "lightbulb"
                },
                {
                    "name": "Floor Lamp",
                    "deviceID": "39FD35",
                    "dimmable": "no",
                    "deviceType": "lightbulb"
                },
                {
                    "name": "Deck Light",
                    "deviceID": "22740C",
                    "dimmable": "yes",
                    "deviceType": "lightbulb"
                },
                {
                    "name": "Overhead Light",
                    "deviceID": "2B55GH",
                    "dimmable": "yes",
                    "deviceType": "lightbulb"
                },
                {
                    "name": "Porch Light",
                    "deviceID": "3H6G48",
                    "dimmable": "yes",
                    "deviceType": "lightbulb"
                },
                {
                    "name": "Toilet",
                    "deviceID": "245D99",
                    "deviceType": "leaksensor"
                },
                {
                    "name": "Front Door",
                    "deviceID": "3FFFF64",
                    "deviceType": "doorsensor"
                }
            ]
        }
    ]
}

Stand-alone Express Server

If you're going to just install the express server, then you'll need to install Node.js separately and before installing Express Server. Probably easiest to still just use the homebridge install, but then just don't run homebridge if you don't want it.

  1. To install the stand-alone Express Server, type sudo npm -g install insteon-server

  2. If it complains about missing dependencies, then type sudo npm -g install home-controller and after that's done, type sudo npm -g install express to get the required dependencies.

  3. The Express Server config.json file needs to be created in the insteon-server directory and it should look something like this [see below], obviously replacing "hub username" and "hub password" with your actual hub username and password, and replace host with your hub's IP address. And of course, all the devices will be what you have and your device IDs. The names can be anything you want, that's really just for you. It's the ID and type that makes a difference.

      {
     	"user": "[hub username]",
     	"pass": "[hub password]",
     	"host": "192.168.0.2",
     	"port": "25105",
     	"model": "2245",
     	"server_port": "3000",
     	"devices": [
         		{
                  	     "name": "Kitchen Light",
                 	    "deviceID": "22D508",
                		    "dimmable": "no",
                  	    "deviceType": "lightbulb"
                		},
         		{
                             "name": "Table Lamp",
                             "deviceID": "3381AA",
                             "dimmable": "yes",
                             "deviceType": "lightbulb"
                         },
                         {
                             "name": "Floor Lamp",
                             "deviceID": "39FD35",
                             "dimmable": "no",
                             "deviceType": "lightbulb"
                         },
                         {
                             "name": "Deck Light",
                             "deviceID": "22740C",
                             "dimmable": "yes",
                             "deviceType": "lightbulb"
                         },
                         {
                             "name": "Overhead Light",
                             "deviceID": "2B55GH",
                             "dimmable": "yes",
                             "deviceType": "lightbulb"
                         },
                         {
                             "name": "Porch Light",
                             "deviceID": "3H6G48",
                             "dimmable": "yes",
                             "deviceType": "lightbulb"
                         }
                     ]
                 }
    
  4. To run the express server, type cd /usr/local/lib/node_modules/insteon-server (or the exact path where your insteon-server directory lives on Raspbian) and then type node insteonserver.js

Note: the /usr/local/lib/ path might be different on Raspbian. I cannot remember. I run mine on a Mac. You essentially need to be at the insteon-server directory to run. You may be able to add the directory path to your run command (i.e. node /usr/local/lib/node_modules/insteon-server insteonserver.js), but this doesn't work for me.

There's are many different ways to accomplish the same things in Raspbian, so over time you might want to play with them. One in particular is auto startup. I personally prefer the manual startup. I just find it easier to see what's going on with Homebridge, but if you're just using the stand-alone Express Server, then there's nothing to see. All it will show is

Connecting to Insteon Model 2245 Hub...
Connected to Insteon Model 2245 Hub...

There are tons of guides and instructions out there for how to setup auto startup and many opinions on which way is best. Best advice I can give is, once you get it working, make a backup of your config.json file (and if you're using Homebridge then also backup the persist and accessories directories) and most importantly, make an image of your entire SD card. That way you can play with stuff and if it gets screwed up, you just re-image the SD card and your sins are forgiven.

To install and configure the drivers in HE, download the driver code and follow the instructions here

Instructions for installing HE driver code are here if you haven't done that before.

Hi SHP,

and wow thanks for the information it is fantastic, I will give it a shot today...

I guess in my old age I seem to get confused more easily LOL, but just to make sure I undrestand, if I go the full route and install the homebridge-platform-insteonlocal, barring sensors, which I really have not implimented any yet, as this will be for a brand new install in my new home once I sell my existion home, but want to sort it all before I get down there and start installing and configuring, as I have about 7 - open/close, 7 - in jam switches, 7 - motion detectors, all of which if I had to could be moved to Zigbee or Zwave as I will use the SmartThings Multi sensor for the MyQ Garage door stuff so I can always sell off if need be,
but back to the point so if I read from your statement:
"So all we can do at the moment is control switches or dimmers. I was also able to control an I/O Linc, but only the relay. Same issue with the sensors. No input. Maybe we can do more, but I don't want to get your hopes up on the sensors and keypads."

the only thing I am gaining from adding the extra layer v.s. using what i am doing now with the Insteon Direct Dimmer/Switch is status in HE, as I see as you said only switches and dimmers, where I would liek to be able to use kepads, scenes as it seems that the homebridge-platform-insteonlocal has alot more to it, that is not yet implimented but has the possibility in the future...

Sorry If I am repeating myself, and trust me it does even frustrate myself, as as I said had Open heart surgurt about a year ago and it has seemed to messed with my cognative functions, where as sometime the Bulb is bright and I get it and somtimes my mind is foggy and cant remeber my own name ROTFL (not that bad but you get the picture.

Again thanks much I will impliment the homebridge-platform-insteonlocal and give it a whirl and tell you how it goes

All is good ... and working thanks so much for you help

so @SmartHomePrimer after playing around with it it does what you say and shows status, the issue is I am not really sure it is as realtime as I would have expected but I did see something about buiding a rule to poll it to make it happen faster I do see in the Homebridge screen stuff is happening and status is polled but I dont see the updat happen in HE untill I do a refresh, as I was wanting to make an action happen when say a light is turned on and reaches over a certain level

All correct. You get status updates from the Express Server and Insteon HTTP switch/dimmer driver. Whether the Express Server is configured stand alone, or used by way of the Homebridge Plugin, the result is the same as far as switches and dimmers are concerned, but I find greater stability in separating out the Express Server from Homebridge.

Insteon input devices will not work with the current HE drivers. The only way to get responses from Insteon input devices is to trigger HE devices at the moment (which also requires another hub essentially, in the form of an iPad that can run the latest OS or an Apple TV 4 or later) and tie those automations between Insteon and HE by also adding the HE Homebridge Plugin and exposing virtual switches. So when for example, an open/close sensor triggers, HomeKit shows it as active. So then a HomeKit automation would turn on an HE virtual switch in HomeKit and then HE would do something when that virtual switch was activated. Same as it would if a directly connected sensor activated.

It works, but then you're reliant on HomeKit automations to always work. While some say they are rock solid, that was not my experience with HomeKit automations, so I've abandoned that workflow personally.

CES starts today, and there's a possibility of announcements that could change things. Wait a few more days if you can before making any decisions on the sensors, If nothing helpful to your scenario is announced, then Zigbee or Z-Wave sensors would be guaranteed to work with HE and your Insteon switches, dimmers and micro modules, no extra equipment or software required.

Very simple periodic Rule Machine Trigger will refresh the devices for you.
Here's the rule overview...

And the settings you choose...

43%20AM 55%20AM

U da Man.... ROTFL...

Whats the impact you have seen on system performance, if any???

It does accomplish what I was expecting... now if i use it manually ot thru another app it will reflect within 10 seconds

As I see that the homebridge-platform-insteonlocal has scene capabilities and keypads, so have thoes other options been attempted and not worked, or was it due to a lack of time or intrest??

If attempted would these be needed to be added to the existing HTTP Insteon Switch/Dimmer driver code or would you say that maybe device code for keypads or scenes should be in a different codes set or whould that clash , as after I look atit for a while and digest the code what is going on, I may want to try and see if I could add keypads and scenes, but if this has been tried and not obtainable than I will not attempt, or if it has been started and abandoned is there som base code other than what I have to start tinkering with where might I find it... Not gaurenteeing much as even though I used to code, I was a hack at best and that was in the late 80's on mainframes and "C" on PC's :slight_smile:

Thanks for you help

I have not noticed any, but I only have 7 Insteon switches, dimmers, outlets and micro dimmers in use at the moment. You have more than that in just sensors alone. I don't own enough Insteon devices to stress test it. I started out with Insteon, but then realized the limitations of their hub software and saw no progress. I moved to Wink and ran two separate systems, then SmartThings and integrated everything and now HE.

A little from both column A and B. I first integrated Insteon by tying HomeKit automations to Virtual Switches. That seemed to work at first, but I soon found that automations often failed to turn switches off, or they would bounce off and then back on again. When Chris helped with the drivers, things became much more stable, but I still had an ON/OFF switch that is used frequently in our Kitchen, fail to operate, or it would still bounce on and off, or vise versa. Once Scott Kuester released the stand alone Express Server, I found that running it separate from HomeKit gave me 100% reliability. I do find that some of my lights lag behind when I run my Goodnight routine for example, so it's not like normal Insteon where everything turns off at once, but it's not that big a deal to me since everything does turn off every night as expected and turns on as expected.

So pursuing the sensor compatibility wasn't a high priority and time was short. With no other Insteon users asking for it and other projects we both wanted to work on, it has been sitting idle and unexamined. I began to discover inexpensive Xiaomi sensors. Tried a few and they're really impressive. Even though they don't follow the Zigbee spec 100%, they work great thanks to drivers created by @veeceeoh for HE. Until recently, their range was an issue and if they were too far from the HE hub, they would tend to drop-off and would have to be paired again or prodded into reconnecting. But we now know that Xbee devices and the new IKEA Trådfri outlets are compatible repeaters for them, so I have even less reason personally to pursue Insteon input devices. I live in a small house, so my issues with Xiaomi devices were minimal, as everything I own really has no choice but to be fairly close to my HE hub. However, I did have the occasional issue. Since adding two IKEA Trådfri outlets as repeaters, I've had no issues at all with the Xiaomi devices. So now I just order them when I need input devices because they're small, very nicely designed and solid performers thanks to the repeaters.

Having said that, I do have an Insteon leak sensor and an open/close sensor that I wouldn't mind putting to use. And if there's someone else in the community that can benefit, it's worth taking another look at. There's a possibility Chris says, of using Web Sockets to get sensor status. I'm not a dev and don't know how to code. I'm picking up some basics, but very slowly. My role in all this has simply been an alpha tester for Chris, since he doesn't own any Insteon equipment.

If you're looking for a recessed door sensor, Monoprice makes a Z-Wave version. No personal experience, but is a heck of a lot more affordably priced than the Aeotec or Insteon, and it looks like it might actually be the same sensor that Aeotec is using.

gonna start poking at this soon. we will see where that rabbit hole leads.

1 Like

@mjohnson007

I was trying to work on websocket code for insteon devices. The hub @SmartHomePrimer has does not support websocket as far as i can tell. (2245)

You however have the isy which I believe might work with with websocket.

Any chance youd be willing to do a little testing?

1 Like

:frowning: I was hoping that WS would have worked

Sure tell me what you need me to test,

It's funny all I wanted... was trying to find a one HUB/one stop solution...

This is what I am currently running to find my nirvana...

If I could take the best of all of them and creat a HUB it would be great, as Hubitat is so.. so.. close if they would just add native support for Insteon ROTFL heck the code is all there is OpenHAB is doing it directly to a PLM they should be able to take and mode the code, and maybe oneday add linking thru the interface :wink:

ISY994i w/ Zwave, Insteon w/ a Serial connection to a PLM running - web access & MobiLinc app on my phone/tablets supporting 50+ Insteon devices 5+ year (just tired of coding want graphical rules etc)

Hubitat HUB w/ Zigbee, Zwave , Insteon hub and PLM, then a Pi3+ running Homekit stuff you and others wrote , tried the direct but need notifications from switches and sensors, (all web access)

Smatenit HUB w/ Zigbee, Insteon, HTML, Insteon thru serial PLM, all web access, getting there but still in dev but allows direct linking of Insteon devices thru app, needs work, but when done will support all Insteon stuff, cameras and Smartenit Zigbee sdevices and other like locks etc

OpenHAB running on a Pi3+ which will soon be connected to a serial Insteon PLMusing another Pi3+ with 7" touch pannel to run HABPanel, soon to find out how well the Insteon works on that as they say Ity can talk directly to the PLM once the discoveries are done to it we will see, looks promising by requires alot of setup (all web Access)

Download the Hubitat app