INSTEON - Garage Door Control/Status with I/O Linc 2450 using Garage Door and Status Kit

So I bought 2xInsteon Garage Door & Status kits over 5 years ago. Never installed them using my old Insteon setup. But I am FINALLY getting around to it with my OpenHab setup at our new home.
Before going out into the Garage I decided to “Play” with my new toy in my Home Office - where it is nice and warm.

I was able to pair the I/O Linc in both directions with my USB Modem. Device showed up in OpenHab in Things as a “SensorsActuators_IOLinc” and I added is as “Equipment” type under my new “Garage” location - called “Garage Door Opener”. I then added the “Contact Sensor”, “Last Heard From”, and “Switch” as Points under that Equipment.

Since this was a Garage Door and Status “Kit” - the Magnetic Sensor (for Door position) and the pigtail that gets wired to the “Momentary Push button Input” on my Garage door opener were already wired up to the IOLinc. The Magnetic sensor is wired to “Gnd” and “S”, and the pigtail is wired to “NO” and “C”.

So far so good.

I expected the Magnetic sensor to interact with the “Contact Sensor” status in OH to show the position of the Garage Door. I also assumed the “Swich” would interact with the Pigtail - and be NO and only close for a second or 2 then I manually toggle it from OH.

Well that is NOT what I am experiencing….

The “Contact Sensor” indication is ALWAYS shown as “Open” and has not changed in any of my testing.

The “Switch” is shown as “ON” in OH and the LED on the IOLinc is OFF.

IF I put the magnet near the contact sensor - the indication of the “Switch” moves to “OFF” in OH and the GREEN LED on the IOLinc illuminates.

IF move the magnet away from the sensor - the “Switch” indication in OH immediately go back to “ON” and the LED on the IOLinc turns off.

In OH with the Switch showing ON - I then toggle it in OH to OFF.

Switch indication in OH goes OFF - no relay sound in IOLinc.

In OH with the Switch showing OFF - I then toggle it in OH to ON.

I hear the relay click in the IOLinc - LED on the side of IOLinc goes ON for about 2 seconds - Second Click - LED on side goes OFF.

Seems to me like something is “crossed up” in the OH Binding for these indications and controls.

Anyone have any thoughts ?

BTW - running OH 4.3.2

I have a couple of I/O Linc’s hooked up to my garage doors, I use a custom version of the binding that is based off of the 4.2 version of the binding. I was the maintainer of the pre 4.3 versions of the Insteon binding. In my case, I have the the GND and S going to the magnets, COM and N/O go to the same connections that the garage door opener is wired to. When the door is closed the Sense light is on, and the contact is in the CLOSED state in OH. When the door is open the Sense light off and the contact is in the OPEN state in OH.

BTW, the switch and contact should work independently of each other. I see you are running an old version OH. Maybe try upgrading to a 5.2 version. I know the 4.3 version of the binding should have never been merged since it was very buggy and even the 5.2 version has issues. The pre 4.3 version of the binding is very stable, that’s why I still use it.

Rob

Thanks for the quick response, man!! I think you and I have chatted in the past. I would like to use your version of the binding, if possible in the near future. For now I’m still trying to get my feet wet in the current set up of everything so I don’t wanna get too fancy yet. Do you happen to know where with the current binding the configuration files are at? From what I read in the documentation, there may be some things I have to tweak for the set up of this Io link.

Rob

Actually, I think I’m going to try your level of the Insteon module. Do you have instructions and a link to get the components install?

Kevin, I sent you a PM

the I/O Linc is working but the channels may be mapped a bit differently than expected in openHAB. On these units, the sensor input (S/GND) usually updates the Contact Sensor channel, while the relay output (NO/C) is controlled by the Switch channel as a momentary pulse.

The fact that the relay clicks for ~2 seconds when switching OFF → ON suggests the output side is behaving correctly. The confusing part is the sensor state mirroring the switch/LED.

I’d double-check that the Contact Sensor point is linked to the sensor channel, not the relay switch channel, and verify the I/O Linc is in momentary mode (A) rather than latching mode.

This may be more of a channel-linking/item setup issue than a binding problem.

Hey Ben - Thanks for the response. This is exactly what i expect is going on- a channel-linking/item setup issue. The problem is i don’t know where/how to check the configuration information. I can’t figure out where it is stored. I know that sounds dumb-and i am probably missing something stupid. Could you tell me where/how the channel-linking/item setup is stored? i.e - hopefully some human understandable con fig file. I am running OH on Ubuntu Server

Can someone point me in the direction of where I can find the channel-linking/item setup inormation for Insteon devices?

The manual is at I/O Module - Owner's Manual.

Rob - thanks for the response - but I am looking for the information in Open Hab. In the write up for the current Insteon Binding the information is as follows:

I/O Linc (garage door openers)

