Work in Progress
Qonos is a Rust service that bridges Qobuz Connect to Sonos speakers. It allows your Sonos system to appear as a Qobuz Connect target, so you can control playback from the Qobuz app while audio plays through your Sonos speakers.
Qobuz App (phone/desktop)
│
▼ WebSocket (QConnect protocol)
Qonos
│
▼ WebSocket (Sonos API)
Sonos Speaker ──► Qobuz API (Sonos's native connection)
│
▼
Audio Stream
Qonos doesn't stream audio itself. Instead, it translates commands from Qobuz Connect and forwards track IDs to Sonos, which plays them using its built-in Qobuz integration.
This project leverages two companion libraries:
- qonductor - Handles the Qobuz Connect protocol (mDNS discovery, device registration, protobuf messaging)
- sonos-websocket - Controls Sonos speakers via their WebSocket API
- Rust 2024 edition
- Sonos speakers with Qobuz configured as a music service
- Qobuz account and app credentials
# Set your Qobuz app ID
export QOBUZ_APP_ID="your_app_id"
# Run with logging
RUST_LOG=qonos=info,qonductor=info cargo runQonos will discover Sonos speakers on your network and register them as Qobuz Connect renderers. They should then appear in the Qobuz app's device picker.
This is an early work in progress. Current functionality:
- Sonos speaker discovery
- Qobuz Connect device registration
- Basic playback commands (play/pause/stop)
- Queue synchronization
- Volume control
- Seek support
- Multi-room/group handling
MIT