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
/eventsSSE stream.
Setup
- Create the device under Devices with driver
konnected_gdo. Setip(andport/protocolif not the defaults) and enable it. - Zone is auto-created. On first connect the driver creates a garage zone bound to this device under the
garagesubsystem and stamps the discrete-verb action attributes (see Discrete openers below). - Verify. The driver opens the
/eventsSSE stream and writesstate,position, andoperationonto the zone as the door moves. If SSE is unreachable (older firmware), setuse_ssetofalseto fall back to polling.
Attributes
Device
| Attribute | Required | Type | Default | Notes |
|---|---|---|---|---|
ip | yes | string | — | GDO LAN IP (DHCP reservation recommended). |
port | no | int | 80 | HTTP port. |
protocol | no | string | http | http or https. |
use_sse | no | bool | true | Use the live SSE stream. Set false to fall back to polling. |
poll_rate | no | int (ms) | 2000 | Poll cadence — only used when use_sse is false. |
state | readonly | string | — | Door state (open / closed / …). |
position | readonly | int | — | Door position, 0 (closed) → 100 (open); updates continuously during travel. |
operation | readonly | string | — | Current operation (idle / opening / closing). |
last_error | readonly | string | — | Most 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
| Name | Args | Description |
|---|---|---|
open | — | Open the door. |
close | — | Close the door. |
stop | — | Stop the door mid-travel. |
toggle | — | Open if closed, otherwise close (based on last known state). |
level | level | Drive the door to a position 0–100. |
light_on / light_off / light_toggle | — | Control the GDO's garage light output. |
lock / unlock | — | Control 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.
positionis reported0(closed) →100(open) and updates continuously during travel.
Troubleshooting
| Symptom | Check |
|---|---|
| Door state never updates | Verify 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 populated | The GDO surfaces the opener's safety-beam state. Clear the obstruction at the door, then close again. |
| Driver flaps connected/disconnected | Wi-Fi RSSI is marginal (the GDO web UI shows RSSI). Below about −75 dBm the link is typically unstable. |