# LCD.UiDynamic

## 1.1.0

### Minor Changes

-   5cb0043: The UI Dynamic setup app for Crestron Home.

    Build configurable tiles whose buttons call any HTTP endpoint, and whose state can be set by an inbound
    webhook. Add elements to a tile, wire each button to an outbound action, and test the whole thing against
    a live phone-screen emulator before it ever reaches a processor.

    **Outbound actions over HTTP, UDP and TCP**, with templated URLs, headers and bodies, and multi-state
    controls that advance through states and fire the matching Crestron Home events.

    **Inbound webhooks** so a tile reflects the real world rather than firing one-way commands.

    **A built-in emulator** — a phone-screen mock with a simulation log — to prove a tile behaves before it
    is deployed.

    Errors say what went wrong and what to do about it, and a page left open after the driver was
    re-imported says the driver has gone and offers to reload, rather than showing a parser error.

## 1.0.0

### Added

-   **First release of the UI Dynamic setup app.** The button authoring that V1 did on a Crestron panel
    — a 312-icon selector and an 18-slot edit page — moves here, to the browser, alongside everything the
    entity-model driver can now do that V1 could not.
-   **Elements.** Add, name, reorder and remove the controls on a room tile. Each is a Button, Toggle,
    Status + button, Toggle + slider, or a Multi-step control with any number of states. Per state: a
    label and an icon, chosen from the same 312 names the driver validates against.
-   **Outbound HTTP.** Any state entry, and any press, can fire a list of HTTP requests — method, URL,
    templated body and headers, Basic / Bearer / header-key auth, per-request timeout and delay (a list
    with delays is a macro), and an optional TLS-error override for LAN gear with a self-signed cert.
    Optionally read the response and confirm the element's state from it.
-   **Send test request.** Fire any action from the browser and see exactly what came back — status,
    timing, body — without a trip to the processor console. It runs on the driver, so it reaches the LAN
    and applies the real rules a press would.
-   **Webhooks in.** The base URL, the secret token, and a copy-ready example per element, so any HTTP
    client — Home Assistant, a doorbell, curl — can set a state or fire a Crestron Home event. Regenerate
    the token to invalidate every URL that leaked.
-   **Activity log.** The last ~100 calls in and out, with outcomes — the single biggest lever against
    having to test everything on live hardware.
-   **Backup, restore & migrate.** Export and import `uidynamic-config.json`, the one format the driver
    reads. The same file backs up a site, clones one to another, and carries a V1 migration produced by
    the converter page. It is stated plainly in the app that Crestron Home program bindings are not
    migrated by an import.
