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 signal
Fully-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