Insteon PLM Support

OpenHAB has bindings for Insteon PLM, so why not add support for it in Home Assistant?

I know there is Insteon Hub, but I would rather not create an account at Insteon Developer as I like to not rely on cloud in case the Internet goes down and I lose control of my devices.

Same goes for Nest and Ecobee, although that is beyond the scope of this topic.

1 Like

+1 from me. Signing up for an Insteon Developer Account takes 2-4 weeks according to Insteon’s web site. And like @GraysonPeddie one reason that I switched to OpenHAB was that I wanted to reduce my dependence on “the cloud” for smart home solutions.

2 Likes

PLM support would also add support for the v1 hub (which doesn’t use REST).

As a suggestion Insteon devices could be supported through homegear / homematic support.

https://www.homegear.eu/index.php/INSTEON_Device_Support_List

For python / home-assistant bindings see:


and

Any movement here? I’ve got a v1 hub, which kind of works through the current Insteon code, but it’s pretty poor (no dimming). I’d much rather use my PLM.

See here for a component I modified. It uses OpenHab as the backend since OpenHab has 100% support for PLM and can be controlled by REST.

2 Likes

Very nice.

So I can use multiple backends and write a custom component that is based on the light?

I would suppose I could get OpenHAB to turn my LG WebOS TV on by pressing a button in an Insteon KeyPadLinc. And because I use Home Assistant as my primary backend, I could have OpenHAB tell Home Assistant that the TV is on, so it updates the state. If I access the Home Assistant frontend to turn the TV off, Home Assistant can directly talk to the TV to turn off, tell OpenHAB that the TV is off, and then OpenHAB updates the state in a KeyPadLinc.

In my opinion, this whole integration of multiple backends opens up a can of worms. The system of communicating with each other from one backend to another is very complicated, which then comes to a question: why not create a software-based hub in Linux that can act as a central hub for multiple backends regardless of what programming languages each backend is written? I mean, one backend is written in Java, another backend is written in Python, another backend is written in Mono/C#, and so on and so forth. Each of the backend has it’s own REST API, so that the hub can communicate with multiple backends with a central API system.

Wouldn’t that be possible? We could choose which web interface we want to use, be it OpenHAB’s iPhone look-and-feel UI or the material design of Home Assistant.

But then I went completely off-topic in my own thread.

That’s correct. I have chosen to keep it to using OpenHab just for Insteon items to make it simple.

Its not as complicated as OpenHab telling HA anything. Since we are using REST HA just picks up all the info, so if you turn on your LG TV, all that needs to happen is OpenHab turns it on. The state change will be picked up by HA depending on how you write the component.

1 Like

I still feel like this is a big thing that is missing from Home assistant. I would be willing to help with the code but I have no Idea where to even start with getting PLM to work.

1 Like

I’m working on local control of the 2245 hub and it might work on 2242 and other http based hubs. It will be limited compared to the cloud as far as device discovery etc but wont require api key

I might look at the plm stuff later

1 Like

I’d be happy to get rid of four of my LIFX light bulbs (2 LIFX White 800 and 2 LIFX Color 1000) and go with a discontinued Insteon 2244-224 Starter Kit as I don’t see a need for color changing anymore. If you can get the PLM portion of the 2242 hub to talk to Home Assistant, I will be very happy to test them out, since I got my 4-pack CREE light bulbs that I want to test.

There is a 2244-372 version, but that includes a 2245-222 model. What are the limitations as far as local control through HTTP? It’s not like I can press a button in an Insteon KeyPadLinc, have it send over to Home Assistant, and then have Home Assistant execute a shell script or execute a scene or anything like that. Does it have WebSockets?

Oh, and now that I think about it, I came across this thread about local control in SmartThings forum.

Update: Still, I’m against Insteon Hub 2014 model as it requires a cloud account and I’m not that crazy when it comes to Internet of Threats (err, Things) as I would segregate them in my separate internal network where I won’t give IoT devices Internet access (yes, even Nest and Insteon 2245-222).

My question has already been posted in the Insteon Component thread, but I did not receive an answer about downloading the HA/OH component for controlling Insteon lights. I did not see a link to download in the thread.

I would love to see PLM bindings. Is there an existing Python library to interact with Insteon?

Could this help?
http://www.prodigyproductionsllc.com/articles/automation/home-automation-control-with-python-insteon-powerlinc-and-raspberry-pi/

And maybe this?

I’ve never done any Python programming…

That would work. Someone would need to make the HA component side.

I unfortunately don’t have any Insteon switches right now.

Here’s a JS version someone could port.

I might be interested in porting the openHAB Insteon PLM interface code from Java to Python. However, it’s not a small task. There are over 3000 lines of Java code (and about 1500 lines of XML metadata) in the protocol implementation.

I’m new to Home Assistant and I have a few questions before I invest too much time. The developer documentation says “One Home Assistant rule is that platform logic should never interface directly with devices. Instead, use a third-party Python 3 library”. As far as I know, there is no official third-party library for the Insteon PLM. Does the rule apply in this case?

1 Like

The Insteon.py code is fairly self contained and runs in its own thread with a simple asynchronous interface. Should be very easy to include in your codebase.

Steve, pretty sure there is no official library for Insteon PLM- the OpenHAB, and Insteon.py both seem to be the result of reverse engineering, good guesses, and luck, but they also seem to be what there is.
I’m regretting having spent so much money on Insteon, but I’m also wondering what would take you from maybe interested to “that was a lot of work, but well worth it”?
The only other choices that don’t involve ripping and replacing all my Insteon stuff involve spending more money (Insteon hub) or super complicated workarounds (running OpenHAB and having it talk to hass).

For what it’s worth, I’ve started working on this. I’ve got a preliminary python asyncio library going and stubs for a Local Push hass component. Code’s on https://github.com/nugget if anyone wants to assist.

I doubt I’ll have it in good enough shape for 0.38, but maybe within a month or so.

1 Like