The I/O Linc devices are really two devices in one: an output relay and an input contact sensor. To control the relay, link the modem as a controller using the set buttons as described in the instructions. To get the state of the relay and sensor, the modem must also be linked as a responder to the I/O Linc. The contact state is based on the sensor state at the time it is linked. To invert the state, either relink the modem as a responder with the sensor state inverted, or toggle the channel relay-sensor-inverted. By default, the device is inverted where an on command is sent when the sensor is closed, and off when open. For a garage door opener, ensure the input sensor is closed (status LED off) during the linking process.

#Items

Switch  garageDoorOpener                 "door opener"                        { channel="insteon:device:home:aabbcc:switch" }
Contact garageDoorContact                "door contact [MAP(contact.map):%s]" { channel="insteon:device:home:aabbcc:contact" }
String  garageDoorRelayMode              "door relay mode"                    { channel="insteon:device:home:aabbcc:relay-mode" }
Switch  garageDoorRelaySensorInverted    "door relay sensor inverted"         { channel="insteon:device:home:aabbcc:relay-sensor-inverted" }

Legacy
Switch  garageDoorOpener  "door opener"                        { channel="insteon:device:home:AABBCC:switch" }
Contact garageDoorContact "door contact [MAP(contact.map):%s]" { channel="insteon:device:home:AABBCC:contact" }

and create a file “contact.map” in the transforms directory with these entries:

OPEN=open
CLOSED=closed
-=unknown

I know this probable sounds stupid… but where are the files with this configuration/point mapping information located in OpenHab/linux. I want to see where/how the “Contact Sensor” is mapped - because its value in OH never changes. When I move the magnet close to the contact sensor - the “Switch” changes state. i.e. the Switch shows “Off” in OH - but when I move the magnet close to the Contact Sensor - the Switch state changes to “On” in OH. BUT the Contact Sensor indication does NOT change. So, it seems to me that in reality all of the information is actually being transferred into OH by the binding - but in some config file the “Contact Sensor” state is incorrectly mapped to the “Switch”. I figure IF i could find that configuration file I could verify the incorrectly mapped input and correct it. But I do not know where to look for that configuration file. I

Am I correct to assume that there is some file in bowels of OH that has this mapping?

Here is a snip from the “Code” section of my garage door opener:

UID: insteon:device:9f6fa2ac5a:4d8a18
label: Insteon Device 4D8A18 Garage Door Opener
thingTypeUID: insteon:device
configuration:
address: 4D.8A.18
bridgeUID: insteon:plm:9f6fa2ac5a
channels:

  • id: switch
    channelTypeUID: insteon:switch
    label: Switch
    configuration: {}
  • id: contact
    channelTypeUID: insteon:contact
    label: Contact Sensor
    configuration: {}
  • id: event-button
    channelTypeUID: insteon:event-button
    label: Event Button
    configuration: {}
  • id: momentary-duration
    channelTypeUID: insteon:momentary-duration
    label: Momentary Duration
    description: Set the output relay closure duration for momentary relay modes (A-C).
    configuration: {}
  • id: program-lock
    channelTypeUID: insteon:program-lock
    label: Local Programming Lock
    description: Prevent manual device configuration.
    configuration: {}
  • id: led-traffic
    channelTypeUID: insteon:led-traffic
    label: LED Traffic Blinking
    description: Set the device led to blink when sending or receiving messages.
    configuration: {}
  • id: relay-sensor-follow
    channelTypeUID: insteon:relay-sensor-follow
    label: Output Relay Sensor Follow
    description: Set the output relay to trigger when the sensor input changes state.
    configuration: {}
  • id: relay-mode
    channelTypeUID: insteon:relay-mode
    label: Output Relay Mode
    configuration: {}
  • id: last-heard-from
    channelTypeUID: insteon:last-heard-from
    label: Last Heard From
    description: The last time a message from the device was received.
    configuration: {}

Is this correct?

With ALL equipment on my desk in my office - NOT installed in my garage.

Initial Conditions:

Contact Sensor = OFF (Magnet > 2 feet away)

Switch = OFF

Test #1 - Turn “Switch On via OH”

So when I turn the “Switch” on I hear a click and with a meter can see that the switch is CLOSED.

In the OH Log I see these messages:

11:13:03.171 INFO openhab.event.ItemCommandEvent Item ‘Insteon_Device_4D8A18_Garage_Door_Opener_Switch’ received command ON
11:13:03.173 INFO openhab.event.ItemStatePredictedEvent Item ‘Insteon_Device_4D8A18_Garage_Door_Opener_Switch’ predicted to become ON
11:13:03.176 INFO openhab.event.ItemStateChangedEvent Item ‘Insteon_Device_4D8A18_Garage_Door_Opener_Switch’ changed from OFF to ON

Result #1:

Contact Sensor = OFF (Magnet > 2 feet away)

