wren node writes the house brightness from lights.set/dim/brighten (wren s11)

This commit is contained in:
Melvin Strobl
2026-10-22 22:43:33 +02:00
parent 613eb8a744
commit a34d47b24f
3 changed files with 83 additions and 5 deletions
+10 -2
View File
@@ -356,8 +356,8 @@ reports a missing dependency.
| `dark` | `bool` | without it, dark before 07:00 and from 18:00 |
| `<area>_temperature` | `float` or `int` | °C, read when the command asks how warm the area is |
The outputs are `actions`, a list of records, `reply`, `unhandled`, and any
number of **targets**. A
The outputs are `actions`, a list of records, `reply`, `unhandled`,
`brightness`, and any number of **targets**. A
target is an output named `<area>_<kind>` and bound to the message its device
listens on: `living_room_setpoint` bound to `home.setpoint` is the living
room's heating. The wiring is the allowlist, so the model can write nothing
@@ -390,6 +390,7 @@ reads.
| `shutters.stop` | — | — | `stop` |
| `watering.start` / `stop` | `true` / `false` | — | `on` / `off` |
| `switches.on` / `off` | `true` / `false` | `1` / `0` | `on` / `off` |
| `lights.set` / `dim` / `brighten` | — | the level, on `brightness` only | — |
| Setting | Default | Notes |
|---|---|---|
@@ -407,6 +408,13 @@ carries the prompt instead, for something else to answer, such as an
[Assistant](#assistant). When no node reads `unhandled`, `reply` says "Sorry,
I can't do that yet." instead, so a spoken command never goes unanswered.
`brightness` is the house's, a `float` or `int` from 0 to 100. Only wren's
s11 model makes brightness calls, and the node writes them to `brightness`
whatever area they name: "set the brightness in the kitchen to 30%" sets the
house to 30. "Dim" and "brighter" move it 30 from its current value (70
when nothing has set it), and a dim stops at 10. The reply is "Brightness at
40 percent.". Without the output these calls go on to `unhandled`.
A call with a delay ("in 10m") is held by the engine's work queue, like the
Debounce node's second value: it survives a restart where the queue is in
Redis, and not otherwise.