Skip to main content

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.

CapabilityTypeDefaultMeaning
has_audioboolfalseAn audio sink is bound
has_climateboolfalse
has_lightingboolfalse
has_shadesboolfalse
has_videoboolfalseA display sink is bound
volume_owneru320Binding whose volume is the room's volume. Resolved by the pathfinder.

Commands

activate_scene

ParameterTypeNotes
namestring

all_lights_off

Only present when has_lighting is declared true.

No parameters.

listen

Only present when has_audio is declared true.

Select an audio source and solve the path to this room's audio endpoint

ParameterTypeNotes
sourceu32

off

Tear the room down: release its path and power off devices no other room is using

No parameters.

set_mute

ParameterTypeNotes
mutebool

set_volume

ParameterTypeNotes
levelu8 0–100

volume_down

No parameters.

volume_up

No parameters.

watch

Only present when has_video is declared true.

Select a video source and solve the path to this room's display

ParameterTypeNotes
sourceu32Binding 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

ParameterTypeNotes
actionone of press · release · click · double · hold
buttonstring

mute_changed

ParameterTypeNotes
mutebool

power_changed

ParameterTypeNotes
onbool

scene_activated

ParameterTypeNotes
namestring

source_changed

ParameterTypeNotes
kindone of video · audio
sourceu32

volume_changed

ParameterTypeNotes
levelu8

State

Last-known values core keeps for a binding of this proxy.

KeyTypeMeaning
audio_sourceu32
mutebool
onbool
video_sourceu32
volumeu8