Sonoff S20 Plug
Sonoff S20

Available from:


GPIO #Component
GPIO00 Button1
GPIO01 User
GPIO02 User
GPIO03 User
GPIO04 None
GPIO05 None
GPIO09 None
GPIO10 None
GPIO12 Relay1
GPIO13 Led1i
GPIO14 None
GPIO15 None
GPIO16 None
Configuration (old format, will be converted to new template when applied)
{"NAME":"Sonoff S20","GPIO":[17,255,255,255,0,0,0,0,21,56,0,0,0],"FLAG":0,"BASE":8}

Alternative template where the green LED lights up only in case of connection issues and on button actions:

{"NAME":"Sonoff S20","GPIO":[17,255,255,255,0,0,0,0,21,158,0,0,0],"FLAG":0,"BASE":8}

Sonoff S20 comes in 4 plug type variants. Flashing process will be the same for each type.

Serial Connection

Please see the Hardware Preparation page for general instructions.

S20 Smart Socket The picture shows how to program the S20 Smart Socket powered by the serial-to-USB converter. With newer US sockets, either use a right-angle header, or remove the header after flashing. Otherwise,the pushbutton may rub against a pin and get stuck.

Be sure it is NOT plugged in mains!

Remove the “hidden” screw.


(optional) Remove the board from the plastic shell to have better access to serial pins. There are 2 screws at the red and blue wire. Be careful not to damage the soldered connection!


Connect the jumper wires (no soldering needed here, can just hold the wires in contact or tape them to the external plastic).


From top to bottom (see image below):

  • Vcc (3,3V)
  • TXD
  • RXD
  • GND

S20 Board

Connected? Hold the little button pressed while connecting the serial-to-USB adapter to your computer. After about 2 seconds let go of the button. It is now in flashing mode and ready to be flashed with Tasmota.

Video tutorial by Don’t It Yourself

Official Sources

  • Itead Product Page: http://sonoff.itead.cc/en/products/residential/s20-socket
  • Itead Wiki: https://www.itead.cc/wiki/S20_Smart_Socket

OpenHab Configuration


Switch S20_1 "Coffee S20-1 Powerplug" (LR,gLight) 
       { mqtt=">[broker:cmnd/sonoff-S20-1/POWER:command:*:default],
Switch S20_1_Reachable "S20-1 reachable" <contact> (gReachable)
       { mqtt="<[broker:tele/sonoff-S20-1/LWT:state:MAP(reachable.map)],
               " }


        Switch item=S20_1 labelcolor=[S20_1_Reachable == "ON" = "green",S20_1_Reachable == "OFF" = "red"]