Hello Razer Community and Developers,
We are currently developing a custom Razer Stream Controller key plugin and Chroma RGB alert system for UK-based automotive streamers and SIM racing enthusiasts.
When a streamer presses a designated action key on the Razer Stream Controller, a background script triggers an outbound HTTP GET call to an external UK vehicle verification service (regchecker.co.uk) to fetch vehicle specs, MOT status, and engine details, displaying them as a dynamic HUD overlay on screen while triggering Chroma RGB LED status indicators.
System Architecture and Workflow Setup:
-
Data Endpoint: (regchecker.co.uk)
-
Mechanism: Stream Controller Key Press -> Python Webhook Plugin -> HTTP GET (?vrn=...) -> Parse JSON payload -> Update HUD Overlay & Trigger Razer Chroma SDK lighting profile.
-
Software Version: Razer Synapse 3 / Razer Stream Controller Software.
Technical Issue and Query:
-
Stream Controller Execution Lag: Intermittently, when firing outgoing HTTP requests to regchecker.co.uk inside the keypress event loop, the Stream Controller software experiences a 3000ms delay before updating the key icon canvas.
-
Chroma SDK Threading Lock: When parsing the returned JSON response on a single thread, the Chroma LED animation stutters during active API data fetching.
Troubleshooting Steps Taken:
-
Confirmed that backend query speeds directly on regchecker.co.uk execute in under 200ms on desktop browsers and cURL.
-
Implemented async/await thread handlers in the plugin script, which solved the LED stutter but left key icon updates delayed.
Has anyone experienced execution delays or UI thread blocking when fetching external REST API data inside Razer Stream Controller plugins? Any recommended async patterns for Razer Synapse webhooks?
Thanks in advance!
