Zigbee Green Power on ESP32-H2: Battery-Free Switches and Energy-Harvesting Sensors Explained
Zigbee Green Power (ZGP) is the part of the Zigbee 3.0 specification that lets a device join and operate on a Zigbee mesh without a battery at all — no pairing dance, no coin cell to replace, sometimes no battery compartment in the product. Espressif's ESP32-H2, a low-power 802.15.4 radio SoC built specifically for Zigbee and Thread, is one of the few maker-accessible chips that can act as a Green Power proxy or sink, which means you can finally build and integrate battery-free switches and sensors into a DIY smart-home mesh instead of just buying commercial ones.
How Green Power Actually Works
A standard Zigbee end device is a full network member: it has an IEEE address, it joins the network, it may need to stay awake briefly to receive commands, and it typically runs on a battery that gets replaced every year or two. A Green Power device skips almost all of that. It transmits short, unencrypted-at-the-radio-layer (but still secured by a separate GP security frame) one-way packets using energy scavenged from the act of being used — the spring-loaded mechanism in a rocker switch generating a tiny burst from a piezo or kinetic element, or a photovoltaic cell under ambient light, or in some sensor designs, a thermoelectric generator. There's no join process in the conventional sense: a GP Proxy device (anything already on your Zigbee mesh capable of receiving GP frames) hears the packet and forwards it, and a GP Sink — typically your Zigbee coordinator or a capable router — translates it into a normal Zigbee command the rest of the network understands.
Why the ESP32-H2 Specifically
The ESP32-H2 is a single-purpose 802.15.4 radio chip (no WiFi radio on board, unlike the ESP32-C6) built for exactly this kind of always-on, low-power mesh role. Espressif's Zigbee SDK (esp-zigbee-sdk) includes Green Power proxy functionality, which means an ESP32-H2 flashed as a Zigbee router or coordinator can sit on your mesh and both forward commercial GP switches (like Philips Hue's and IKEA's battery-free Zigbee buttons) and, with more work, decode and originate GP-compatible frames for a DIY sensor. This is meaningfully different from building a conventional battery-powered Zigbee end device with an ESP32-H2 — which is also well-documented elsewhere — because the entire point of Green Power is removing the battery and its replacement cycle from the equation.
What You Can Realistically Build
- A GP proxy/sink node for your existing mesh. If your current Zigbee coordinator (a Sonoff/Zigbee dongle on Home Assistant's ZHA or Zigbee2MQTT, for example) doesn't reliably see commercial Green Power switches, an ESP32-H2 flashed as a dedicated router with GP proxy support, placed near the switch, extends reliable reception without touching your coordinator.
- Integrating commercial GP switches into a custom controller. Rather than DIY-ing the energy harvesting side (which involves real mechanical and power-electronics design most makers should buy rather than build), pair a commercial battery-free rocker or scene switch with an ESP32-H2-based controller running custom automation logic — the practical sweet spot for most maker projects.
- A genuinely DIY energy-harvesting sensor. This is the hard version: pairing a piezo element or small solar cell and a charge-pump/supercapacitor front end with the ESP32-H2's ultra-low-power modes to transmit an occasional sensor reading. It's achievable but demands careful power budgeting — the H2 still needs enough harvested energy to wake, radio out a packet, and sleep again, so this is a multi-weekend power-electronics project, not a weekend one.
Firmware and Tooling Notes
Espressif's esp-zigbee-sdk (built on top of ESP-IDF and the underlying Zigbee stack) is the practical starting point — Green Power proxy support exists in the SDK's examples but documentation is thinner than for standard end-device roles, so budget extra time reading the Zigbee Green Power specification itself (part of the Zigbee 3.0 base spec published by the Connectivity Standards Alliance) rather than relying purely on SDK sample code. If your goal is simply "make commercial battery-free switches more reliable on my mesh" rather than building a custom GP device, you may not need custom firmware at all — some off-the-shelf ESP32-H2 Zigbee router modules already ship with proxy support enabled by default; check the firmware notes before writing your own.
Where This Fits Next to Your Existing ESP32 Sensor Network
If you're already running ESP-NOW or WiFi-based ESP32 sensors around the house, Green Power isn't a replacement — it's a complementary tier for the specific case of a switch or sensor that must never need a battery change: a wall switch inside a finished wall, a door sensor somewhere you'd rather not revisit every year. For anything that can tolerate a coin cell or a solar trickle charge with a conventional battery buffer, a standard low-power Zigbee or ESP-NOW end device remains simpler to build and debug.
Green Power is one of the less-documented corners of the Zigbee spec for hobbyists, precisely because most makers buy the battery-free switch and never think about the proxy/sink mechanics underneath it. Once you do need that mechanics — extending range, building a custom sink, or bridging GP devices into a non-Zigbee ecosystem — the ESP32-H2 is currently the most accessible chip for doing it yourself.