Thuis (Dutch for "home") is the remote I use every day for the Bluesound speakers and IKEA smart lights in my flat. It runs as a web app on any device in the house and as a native Android app, and replaces the official apps for the things they do badly: grouping rooms, volume that doesn't fight back, and scenes.
The problem
The official speaker app made grouping rooms slow and volume sliders jumpy: drag one and it snapped back while the player caught up. The lights lived in yet another app. I wanted one fast remote for the whole flat: tap a scene and the right rooms play together at the right volumes, with the matching light.
The approach
The players only send CORS headers on two endpoints and a browser allows six connections per host, so a small Node server on the home network long-polls every player itself and pushes changes over a single SSE stream; commands go through a thin proxy. The UI keeps its own value while you hold a slider and only redraws what changed, so nothing jumps under your thumb. The Android build (Capacitor) talks to the speakers directly with native HTTP and to the light hub through a small native plugin with a pinned certificate, so it works without the PC.
Highlights
- checkGroup volume moves every speaker relative to its own level, and you see the members follow live
- checkSpeaker scenes remember who plays with whom and at what volume; one tap regroups the flat
- checkLight scenes per room plus house scenes that set every room in one tap
- checkDisco mode: the phone microphone finds the beat and the lamps follow it, slowdance or rave
- checkTiles grow into their full view with View Transitions, like an app icon opening
- checkAlso speaks Google Cast directly for a smart speaker that can't join the multi-room groups