ESPHome: Shelly Pro 1PM supported?

Hello,

Anyone know if the Shelly Pro 1PM is supported ? The Shelly Pro 1 is but i can’t find any information about the 1PM.

Thank you

Is there any reason you want to use ESPHome on the Shelly 1 PM?

It works exceptionally well locally with the HA Shelly integration.

Yes;
1/ I don’t use HA. I use a custom interface in React and some piece of Python.
2/ I don’t want to have a device i don’t don’t fully control with mqtt access

But i love esphome, it make complex automations very simple !

By the way i have directly ask shelly cloud if the Pro 1PM is esp32 based, I wait for an answer. i will keep you inform

Yes, AFAIK all shellys will work with esphome.

I use a lot of them with esphome.

Another reason for me is to add “extra options” and extra actions in the device I could not do with the native firmware.

Hi,

Shelly.cloud answer me and confirm it’s ESP based. So i have ordered one to investigate.
It’s esp based with the same chip as the Shelly Pro 1, and most of the board look like the same.
I taked pictures of the pcb and post them on this github: https://github.com/nduhamel/shelly-pro-1PM-esphome.

Now i have to figure out how the ADE7953 power meter component is connected.
But i don’t now where to start.
If anyone could help me ?

I was going to ask why you are on the Home Assistant Forum then but…

I guess we do that now too. So fair enough.

Download the datasheet and start tracing pins back to the ESP module https://www.analog.com/en/products/ade7953.html

Pins 22 (IRQ), 26 (SDA) and 27 (SCL) of the ADE7953 are the only ones you have to trace to the ESP GPIOs.

Hi Nicolas,
may I kindly ask you to keep us updated on your progress?

I have a project in my mind where I’d like to use a SHELLY PRO 1 PM with ESPHOME so I’m very interested in your results!

Thanks in advance and continuous good luck :wink:

I would start with this:

I will dig this. Thanks.

Of course, i will share all my progress.

Thank you, i already contact the guy behind the Shelly Pro 1 support. He is working on the Shelly Pro 1PM too.

By the way, i also directly contacted shelly support, who knows maybe they will simply share the pinout with us.

Hi :wave:

I’m currently trying to setup my Shelly Pro 1PM with esphome. My “usual” way (as done with Shelly Plug S) does not seem to work.

Did you make any further progress with this? Or are “we” currently stuck with the stock firmware?

Any update would be appreciated !

have a nice day,
Cheers!

Hi,

I recently bought a Shelly Pro 1PM, any updates to use energy monitoring with esphome ?

I’m currently using Tasmota for having energy monitoring and ready to migrate to esphome. So I hope the ADE7953 chip on SPI will be implemented soon.

Cheers

1 Like

Helloooo!

Is there any progress on this?

I’ve got a Shelly that I would like to flash with ESPHome.

Hello @all,
I have some progress here with a “Shelly pro 1PM” just bought. The device works well. I mixed up the things known from the esphome “Shelly pro 1/2” and the tasmota support for “Shelly pro 1PM”. My esphome version used: 2024.12.4
What is missing/known issues:

  • the temperature sensor was calibrated by “try and error”. May be this works not as intended
  • the calibration of voltage, current and power was done by me by using a multimeter with a connected 40W bulb lamp. May be I’ll get some other values with the second device or next week by calibrating with higher power. My opinion is to calibrate each device to get correct values
  • energy meter must be added if needed
  • ethernet was not configured. If needed you will have to check the tasmota config found here: Shelly Pro 1PM DIN Relay (PRO1PM) Configuration for Tasmota

Here is my config:

esphome:
  name: shelly-1-pro-pm-test
  friendly_name: shelly 1 pro pm Test

  on_boot:
    - priority: 700
      then:
        - switch.turn_off: ade7953_reset
        - delay: 2ms
        - switch.turn_on: ade7953_reset

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "xxxxxxxxxxxxxxxxxxxxx"

