Collaborating on Bluetooth Integration & Voice Recording Trigger

Hey team, Boop here!

I mentioned this project briefly during your recent livestream, and I wanted to start a more detailed conversation about it. I’m working on something where a Bluetooth signal from a connected peripheral will trigger the voice recording feature in OpenWebUI , and I’d love to collaborate with you on making this part come together.

My key goal is to have OpenWebUI recognize when the Bluetooth signal is received and automatically start the voice recording function (receive the signal again to stop voice recording). While I’ve got the peripheral side covered in terms of sending the signal, I’m not exactly sure how to structure things on the software end for the UI to handle the event properly.

Here’s where I’d love your input:

Can OpenWebUI support receiving and responding to Bluetooth events out of the box, or would we need to set something custom up like event listeners or pipelines?
What would the most efficient way be to trigger an internal function—specifically the voice recording—once a signal arrives?

I’m interested in making sure this flow is as seamless as possible and looking forward to your thoughts on how OpenWebUI can be adjusted, or extended, to integrate this Bluetooth-triggered action.

Thanks so much—I’m eager to see how we can work together on this!

Cheers,
Boop

Hi @boop and welcome to the community!

Thanks for participating in the livestream and for posting.

Sounds like an interesting project!

Let me discuss this with Beck and come back to you on this shortly.

Thanks
Dave

Hey @boop ,

As I understand, you want to automate voice recording process without requiring the need of manually start and stop actions. And you want Bluetooth events as the trigger.

OpenWebUI doesn’t support Bluetooth out of the box, and you’ll need to set this up on the backend. Openwebui’s backend is in Python and frontend is build with Svelte.

You can try this approach:

  1. Listen for bluetooth events
    Install Bluetooth library to listen for Bluetooth events on backend. Once a “start” event is received, notify the frontend to begin voice recording. Then “stop” event can signal frontend to end recording.

  2. Filter or limit Bluetooth devices
    You can set backend to listen / receive Bluetooth events from your specific device only, based on Bluetooth device MAC address and UUID.

  3. Latency
    I’d recommend using Bluetooth Low Energy (BLE) clients to reduce delays and make the interaction more seamless.

Out of curiosity, what kind of peripheral device are you using? Is it a sensor, or something like a Raspberry Pi or microcontroller? Instead of Bluetooth events, can it send API requests?