I added BLE room detection to MassDroid to make Music Assistant feel more truly multiroom

I’ve been working on a new proximity feature for MassDroid.

The whole reason I started building it was that I wanted room-aware playback, but I really didn’t want to end up with a giant pile of presence automations, helper entities, and room
logic just to move music between speakers.

So I tried going in the other direction: let the app figure out the room directly.

It uses BLE fingerprints from devices that already exist around the house, like TVs, speakers, routers, and other fixed BLE devices, so there’s no dedicated beacon setup.

I also added an automated calibration wizard where you just go room by room, walk around with your phone for a bit, and it builds the room fingerprints automatically.

What I wanted from it was basically:

  • no complex automation setup
  • no extra hardware
  • low battery overhead
  • reliable room detection after calibration

Once calibrated, the app can:

  • detect the room you’re in
  • suggest moving playback to that room’s speaker
  • auto-transfer playback if enabled
  • apply room-specific playback behavior

A few screenshots:

Repo: MassDroid

I’m also thinking about adding Home Assistant integration, so MassDroid can read existing presence / occupancy sensors over the HA WebSocket API and let you bind them to rooms as extra
context for detection.

Also, outside of the proximity feature, I’ve been adding a bunch of other stuff to the app lately around music discovery and metadata enrichment too, like genre-specific radio, browsing
the library by genre, Smart Mix, and similar features.

2 Likes

This is seriously impressive work - thank you for building MassDroid. I really like the direction here: room detection and transfer logic inside the app, without forcing people to build huge Home Assistant automation stacks around presence helpers, template sensors, and room entities just to make multiroom playback feel natural.

On the Sendspin Bluetooth Bridge side, we’ve just added a few things specifically to make this kind of Follow Me workflow easier with Bluetooth speakers, especially for people running our Home
Assistant add-on. Bridge-backed speakers can now carry stable per-device room metadata (room_id / room_name), with Home Assistant area fallback available in add-on mode, so room mapping is much easier to keep consistent. We also added a derived transfer_readiness state to show whether a speaker is actually ready for handoff, plus an optional fast_handoff mode that keeps selected speakers warmer for quicker transfers.

We’re also surfacing that room/readiness context in the bridge UI and in event/webhook payloads, so HA users can still layer automations on top if they want, but they no longer have to depend on them for the basic room-following flow.

So rather than trying to invent a direct bridge-to-app protocol, we focused on making Bluetooth speakers exposed through our bridge behave like better Music Assistant room endpoints for MassDroid to target. Really excited to see where you take Follow Me next.

1 Like