I have an initial release for a Openhab 2 binding for the Isy device.
Current features:
Can auto discover nodes (typically insteon devices) for many different types of insteon devices.
Can auto discover variables
Can auto discover programs (though ability to run, stop, runElse etc not currently implemented.
Control many insteon devices. e.g. light level on dimmers, switch for relays, etc.
I have not hooked up auto-discovery of the Isy itself. Just go to the inbox, click + and select isy binding. Then pick manually add, and pick the bridge. Then enter user name, password, and the IP address of the device. IMPORTANT, enter the IP address, not the url (don’t include http, or tcp, etc)
Would be great if there are others who would like to access their isy device via openhab, and could help prioritize future development.
Here is the source for the binding
You should be able to download the jar file from the following link, and drop it into your addons folder.
In your opinion, is it just easiest for me to create a new fork of the openhab2-addons and drop all my latest files into a branch named as suggested (e.g. create a branch called isy-binding or something)? I missed doing that as I got started. I’m not particularly interested in all the commit history up to this point anyways.
Just came across this thread. I have a number of Insteon devices that I manage through an ISY. I’m currently integrating the ISY into OH using the old ISY binding version 1.9. It works well, but has it’s draw backs.
I downloaded your jar and started testing it out. Things seem to be working well. I was able to quickly connect to my ISY and then use auto discovery to find devices, scenes, programs, and variables. I really like that the binding uses DON and DOF commands so the ramp rates setup in ISY are used. I also like the Paddle Action channel. I can use that for some rules in OH. So far I’ve successfully tested a SwitchLinc, On/Off Outdoor Module, Motion Sensor, and a scene, I have not seen problems with these.
Here are the things I see that are missing or not working:
LampLinc devices have the On/Off channel. These devices are dimmable so they should have the Load Level channel
I have multiple KeypadLinc8 wall switches that do not show up in the Inbox through auto discovery. Are these not supported?
I have multiple TriggerLinc devices that also don’t show up in the Inbox.
I added one of my ISY programs as a Thing and linked the Run channel to a switch item in OH. When I turn the OH item on, I don’t see the ISY program run. I also tried running the program in ISY and didn’t see the OH item status change.
Let me know when a new jar is available and I can test again. This is really great work and I’m happy to help where I can.
I have made a couple changes to the binding which should help me zero in on the issues.
Specifically, there is now a new attribute for every insteon device called Device ID. This will help me add support for devices I don’t have, or identify issues in the current implementation.
There is also a new Thing Type unrecognized. This will allow the binding to create a skeleton of a thing so users can easily see the device id, and then we can add support for it.
Could you download the latest jar from my build server, located at:
I just added back the run channel to programs. That allows a simple switch to run the program. this is helpful when integrating in with the hue emulation (Alexa).
I looked through the logs and found the DeviceId for my devices that were unrecognized. Here is the DeviceId with the description of the device shown in the ISY GUI. I also mention what channels I think each should have based on their capabilities.
I also played around with programs. I was able to run a program through the Run channel. That is a very handy feature. Especially since it can be combined with the Hue Emulator and Google Home. I still couldn’t get the program to work through the Control channel. What item type should I use for the Control channel?
I’m going to test setting up Things and items through flat file next. I’ll let you know what i find.
there should be a new build now on my integration server which adds most of those device types.
after you do a discovery, you should be able to look at configuration things, and see some designated unrecognized. I did this in case some users can’t find the log file.
You may have to delete the things which were of the types you mentioned above, not sure if it will update things with the new discovery results.
I don’t have any of those items, and I haven’t taken on good unit testing within the binding so there may be some silly bugs. Just let me know and I will address right away.
I tried out the new jar and a few of the new DeviceIds appear to be working well. Here is what I found on the other ones:
DeviceId 01.0E - needs to be changed to a DIMMER_THING_TYPE
DeviceId 02.1C - needs to be added as a SWITCH_THING_TYPE
DeviceId 01.41 - This shows up as a KeypadLinc Dimmer 6 in PaperUI, It is actually an 8 button KeypadLinc Dimmer. Also, there are only channels for Buttons A through D. This device also has buttons E through H.
DeviceId 01.1C - This shows up as Unrecognized Device. It should also be a KeypadLinc Dimmer 8.
DeviceId 02.08 - This shows up as Unrecognized Device. It should be a SWITCH_THING_TYPE
DeviceId 10.02 - This shows up as Unrecognized Device. This is a TriggerLinc that says whether a door is open or closed. Can you set it up as the GARAGEDOORKIT_THING_TYPE? I think they have the same capabilities.
Also, I’m trying to add Things and Items through flat file config. I find that easier to work with than PaperUI. I have the Things working correctly but am having trouble with items. Here is my isy.things file
The Things are loaded w/o a problem. When the Items are loaded I get the below error:
14:57:55.305 [ERROR] [ome.core.thing.link.ThingLinkManager] - Exception occured while informing handler:null
java.lang.NullPointerException
at org.openhab.binding.isy.handler.AbtractIsyThingHandler.getBridgeHandler(AbtractIsyThingHandler.java:13)[224:org.openhab.binding.isy:2.1.0.201702200253]
at org.openhab.binding.isy.handler.IsyInsteonDeviceHandler.handleCommand(IsyInsteonDeviceHandler.java:74)[224:org.openhab.binding.isy:2.1.0.201702200253]
at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.channelLinked(BaseThingHandler.java:207)[105:org.eclipse.smarthome.core.thing:0.9.0.b4]
at org.eclipse.smarthome.core.thing.link.ThingLinkManager.informHandlerAboutLinkedChannel(ThingLinkManager.java:264)[105:org.eclipse.smarthome.core.thing:0.9.0.b4]
at org.eclipse.smarthome.core.thing.link.ThingLinkManager.access$3(ThingLinkManager.java:255)[105:org.eclipse.smarthome.core.thing:0.9.0.b4]
at org.eclipse.smarthome.core.thing.link.ThingLinkManager$1.added(ThingLinkManager.java:125)[105:org.eclipse.smarthome.core.thing:0.9.0.b4]
at org.eclipse.smarthome.core.thing.link.ThingLinkManager$1.added(ThingLinkManager.java:1)[105:org.eclipse.smarthome.core.thing:0.9.0.b4]
at org.eclipse.smarthome.core.internal.items.ItemRegistryImpl.allItemsChanged(ItemRegistryImpl.java:105)[98:org.eclipse.smarthome.core:0.9.0.b4]
at org.eclipse.smarthome.model.item.internal.GenericItemProvider.modelChanged(GenericItemProvider.java:350)[123:org.eclipse.smarthome.model.item:0.9.0.b4]
at org.eclipse.smarthome.model.core.internal.ModelRepositoryImpl.notifyListeners(ModelRepositoryImpl.java:207)[122:org.eclipse.smarthome.model.core:0.9.0.b4]
at org.eclipse.smarthome.model.core.internal.ModelRepositoryImpl.addOrRefreshModel(ModelRepositoryImpl.java:120)[122:org.eclipse.smarthome.model.core:0.9.0.b4]
at org.eclipse.smarthome.model.core.internal.folder.FolderObserver.checkFile(FolderObserver.java:272)[122:org.eclipse.smarthome.model.core:0.9.0.b4]
at org.eclipse.smarthome.model.core.internal.folder.FolderObserver.access$1(FolderObserver.java:265)[122:org.eclipse.smarthome.model.core:0.9.0.b4]
at org.eclipse.smarthome.model.core.internal.folder.FolderObserver$WatchQueueReader.processWatchEvent(FolderObserver.java:146)[122:org.eclipse.smarthome.model.core:0.9.0.b4]
at org.eclipse.smarthome.core.service.AbstractWatchQueueReader.run(AbstractWatchQueueReader.java:122)[98:org.eclipse.smarthome.core:0.9.0.b4]
at java.lang.Thread.run(Unknown Source)[:1.8.0_111]
Can you tell me what I’m doing wrong in the isy.items file?
I’ll continue testing the jar and let you know what else I find. I’m really excited with this binding. It gives access to a lot more of the ISY features than the old binding. Thanks for the hard work!
That exception is because the bridge isn’t hooked up to the item properly. I’m not sure how to do that via files to be honest. Even when I use the Paper UI, for things, it shows bridge, but never has that filled in with the ISY bridge.
In short, not sure how the bridge is linked to things. I just specify it within the discovery routines and it seems to work.
I’ll take a look at the other issues next time a get a chance. Thanks for the feedback.
DeviceId 01.0E - needs to be changed to a DIMMER_THING_TYPE
Could you delete this thing, and then re-discover it? It should be a dimmer now.
DeviceId 02.1C - needs to be added as a SWITCH_THING_TYPE
Done
DeviceId 01.41 - This shows up as a KeypadLinc Dimmer 6 in PaperUI, It is actually an 8 button KeypadLinc Dimmer. Also, there are only channels for Buttons A through D. This device also has buttons E through H.
I have added keypadlinc8. So all 8 buttons are dimmers? They are still switches for now. Please confirm that all 8 buttons are dimmers and I will adjust.
DeviceId 01.1C - This shows up as Unrecognized Device. It should also be a KeypadLinc Dimmer 8.
Done
DeviceId 02.08 - This shows up as Unrecognized Device. It should be a SWITCH_THING_TYPE
Done
DeviceId 10.02 - This shows up as Unrecognized Device. This is a TriggerLinc that says whether a door is open or closed. Can you set it up as the GARAGEDOORKIT_THING_TYPE? I think they have the same capabilities.
Done
If you are having trouble with a device that you had previously added, try removing them and re-discovering. If you are using files, then maybe this doesn’t matter.
I’m not sure if the ISY treats all the buttons on a KeypadLinc 8 as dimmers or switches. Button A is a dimmer and controls the load (light) connected to the KeypadLinc. Buttons B to H act as controllers for other Insteon devices. If you hold one of the buttons down, it will brighten/dim the Insteon device it is controlling if that device supports it. The ISY admin console shows button A like a regular dimmable device. It shows buttons B to H differently.
Here is a screenshot of the ISY admin console for button A of the KepadLinc8.
I did some testing with the KeypadLinc8. To do the test I created Switch items for each of the button channels. I then turned each switch item on, then turned each one off. I was able to successfully turn on/off and dim/brighten the light. Also, I saw that the items updated in OH2 when I manually clicked the buttons on the KeypadLinc8.
The only problem I found is that the address for the buttons has the wrong device id. When I clicked on button A, the binding tried to updated address “38 FB C7 2”. Button A should be “38 FB C7 1”. Button B is 2, C is 3, D is 4, E is 5, F is 6, G is 7, and H is 8.
I’m going to continue setting up more devices and testing. I’ll let you know if I find anything else.