Hi!
Im using WLED with hyperHDR and Homeassistant, and I have the problem that after exiting HyperHDR, wled does not switch back to the normal mode. The only thing I see is that it switches from “receiving live data” to “receiving live UDP data” in the exact moment I stop hyperHDR. Is this a known issue, or am I doing something wrong or else?
dedehai
February 26, 2026, 6:10pm
2
not 100% sure it is the same but this seems to be a feature but it is unknown why this implementation was chosen, we recently discussed it here:
main ← IsaccoBenedetti:fix-unresponsive-buttons-when-receiving-live-data
opened 11:15PM - 13 Feb 26 UTC
Hi, first time contributor here!
Recently I ran into a small issue when using… physical buttons and HyperHDR. I'm not sure if this was done by design, but currently when WLED is receiving a live data stream physical button inputs are not processed. This makes it impossible to regain local control over the lights once a live source is active, without opening the webUI.
Initially I tried assigning a preset with the API command LO=2 (Live Override) to a physical button, but it didn't work as expected, because the functions that handle preset logic (handlePresets() and handlePlaylist()) are located within the conditional block that is skipped when realtimeMode is true.
This issue has been previously reported by the community on the WLED Discourse forums, but it seems it never got resolved: [Live data override on the physical button](https://www.google.com/url?sa=E&q=https%3A%2F%2Fwled.discourse.group%2Ft%2Flive-data-override-on-the-physical-button%2F12262).
This PR aims to solve the issue, simply by moving the handlePresets() and handlePlaylist() function calls out of the if (!realtimeMode || ...) block in the main loop.
This way button presses and their associated API commands are now processed on every loop cycle, regardless of the live data state. When a button triggers a preset containing LO=2, the realtimeOverride flag is correctly set, allowing WLED to exit the live stream and apply the desired preset.
I was a bit worried these functions were purposely been left inside the check for performance reasons, so I tested it specifically on an ESP8266 instead of an ESP32 with a HyperHDR stream, but I couldn't notice any lag or jitter at all. It seems solid.
What do you think?
## Summary by CodeRabbit
* **New Features**
* Added a new setting "Immediately force presets switching during realtime mode" to Sync/Realtime settings, allowing presets/buttons to take effect while in realtime when enabled.
* Settings are now persisted and available in the UI.
* **Refactor**
* Internal loop/update gating streamlined to reduce redundant processing and improve responsiveness.
so it seems like hyperHDR doesnt correctly send the terminating signal?
and Im wondering if the Json api is even used by HyperHDR, I thought its just sACN. But that would explain it.
Exactly. Been an issue before.