# LCD.SonosChime

## 1.8.0

### Minor Changes

-   c03ea2c: The Sonos Chime setup app for Crestron Home.

    Browse and audition the chime catalogue — in the browser, or on a real speaker at the volume it will
    actually play — and configure the ten chime presets.

    **Custom Audio.** Upload two chimes of your own, or type an announcement and have the speakers say it.
    A chime can also point at your own https URL, which is both a power feature and the escape hatch if the
    hosting service is ever retired.

    **Per-chime volume**, with a house default: a doorbell at 40 and an intruder alert at 90 no longer have
    to share one number.

    **A "Selected" summary** on every chime, saying what it is set to and whether it will actually do
    anything. A chime needs three things to be live — Enabled, a chime chosen, and at least one speaker —
    and it names whichever is missing rather than leaving the installer to guess.

    Errors say what went wrong and what to do about it. An upload that is refused explains why; a page left
    open after the driver was re-imported says the driver has gone and offers to reload, instead of showing
    a JavaScript parser error.

## 1.7.0

### Added

-   **A "Selected" summary on each chime**, showing what it is actually set to — chime, speakers,
    volume, repeat — in one place. A column of controls does not tell you what you have built.
-   **It says whether the chime will do anything, and what is missing if not.** A chime needs THREE
    things to be live: Enabled, a chime chosen, and at least one speaker. Miss any of them and it has no
    button on the Crestron Home tile and `TriggerChime(n)` does nothing at all. Saying only "it must be
    enabled" would send an installer hunting for a bug when the real problem was an empty speaker list,
    so it names exactly what is missing. The preset list uses the same wording, so the two never
    disagree.

## 1.6.1

### Fixed

-   **The header uses the real LCD logo** (lcd.network/img/lcd.logo-dark.svg), not the orphaned PNG that
    happened to be sitting in the Product Wrapper's public folder. It is 1000x610, so it is sized by
    height with the width left to follow — pinning both squashed it.

## 1.6.0

### Added

-   **A warning on the Sonos-connected page: go back and press Next.** That page is a browser tab; the
    Crestron Home configurator is somewhere else entirely, still waiting on the Authorise step. Until it
    gets a Next, the driver install is not finished — but everything on the page says "success" and the
    button leads away into the setup app. The natural path was: authorise, land there, go and configure
    chimes, close the tab, never press Next. The driver then looks connected and configured, and isn't
    installed.

## 1.5.0

### Changed

-   **The header carries the LCD logo**, as the licence app does, and is titled _Sonos Chime Setup for
    Crestron Home_.

    The logo is inlined as a data URI rather than served from `public/`. This app is deployed onto a
    processor by splitting its build across two web roots — `_next/**` to one, everything else to the
    other — and an asset that resolves against the wrong one 404s silently. That exact failure has
    already produced a white screen and a dead Listen button in this app. At 5.8 KB there is no path to
    get wrong.

## 1.4.0

### Added

-   **Listen and Play on speaker for your own URL.** It had neither, which made the one source you most
    need to test the only one you could not. A URL you host yourself is unvetted: it may be offline, may
    not really be an MP3, and — the one that catches people — may be unreachable from the Sonos cloud
    even while it loads perfectly on the installer's laptop. "Play on speaker" is the only thing that
    proves otherwise.
-   **The URL field says what is wrong with a link.** It used to just sit there with the buttons greyed
    out, which tells you nothing — you cannot tell a mistyped link from a bug in our app. It now names
    the problem: http rather than https, not an .mp3, not a web address, or too long (500 characters).

## 1.3.0

### Fixed

-   **A stale page now says what happened.** When the driver is re-imported, removed, or the processor
    restarts, its routes vanish and the Crestron web server answers with an XML error document. The app
    showed the installer `Unexpected token '<', "<?xml vers"... is not valid JSON` — a JavaScript parser
    complaining, once per click, naming no cause and offering no action.

    It now says the driver has gone, explains that their chimes and settings are safe, and offers the
    only button that helps: Reload.

## 1.2.0

### Added

-   **Toasts on upload and record.** An upload or a recording that fails now says so, and says why —
    and the message stays on screen until it is dismissed, because "That file is 4:02. Chimes must be
    10 seconds or shorter." is the only thing telling you what to fix.

### Changed

-   **Announcements are limited to four per site.** Removing one really deletes it, so a slot freed is
    genuinely free.

## 1.1.0

### Added

-   **Custom Audio.** Upload two chimes of your own, or type an announcement and have the speakers say
    it. Both appear in the chime picker alongside the catalogue. A chime can also point at your own
    https URL.
-   **Per-chime volume.** Each preset can set its own level or follow the house default — a doorbell at
    40 and an intruder alert at 90 no longer have to share one number.
-   **A volume slider.** The default level could previously only be changed by wiring Crestron's
    `ChimeLevel` command to something, so an installer working in the browser had no way to touch it.

### Fixed

-   **Listen now works for catalogue chimes.** It never did. The app handed `<audio>` a bare filename,
    which the browser resolved against the page and asked the _processor_ for — a 404. The real URL is a
    60-second signature from the chime service, so it is now fetched at the moment of listening.
-   **Play on speaker uses the right volume.** The driver has always accepted one; the app never sent it,
    so every audition came out at the default no matter what the preset said.

## 0.0.0

### Initial

-   Sonos chime setup: browse the chime catalogue, audition a chime in the browser or on a
    real speaker, and configure the ten chime presets (speakers, repeat, enabled).
-   Replaces configuring chimes through the Crestron Home UI-definition editor.
