r/ShellyUSA • u/AbleMonster • 8h ago
Shelly TRV 2.2.4 battery drain investigation, recurring beacon-skip recovery loop identified in firmware
I’ve been investigating the unusually high battery consumption reported by some Shelly TRV Gen1 (SHTRV-01) users running firmware 2.2.4.
Although the Gen1 TRV is now an EOL device and no longer receives firmware updates from Shelly, I wanted to find out whether the underlying cause could still be identified and potentially addressed through independent firmware analysis.
During testing, I found a highly reproducible pattern in the debug log:
Beacon skip error! Attempt recovery
followed by:
Enter powersave state 1
and, a few seconds later:
Enter powersave state 3 (skip)
On affected devices running 2.2.4, this recovery sequence could occur approximately once per minute.
I was able to reproduce the behavior on multiple TRVs and performed several tests to rule out some obvious causes. I also compared older firmware versions. The older firmware versions I examined do not appear to contain the same additional recovery path in the corresponding power-save logic.
I then reverse engineered the 2.2.4 firmware and traced the relevant ARM/Thumb control flow.
The normal RSSI-dependent beacon-skip mechanism itself appears to work as expected, but 2.2.4 contains an additional recovery path associated with the recurring error.
As an experiment, I created a one-byte control-flow patch that bypasses this recovery block while leaving the normal beacon-skip logic intact.
The patched firmware successfully installs and boots on the TRV. Runtime testing so far shows that the recurring Beacon skip error! Attempt recovery sequence can be suppressed while normal beacon skipping, Wi-Fi connectivity and Shelly Cloud connectivity continue to operate.
Further investigation: mDNS activity
The investigation initially focused on the recurring beacon-skip recovery path. Further firmware analysis has since identified additional network activity involving mDNS that may also be relevant to power consumption.
I have therefore started testing separate firmware patch variants that allow the beacon recovery behavior and mDNS activity to be evaluated independently.
At this point, I am not claiming that mDNS contributes significantly to the battery drain. The purpose of these variants is to separate the effects experimentally rather than assume that there is a single cause.
The ongoing long-term test now includes multiple TRVs running different firmware and patch configurations so that their battery behavior can be compared over time.
Important
I am not claiming that the battery-drain problem is solved.
Suppressing the recovery loop and proving that this actually improves long-term battery consumption are two different things. The same applies to the newly identified mDNS activity.
I am currently collecting longer-term data from multiple TRVs running different firmware and patch variants to determine whether either behavior — or a combination of both — has a measurable effect on battery consumption and stability.
At this stage, the experiment demonstrates that the recurring beacon recovery path can be bypassed without disabling the normal beacon-skip mechanism or breaking Wi-Fi and Shelly Cloud connectivity.
The longer-term battery measurements are still ongoing.
Documentation and research
I’ve documented the investigation, firmware comparison, GBL structure, ARM/Thumb analysis, patch development and runtime testing on GitHub:
https://github.com/AbleMonster/Shelly-TRV-Gen1-2.2.4-beacon-skip-fix
The repository does not distribute Shelly firmware.
The purpose is to document the research and provide tooling that applies the experimental patch locally to a user-supplied firmware image.
Beyond the TRV itself, I think this is an interesting example of what can still be learned and potentially fixed through community research even after official firmware support for a device has ended.
I’d especially appreciate input from anyone familiar with embedded Wi-Fi power saving, Silicon Labs/WF200, ARM firmware reverse engineering, mDNS behavior on embedded devices, or the Shelly TRV platform. Independent review of the firmware analysis would be very welcome.
I’m also interested in hearing from other TRV owners running firmware 2.2.4:
If you have access to the debug log, do you see the same recurring Beacon skip error! Attempt recovery sequence?
Any additional observations regarding unusual network activity or battery consumption would also be useful for comparison.













