Skip to content

Variables and State

Manage user variables, monitor device state, and track system activity.

The State tab (sidebar) is your central hub for variables, device states, and system activity. It has three sub-tabs:

Variables

Manages user-defined variables and shows where each is used. Variables are the glue between UI elements, macros, triggers, and scripts.

Creating Variables: Click New Variable in the header:

  • Name: descriptive identifier (e.g., room_active, current_source, volume_level)
  • Type: string, number, or boolean
  • Default value: initial value on system start

State key format: var.<name> (e.g., var.room_active, var.current_source)

Usage Cross-Reference: Each variable shows a list of everywhere it is referenced: macros, UI elements, triggers, and scripts. Invaluable for debugging.

Source Binding: Variables can optionally be bound to a device state key. Choose “Bound to state key” in the Source section of a variable’s detail panel, select the device state to mirror, and optionally add a value map to translate hardware values into friendly text (e.g., onReady, warmingWarming Up). This eliminates the need for scripts for simple device-to-variable mirroring.

Common Variable Patterns:

VariableTypePurpose
room_activebooleanTrack whether the room is in use
current_sourcestringTrack selected input (“laptop”, “bluray”, “wireless”)
projector_status_textstringHuman-readable status (bound to device.projector.power with value map)
volume_levelnumberTrack volume for UI feedback
presentation_modestringCurrent mode (“standard”, “video”, “teleconference”)

Device States

Browse all devices and their live state properties. Each property shows:

  • The full state key (e.g., device.projector.power). Click to copy.
  • The current live value
  • Driver metadata (type, possible values) when available
  • Where the property is referenced (macros, UI bindings, scripts)

Use this view to discover available state keys when building macros or UI bindings.

Activity

A live feed of recent state changes across the entire system. Each entry shows the timestamp, key, old and new values, and the source of the change (device, macro, script, UI, API). Use the filter buttons to narrow by namespace.

See Also