ota:
  - platform: esphome
    password: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Shelly-1-Pro-Pm-Test Hotspot"
    password: "1234567890987654321"

captive_portal:

web_server:
  port: 80

#ethernet: STILL TO BE DEFINED
#  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_off: rgb_b
    on_release:
      then:
        switch.turn_on: rgb_b

  - platform: gpio
    id: reset_button
    pin:
      number: 35
      inverted: true
    on_click:
      - min_length: 3s
        max_length: 6s
        then:
          - button.press: restart_1
      - min_length: 200ms
        max_length: 500ms
        then:
          - switch.toggle: light1

  - platform: gpio
    id: input1
    pin:
      number: 38
    on_press:
      then:
        switch.toggle: light1

  - platform: gpio
    id: input2
    name: "Input 2"
    pin:
      number: 39

# -------------------------------------------------------
sn74hc595:
  - id: 'sn74hc595_hub'
    type: spi
    latch_pin: GPIO4
    sr_count: 1

# -------------------------------------------------------
switch:
  - platform: gpio
    id: ade7953_reset
    internal: True
    pin: 2

  - platform: gpio
    name: "Relais"
    id: light1
    pin:
      sn74hc595: sn74hc595_hub
      number: 0
      inverted: false

#  - platform: gpio
#    id: out2
#    pin:
#      sn74hc595: sn74hc595_hub
#      number: 1
#      inverted: false

  - platform: gpio
    name: "LED blue"
    id: rgb_b
    pin:
      sn74hc595: sn74hc595_hub
      number: 2
      inverted: True

  - platform: gpio
    id: rgb_g
    name: "LED green"
    pin:
      sn74hc595: sn74hc595_hub
      number: 3
      inverted: True

  - platform: gpio
    id: rgb_r
    name: "LED red"
    pin:
      sn74hc595: sn74hc595_hub
      number: 4
      inverted: True

# -------------------------------------------------------
spi:
  clk_pin: GPIO14
  mosi_pin: GPIO13
  miso_pin: GPIO12

# -------------------------------------------------------
# Example configuration entry for SPI
sensor:
  - platform: ade7953_spi
    cs_pin: GPIO00
    irq_pin: GPIO32
    update_interval: 20s
    voltage:
      name: "Voltage"
      filters:
        - clamp:
            max_value: 500
            ignore_out_of_range: true
    frequency:
      name: "Frequency"
      filters:
        - clamp:
            min_value: 45
            max_value: 65
            ignore_out_of_range: true
    current_a:
      name: "Current A"
    power_factor_a:
      name: "Power Faktor A"
    apparent_power_a:
      name: "Apparent Power A"
    active_power_a:
      name: "Power A"
    reactive_power_a:
      name: "Reactive Power A"

#    current_b:
#      name: "Current B"
#    power_factor_b:
#      name: "ADE7953 Power Factor B"
#    apparent_power_b:
#      name: "Apparent Power B"
#    active_power_b:
#      name: "Power B"
#    reactive_power_b:
#      name: "Reactive Power B"

    voltage_gain: 4128372

    current_pga_gain_a: 4x
    current_gain_a: 3179758
    active_power_gain_a: 4174540

    current_pga_gain_b: 4x
    current_gain_b: 3179758
    active_power_gain_b: 4174540

# -------------------------------------------------------
# NTC Temperature
  - platform: ntc
    sensor: temp_resistance_reading
    name: "Gerät Temperatur"
    id: system_temperature
    calibration:
      b_constant: 3350
      reference_resistance: 10kOhm
      reference_temperature: 298.15K
  - platform: resistance
    id: temp_resistance_reading
    sensor: temp_analog_reading
    configuration: DOWNSTREAM
    resistor: 15kOhm

  - platform: adc
    update_interval: 60s
    id: temp_analog_reading
    attenuation: 12db
    pin: 36
# -------------------------------------------------------