Skip to content

v4.0.0-beta.18

Pre-release
Pre-release

Choose a tag to compare

@rudyberends rudyberends released this 01 Aug 09:07

sonn core 4.0.0-beta.18

145 commits since beta.17 — 59 features, 46 fixes, 26 refactors. The integration surface was
rebuilt from the ground up, and the server no longer assumes it is a Loxone deployment.

Read this first

Expect things to have moved. This beta changes a lot of ground at once: how services and content
ids are named, how receivers attach to players, how configuration is shaped, and what the server
takes for granted about Loxone. Config migrates automatically where it can, but not every
combination has been walked through.

4.0 has only ever existed as betas, so none of this breaks a compatibility promise — there is no
stable release to be compatible with yet. What it does mean is that upgrading from an earlier beta
can need a hand: config that migrates imperfectly, or stored ids that have to be re-resolved.

If something does not work, start from a clean config before opening an issue. Stop the server,
move data/config.json aside — keep it, do not delete it — start again and walk through setup. In a
beta this size, a surprising share of odd behaviour is old config meeting new code, and a clean
start is much faster than a diagnosis.

If it still misbehaves on a clean config, that is a real bug and worth reporting. Please include
what you did, what you expected instead, and the log lines around it.

Integration has been rebuilt — read the guide

Integration is no longer something bolted onto the Loxone protocol. The server now serves its own
versioned API at /api/v1, and the Loxone emulation is one integration among several rather than
the foundation everything else is expressed in
.

If you integrate with this server in any way, read
INTEGRATING.md. It is the
reference for the whole surface: the zone object, events, reading, commands, destinations, browsing,
announcements, MQTT, and notes for integrators. Anything you built against internal endpoints or
against the Loxone shape should be re-read against that document.

Highlights of the new API:

  • Zones over an API of our own, with live events — a full zone on every change, never a patch,
    so a client needs no prior state to interpret an event. The version is in the path.
  • Destinations, so zones are genuinely optional: a browser tab is a destination that belongs to
    that browser and stays out of everyone else's zone list.
  • Browse and search with every provider first-class, and a browse→play loop that closes.
  • The queue as a resource, with repeat and shuffle settable; favourites, recently played and
    grouping; local playlist management.
  • Announcements — say or play something into a zone, or everywhere at once.
  • Health verdict and readiness probe, so orchestration can wait for "ready" instead of sleeping.
  • The audio described honestly: source and output formats, what the pipeline does stage by
    stage, output capabilities, how a zone's audio is timed against its device, and a settable delay.
  • Structured power state, zone-addressed cover URLs, configured inputs and switching to one.

Beyond Loxone

  • Standalone runs no Loxone protocol at all — no ports, no processor, nothing listening.
  • Loxone can be switched on and off at runtime without restarting the server.
  • MQTT: publish zone state to a broker, and accept commands back.
  • Subsonic API: library, radio and bridges over /rest/*, so any Subsonic client works.
  • UPnP/DLNA: a MediaServer with real UPnP classes, per-service tile icons and Search; plus a
    per-zone MediaRenderer so apps can cast straight to a zone.
  • WebDAV: mount the music folder as a network drive, with streaming uploads.

Audio

  • Lossless sources play at their native rate and depth instead of being resampled.
  • Realtime analysis is centralized and exposed as a visualizer stream — spectrum, peak,
    loudness and pitch, with the geometry announced so a client does not have to guess it.
  • Frame-accurate pause and resume, and an engine restart when the negotiated format changes.

Library

  • A rescan reconciles the index instead of wiping it. The old behaviour could lose an
    unreachable share's contents. This one is a data-loss fix.
  • Single changed files are indexed incrementally, and artist pictures are fetched in the background.

Devices

  • Beoremote One: a served menu, key routing, standby mapped to an immediate power-off, and
    bursts of step presses folded into one skip.
  • Line-in: transport commands routed to the bridge that owns the source, pushed over the ingest
    socket rather than polled.
  • Speakers configurable from the admin UI instead of over SSH, including where a client applies
    its volume.

Admin

  • Local admin authentication with a shared user store, independent of Loxone pairing.
  • A front door on / that asks "player or console?" as a page with two links, instead of booting
    the console to ask the question.

What moved, if you are coming from an earlier beta

None of these break a released API — 4.0 has only ever been a beta. They are the changes most likely
to need attention on an existing install, which is also why a clean config is the fastest first step
when something looks wrong.

Change What it means for you
The server is no longer a Loxone deployment mode is gone. Loxone is a capability you enable, with setup state tracked separately. Existing config migrates automatically.
Content ids are service-native Audiopaths now read spotify:…, applemusic:… and so on, instead of the Loxone bridge shape. Anything that stored raw audiopaths must re-resolve them.
Providers publish named nodes Loxone maps its own slot numbers; no provider decodes a slot any more. Affects anything that relied on slot numbering.
Accounts are named service-natively outside Loxone A configured account is addressed by its service, not by a bridge id.
Receivers belong to a player, not the server Per-player receiver configuration; server-level receiver config is gone.
The zone equalizer moved to /api It is no longer on /admin/api.
Library rescan reconciles Behaviour change, in your favour — see above.

Known rough edges

  • The player UI is early (v0.1.0) and still moving.
  • This is a beta. Run it where you can tolerate surprises, and keep your old data/config.json.

Images

ghcr.io/sonn-audio/core:4.0.0-beta.18
ghcr.io/sonn-audio/core:beta
ghcr.io/sonn-audio/core:beta-latest

Full Changelog: v4.0.0-beta.17...v4.0.0-beta.18