Merge remote-tracking branch 'origin/main'
Docs / docs (push) Successful in 28s
Playwright Tests / test-playwright (1, 2) (push) Successful in 4m6s
Playwright Tests / test-playwright (2, 2) (push) Successful in 2m36s
pre-commit / pre-commit (push) Successful in 3m33s
Test Backend / test-backend (3.12) (push) Failing after 6m15s
Test Backend / test-backend (3.14) (push) Failing after 5m56s
Compose Smoke Test / test-compose (push) Successful in 36s
Playwright Tests / merge-reports (push) Successful in 1m20s

This commit is contained in:
2026-11-06 14:39:38 +01:00
6 changed files with 93 additions and 24 deletions
+17 -2
View File
@@ -509,10 +509,16 @@ living room setpoint to 22."), so the model is asked once per request. A
target with `values` is offered only those, each explained to the model, and
confirmed in its word ("Canopy open."). Any other value is refused.
Every request ends in a reply:
Questions about the home are answered from the context inputs, other
questions from what the model knows.
- When no tool fits or the request makes no sense, the model says so, as
Every request ends in a reply, except talk the panel overheard:
- When no tool can make the change asked for, the model says so, as
"Sorry, I can't do that.".
- Words that are neither a request nor a question, such as a TV or people
talking to each other, get no reply. The model answers them "Ignored.",
which is not said.
- When no provider is set up, the connection is refused, it takes over 3
seconds to connect or 15 seconds to answer, the reply is "The assistant
isn't available right now." and the node reads degraded. A model that has to
@@ -543,6 +549,10 @@ the assistant's prompt, both `reply` outputs go to `tts`, and the device's
| `partial` | `str` | the words agreed on so far, as they come, then the final text |
| `text` | `str` | what was said, once per utterance |
| Setting | Default | Notes |
|---|---|---|
| `prompt` | empty | words the speech is likely to hold, such as `Living room, kitchen, driveway, appliances.`, sent as the transcription prompt |
The server is any that speaks OpenAI's audio API, such as `parrot serve`. Each
utterance is one realtime transcription session (`{url}/v1/realtime`), opened
when `listening` turns true or at the first chunk and committed when it turns
@@ -552,6 +562,11 @@ chunk waits for it. An utterance that comes back empty, fails, or gets no
chunk for 10 seconds publishes "Didn't catch that." on `partial` alone, so a
caption shows it and nothing speaks it. A lost one is logged.
A `prompt` naming the installation's rooms and devices helps Whisper with
words it rarely hears. On the recordings of one wall panel, small.en with such
a prompt heard 30 of 42 hard commands right instead of 8, as "driveway" for
"drive bay" and "bathroom" for "best room".
`listening` has to hold a value before a chunk wakes the node. Declare it as a
flow input with the initial value `false` when a device may never send it,
such as one that sends whole clips.