Guide · Gates and garage doors

How to add a FAAC gate and a Marantec garage door to Home Assistant

Both can be controlled and monitored from Home Assistant with a Shelly 1 Gen3 wired into the existing control board, plus a separate signal that tells Home Assistant whether the gate or door is open or closed. We've done this on a FAAC 770N swing gate and a Marantec Comfort 270 garage door opener on a Surrey property. Both now work from a dashboard tile and from automations, and run locally.

By Home Smart Surrey · Updated 16 October 2026

Safety first. This is low-voltage control wiring on equipment with moving parts and safety circuits. Never connect to a safety input such as photocells, safety edges or obstruction inputs. Terminal names, programming menus and functions differ between control boards, so check your own board's manual. If you're unsure, use a qualified installer.

The approach: one trigger, one status

Every gate or garage door needs two separate connections:

  1. A trigger. A momentary pulse into the board's open or impulse input, exactly like pressing the wall button. The Shelly's relay does this.
  2. A status. A signal that tells Home Assistant whether it's open or closed. Without it you can pulse the gate but never know what state it's in.

Off-the-shelf modules such as Remootio and ismartgate do both jobs. We used a Shelly 1 Gen3 because it runs locally and puts a relay and an input in one small unit that fits beside the control board. The same Shelly does the trigger and the status, kept electrically separate.

FAAC swing gate (770N, 24V DC)

Trigger

Wire the Shelly's relay output (O and I) to the board's IN1 (OPEN A) input and GND. That's the normally-open command input, so it behaves like a push-button. Leave the safety-edge inputs alone. Set the Shelly's Auto Off timer to about one second so each trigger is a clean momentary pulse. The board treats each pulse as a step command: it opens a closed gate and closes an open one.

Status

The board's OUT2 auxiliary output (24V DC, 100mA maximum) can report the gate state, but it isn't a dry contact, so it can't go straight into the Shelly. Instead, OUT2 drives the coil of a small 24V DC interposing relay (we used a Finder 40.52-type DPDT, which draws around 25 to 30mA, well inside OUT2's rating). The relay's potential-free contact then connects the Shelly's SW input to its L terminal. The gate's 24V DC side never touches the Shelly's mains-referenced input.

On the board's advanced programming menu, set OUT2 to function 05 ("automated system open or in pause"). That gives a steady on while open or paused and off while closed. We first landed on function 07 ("moving"), which is on only while the gate travels, and the live Shelly input in Home Assistant showed straight away that it was wrong. If your status flickers or reads wrong, check which function you've selected.

Shelly settings

Marantec Comfort 270 garage door opener

Trigger

Wire the Shelly's relay in parallel with the existing wall button across the control board's terminal block XB03: O to terminal 1 (GND) and I to terminal 2 (Impulse). Leave terminals 3 and 4 and the photocell terminals (70/71) untouched. Because it's in parallel, the original button keeps working. Use the same one-second Auto Off pulse as the gate.

Status

Fit a standalone magnetic reed switch on the door and wire it straight to the Shelly's SW and L terminals. A reed switch is inherently potential-free, so unlike the FAAC output it needs no interposing relay. Use the same Switch and Detached settings as above.

The Home Assistant cover

A template cover turns the relay and the status input into one entity with a proper open/closed state. Replace the entity names with your own:

template:
  - cover:
      - name: "Garage Door"
        device_class: garage
        state: >
          {% if is_state('binary_sensor.garage_shelly_input_0', 'off') %}
            open
          {% else %}
            closed
          {% endif %}
        open_cover:
          - action: switch.turn_on
            target:
              entity_id: switch.garage_shelly
        close_cover:
          - action: switch.turn_on
            target:
              entity_id: switch.garage_shelly

Both open_cover and close_cover send the identical pulse on purpose, because the board toggles. The dashboard only shows the button that makes sense for the tracked state. The 'off' in the state test is for our reed switch's polarity; for a gate wired through an interposing relay as above it was 'on'. Add a Tile card on the cover with the cover-open-close feature for a single tile showing status and buttons.

After editing configuration.yaml, reload Template Entities under Developer Tools → YAML. Forgetting this step gave us a confusing "still wrong" moment that had nothing to do with the logic.

Automation gotchas

A toggle relay can re-open what you meant to close

Because each pulse toggles, a "close the garage" step in a Going Out script will open a door that's already shut. Only pulse when the cover is actually open:

- if:
    - condition: state
      entity_id: cover.garage_door
      state: open
  then:
    - action: switch.turn_on
      target:
        entity_id: switch.garage_shelly

Check the condition does what you think

Our "close the gate at 10pm" automation wrapped its open check in a not, so it only fired when the gate was already closed, the opposite of the intent. Test scheduled automations at both states.

A left-open alert is worth having

triggers:
  - trigger: state
    entity_id: cover.garage_door
    to: open
    for:
      minutes: 20
actions:
  - action: notify.mobile_app_your_phone
    data:
      message: The garage door has been open for over 20 minutes.

The notify service name has to match your phone exactly, and it can change after a companion-app reinstall. Check the live name under Developer Tools → Actions rather than guessing.

Frequently asked questions

Do my remote and wall button still work?

Yes. The Shelly is wired in alongside them, so the original controls carry on working.

Does it work without the internet?

Yes. The Shelly and Home Assistant talk to each other over your local network. You only need the internet for remote access.

Will these terminals match my FAAC or Marantec board?

Not necessarily. These are the terminals on the boards we worked on. FAAC boards in particular come in several variants with different menus. Always check your own board's manual before connecting anything.

Want your gate or garage door in Home Assistant?

We do the wiring, the Home Assistant setup and the dashboard, and test it on site before we leave. Covering Woking, Guildford, Reigate and the wider Surrey area.

Email hello@homesmartsurrey.net See pricing