devices.esphome.io
Shelly Pro 1
Shelly Pro 1
Device Type: relayBoard: esp32
Information about the pinout and internals of the Shelly Pro 1.
It uses the ESP32 DOWDQ6.

Pinout
| ESP32 DOWDQ6 | SN74HC595B | LAN8720A | Component | 
|---|---|---|---|
| GPIO 4 | RCLK | ||
| GPIO 13 | SER | ||
| GPIO 14 | SRCLK | ||
| GPIO 17 | CLKIN | ||
| GPIO 18 | MDIO | ||
| GPIO 19 | TXD0 | ||
| GPIO 21 | TXEN | ||
| GPIO 22 | TXD1 | ||
| GPIO 23 | MDC | ||
| GPIO 25 | RXD0 | ||
| GPIO 26 | RXD1 | ||
| GPIO 27 | CRS_DV | ||
| GPIO 35 | Reset Button | ||
| GPIO 38 | Switch input 1 | ||
| GPIO 39 | Switch input 2 | 
Shift register
A shift register is controlling the status LEDs and the relay output, the pinout for it is the following:
| SN74HC595B | Component | 
|---|---|
| QA | Relay | 
| QB | Out 2LED | 
| QC | RGB Blue | 
| QD | RGB Green | 
| QE | RGB Red | 
| QF | nc | 
| QG | nc | 
| QH | nc | 
The Out 1 status LED and the relay are on the same output. From what I've seen the board looks like it's being used for the Shelly Pro 1, Pro 2, Pro 1PM, and Pro 2PM. But I can't comfirm it. There are all the spaces needed for all device variants.

Programming Pinout

Basic Configuration
esphome:  name: shelly-pro-1
esp32:  board: esp32dev  framework:    type: arduino
logger:
api:
ota:
wifi:  ssid: !secret wifi_ssid  password: !secret wifi_password
  ap:    ssid: "Shelly-Pro-1"    password: "BzwFc7HsRihG"
captive_portal:
light:  - platform: status_led    name: "Switch state"    pin:      sn74hc595: sn74hc595_hub      number: 1      inverted: true
#ethernet:#  type: LAN8720#  mdc_pin: GPIO23#  mdio_pin: GPIO18#  clk_mode: GPIO17_OUT
button:  - platform: restart    id: restart_1
binary_sensor:
  - platform: status    id: status_1    on_press:      then:        switch.turn_on: rgb_b    on_release:      then:        switch.turn_off: rgb_b
  - platform: gpio    id: reset_button    pin:      number: 35      inverted: true    on_click:      min_length: 400ms      max_length: 800ms      then:        button.press: restart_1    on_double_click:      then:        switch.toggle: light1
  - platform: gpio    id: input1    pin:      number: 38    on_press:      then:        switch.toggle: light1
  - platform: gpio    id: input2    name: "Shelly Pro Button 2"    pin:      number: 39
sn74hc595:  - id: 'sn74hc595_hub'    data_pin: GPIO13    clock_pin: GPIO14    latch_pin: GPIO4    sr_count: 1
switch:  - platform: gpio    name: "Shelly Pro Relay"    id: light1    pin:      sn74hc595: sn74hc595_hub      number: 0      inverted: false
  - platform: gpio    id: out2    pin:      sn74hc595: sn74hc595_hub      number: 1      inverted: false
  - platform: gpio    id: rgb_b    pin:      sn74hc595: sn74hc595_hub      number: 2      inverted: false
  - platform: gpio    id: rgb_g    pin:      sn74hc595: sn74hc595_hub      number: 3      inverted: false
  - platform: gpio    id: rgb_r    pin:      sn74hc595: sn74hc595_hub      number: 4      inverted: false