Skip to main content

Konnected Garage Door Opener

The konnected_gdo driver controls a Konnected GDO — an ESPHome-based bridge that wires into a residential garage door opener and exposes it over the LAN. Unlike a single pulse-relay door, the Konnected GDO has discrete open, close, and stop operations plus an on-board garage light and lock. State is read over a live Server-Sent Events (SSE) stream, with a polling fallback for older firmware.

Each Konnected GDO drives a single door. The driver auto-creates one zone per device under the garage subsystem — there is no per-zone address to set.

Prerequisites

  • Konnected GDO provisioned onto Wi-Fi via its captive portal.
  • A DHCP reservation for the GDO (recommended — the driver addresses it by IP).
  • Outbound HTTP from the GEM controller to the GDO, including the /events SSE stream.

Setup

  1. Create the device under Devices with driver konnected_gdo. Set ip (and port / protocol if not the defaults) and enable it.
  2. Zone is auto-created. On first connect the driver creates a garage zone bound to this device under the garage subsystem and stamps the discrete-verb action attributes (see Discrete openers below).
  3. Verify. The driver opens the /events SSE stream and writes state, position, and operation onto the zone as the door moves. If SSE is unreachable (older firmware), set use_sse to false to fall back to polling.

Attributes

Device

AttributeRequiredTypeDefaultNotes
ipyesstringGDO LAN IP (DHCP reservation recommended).
portnoint80HTTP port.
protocolnostringhttphttp or https.
use_ssenobooltrueUse the live SSE stream. Set false to fall back to polling.
poll_ratenoint (ms)2000Poll cadence — only used when use_sse is false.
statereadonlystringDoor state (open / closed / …).
positionreadonlyintDoor position, 0 (closed) → 100 (open); updates continuously during travel.
operationreadonlystringCurrent operation (idle / opening / closing).
last_errorreadonlystringMost recent driver error.

Zone

The driver binds one auto-created zone per device — no address is required. The state stream writes state, position, and operation onto the zone, and the discrete-verb action attributes (open_action, close_action, stop_action) are stamped on first connect.

Commands

NameArgsDescription
openOpen the door.
closeClose the door.
stopStop the door mid-travel.
toggleOpen if closed, otherwise close (based on last known state).
levellevelDrive the door to a position 0100.
light_on / light_off / light_toggleControl the GDO's garage light output.
lock / unlockControl the GDO's lock output.

Discrete openers

A Konnected GDO is not a pulse relay — it has real open, close, and stop verbs. So the driver stamps the per-zone open_action, close_action, and stop_action attributes (string form: open / close / stop) when the zone is created or first seen. The garage control page reads these and dispatches the verbs directly and idempotently — no toggle guard, no pulse — and shows a Stop button because the door supports a real mid-travel stop.

This is a fill-when-empty stamp: if a user or macro has already set one of these action attributes on the zone, the driver leaves it untouched. See Command Overrides for the general per-verb override mechanism.

Known quirks

  • One door per GDO — one auto-created zone per device, no per-zone address.
  • SSE keep-alive frames arrive about every 30 s; the driver auto-reconnects if the stream goes idle for more than ~60 s.
  • position is reported 0 (closed) → 100 (open) and updates continuously during travel.

Troubleshooting

SymptomCheck
Door state never updatesVerify SSE is reachable: curl -N http://GDO_IP/events. If it 404s the firmware is older — set use_sse to false to fall back to polling.
"Door is obstructed" / last_error populatedThe GDO surfaces the opener's safety-beam state. Clear the obstruction at the door, then close again.
Driver flaps connected/disconnectedWi-Fi RSSI is marginal (the GDO web UI shows RSSI). Below about −75 dBm the link is typically unstable.