Room — room v1
Not a device — the unit of user intent, and the primary handle for both keypads and the AI.
A room owns its bindings, its sinks (which consumer connection is the display, which is the audio endpoint), its scenes, and its authored context. Room commands resolve through the pathfinder into device commands; nobody programs a button sequence by hand.
Rooms are created by the project, not by a driver. This proxy exists so that rooms are addressable through exactly the same contract as everything else.
Capabilities
Declared in the driver manifest under [[proxy]] capabilities. Anything not declared takes the default below.
| Capability | Type | Default | Meaning |
|---|---|---|---|
has_audio | bool | false | An audio sink is bound |
has_climate | bool | false | |
has_lighting | bool | false | |
has_shades | bool | false | |
has_video | bool | false | A display sink is bound |
volume_owner | u32 | 0 | Binding whose volume is the room's volume. Resolved by the pathfinder. |
Commands
activate_scene
| Parameter | Type | Notes |
|---|---|---|
name | string |
all_lights_off
Only present when
has_lightingis declared true.
No parameters.
listen
Only present when
has_audiois declared true.
Select an audio source and solve the path to this room's audio endpoint
| Parameter | Type | Notes |
|---|---|---|
source | u32 |
off
Tear the room down: release its path and power off devices no other room is using
No parameters.
set_mute
| Parameter | Type | Notes |
|---|---|---|
mute | bool |
set_volume
| Parameter | Type | Notes |
|---|---|---|
level | u8 0–100 |
volume_down
No parameters.
volume_up
No parameters.
watch
Only present when
has_videois declared true.
Select a video source and solve the path to this room's display
| Parameter | Type | Notes |
|---|---|---|
source | u32 | Binding id of a media_player or other video source |
Notifications
button_action
A keypad or remote press arriving at the room level, before it is routed to a device
| Parameter | Type | Notes |
|---|---|---|
action | one of press · release · click · double · hold | |
button | string |
mute_changed
| Parameter | Type | Notes |
|---|---|---|
mute | bool |
power_changed
| Parameter | Type | Notes |
|---|---|---|
on | bool |
scene_activated
| Parameter | Type | Notes |
|---|---|---|
name | string |
source_changed
| Parameter | Type | Notes |
|---|---|---|
kind | one of video · audio | |
source | u32 |
volume_changed
| Parameter | Type | Notes |
|---|---|---|
level | u8 |
State
Last-known values core keeps for a binding of this proxy.
| Key | Type | Meaning |
|---|---|---|
audio_source | u32 | |
mute | bool | |
on | bool | |
video_source | u32 | |
volume | u8 |