u/Joe_Bright

ESPHome with Zigbee onto a Shelly 1 Gen4 — No Wi-Fi dependency for firmware updates

When Shelly launched their Gen 4 relays with zigbee, I was genuinely excited. I prefer Zigbee devices because they are inherently local. They can never be paywalled, locked out, feature reduced, or cancelled.

When I finally got one, I learned the truth. They work fine on Zigbee, but firmware updates (At least through ZHA) were gated to Wifi. That’s right… If you want new firmware, you need to run two protocols. If you turn off Wifi and change your mind later, your only recourse is to reach inside a live electrical box and press the relay button.

I wanted a Zigbee only device with a ZHA upgrade path. I settled on ESPhome because its simple and recently adopted more comprehensive zigbee controls. I got my Shelly 1 Gen 4 paired with ZHA and the relay works in attached mode.

Code, flashing tips, and lessons learned are in the repo notes

GitHub: https://github.com/bob787/Shelly-1-Gen-4-EspHome-Zigbee/tree/main

This project was inspired by automatous-io’s fantastic Shelly Matter over Thread repo.

reddit.com
u/Joe_Bright — 6 days ago

Shelly Zigbee firmware "Unknown" in 2.0.0-beta3/ Home Assistant ZHA

I have a Shelly Gen 4 plug on Wifi that I converted to Zigbee (ZHA) running 2.0.0-beta3. I have two questions:

  1. The Zigbee firmware is shown as "Unknown" (see image). I thought one of the benefits of 2.0.0 was firmware updates.

https://preview.redd.it/blyrjvfvehdh1.png?width=830&format=png&auto=webp&s=b43afb4235eb3e7c05c502ba72d5b6203d1979e4

  1. The old Wifi entities are still shown in HA and still work via Wifi. I did not think this was possible. Is there any downside in keeping both?

All help appreciated,

Joe

reddit.com
u/Joe_Bright — 3 months ago

"Hey Jarvis, Wake me up at 7" Wake up Alarm (finally) working

I know many figured this out months ago, but here is a way to get a fully local Wake up alarm to be set by voice assist in 2026.6.1 without any separate apps. You need three things:

1. A helper to store the time

https://preview.redd.it/hdhogox6q27h1.png?width=1170&format=png&auto=webp&s=5e4a5be108d7e34cd33b6e7a8efa5d2b2b91eb65

You must expose this helper to voice assist and add Aliases

https://preview.redd.it/5ymvn31cq27h1.png?width=1176&format=png&auto=webp&s=6daeac8b227d9aa43a8f783ea8fbd0876489f143

2. An automation to set the helper to a specific time. When I say "Hey Jarvis, Wake me up at 7," this automation sets the variable

alias: "Voice: Set Bedroom Alarm"
description: Updates the bedroom alarm helper based on a voice command
triggers:
  - trigger: conversation
    command:
      - Wake me up at {time}
      - Set alarm for {time}
actions:
  - action: input_datetime.set_datetime
    target:
      entity_id: input_datetime.bedroom_alarm
    data:
      time: "{{ trigger.slots.time }}"
  - set_conversation_response: >+
      Alarm set for {{ as_timestamp(today_at(trigger.slots.time)) |
      timestamp_custom('%I:%M') }} {{ 'in the morning' if
      today_at(trigger.slots.time).hour < 12 else 'in the evening' }}.

mode: single

3. A final automation plays a chime, speaks a Wake up message, and plays a little song a the set time

Mine is set to disable the alarm if my phone is not charging (indicating that I'm already up)

https://preview.redd.it/8xlcsawzr27h1.png?width=2054&format=png&auto=webp&s=bff2f459b8b4c2780c3ac7ba9d3598d72fc6193f

This works, but your pronunciation and syntax must be precise. "Wake me up at 8" and "Set alarm for 8" work, but "Get me up tomorrow at 08:00" will not unless you program that sentence.

This took a while to figure out... Thanks to the community (and Gemini) for helping!

reddit.com
u/Joe_Bright — 4 months ago