docs(readme): the configure menu, the apps table and the switch receiver

The Configure page is a menu of sub-screens now, the Apps row is an
editable one-row-per-app table, and a receiver may be a `switch.*`.
This commit is contained in:
James Mackay committed 2026-10-12 07:17:23 +01:00
1 parent cd8f528a27
commit b0adbd2dfd
1 file changed
+50 -1
+50 -1
View File
@@ -290,8 +290,57 @@ helper the flow calls is a coroutine and its dedup only runs when awaited.
### Options ### Options
The Configure page is a **menu of sub-screens**, not one long form. Home Assistant
renders it as a list of rows; each row opens a short form and comes back to the menu,
and only **Save and close** commits:
| Row | What it holds |
| --- | --- |
| **Main setup** | Shield address, ADB port, `Read state over ADB`, `Add the Nvidia Remote Protocol`, `Show title and artist`, `Allow the adb_command action`, Jellyfin player, power switch |
| **Receiver** | the receiver/soundbar entity and the input it uses |
| **Apps** | the apps table — one row per app (see below) |
| **Scripts** | one optional script per command, plus the remote-entity script, the channel digit delay and send-ENTER |
| **Save and close** | writes the merged options and reloads the integration |
Every field that used to be on the single page is still there, under one of those
rows. Edits are merged **per key**, so visiting another sub-screen (or saving from a
later one) never drops what an earlier one changed. Half-finished pages are not
written: closing the dialog without **Save and close** leaves the entry as it was.
The **setup** flow follows the same shape: its first form is unchanged (name, host,
transports, the linked entities), and after it the flow is a menu — Receiver /
Connection / pairing rows / Create the entry — so anything you want to correct is one
row away instead of buried in a form you have already submitted. The pairing rows
appear only while a transport still needs pairing.
### The Apps table
The **Apps** row is an editable table. One app per line, in the documented format:
```
ar.tvplayer.tv=TiviMate
com.plex.hdx=Plex|http://192.168.1.10:9000/plex.png
com.netflix.ninja=Netflix
```
`package=name` is enough; an optional `|icon` after the name adds a picture (a URL, or
a `camera.*` entity id — see *Sources* below). The field always opens carrying the
current rows, so adding, renaming or deleting an app is an edit to that text:
- **add a row** — type a new line
- **edit a row** — change its name, icon or package id
- **remove a row** — delete its line
A blank field clears the table (and the integration falls back to its built-in app
list). A malformed row — no `=`, or an empty name — is rejected with an error on the
page rather than being half-saved.
A receiver may be a **`switch.*`** as well as a `media_player.*`: a soundbar or
speaker that only knows on and off is a valid receiver. (Driving that switch during
playback is a separate, later change.)
- **Jellyfin Media Player** — auto-detected or manually selected - **Jellyfin Media Player** — auto-detected or manually selected
- **Receiver + Input** — for media-zone coordination - **Receiver + Input** — for media-zone coordination; `media_player` or `switch`
- **Power Switch** — smart plug entity - **Power Switch** — smart plug entity
- **Read state over ADB / Add the Nvidia Remote Protocol** — turn either - **Read state over ADB / Add the Nvidia Remote Protocol** — turn either
transport on or off transport on or off