Starter ESPHome config
Built from the pinout above. Keys and the Wi-Fi password come from secrets.yaml in ESPHome. Check the pins against your hardware revision before flashing: one model can ship with different boards.
substitutions:
name: martin-jerry-mj-st01-3-w
esphome:
name: ${name}
friendly_name: "Martin Jerry MJ-ST01 3-Way Switch"
esp8266:
board: esp01_1m # most plugs and relays have 1 MB flash; check yours
logger:
api:
encryption:
key: !secret api_key
ota:
- platform: esphome
password: !secret ota_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap: {}
captive_portal:
switch:
- platform: gpio
pin: GPIO4
id: relay1
name: "Relay 1" # Blue status LED (active HIGH, on when relay on)
restore_mode: RESTORE_DEFAULT_OFF
- platform: gpio
pin: GPIO5
id: relay2
name: "Relay 2" # Red power LED (active HIGH, inverted — on when relay off)
restore_mode: RESTORE_DEFAULT_OFF
- platform: gpio
pin: GPIO12
id: relay3
name: "Relay 3" # Relay output (active HIGH)
restore_mode: RESTORE_DEFAULT_OFF
# Other pins from the pinout:
# GPIO13: Physical 3-way wall switch (active LOW, pull-up)
# GPIO14: Unknown (possibly second switch input)
How to flash
- Most devices are flashed over UART: a 3.3 V USB-TTL adapter to RX, TX, GND and 3V3, holding GPIO0 to ground at power-on (ESP8266/ESP32). Mains power disconnected.
- Beken (BK72xx) and Realtek chips are flashed with ltchiptool, or with cloudcutter without opening the case if the firmware allows it.
- Details and board photos: the device page in the ESPHome database.
A config from scratch: ESPHome generator. Which pins are safe: pinout.