Pocket Home Assistant remote over ESP-NOW with deep sleep

Nov 04, 2026 Last reply: 16 hours ago 4 Replies
Jump to replies (4)

Most handheld remotes for Home Assistant lean on Wi-Fi, and that choice bites twice: a device that stays associated drains its battery, while one that reconnects each time you pick it up makes you wait. This build sidesteps both problems. The handheld talks ESP-NOW to a bridge, which is any ESP32 running ESPHome that reaches Home Assistant over the native API, and the remote itself never joins Wi-Fi. It wakes in under 50 ms and runs 2 to 3 weeks per charge in real use.



The hardware is a fun read. All 20 keys sit on individual GPIOs rather than a matrix, and 18 of them land on RTC-capable pins so a press can wake the chip. A LIS2DH12 accelerometer on an RTC GPIO handles wake on pickup. The panel is a 2.0-inch 240x320 ST7789, fed by a 1000 mAh LiPo with USB-C charging and an IR blaster on board. Version two adds a TSOP75238 receiver for learning codes, a MAX17048 fuel gauge, an ICS-43434 microphone for push-to-talk with Assist, plus USB sense on an RTC pin with load-sharing charging.



Security is where it shines for me. Packets are AES-128-CCM encrypted with the remote's own key, the nonce mixes the sender's MAC, an epoch and a counter, and that counter lives in RTC memory with a flash lease, so a recorded press cannot be replayed. Pairing uses X25519 with HKDF and a six-digit code confirmed on both ends. Because ESPHome normally trims the mbedTLS AES-CCM and X25519 pieces as TLS-only, the maker wrote a custom component for the link.



One open question: whether the actual deep sleep current was measured to back the battery figure has not been answered. Beyond that, the maker publishes FEA drop-test results, and the kit at about $60 includes a populated, assembled and tested PCB; you print the case yourself from STLs, with no soldering.



Project by Paramworks. Watch it on their YouTube channel:

formatting link


Keeping the counter in RTC memory with a flash lease is the clever bit for me. Replay protection that survives deep sleep is rarely bothered with on hobby remotes, and skipping it would leave a big hole in an otherwise encrypted link.

Does the bridge side also carry an IR blaster, so legacy gear in a media cabinet could be driven from the bridge itself instead of only from the handheld?

The maker has not said whether the bridge includes an IR blaster. What is documented is a blaster on the remote itself, intended for older AV gear that Home Assistant cannot otherwise control, and on version two a TSOP75238 receiver for learning codes.

Since buyers print the case from the repository's STL files, it might be worth modeling a support fin in CAD and adding break-away points at the button holes. Anything that makes the print friendlier matters when every buyer is running their own printer with unknown tuning.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required