visual.onfleek.live // garage-door-esp32
Building now — chip flashed and online

DIY Garage Door. Controller

Building it now: open the Wiring Map · // ESP8266 + ESPHome replacement for the Small Garage Door opener · updated 2026-10-21
Why this page exists: the "Small Garage Door" opener (a Refoss RSGD100, Meross-manufactured) went dark on the network for about two months while it still had power — the button and LED stopped responding to any reset attempt, and re-pairing through the Refoss app never worked. Cloud-dependent consumer openers like this one have no local fallback and no real position feedback — the app just guesses. The plan is to swap this one opener for a small, local-first build using ESPHome. Started 2026-10-21: the chip is flashed and on Wi-Fi; wiring is next.

01 // The idea

Local-first instead of cloud-first — it talks straight to the house Wi-Fi, no app account required.
A small all-in-one ESP8266 + relay board runs ESPHome firmware and does two jobs: the onboard relay pulses the same two wires the wall button pulses, to open/close the door, and the magnetic reed switch Gary already has (salvaged from the old Refoss unit) mounts low on the track and says CLOSED only when the door is all the way down. Stuck halfway or wide open both say OPEN, so it never falsely says the door is shut.

One door, one sensor: this board runs only the Small Garage Door. It joins the house Wi-Fi directly and shows up in Home Assistant / the OnFleek network like any other local device, so it keeps working even if the manufacturer's cloud service ever goes away.

02 // Parts list

Everything is cheap and commonly stocked — most of it is probably already in a parts bin.
PartJobApprox. costBuy
ESP8266 WiFi relay board All-in-one brain + relay on one small board (ESP-01S chip). Replaces buying a separate ESP32 dev board and a separate relay module. Comes as a 5-pack — 4 spares left over for other projects. $15.99
5-pack
Amazon →
USB-to-TTL programmer The ESP-01S chip has no USB port of its own — this plugs it into a computer to flash ESPHome onto it. Pull the chip out of the relay board, flash it here, plug it back in. 2-pack. $8.98
2-pack
Amazon →
Magnetic reed switch Mounted LOW on the side track, magnet on the door's bottom edge: closes only when the door is fully DOWN. Gary already has the old one salvaged from the Refoss unit; link is for a future replacement. $0
have one
($9.99 to replace)
Amazon →
5V USB power supply + cable Powers the board from a nearby outlet. The board has no USB port: 5V goes into the 2-screw block (a USB cable with the end cut off, red = +, black = -, or a USB-to-screw adapter). $9.99 Amazon →
Small project box Keeps the board and relay dust-free and off exposed terminals. 5-pack, more than enough for this and future builds. $9.99
5-pack
Amazon →
Jumper wire kit Wires for the reed switch and the opener. Sensor wire A pinches into the chip socket's RX hole (no solder): one thin solid wire, chip pressed in on top of it. $9.29 Amazon →
Every link above was opened and confirmed in stock on 2026-09-30 — prices still drift a little on Amazon over time.

03 // Wiring plan

Same idea as the existing wall button — the relay just closes the same loop electronically.
Confirmed 2026-10-21 (board = ESP-01S Relay v4.0): the relay is on GPIO0 and switches on when the pin goes LOW. The sensor goes on RX (GPIO3), not GPIO2: GPIO2 must be high at power-up, so a sensor holding it low (door shut) would stop the chip from starting after a power cut.

Screws, facing you, left to right (checked against the factory print): 1 NO = opener wire A · 2 COM = opener wire B · 3 NC = empty · 4 GND = USB black + sensor wire B · 5 VCC = USB red · RX hole = sensor wire A. (The opener and the sensor each just have 2 wires.) Interactive wiring map →

04 // ESPHome config (live)

The exact config running on the chip (v2, 2026-10-21). Passwords and keys stay in secrets.yaml on the study laptop.
esphome:
  name: small-garage-door
  friendly_name: Small Garage Door

esp8266:
  board: esp01_1m
  restore_from_flash: false

logger:
  baud_rate: 0          # frees RX (GPIO3) for the sensor

api:
  encryption:
    key: !secret api_key

ota:
  - platform: esphome
    password: !secret ota_password

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  ap:
    ssid: "Small-Garage-Door-Setup"
    password: !secret ap_password

captive_portal:

web_server:             # REST for the server, this site and Alexa
  port: 80
  auth:
    type: digest
    username: !secret web_username
    password: !secret web_password

binary_sensor:          # reed switch: RX hole + GND, at the BOTTOM
  - platform: gpio
    id: door_closed_sensor
    name: "Door Fully Closed"
    pin:
      number: GPIO3
      mode: INPUT_PULLUP
      inverted: true
    filters:
      - delayed_on_off: 200ms

switch:                 # relay on GPIO0, switches on when LOW
  - platform: gpio
    id: door_relay
    internal: true
    restore_mode: ALWAYS_OFF
    pin:
      number: GPIO0
      inverted: true

button:
  - platform: template
    name: "Press Wall Button"
    on_press:
      - switch.turn_on: door_relay
      - delay: 500ms
      - switch.turn_off: door_relay

cover:                  # no stop_action on purpose
  - platform: template
    name: "Small Garage Door"
    device_class: garage
    lambda: |-
      return id(door_closed_sensor).state ? COVER_CLOSED : COVER_OPEN;
    open_action:
      - if:
          condition:
            binary_sensor.is_on: door_closed_sensor
          then:
            - switch.turn_on: door_relay
            - delay: 500ms
            - switch.turn_off: door_relay
    close_action:
      - if:
          condition:
            binary_sensor.is_off: door_closed_sensor
          then:
            - switch.turn_on: door_relay
            - delay: 500ms
            - switch.turn_off: door_relay

sensor:
  - platform: wifi_signal
    name: "WiFi Signal"
    update_interval: 60s

05 // Build steps

  1. Done: flash the chip with ESPHome over the USB-to-TTL programmer (2026-10-21).
  2. Done: Wi-Fi. Online at 192.168.2.26 on West_Wing_IOT, address locked in UniFi. Updates now go over Wi-Fi.
  3. Next: power only, on the table. Chip in the relay board, USB red to screw 5 (VCC), black to screw 4 (GND). Unplug and replug 3 times and listen: no click allowed.
  4. Sensor: sensor wire A into the RX hole (pinch, no solder), sensor wire B on screw 4. Touch the magnet to it: the board must say CLOSED.
  5. Relay test: press the button from the web page with nothing on screws 1-2: one click.
  6. Garage: unplug the opener, its 2 wires to screws 1 (NO) and 2 (COM), under the same screws as the wall button. Mount the sensor low on the track, then test open and close.
  7. Box it up and mount it near the opener, off the floor and out of the way.
  8. Add the door to visual.onfleek.live and Alexa once it's live, so it shows real state.

06 // Status

Building — 2026-10-21. Chip flashed and on Wi-Fi, screws labeled and checked, wiring plan saved on the wiring map. Next: power on the table and the click test. The Refoss unit stays in place until this is ready to swap in.