I wanted to share a new project I’ve been working on. I’ve written an Insteon PLM <-> MQTT bridge server which converts Insteon messages to and from MQTT. This allows you to command changes to Insteon devices and receive notifications about state changes from those devices using MQTT. Integration with Home Assistant is handled using standard MQTT components like MQTT JSON light, MQTT switch, and MQTT binary sensor.
You can find the repository here: https://github.com/TD22057/insteon-mqtt
The library currently supports Insteon switches, dimmers, FanLinc, IOLinc, KeypadLinc, leak sensors, motion sensors, mini-remotes, outlets, smoke bridge, thermostats. Feel free to request new devices - they should be easy to add and I can iterate with you to test them out.
My motivation for writing this was that none of the existing Insteon solutions had the features that I wanted. One of the things this package does is add in the management of the Insteon all link database (scenes) on the devices the way Insteon-Terminal does. That allows complicated devices (like Smoke Bridge) to be easily configured and managed. It also means that the server knows about scenes that you create on the devices. Once the databases for each device have been read, the server will publish state changes when a scene is triggered for all the devices in the scene. So if a motion sensor causes two lights to turn on, the system knows that and sends an MQTT state update message for the motion sensor and both lights when ever the sensor trips. Future versions of the server will allow you to write the scenes in a configuration file and push that out to all the devices (like MisterHouse does).
I think this device database management and persistent storage system would be hard to implement inside Home Assistant which is part of the reason I made this a separate server process. I also like the idea of moving everything that I use through MQTT as it allows me to use any kind of home automation system and makes it easy to interface with lots of other systems.
Keep in mind this is an initial release. There is documentation for installing and using the system and the supplied example configuration file has documentation in it for how to set up Home Assistant for each component. The examples in that configuration have the MQTT topic and payload templates already written for talking with Home Assistant (though you can change them to support any style of MQTT commands you want).
Feel free to try it out, suggest new features (either here or on github), or report bugs. I’m still finishing code commenting and unit testing so I wouldn’t be surprised if there are some bugs still present.