devices.esphome.io
Martin Jerry Wall Switch MJ-S01
Martin Jerry Wall Switch MJ-S01
Device Type: switchElectrical Standard: usBoard: esp8266
General Notes
This switch uses tuya so you can use tuya-convert to flash ESPHome.
Note: Newer versions (2025+) of this switch seem to use a locked CB3S module and might not be flashable; replacement with an ESP8266 module may be required.
GPIO Pinout
| Pin | Function | 
|---|---|
| GPIO4 | led1 (inverted) | 
| GPIO5 | led2 (inverted) | 
| GPIO13 | main button (input_pullup) | 
| GPIO12 | relay (inverted) | 
Basic Configuration
# Basic Config---substitutions:  #   # https://esphome.io/guides/configuration-types.html#substitutions  device_name: martin_jerry_mj_s01 # hostname & entity_id  friendly_name: Martin Jerry MJ-S01 # Displayed in HA frontend  ip_address: !secret martin_jerry_mj_s01_ip # use /config/esphome/secrets.yaml
esphome:  # https://esphome.io/components/esphome  name: ${device_name}
esp8266:  board: esp01_1m  restore_from_flash: true
wifi:  # https://esphome.io/components/wifi  ssid: !secret wifi_ssid  password: !secret wifi_password  manual_ip:    static_ip: ${ip_address}    gateway: !secret wifigateway    subnet: !secret wifisubnet    dns1: !secret wifidns  ap:    ssid: ${friendly_name}_AP    password: !secret wifi_password    channel: 1    manual_ip:      static_ip: 192.168.1.1      gateway: 192.168.1.1      subnet: 255.255.255.0
web_server:  port: 80  # https://esphome.io/components/web_server.html
logger:  # https://esphome.io/components/logger
api:  encryption:    key: !secret encryption_key  # https://esphome.io/components/api
ota:  password: !secret esphome_ota_password  # https://esphome.io/components/ota
switch:  # relay output  - platform: gpio    id: relay    name: $friendly_name    pin: GPIO12
    on_turn_on: #blue when on      - switch.turn_on: blue_led      - switch.turn_off: red_led
    on_turn_off: #purple when off      - switch.turn_on: blue_led      - switch.turn_on: red_led
  - platform: gpio    # https://esphome.io/components/switch/gpio.html    pin: GPIO04    id: red_led    name: $friendly_name Red LED    inverted: true
  - platform: gpio    # https://esphome.io/components/switch/gpio.html    pin: GPIO05    id: blue_led    name: $friendly_name Blue LED    inverted: true
binary_sensor:  - platform: gpio    # https://esphome.io/components/binary_sensor/gpio.html    pin:      number: GPIO13      mode: INPUT_PULLUP    name: ${friendly_name} Main Button    internal: True    on_press:      - switch.toggle: relay
button:  - platform: restart    id: restart_button    name: $friendly_name Restart    entity_category: diagnostic
text_sensor:  - platform: version    name: $friendly_name ESPHome Version    id: esphome_version    hide_timestamp: True  - platform: wifi_info    ip_address:      id: ip_address      name: $friendly_name IP Address    mac_address:      name: $friendly_name Mac      id: mac_address
sensor:  - platform: uptime    name: $friendly_name Uptime Sensor  - platform: wifi_signal    name: $friendly_name wifi signalFully-featured package ("SS01")
@joshuaboniface has created a fully-featured, packaged configuration for this device, which permits quick flashing with a pre-compiled binary as well as automatic adoption, deployment, and updates. This requires either an ESP8266-based version of the switch, or swapping out the CB3S module for an ESP8266 module (2025 purchase version).
Note: The relay seems to have changed in the recent revisions of this switch (2025 purchase) and these do not seem to invert the relay pin any longer in my tests. If you use an older revision, you may need to tweak the configuration below to account for this, though the author only has recent versions to test with.
Edit this page on GitHub