Shelly Locked Out ESPHome — Why Your Smart Home Can’t Stay Uniform

Your smart home changed in 2024. Shelly stopped selling relays that run ESPHome. New Gen3 and Gen4 models use a locked chip. This post explains the timeline, the problem, and the path forward.

The Shelly Generation Timeline

Four generations of Shelly relays exist. Each generation made open firmware harder. The table below compares them.

GenerationRelease periodChipESPHome possibleFlash method
Gen1 (Shelly 1, 1PM, 2.5)Before 2022ESP8266YesOTA over WiFi
Gen2 (Plus, Pro)2022–2024ESP32-DOWDQ6YesUART only (1.27 mm header)
Gen3 (1, 1PM, Plus Gen3)2024+ProprietaryNoNone
Gen4 (Pro 3EM-400, X series)2025+ProprietaryNoNone

Gen1 — The Easy Path

Gen1 was the best time for open firmware. The relays used the ESP8266 chip. You visited the OTA URL and the flash started. No screwdriver. No adapter. No case opening. The process took minutes.

Gen2 — The Workaround Path

Gen2 changed the rules. The firmware signature check blocks OTA flash. You can still flash via UART. The process needs a 1.27 mm header, a USB-UART adapter, and GPIO0 held to ground. You must open the case first. Possible, but painful.

Gen3 and Gen4 — The Locked Path

Gen3 closed the open path. The relay uses Shelly’s proprietary chip. The chip is not an ESP32. No UART header exists. No known workaround exists. Gen4 uses the same proprietary hardware. ESPHome is impossible on both.

What You Lose With Gen3

Here is a minimal ESPHome configuration. The file below is real. It runs a Gen2 relay today. Gen3 cannot run it at all.

substitutions:
  device_name: shelly-pro-1pm-hotwater

esphome:
  name: ${device_name}

esp32:
  board: esp32dev
  framework:
    type: arduino

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: 192.168.1.50
    gateway: 192.168.1.1
    subnet: 255.255.255.0

logger:
api:
ota:
  password: !secret ota_password

switch:
  - platform: gpio
    name: "Hot Water Relay"
    pin: GPIO12

sensor:
  - platform: bl0942
    voltage:
      name: "Voltage"
    current:
      name: "Current"
    power:
      name: "Power"
    energy:
      name: "Energy"
    frequency:
      name: "Frequency"

temperature:
  - platform: ntc
    sensor: ntc_resistance
    name: "Water Temperature"

Gen3 cannot accept this firmware. The proprietary chip rejects ESPHome. You lose every feature above. No local control. No custom logic. No static IP. No OTA updates from ESPHome.

Why This Breaks Uniformity

Gen1 and Gen2 units are discontinued. Stores now sell only Gen3 and Gen4 units. If you started with ESPHome, you now own two device families.

  • Old devices speak the native ESPHome API.
  • New devices force you onto the Shelly integration, via MQTT or the native driver.
  • The two families use different update mechanisms.
  • Entity names differ. Dashboard cards differ. Automations differ.
  • Maintenance takes twice as long.

Uniformity matters more than any single device. A uniform home has one update path and one integration path. A split home has two of everything. The result is constant fiddling.

My Shelly Pro 1PM

My main ESPHome device is a Shelly Pro 1PM (Gen2). It diverts solar power to the hot water tank. The relay switches on GPIO12. The BL0942 chip reports voltage, current, power, energy, and frequency. An NTC sensor reports water temperature. The device uses a static IP and OTA updates.

The unit behaves like a native Home Assistant device. Updates arrive through ESPHome. The device never touches Shelly servers. This setup works perfectly.

The problem is simple. If this unit dies, I cannot replace it with the same product. Gen2 stock is gone. A Gen3 unit cannot run ESPHome. My options are a different brand or a different board.

Offline Operation — ESPHome Runs Alone

Another factor is offline operation. A router failure breaks every cloud-dependent device. ESPHome devices keep running. They do not need a network.

ESPHome automations run on the chip. You write on_value_range triggers and lambda conditions. The ESP32 executes them locally. If the temperature sensor reads above 70 °C, the relay cuts power. This happens with zero network. Home Assistant is not involved.

Shelly stock firmware can do this too. Shelly Scripts use JavaScript. You write a script and upload it to the relay. It runs independently. The feature exists.

But the problem returns. Shelly Scripts are a different system. Different language. Different debugging tools. Different update path. You now maintain two automation engines: ESPHome YAML on one set of devices and Shelly JavaScript on another.

Uniformity is not only about entity names and dashboard cards. It is about the logic layer too. One automation language across all devices means one debug method. One deploy method. One set of mental models.

The Workarounds (All Bad)

I checked every workaround. None of them keep the home uniform.

  1. Run Shelly stock firmware with the Shelly integration. This breaks uniformity and adds a second API.
  2. Use an MQTT bridge. This adds latency and a second point of failure.
  3. Buy second-hand Gen1 and Gen2 units. These are unreliable and carry no warranty.
  4. Switch to ESP32-based alternatives such as Sonoff POW Elite or Athom. These have different form factors and different specs.
  5. Design a custom ESP32 relay board. This is overkill for most homes.

The Broader Lesson

When you buy a smart device, you buy hardware and firmware. If the firmware is locked, you do not own the device. You rent it until the manufacturer changes direction.

Open hardware matters. An ESPHome-compatible device keeps working even if the manufacturer abandons it. The firmware lives on the chip, not on a company server.

Shelly’s stock firmware is good. It supports local MQTT and has no cloud dependency. But it is not ESPHome.

The Made for ESPHome program exists for this reason. Look for that badge before you buy.

Keep Your Smart Home Uniform

  • Check the chip before you buy. Ask for the chip model. Avoid proprietary silicon if you want ESPHome.
  • Look for the Made for ESPHome badge.
  • Buy spare Gen2 units now if you depend on them. Keep them as replacement stock.
  • Standardize on one brand for new purchases. Prefer brands with ESPHome support from day one.
  • Keep one integration path. Choose ESPHome as your single update path.

Summary

  • Shelly Gen3 and Gen4 cannot run ESPHome.
  • Gen1 and Gen2 stock is gone.
  • Buy only Made for ESPHome devices for uniformity.
  • A locked chip means you do not own the firmware.

The frustration is real. The fix is simple. Buy devices that respect the open path. Your smart home stays uniform, and you stay in control.


Posted

in

, ,

by

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *