devices.esphome.io
Sinilink XY-WFMS
Sinilink XY-WFMS
Device Type: relayElectrical Standard: globalBoard: esp8266
This device can be found on Aliexpress for about 5 USD.
Flashing
      
  
        
Can be tricky to solder the ground connection to the PCB due to heavy ground plane, I used P50 pogo pins in a printed adapter for 6x1.25mm but the Vin- screw terminal could also be used for conveient ground connection.
GPIO Pinout
| Pin | Function | 
|---|---|
| GPIO02 | Blue LED | 
| GPIO04 | Relay and Red LED | 
| GPIO12 | Toggle Button | 
| GPIO13 | Green LED | 
Basic Config
The following configuration is adapted from https://github.com/esphome/esphome-devices/blob/main/_devices/Sinilink-XY-WFUSB-USB-Switch-Relay/Sinilink-XY-WFUSB-USB-Switch-Relay.md with only minor changes to fit the new device.
There is a 3D printable case available from https://www.thingiverse.com/thing:4638431 which I remixed from https://www.thingiverse.com/thing:4146127
substitutions:  devicename: xy_wfms  upper_devicename: "Sinilink XY-WFMS ESP8266 Wifi Mosefet"
esphome:  name: $devicename  platform: ESP8266  board: esp01_1mcaptive_portal:
# Enable logginglogger:
# Enable Home Assistant API (if available i.e. reboot_timeout=0s)api:  reboot_timeout: 0s
ota:wifi:  ssid: !secret wifi_ssid  password: !secret wifi_password  #use_address: 10.0.0.230
  # Enable fallback hotspot (captive portal) in case wifi connection fails  ap:    ssid: !secret ap_ssid    password: !secret ap_password    ap_timeout: 3min
web_server:  port: 80
status_led:  pin:    number: GPIO2 # blue led    inverted: true #off when ok
switch:  # Relay (has red led hardwired; relay on = led on)  - platform: gpio    id: relay    pin: GPIO4    restore_mode: RESTORE_DEFAULT_OFF
  # green led  - platform: gpio    pin: GPIO13    id: green_led    inverted: false    restore_mode: RESTORE_DEFAULT_ON
  #  # blue led (if _not_ used for status led)  #  - platform: gpio  #    pin: GPIO2  #    id: blue_led  #    inverted: true  #    restore_mode: RESTORE_DEFAULT_OFF
  # Switch template to link relay and green led states  # green led is on when relay is off  - platform: template    id: "${devicename}_relay"    name: $upper_devicename    lambda: |-      if (id(relay).state) {        return true;      } else {        return false;      }    turn_on_action:      - switch.turn_off:          id: green_led      - switch.turn_on: #also turns red led on          id: relay    turn_off_action:      - switch.turn_on:          id: green_led      - switch.turn_off: #also turns red led off          id: relay
# Buttonbinary_sensor:  - platform: gpio    id: button    pin:      number: GPIO12      mode: INPUT_PULLUP      inverted: True    on_press:      - switch.toggle: "${devicename}_relay"