Switch = ON

Test #1 PASSED

Test #2 - Momentary automatic reset of Switch

About 5 seconds later I hear a second click - and with a meter can see that the switch is OPEN.

In the OH log I see this message:

11:14:01.023 INFO openhab.event.ItemStateChangedEvent Item ‘Insteon_Device_4D8A18_Garage_Door_Opener_Switch’ changed from ON to OFF

Result #2:

Contact Sensor = OFF (Magnet > 2 feet away)

Switch = OFF

Test #2 PASSED

So it appears to me that the Remote Control and automatic reset of the Switch, and the OH Indication of the”Switch” which is used to actuate the Garage Door Opener is working properly.

Now the issue.

Initial Conditions:

Contact Sensor = OFF (Magnet > 2 feet away)

Switch = OFF

Test #3 - Place Magnet Next to Contact Sensor

When I place the Magnet near the “Contact Sensor” I get this message in the OH Log:

11:43:14.671 INFO openhab.event.ChannelTriggeredEvent insteon:device:9f6fa2ac5a:4d8a18:event-button triggered PRESSED_OFF
11:43:14.673 INFO openhab.event.ItemStateChangedEvent Item ‘Insteon_Device_4D8A18_Garage_Door_Opener_Last_Heard_From’ changed from 2026-04-22T11:43:03.135-0400 to 2026-04-22T11:43:14.669-0400

Result #3:

Contact Sensor = OFF (Magnet next to sensor)

Switch = OFF

Test #3 FAILED

Test #4 - Move Magnet far away from Contact Sensor

When I move the Magnet far away from the “Contact Sensor” I get this message in the OH Log:

11:46:49.725 INFO openhab.event.ChannelTriggeredEvent insteon:device:9f6fa2ac5a:4d8a18:event-button triggered PRESSED_ON
11:46:49.729 INFO openhab.event.ItemStateChangedEvent Item ‘Insteon_Device_4D8A18_Garage_Door_Opener_Switch’ changed from OFF to ON
11:46:49.730 INFO openhab.event.ItemStateChangedEvent Item ‘Insteon_Device_4D8A18_Garage_Door_Opener_Last_Heard_From’ changed from 2026-04-22T11:46:48.284-0400 to 2026-04-22T11:46:49.724-0400

Result #4:

Contact Sensor = OFF (Magnet far away from sensor)

Switch = ON

Test #4 FAILED

Instead of a message about the “Contact Sensor” changing state - I get a message that the “Switch” has changes state.

In OH the “Switch” is shows as ON and the “Contact Sensor” state has not changed.

Test #5 Place Magnet Next to Contact Sensor (again)

11:51:35.137 INFO openhab.event.ItemStateChangedEvent Item ‘Insteon_Device_4D8A18_Garage_Door_Opener_Switch’ changed from ON to OFF
11:51:35.137 INFO openhab.event.ChannelTriggeredEvent insteon:device:9f6fa2ac5a:4d8a18:event-button triggered PRESSED_OFF
11:51:35.140 INFO openhab.event.ItemStateChangedEvent Item ‘Insteon_Device_4D8A18_Garage_Door_Opener_Last_Heard_From’ changed from 2026-04-22T11:51:25.760-0400 to 2026-04-22T11:51:35.135-0400

Result #5:

Contact Sensor = OFF (Magnet far away from sensor)

Switch = OFF

Test #4 FAILED

Instead of a message about the “Contact Sensor” changing state - I get a message that the “Switch” has changes state.

In OH the “Switch” is shows as OFF and the “Contact Sensor” state has not changed.

If I keep on moving the Magnet AWAY/NEAR/AWAY/NEAR the contact sensor ONLY the Switch Changes state in OH. The Contact sensor indication NEVER changes.

Obviously there is SOME kind of “Miss mapping” in the state of the “Contact Swtich” in OH.

Can ANYONE PLEASE PLEASE help me get this issue fixed - obviously I can’t install the Insteon Garage door system in my home until I can get this fixed.

@jeshab is the maintainer of the insteon binding.

Hey Rob

Yes - i know @jeshab is the current insteon binding maintainer-and i have reached out directly to him- but he has not answered any of my requests.

VERY frustrating and disappointing!!

Im lost… :frowning:

Is @jeshab still maintaining the Insteon Binding or is the current OH Insteon binding dead?

Looking at @jeshab’s profile, he hasn’t posted in the openHAB community since Sep 14, 2025, and last meaningful update to the Insteon binding was July 6, 2025 (History for bundles/org.openhab.binding.insteon - openhab/openhab-addons · GitHub). It appears that the binding is probably dead.

I know absolutely nothing about INSTEON, but upon a quick glance the contact channel is a trigger, so doesn’t get linked to an item, but is used in rules. Insteon - Bindings | openHAB. Possibly to trigger a motor?