Summary

Barco projector family exposing "Pulse services" over RS-232 serial and TCP/IP (JSON-RPC 2.0), plus HTTP file endpoints. Supports power control, source/connector selection, image processing (warp, blend, black level, color), illumination/laser power, optics (focus/zoom/lensshift/shutter), environment telemetry, DMX, notifications, and firmware upload.

Transport

protocols:
  - tcp
  - serial
addressing:
  port: 9090
serial:
  baud_rate: 19200
  data_bits: 8
  parity: none
  stop_bits: 1
  flow_control: none
auth:
  type: none  # inferred: source states authentication is required only for higher-than-end-user access; normal end-user access skips authenticate

HTTP file transfer uses http://<projector-address>/api/... (base path /api).

Traits

- powerable       # inferred from system.poweron / system.poweroff
- routable        # inferred from image.window.main.source / image.source.list
- queryable       # inferred from property.get / system.state / introspection
- levelable       # inferred from illumination.sources.laser.power, image.brightness, image.contrast, image.saturation

Actions

# --- Power ---
- id: system_poweron
  label: Power On
  kind: action
  command: '{"jsonrpc": "2.0", "method": "system.poweron"}'
  params: []
- id: system_poweroff
  label: Power Off
  kind: action
  command: '{"jsonrpc": "2.0", "method": "system.poweroff"}'
  params: []
- id: system_gotoeco
  label: Go to ECO state
  kind: action
  command: '{"jsonrpc": "2.0", "method": "system.gotoeco"}'
  params: []
- id: system_gotoready
  label: Go to Ready state
  kind: action
  command: '{"jsonrpc": "2.0", "method": "system.gotoready"}'
  params: []
- id: system_reboot
  label: Reboot projector (powers off first)
  kind: action
  command: '{"jsonrpc": "2.0", "method": "system.reboot"}'
  params: []
- id: system_reset
  label: Reset selected domains
  kind: action
  command: '{"jsonrpc": "2.0", "method": "system.reset", "params": {"domains": ["<domain>"]}}'
  params:
    - name: domains
      type: array
      description: Reset domains (ImageConnector, ImageSource, ImageFeatures, ImageRealColor, ImageWarp, ImageBlend, ImageOrientation, ImageResolution, ImageStereo, ImageDisplay, ImageTestPattern, ImageConvergence, UserInterface, Optics, Illumination, Network, Screen, System, LightMeasurement, Dmx)
- id: system_resetall
  label: Reset all domains
  kind: action
  command: '{"jsonrpc": "2.0", "method": "system.resetall"}'
  params: []
- id: system_activity
  label: Signal user activity (resets timeout countdowns)
  kind: action
  command: '{"jsonrpc": "2.0", "method": "system.activity"}'
  params: []
- id: wake_eco_serial
  label: Wake from ECO mode via RS-232
  kind: action
  command: ":POWR1\r"
  notes: ASCII string sent on serial port; only documented method to wake from ECO when in low-power state

# --- Source / input selection ---
- id: image_window_main_source_set
  label: Set active source for main window
  kind: action
  command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.window.main.source", "value": "<source>"}}'
  params:
    - name: source
      type: string
      description: One of the source names returned by image.source.list (e.g. "DisplayPort 1", "HDMI", "DVI 1", "SDI", "HDBaseT")
- id: image_source_list
  label: List available sources
  kind: query
  command: '{"jsonrpc": "2.0", "method": "image.source.list"}'
  params: []
- id: image_connector_list
  label: List available connectors
  kind: query
  command: '{"jsonrpc": "2.0", "method": "image.connector.list"}'
  params: []
- id: image_window_list
  label: List available windows
  kind: query
  command: '{"jsonrpc": "2.0", "method": "image.window.list"}'
  params: []
- id: image_source_connector_list
  label: List connectors used by a source
  kind: query
  command: '{"jsonrpc": "2.0", "method": "image.source.<sourceobj>.listconnectors"}'
  params:
    - name: sourceobj
      type: string
      description: Source object name (lowercase, non-word stripped, e.g. "displayport1" from "DisplayPort 1")
- id: image_connector_signal_get
  label: Get detected signal for a connector
  kind: query
  command: '{"jsonrpc": "2.0", "method": "property.get", "params": {"property": "image.connector.<connectorobj>.detectedsignal"}}'
  params:
    - name: connectorobj
      type: string
      description: Connector object name in lowercase, non-word stripped

# --- Property get/set/subscribe (generic) ---
- id: property_get
  label: Get property value
  kind: query
  command: '{"jsonrpc": "2.0", "method": "property.get", "params": {"property": "<property>"}}'
  params:
    - name: property
      type: string
      description: Dot-notation property name
- id: property_get_multi
  label: Get multiple property values
  kind: query
  command: '{"jsonrpc": "2.0", "method": "property.get", "params": {"property": ["<prop1>", "<prop2>"]}}'
  params:
    - name: properties
      type: array
      description: List of property names
- id: property_set
  label: Set property value
  kind: action
  command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "<property>", "value": <value>}}'
  params:
    - name: property
      type: string
    - name: value
      type: any
- id: property_subscribe
  label: Subscribe to one property
  kind: action
  command: '{"jsonrpc": "2.0", "method": "property.subscribe", "params": {"property": "<property>"}}'
  params:
    - name: property
      type: string
- id: property_subscribe_multi
  label: Subscribe to multiple properties
  kind: action
  command: '{"jsonrpc": "2.0", "method": "property.subscribe", "params": {"property": ["<prop1>", "<prop2>"]}}'
  params:
    - name: properties
      type: array
- id: property_unsubscribe
  label: Unsubscribe from one property
  kind: action
  command: '{"jsonrpc": "2.0", "method": "property.unsubscribe", "params": {"property": "<property>"}}'
  params:
    - name: property
      type: string
- id: property_unsubscribe_multi
  label: Unsubscribe from multiple properties
  kind: action
  command: '{"jsonrpc": "2.0", "method": "property.unsubscribe", "params": {"property": ["<prop1>", "<prop2>"]}}'
  params:
    - name: properties
      type: array

# --- Signals ---
- id: signal_subscribe
  label: Subscribe to a signal
  kind: action
  command: '{"jsonrpc": "2.0", "method": "signal.subscribe", "params": {"signal": "<signal>"}}'
  params:
    - name: signal
      type: string
      description: e.g. "modelupdated"
- id: signal_subscribe_multi
  label: Subscribe to multiple signals
  kind: action
  command: '{"jsonrpc": "2.0", "method": "signal.subscribe", "params": {"signal": ["<s1>", "<s2>"]}}'
  params:
    - name: signals
      type: array
- id: signal_unsubscribe
  label: Unsubscribe from a signal
  kind: action
  command: '{"jsonrpc": "2.0", "method": "signal.unsubscribe", "params": {"signal": "<signal>"}}'
  params:
    - name: signal
      type: string
- id: signal_unsubscribe_multi
  label: Unsubscribe from multiple signals
  kind: action
  command: '{"jsonrpc": "2.0", "method": "signal.unsubscribe", "params": {"signal": ["<s1>", "<s2>"]}}'
  params:
    - name: signals
      type: array

# --- Introspection ---
- id: introspect
  label: Introspect object metadata
  kind: query
  command: '{"jsonrpc": "2.0", "method": "introspect", "params": {"object": "<object>", "recursive": <bool>}}'
  params:
    - name: object
      type: string
    - name: recursive
      type: boolean

# --- Authentication (higher access levels) ---
- id: authenticate
  label: Authenticate with access code
  kind: action
  command: '{"jsonrpc": "2.0", "method": "authenticate", "params": {"code": <code>}}'
  params:
    - name: code
      type: integer
      description: Secret pass code for elevated access; end-user level works without it

# --- Illumination / laser power ---
- id: illumination_clo_engage
  label: Engage CLO at current light level
  kind: action
  command: '{"jsonrpc": "2.0", "method": "illumination.clo.engage"}'
  params: []
- id: illumination_laser_getserialnumber
  label: Get laser serial number
  kind: query
  command: '{"jsonrpc": "2.0", "method": "illumination.laser.getserialnumber"}'
  params: []
- id: lightmeasurement_getlightoutput
  label: Get current light output (lumens)
  kind: query
  command: '{"jsonrpc": "2.0", "method": "lightmeasurement.getlightoutput"}'
  params: []

# --- Picture settings (image service) ---
- id: image_color_p7_custom_copypresettocustom
  label: Copy preset to custom
  kind: action
  command: '{"jsonrpc": "2.0", "method": "image.color.p7.custom.copypresettocustom", "params": {"presetname": "<name>"}}'
  params:
    - name: presetname
      type: string
- id: image_color_p7_custom_resetpreset
  label: Reset color preset to defaults
  kind: action
  command: '{"jsonrpc": "2.0", "method": "image.color.p7.custom.resetpreset", "params": {"presetname": "<name>"}}'
  params:
    - name: presetname
      type: string
- id: image_color_p7_custom_resettonative
  label: Reset color to native
  kind: action
  command: '{"jsonrpc": "2.0", "method": "image.color.p7.custom.resettonative"}'
  params: []
- id: image_color_rgbmode_nextrgbmode
  label: Cycle to next RGB mode
  kind: action
  command: '{"jsonrpc": "2.0", "method": "image.color.rgbmode.nextrgbmode"}'
  params: []
- id: image_display_listdisplaymodes
  label: List possible display modes
  kind: query
  command: '{"jsonrpc": "2.0", "method": "image.display.listdisplaymodes"}'
  params: []
- id: image_resolution_list
  label: List possible resolutions
  kind: query
  command: '{"jsonrpc": "2.0", "method": "image.resolution.list"}'
  params: []
- id: image_stereo_listdarktime
  label: List possible stereo darktime values (us)
  kind: query
  command: '{"jsonrpc": "2.0", "method": "image.stereo.listdarktime"}'
  params: []

# --- Image processing: warp ---
- id: image_processing_warp_enable
  label: Enable all warp functions
  kind: action
  command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.processing.warp.enable", "value": true}}'
  params: []
- id: image_processing_warp_file_select
  label: Select uploaded warp file
  kind: action
  command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.processing.warp.file.selected", "value": "<file>"}}'
  params:
    - name: file
      type: string
- id: image_processing_warp_file_enable
  label: Enable file warp
  kind: action
  command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.processing.warp.file.enable", "value": true}}'
  params: []
- id: image_processing_warp_file_list
  label: List warp files
  kind: query
  command: '{"jsonrpc": "2.0", "method": "image.processing.warp.file.list"}'
  params: []
- id: image_processing_warp_file_delete
  label: Delete warp file
  kind: action
  command: '{"jsonrpc": "2.0", "method": "image.processing.warp.file.delete", "params": {"filename": "<name>"}}'
  params:
    - name: filename
      type: string
- id: image_processing_warp_fourcorners_getscaledcorners
  label: Get scaled warp corners
  kind: query
  command: '{"jsonrpc": "2.0", "method": "image.processing.warp.fourcorners.getscaledcorners", "params": {"resolution": {"x": <x>, "y": <y>}}}'
  params:
    - name: x
      type: integer
    - name: y
      type: integer
- id: image_processing_warp_warpscaledpoints
  label: Warp a list of points
  kind: query
  command: '{"jsonrpc": "2.0", "method": "image.processing.warp.warpscaledpoints", "params": {"points": [{"X": <x>, "Y": <y>}], "resolution": {"X": <x>, "Y": <y>}}}'
  params:
    - name: points
      type: array
    - name: resolution
      type: object
- id: image_processing_warpgrid_getgrid
  label: Get current warp grid
  kind: query
  command: '{"jsonrpc": "2.0", "method": "image.processing.warpgrid.getgrid"}'
  params: []
- id: image_processing_warpgrid_getgridsize
  label: Get warp grid size
  kind: query
  command: '{"jsonrpc": "2.0", "method": "image.processing.warpgrid.getgridsize"}'
  params: []
- id: image_processing_warpgrid_getscaledgrid
  label: Get warp grid scaled to resolution
  kind: query
  command: '{"jsonrpc": "2.0", "method": "image.processing.warpgrid.getscaledgrid", "params": {"resolution": {"x": <x>, "y": <y>}}}'
  params:
    - name: x
      type: integer
    - name: y
      type: integer
- id: image_processing_warpgrid_changed_subscribe
  label: Subscribe to warpgrid.changed
  kind: action
  command: '{"jsonrpc": "2.0", "method": "signal.subscribe", "params": {"signal": "image.processing.warpgrid.changed"}}'
  params: []
- id: image_processing_warpgrid_gridchanged_subscribe
  label: Subscribe to warpgrid.gridchanged
  kind: action
  command: '{"jsonrpc": "2.0", "method": "signal.subscribe", "params": {"signal": "image.processing.warpgrid.gridchanged"}}'
  params: []

# --- Image processing: blend ---
- id: image_processing_blend_file_select
  label: Select uploaded blend file
  kind: action
  command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.processing.blend.file.selected", "value": ["<file>"]}}'
  params:
    - name: file
      type: string
- id: image_processing_blend_file_enable
  label: Enable blend file
  kind: action
  command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.processing.blend.file.enable", "value": true}}'
  params: []
- id: image_processing_blend_file_list
  label: List blend files
  kind: query
  command: '{"jsonrpc": "2.0", "method": "image.processing.blend.file.list"}'
  params: []
- id: image_processing_blend_file_delete
  label: Delete blend file
  kind: action
  command: '{"jsonrpc": "2.0", "method": "image.processing.blend.file.delete", "params": {"filename": "<name>"}}'
  params:
    - name: filename
      type: string
- id: image_processing_blend_basicblend_getblendarea
  label: Get blend edges
  kind: query
  command: '{"jsonrpc": "2.0", "method": "image.processing.blend.basicblend.getblendarea", "params": {"resolution_width": <w>, "resolution_height": <h>}}'
  params:
    - name: resolution_width
      type: number
    - name: resolution_height
      type: number
- id: image_processing_blend_basicblend_getwarpedblendarea
  label: Get warped blend edges
  kind: query
  command: '{"jsonrpc": "2.0", "method": "image.processing.blend.basicblend.getwarpedblendarea", "params": {"resolution_width": <w>, "resolution_height": <h>}}'
  params:
    - name: resolution_width
      type: number
    - name: resolution_height
      type: number

# --- Image processing: black level ---
- id: image_processing_blacklevel_file_select
  label: Select uploaded black level file
  kind: action
  command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.processing.blacklevel.file.selected", "value": "<file>"}}'
  params:
    - name: file
      type: string
- id: image_processing_blacklevel_file_enable
  label: Enable black level file
  kind: action
  command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.processing.blacklevel.file.enable", "value": true}}'
  params: []
- id: image_processing_blacklevel_file_list
  label: List black level files
  kind: query
  command: '{"jsonrpc": "2.0", "method": "image.processing.blacklevel.file.list"}'
  params: []
- id: image_processing_blacklevel_file_delete
  label: Delete black level file
  kind: action
  command: '{"jsonrpc": "2.0", "method": "image.processing.blacklevel.file.delete", "params": {"filename": "<name>"}}'
  params:
    - name: filename
      type: string
- id: image_processing_blacklevel_basicblacklevel_getblacklevelarea
  label: Get black level area
  kind: query
  command: '{"jsonrpc": "2.0", "method": "image.processing.blacklevel.basicblacklevel.getblacklevelarea", "params": {"resolution_width": <w>, "resolution_height": <h>}}'
  params:
    - name: resolution_width
      type: number
    - name: resolution_height
      type: number
- id: image_processing_blacklevel_basicblacklevel_getwarpedblacklevelarea
  label: Get warped black level area
  kind: query
  command: '{"jsonrpc": "2.0", "method": "image.processing.blacklevel.basicblacklevel.getwarpedblacklevelarea", "params": {"resolution_width": <w>, "resolution_height": <h>}}'
  params:
    - name: resolution_width
      type: number
    - name: resolution_height
      type: number

# --- Test patterns ---
- id: image_testpattern_list
  label: List test patterns
  kind: query
  command: '{"jsonrpc": "2.0", "method": "image.testpattern.list"}'
  params: []
- id: image_testpattern_setproperties
  label: Set test pattern properties
  kind: action
  command: '{"jsonrpc": "2.0", "method": "image.testpattern.setproperties", "params": {"id": "<id>", "properties": [{"key": "<k>", "value": "<v>"}]}}'
  params:
    - name: id
      type: string
    - name: properties
      type: array
- id: image_testpattern_file_list
  label: List custom test pattern files
  kind: query
  command: '{"jsonrpc": "2.0", "method": "image.testpattern.file.list"}'
  params: []
- id: image_testpattern_file_delete
  label: Delete custom test pattern file
  kind: action
  command: '{"jsonrpc": "2.0", "method": "image.testpattern.file.delete", "params": {"filename": "<name>"}}'
  params:
    - name: filename
      type: string

# --- Environment ---
- id: environment_getcontrolblocks
  label: Get environment control blocks
  kind: query
  command: '{"jsonrpc": "2.0", "method": "environment.getcontrolblocks", "params": {"type": "<type>", "valuetype": "<valuetype>"}}'
  params:
    - name: type
      type: string
      description: Sensor, Filter, Controller, Actuator, Alarm, GenericBlock
    - name: valuetype
      type: string
      description: Temperature, Speed, PWM, Voltage, Current, Power, Altitude, Pressure, Humidity, ADC, Coordinate, Peltier, Waveform, Average, Delay, Difference, Interpolation, Limit, Median, Noise, Weighting, Comparison, Threshold, Formula, Driver, PID, Mode, State, Pump, Resistance, Simulation, Constant, Manual, Range, Any
- id: environment_getalarminfo
  label: Get alarm info
  kind: query
  command: '{"jsonrpc": "2.0", "method": "environment.getalarminfo"}'
  params: []

# --- Firmware ---
- id: firmware_listcomponents
  label: List firmware components
  kind: query
  command: '{"jsonrpc": "2.0", "method": "firmware.listcomponents"}'
  params: []
- id: firmware_listcomponentversionstatus
  label: List firmware component versions and status
  kind: query
  command: '{"jsonrpc": "2.0", "method": "firmware.listcomponentversionstatus"}'
  params: []
- id: firmware_schedulecomponentupgrade
  label: Schedule firmware component upgrade on next reboot
  kind: action
  command: '{"jsonrpc": "2.0", "method": "firmware.schedulecomponentupgrade"}'
  params: []

# --- LEDs ---
- id: ledctrl_blink
  label: Blink an LED
  kind: action
  command: '{"jsonrpc": "2.0", "method": "ledctrl.blink", "params": {"led": "<led>", "color": "<color>", "period": <period>}}'
  params:
    - name: led
      type: string
    - name: color
      type: string
    - name: period
      type: integer
- id: led_activity
  label: Activate LEDs and reset timeout
  kind: action
  command: '{"jsonrpc": "2.0", "method": "led.activity"}'
  params: []
- id: led_list
  label: List LEDs
  kind: query
  command: '{"jsonrpc": "2.0", "method": "led.list"}'
  params: []

# --- Key dispatch (remote control / keypad emulation) ---
- id: keydispatcher_sendclickevent
  label: Send key click event (press+release)
  kind: action
  command: '{"jsonrpc": "2.0", "method": "keydispatcher.sendclickevent", "params": {"key": "<key>"}}'
  params:
    - name: key
      type: string
      description: One of RC_SHUTTER_OPEN, RC_SHUTTER_CLOSE, RC_POWER_ON, RC_POWER_OFF, RC_OSD, RC_LCD, RC_PATTERN, RC_RGB, RC_ZOOM_PLUS, RC_ZOOM_MINUS, RC_SHIFT_LEFT, RC_SHIFT_UP, RC_SHIFT_RIGHT, RC_SHIFT_DOWN, RC_FOCUS_PLUS, RC_FOCUS_MINUS, RC_MENU, RC_DEFAULT, RC_BACK, RC_UP, RC_LEFT, RC_OK, RC_RIGHT, RC_DOWN, RC_ADDRESS, RC_INPUT, RC_MACRO, RC_1..RC_0, RC_ASTERISK, RC_NUMBER, KP_LEFT, KP_UP, KP_OK, KP_RIGHT, KP_DOWN, KP_MENU, KP_POWER, KP_BACK, KP_OSD, KP_LENS, KP_PATTERN, KP_SHUTTER, KP_INPUT, KP_STANDBY
- id: keydispatcher_sendpressevent
  label: Send key press event
  kind: action
  command: '{"jsonrpc": "2.0", "method": "keydispatcher.sendpressevent", "params": {"key": "<key>"}}'
  params:
    - name: key
      type: string
- id: keydispatcher_sendreleaseevent
  label: Send key release event
  kind: action
  command: '{"jsonrpc": "2.0", "method": "keydispatcher.sendreleaseevent", "params": {"key": "<key>"}}'
  params:
    - name: key
      type: string

# --- Optics: focus ---
- id: optics_focus_addlocation
  label: Save current focus position
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.focus.addlocation", "params": {"location": "<name>"}}'
  params:
    - name: location
      type: string
- id: optics_focus_calibrate
  label: Calibrate focus
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.focus.calibrate"}'
  params: []
- id: optics_focus_runforward
  label: Run focus forward
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.focus.runforward"}'
  params: []
- id: optics_focus_runforwardtime
  label: Run focus forward for X ms
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.focus.runforwardtime"}'
  params: []
- id: optics_focus_runreverse
  label: Run focus reverse
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.focus.runreverse"}'
  params: []
- id: optics_focus_runreversetime
  label: Run focus reverse for X ms
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.focus.runreversetime"}'
  params: []
- id: optics_focus_setlocation
  label: Set focus to saved location
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.focus.setlocation", "params": {"location": "<name>"}}'
  params:
    - name: location
      type: string
- id: optics_focus_stepforward
  label: Step focus forward
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.focus.stepforward"}'
  params: []
- id: optics_focus_stepreverse
  label: Step focus reverse
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.focus.stepreverse"}'
  params: []
- id: optics_focus_stop
  label: Stop focus
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.focus.stop"}'
  params: []

# --- Optics: lens shift horizontal ---
- id: optics_lensshift_horizontal_addlocation
  label: Save current H-shift position
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.lensshift.horizontal.addlocation", "params": {"location": "<name>"}}'
  params:
    - name: location
      type: string
- id: optics_lensshift_horizontal_calibrate
  label: Calibrate H-shift
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.lensshift.horizontal.calibrate"}'
  params: []
- id: optics_lensshift_horizontal_runforward
  label: Run H-shift forward
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.lensshift.horizontal.runforward"}'
  params: []
- id: optics_lensshift_horizontal_runforwardtime
  label: Run H-shift forward for X ms
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.lensshift.horizontal.runforwardtime"}'
  params: []
- id: optics_lensshift_horizontal_runreverse
  label: Run H-shift reverse
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.lensshift.horizontal.runreverse"}'
  params: []
- id: optics_lensshift_horizontal_runreversetime
  label: Run H-shift reverse for X ms
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.lensshift.horizontal.runreversetime"}'
  params: []
- id: optics_lensshift_horizontal_setlocation
  label: Set H-shift to saved location
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.lensshift.horizontal.setlocation", "params": {"location": "<name>"}}'
  params:
    - name: location
      type: string
- id: optics_lensshift_horizontal_stepforward
  label: Step H-shift forward
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.lensshift.horizontal.stepforward"}'
  params: []
- id: optics_lensshift_horizontal_stepreverse
  label: Step H-shift reverse
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.lensshift.horizontal.stepreverse"}'
  params: []
- id: optics_lensshift_horizontal_stop
  label: Stop H-shift
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.lensshift.horizontal.stop"}'
  params: []

# --- Optics: lens shift vertical ---
- id: optics_lensshift_vertical_addlocation
  label: Save current V-shift position
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.lensshift.vertical.addlocation", "params": {"location": "<name>"}}'
  params:
    - name: location
      type: string
- id: optics_lensshift_vertical_calibrate
  label: Calibrate V-shift
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.lensshift.vertical.calibrate"}'
  params: []
- id: optics_lensshift_vertical_runforward
  label: Run V-shift forward
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.lensshift.vertical.runforward"}'
  params: []
- id: optics_lensshift_vertical_runforwardtime
  label: Run V-shift forward for X ms
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.lensshift.vertical.runforwardtime"}'
  params: []
- id: optics_lensshift_vertical_runreverse
  label: Run V-shift reverse
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.lensshift.vertical.runreverse"}'
  params: []
- id: optics_lensshift_vertical_runreversetime
  label: Run V-shift reverse for X ms
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.lensshift.vertical.runreversetime"}'
  params: []
- id: optics_lensshift_vertical_setlocation
  label: Set V-shift to saved location
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.lensshift.vertical.setlocation", "params": {"location": "<name>"}}'
  params:
    - name: location
      type: string
- id: optics_lensshift_vertical_stepforward
  label: Step V-shift forward
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.lensshift.vertical.stepforward"}'
  params: []
- id: optics_lensshift_vertical_stepreverse
  label: Step V-shift reverse
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.lensshift.vertical.stepreverse"}'
  params: []
- id: optics_lensshift_vertical_stop
  label: Stop V-shift
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.lensshift.vertical.stop"}'
  params: []

# --- Optics: zoom ---
- id: optics_zoom_addlocation
  label: Save current zoom position
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.zoom.addlocation", "params": {"location": "<name>"}}'
  params:
    - name: location
      type: string
- id: optics_zoom_calibrate
  label: Calibrate zoom
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.zoom.calibrate"}'
  params: []
- id: optics_zoom_runforward
  label: Run zoom forward
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.zoom.runforward"}'
  params: []
- id: optics_zoom_runforwardtime
  label: Run zoom forward for X ms
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.zoom.runforwardtime"}'
  params: []
- id: optics_zoom_runreverse
  label: Run zoom reverse
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.zoom.runreverse"}'
  params: []
- id: optics_zoom_runreversetime
  label: Run zoom reverse for X ms
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.zoom.runreversetime"}'
  params: []
- id: optics_zoom_setlocation
  label: Set zoom to saved location
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.zoom.setlocation", "params": {"location": "<name>"}}'
  params:
    - name: location
      type: string
- id: optics_zoom_stepforward
  label: Step zoom forward
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.zoom.stepforward"}'
  params: []
- id: optics_zoom_stepreverse
  label: Step zoom reverse
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.zoom.stepreverse"}'
  params: []
- id: optics_zoom_stop
  label: Stop zoom
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.zoom.stop"}'
  params: []

# --- Optics: shutter + lens ---
- id: optics_shutter_toggle
  label: Toggle shutter
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.shutter.toggle"}'
  params: []
- id: optics_shutter_getobjectpath
  label: Get shutter motor object path
  kind: query
  command: '{"jsonrpc": "2.0", "method": "optics.shutter.getobjectpath"}'
  params: []
- id: optics_shifttocenter
  label: Shift lens to center
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.shifttocenter"}'
  params: []
- id: optics_setlensid
  label: Set lens by ID
  kind: action
  command: '{"jsonrpc": "2.0", "method": "optics.setlensid", "params": {"lensid": <lensid>, "powerlensid": <powerlensid>}}'
  params:
    - name: lensid
      type: integer
    - name: powerlensid
      type: integer
- id: optics_getvalidlensids
  label: Get valid lens IDs
  kind: query
  command: '{"jsonrpc": "2.0", "method": "optics.getvalidlensids"}'
  params: []

# --- Peripheral: frame motor (H/V/rotation) ---
- id: peripheral_frame_horizontal_calibrate
  label: Calibrate H frame motor
  kind: action
  command: '{"jsonrpc": "2.0", "method": "peripheral.frame.horizontal.calibrate"}'
  params: []
- id: peripheral_frame_horizontal_runforward
  label: Run H frame forward
  kind: action
  command: '{"jsonrpc": "2.0", "method": "peripheral.frame.horizontal.runforward"}'
  params: []
- id: peripheral_frame_horizontal_runreverse
  label: Run H frame reverse
  kind: action
  command: '{"jsonrpc": "2.0", "method": "peripheral.frame.horizontal.runreverse"}'
  params: []
- id: peripheral_frame_horizontal_stepforward
  label: Step H frame forward
  kind: action
  command: '{"jsonrpc": "2.0", "method": "peripheral.frame.horizontal.stepforward"}'
  params: []
- id: peripheral_frame_horizontal_stepreverse
  label: Step H frame reverse
  kind: action
  command: '{"jsonrpc": "2.0", "method": "peripheral.frame.horizontal.stepreverse"}'
  params: []
- id: peripheral_frame_horizontal_stop
  label: Stop H frame
  kind: action
  command: '{"jsonrpc": "2.0", "method": "peripheral.frame.horizontal.stop"}'
  params: []
- id: peripheral_frame_vertical_calibrate
  label: Calibrate V frame motor
  kind: action
  command: '{"jsonrpc": "2.0", "method": "peripheral.frame.vertical.calibrate"}'
  params: []
- id: peripheral_frame_vertical_runforward
  label: Run V frame forward
  kind: action
  command: '{"jsonrpc": "2.0", "method": "peripheral.frame.vertical.runforward"}'
  params: []
- id: peripheral_frame_vertical_runreverse
  label: Run V frame reverse
  kind: action
  command: '{"jsonrpc": "2.0", "method": "peripheral.frame.vertical.runreverse"}'
  params: []
- id: peripheral_frame_vertical_stepforward
  label: Step V frame forward
  kind: action
  command: '{"jsonrpc": "2.0", "method": "peripheral.frame.vertical.stepforward"}'
  params: []
- id: peripheral_frame_vertical_stepreverse
  label: Step V frame reverse
  kind: action
  command: '{"jsonrpc": "2.0", "method": "peripheral.frame.vertical.stepreverse"}'
  params: []
- id: peripheral_frame_vertical_stop
  label: Stop V frame
  kind: action
  command: '{"jsonrpc": "2.0", "method": "peripheral.frame.vertical.stop"}'
  params: []
- id: peripheral_frame_rotation_calibrate
  label: Calibrate rotation motor
  kind: action
  command: '{"jsonrpc": "2.0", "method": "peripheral.frame.rotation.calibrate"}'
  params: []
- id: peripheral_frame_rotation_runforward
  label: Run rotation forward
  kind: action
  command: '{"jsonrpc": "2.0", "method": "peripheral.frame.rotation.runforward"}'
  params: []
- id: peripheral_frame_rotation_runreverse
  label: Run rotation reverse
  kind: action
  command: '{"jsonrpc": "2.0", "method": "peripheral.frame.rotation.runreverse"}'
  params: []
- id: peripheral_frame_rotation_stepforward
  label: Step rotation forward
  kind: action
  command: '{"jsonrpc": "2.0", "method": "peripheral.frame.rotation.stepforward"}'
  params: []
- id: peripheral_frame_rotation_stepreverse
  label: Step rotation reverse
  kind: action
  command: '{"jsonrpc": "2.0", "method": "peripheral.frame.rotation.stepreverse"}'
  params: []
- id: peripheral_frame_rotation_stop
  label: Stop rotation
  kind: action
  command: '{"jsonrpc": "2.0", "method": "peripheral.frame.rotation.stop"}'
  params: []

# --- Notifications ---
- id: notification_list
  label: List active notifications
  kind: query
  command: '{"jsonrpc": "2.0", "method": "notification.list"}'
  params: []
- id: notification_dismiss
  label: Dismiss a notification
  kind: action
  command: '{"jsonrpc": "2.0", "method": "notification.dismiss", "params": {"id": "<id>", "response": "<response>"}}'
  params:
    - name: id
      type: string
    - name: response
      type: string
      description: NONE, OK, CANCEL, IGNORE, YES, NO, SUPPRESS
- id: notification_suppress
  label: Suppress a notification code
  kind: action
  command: '{"jsonrpc": "2.0", "method": "notification.suppress", "params": {"code": "<code>"}}'
  params:
    - name: code
      type: string
- id: notification_unsuppress
  label: Unsuppress a notification code
  kind: action
  command: '{"jsonrpc": "2.0", "method": "notification.unsuppress", "params": {"code": "<code>"}}'
  params:
    - name: code
      type: string
- id: notification_unsuppressall
  label: Unsuppress all notification codes
  kind: action
  command: '{"jsonrpc": "2.0", "method": "notification.unsuppressall"}'
  params: []
- id: notification_listsuppressed
  label: List suppressed notification codes
  kind: query
  command: '{"jsonrpc": "2.0", "method": "notification.listsuppressed"}'
  params: []
- id: notification_log
  label: List saved notifications
  kind: query
  command: '{"jsonrpc": "2.0", "method": "notification.log", "params": {"minimumseverity": "<sev>", "start": <start>, "count": <count>}}'
  params:
    - name: minimumseverity
      type: string
      description: INFO, CAUTION, WARNING, ERROR, CRITICAL
    - name: start
      type: integer
    - name: count
      type: integer

# --- System info / board / network ---
- id: system_getidentification
  label: Get system identification
  kind: query
  command: '{"jsonrpc": "2.0", "method": "system.getidentification"}'
  params: []
- id: system_getidentifications
  label: Get system identifications
  kind: query
  command: '{"jsonrpc": "2.0", "method": "system.getidentifications"}'
  params: []
- id: system_getsystemdate
  label: Get system date (UTC)
  kind: query
  command: '{"jsonrpc": "2.0", "method": "system.getsystemdate"}'
  params: []
- id: system_listresetdomains
  label: List available reset domains
  kind: query
  command: '{"jsonrpc": "2.0", "method": "system.listresetdomains"}'
  params: []
- id: system_boards_getboardlist
  label: List boards
  kind: query
  command: '{"jsonrpc": "2.0", "method": "system.boards.getboardlist"}'
  params: []
- id: system_boards_getboardinfo
  label: Get board info
  kind: query
  command: '{"jsonrpc": "2.0", "method": "system.boards.getboardinfo", "params": {"boardname": "<name>"}}'
  params:
    - name: boardname
      type: string
- id: system_boards_getmoduleinfo
  label: Get board module info
  kind: query
  command: '{"jsonrpc": "2.0", "method": "system.boards.getmoduleinfo", "params": {"boardname": "<name>"}}'
  params:
    - name: boardname
      type: string
- id: system_boards_getmissingboardlist
  label: Get missing board list
  kind: query
  command: '{"jsonrpc": "2.0", "method": "system.boards.getmissingboardlist"}'
  params: []
- id: system_boards_getdeviceinfo
  label: Get device info (DEPRECATED)
  kind: query
  command: '{"jsonrpc": "2.0", "method": "system.boards.getdeviceinfo", "params": {"boardname": "<name>"}}'
  params:
    - name: boardname
      type: string
  notes: DEPRECATED: use getboardinfo instead
- id: network_list
  label: List logical network devices
  kind: query
  command: '{"jsonrpc": "2.0", "method": "network.list"}'
  params: []
- id: remotecontrol_listsensors
  label: List IR sensor object names
  kind: query
  command: '{"jsonrpc": "2.0", "method": "remotecontrol.listsensors"}'
  params: []

# --- DMX ---
- id: dmx_listchannels
  label: List DMX channels
  kind: query
  command: '{"jsonrpc": "2.0", "method": "dmx.listchannels"}'
  params: []
- id: dmx_listmodes
  label: List DMX modes
  kind: query
  command: '{"jsonrpc": "2.0", "method": "dmx.listmodes"}'
  params: []

# --- Statistics ---
- id: statistics_listcounters
  label: List statistic counters
  kind: query
  command: '{"jsonrpc": "2.0", "method": "statistics.listcounters"}'
  params: []
- id: statistics_laserruntime_getname
  label: Get laser runtime counter name
  kind: query
  command: '{"jsonrpc": "2.0", "method": "statistics.laserruntime.getname"}'
  params: []
- id: statistics_laserruntime_getunit
  label: Get laser runtime counter unit
  kind: query
  command: '{"jsonrpc": "2.0", "method": "statistics.laserruntime.getunit"}'
  params: []
- id: statistics_laserstrikes_getname
  label: Get laser strikes counter name
  kind: query
  command: '{"jsonrpc": "2.0", "method": "statistics.laserstrikes.getname"}'
  params: []
- id: statistics_laserstrikes_getunit
  label: Get laser strikes counter unit
  kind: query
  command: '{"jsonrpc": "2.0", "method": "statistics.laserstrikes.getunit"}'
  params: []
- id: statistics_projectorruntime_getname
  label: Get projector runtime counter name
  kind: query
  command: '{"jsonrpc": "2.0", "method": "statistics.projectorruntime.getname"}'
  params: []
- id: statistics_projectorruntime_getunit
  label: Get projector runtime counter unit
  kind: query
  command: '{"jsonrpc": "2.0", "method": "statistics.projectorruntime.getunit"}'
  params: []
- id: statistics_systemtime_getname
  label: Get system time counter name
  kind: query
  command: '{"jsonrpc": "2.0", "method": "statistics.systemtime.getname"}'
  params: []
- id: statistics_systemtime_getunit
  label: Get system time counter unit
  kind: query
  command: '{"jsonrpc": "2.0", "method": "statistics.systemtime.getunit"}'
  params: []
- id: statistics_uptime_getname
  label: Get uptime counter name
  kind: query
  command: '{"jsonrpc": "2.0", "method": "statistics.uptime.getname"}'
  params: []
- id: statistics_uptime_getunit
  label: Get uptime counter unit
  kind: query
  command: '{"jsonrpc": "2.0", "method": "statistics.uptime.getunit"}'
  params: []

# --- UI settings ---
- id: ui_settings_get
  label: Get UI setting
  kind: query
  command: '{"jsonrpc": "2.0", "method": "ui.settings.get", "params": {"key": "<key>"}}'
  params:
    - name: key
      type: string
- id: ui_settings_set
  label: Set UI setting
  kind: action
  command: '{"jsonrpc": "2.0", "method": "ui.settings.set", "params": {"key": "<key>", "value": "<value>"}}'
  params:
    - name: key
      type: string
    - name: value
      type: string
- id: ui_settings_remove
  label: Remove UI setting
  kind: action
  command: '{"jsonrpc": "2.0", "method": "ui.settings.remove", "params": {"key": "<key>"}}'
  params:
    - name: key
      type: string
- id: ui_settings_keys
  label: List UI setting keys
  kind: query
  command: '{"jsonrpc": "2.0", "method": "ui.settings.keys"}'
  params: []
- id: ui_settings_list
  label: List all UI settings
  kind: query
  command: '{"jsonrpc": "2.0", "method": "ui.settings.list"}'
  params: []
- id: ui_settings_geticons
  label: Get SVG sprite icons for category
  kind: query
  command: '{"jsonrpc": "2.0", "method": "ui.settings.geticons", "params": {"category": "<category>"}}'
  params:
    - name: category
      type: string
      description: Source, Connector, TestPattern
- id: ui_settings_getfonticons
  label: Get font icons for category
  kind: query
  command: '{"jsonrpc": "2.0", "method": "ui.settings.getfonticons", "params": {"category": "<category>"}}'
  params:
    - name: category
      type: string
      description: Source, Connector, TestPattern
- id: ui_togglestealthmode
  label: Toggle stealth mode (DEPRECATED)
  kind: action
  command: '{"jsonrpc": "2.0", "method": "ui.togglestealthmode"}'
  params: []
  notes: Source marks this method as deprecated

# --- License / flexbrightness ---
- id: system_license_option_flexbrightness_getmaximumlightoutputcode
  label: Get maximum light output code
  kind: query
  command: '{"jsonrpc": "2.0", "method": "system.license.option.flexbrightness.getmaximumlightoutputcode", "params": {"lightoutput": <lumens>, "signature": "<sig>"}}'
  params:
    - name: lightoutput
      type: integer
    - name: signature
      type: string
- id: system_license_option_flexbrightness_setmaximumlightoutput
  label: Set maximum light output
  kind: action
  command: '{"jsonrpc": "2.0", "method": "system.license.option.flexbrightness.setmaximumlightoutput", "params": {"code": "<code>", "lightoutput": <lumens>}}'
  params:
    - name: code
      type: string
    - name: lightoutput
      type: integer
- id: system_license_option_flexbrightness_setmaximumlightoutputcode
  label: Set maximum light output code
  kind: action
  command: '{"jsonrpc": "2.0", "method": "system.license.option.flexbrightness.setmaximumlightoutputcode", "params": {"lightoutput": <lumens>, "signature": "<sig>", "code": "<code>"}}'
  params:
    - name: lightoutput
      type: integer
    - name: signature
      type: string
    - name: code
      type: string

Feedbacks

- id: system_state
  type: enum
  values: [boot, eco, standby, ready, conditioning, on, deconditioning]
  command: '{"jsonrpc": "2.0", "method": "property.get", "params": {"property": "system.state"}}'
- id: illumination_state
  type: enum
  values: [On, Off]
  command: '{"jsonrpc": "2.0", "method": "property.get", "params": {"property": "illumination.state"}}'
- id: environment_alarmstate
  type: enum
  values: [Fatal, Error, Alert, Warning, Ok]
- id: gsm_pinstate
  type: enum
  values: [Accepted, Failed, Locked, Unknown]
- id: illumination_clo_state
  type: enum
  values: [Ok, TooDim, TooBright]
- id: illumination_clo_availability
  type: enum
  values: [Available, SensorUnavailable, PendingWarmup, Unavailable, Unknown]
- id: optics_shutter_position
  type: enum
  values: [Open, Closed]
  command: '{"jsonrpc": "2.0", "method": "property.get", "params": {"property": "optics.shutter.position"}}'
- id: optics_focus_state
  type: enum
  values: [Stopped, Running, Calibrating, Homing]
- id: optics_lensshift_horizontal_state
  type: enum
  values: [Stopped, Running, Calibrating, Homing]
- id: optics_lensshift_vertical_state
  type: enum
  values: [Stopped, Running, Calibrating, Homing]
- id: optics_zoom_state
  type: enum
  values: [Stopped, Running, Calibrating, Homing]
- id: network_device_lan_state
  type: enum
  values: [CONNECTED, DISCONNECTED]
- id: dmx_monitor_connectionstate_active
  type: boolean
- id: image_window_main_source
  type: string
  command: '{"jsonrpc": "2.0", "method": "property.get", "params": {"property": "image.window.main.source"}}'
- id: system_modelname
  type: string
- id: system_firmwareversion
  type: string
- id: system_serialnumber
  type: string
- id: system_articlenumber
  type: string
- id: system_familyname
  type: string

Variables

- id: image_brightness
  type: float
  range: [-1, 1]
  step: 0.01
  command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.brightness", "value": <value>}}'
- id: image_contrast
  type: float
  range: [0, 2]
  step: 0.01
  command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.contrast", "value": <value>}}'
- id: image_saturation
  type: float
  range: [0, 2]
  step: 0.01
  command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.saturation", "value": <value>}}'
- id: image_gamma
  type: float
  range: [1, 3]
  step: 0.1
  command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.gamma", "value": <value>}}'
- id: image_sharpness
  type: integer
  range: [-2, 8]
  step: 1
  command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.sharpness", "value": <value>}}'
- id: image_intensity
  type: float
  range: [0, 1]
  step: 0.1
  precision: 0.01
  command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.intensity", "value": <value>}}'
- id: image_orientation
  type: enum
  values: [DESKTOP_FRONT, DESKTOP_REAR, CEILING_FRONT, CEILING_REAR]
  command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "image.orientation", "value": "<value>"}}'
- id: image_display_desireddisplaymode
  type: enum
  values: [Mono, AutoStereo, ActiveStereo, NightVision, IGPixelShift]
- id: image_display_displaymode
  type: enum
  values: [Mono, AutoStereo, ActiveStereo, NightVision, IGPixelShift]
- id: illumination_sources_laser_power
  type: float
  range: [0, 100]
  command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "illumination.sources.laser.power", "value": <value>}}'
- id: illumination_clo_enable
  type: boolean
  command: '{"jsonrpc": "2.0", "method": "property.set", "params": {"property": "illumination.clo.enable", "value": <value>}}'
- id: illumination_clo_scale
  type: float
- id: illumination_clo_setpoint
  type: float
- id: optics_focus_target
  type: integer
  range: [optics.focus.minposition, optics.focus.maxposition]
- id: optics_focus_position
  type: integer
- id: optics_zoom_target
  type: integer
- id: optics_zoom_position
  type: integer
- id: optics_lensshift_horizontal_target
  type: integer
- id: optics_lensshift_horizontal_position
  type: integer
- id: optics_lensshift_vertical_target
  type: integer
- id: optics_lensshift_vertical_position
  type: integer
- id: optics_shutter_target
  type: enum
  values: [Open, Closed]
- id: image_processing_warp_enable
  type: boolean
- id: image_processing_blend_scurve
  type: float
  range: [1, 4]
  step: 0.1
- id: image_processing_transportdelay_desired
  type: integer
- id: system_eco_enable
  type: boolean
- id: system_standby_enable
  type: boolean
- id: system_initialstate
  type: enum
  values: [boot, eco, standby, ready, conditioning, on, service, deconditioning, error]
- id: ui_backlight_state
  type: enum
  values: [Off, On, Auto]
- id: ui_backlight_timeout
  type: integer
- id: ui_stealthmode
  type: enum
  values: [Off, On]
- id: ui_osd
  type: boolean
- id: screen_hdrboost
  type: float
  range: [0.8, 1.2]
  step: 0.01
- id: screen_luminance
  type: float
  range: [50, 10000]
  step: 10
- id: remotecontrol_address
  type: integer
  range: [1, 31]
- id: remotecontrol_broadcastaddress
  type: integer
  range: [0, 1]
- id: dmx_artnet
  type: boolean
- id: dmx_artnetnet
  type: integer
- id: dmx_artnetuniverse
  type: integer
- id: dmx_startchannel
  type: integer
  range: [1, 512]
- id: dmx_shutdown
  type: boolean
- id: dmx_shutdowntimeout
  type: integer
- id: dmx_mode
  type: string
- id: network_hostname
  type: string
- id: network_device_lan_ip4configmanual
  type: object
  fields: [Address, Mask, Gateway, NameServers]
- id: network_device_lan_ip6configmanual
  type: object
  fields: [Address, Prefix, Gateway, NameServers]

Events

- id: property_changed
  description: Notification sent by server on subscribed property change
  payload: '{"jsonrpc": "2.0", "method": "property.changed", "params": {"property": [{"<property>": <value>}]}}'
- id: signal_callback
  description: Notification sent by server for subscribed signals
  payload: '{"jsonrpc": "2.0", "method": "signal.callback", "params": {"signal": [{"<signal>": {<args>}}]}}'
- id: modelupdated
  description: Signal sent when objects appear/disappear
  payload: '{"jsonrpc": "2.0", "method": "signal.callback", "params": {"signal": [{"introspect.objectchanged": {"object": "<obj>", "newobject": true}}]}}'
- id: notification_emitted
  description: New notification pushed to client
- id: notification_dismissed
  description: Notification dismissed
- id: system_performed
  description: Emitted when one or more reset domains complete
- id: system_identificationchanged
  description: Identification value changed
- id: system_license_licensechanged
  description: License changed
- id: network_added
  description: New network device added
- id: network_removed
  description: Network device removed
- id: image_processing_warpgrid_changed
  description: Warp grid changed (no payload)
- id: image_processing_warpgrid_gridchanged
  description: Warp grid changed (with grid payload)
- id: image_processing_warp_file_listchanged
  description: Warp file list changed
- id: image_processing_blend_file_listchanged
  description: Blend file list changed
- id: image_processing_blacklevel_file_listchanged
  description: Black level file list changed
- id: image_testpattern_added
  description: New test pattern added
- id: image_testpattern_changed
  description: Test pattern changed
- id: image_testpattern_removed
  description: Test pattern removed
- id: image_testpattern_file_listchanged
  description: Test pattern file list changed
- id: image_connector_edid_listchanged
  description: EDID list changed for any connector
- id: ui_settings_added
  description: New UI setting key/value added
- id: ui_settings_changed
  description: UI setting value updated
- id: ui_settings_removed
  description: UI setting key removed

Macros

# Documented multi-step sequences in source
- id: enable_file_warp
  label: Enable file-based warp (3 steps)
  steps:
    - action: image_processing_warp_enable
    - upload: "POST http://<address>/api/image/processing/warp/file/transfer (curl -F file=@warp.xml)"
    - action: image_processing_warp_file_select
      params: {file: warp.xml}
    - action: image_processing_warp_file_enable
- id: enable_file_blend
  label: Enable file-based blend (3 steps)
  steps:
    - upload: "POST http://<address>/api/image/processing/blend/file/transfer (curl -F file=@mask.png)"
    - action: image_processing_blend_file_select
      params: {file: mask.png}
    - action: image_processing_blend_file_enable
- id: enable_file_blacklevel
  label: Enable file-based black level (3 steps)
  steps:
    - upload: "POST http://<address>/api/image/processing/blacklevel/file/transfer (curl -F file=@blacklevel.png)"
    - action: image_processing_blacklevel_file_select
      params: {file: blacklevel.png}
    - action: image_processing_blacklevel_file_enable
- id: power_on_safely
  label: Power on only if state permits
  notes: Source recommends verifying system.state is standby or ready before issuing system.poweron
  steps:
    - query: system_state
    - action: system_poweron
- id: power_off_safely
  label: Power off only if state permits
  notes: Source recommends verifying system.state is on before issuing system.poweroff
  steps:
    - query: system_state
    - action: system_poweroff
- id: wake_from_eco
  label: Wake projector from ECO state
  notes: ECO state requires special wake - wake-on-LAN, remote, keypad, or serial :POWR1
  steps:
    - action: wake_eco_serial

Safety

confirmation_required_for:
  - system_reboot
  - system_reset
  - system_resetall
  - optics_setlensid
  - system_license_option_flexbrightness_setmaximumlightoutput
  - system_license_option_flexbrightness_setmaximumlightoutputcode
interlocks: []
# UNRESOLVED: no formal interlock procedures stated in source; only practical recommendations to verify state before power transitions

Notes

JSON-RPC 2.0 protocol; property names use dot notation (lowercase, JavaScript-like). Notification messages have no id and require no response. Continuous property.set without waiting for confirmation is discouraged. File uploads use HTTP POST curl -F file=@<file> http://<address>/api/<path>/file/transfer. Source-connector naming: strip non-word characters and lowercase the source name. ECO state is a true low-power mode requiring wake-on-LAN, IR remote, keypad, or serial ":POWR1\r".

Provenance

source_domains:
  - audiogeneral.com
source_urls:
  - "https://www.audiogeneral.com/barco/UDX%20Series/JSON_ReferenceGuide.pdf"
retrieved_at: 2026-04-29T08:34:51.425Z
last_checked_at: 2026-06-02T21:47:54.840Z

Verification Summary

verdict: verified
checked_at: 2026-06-02T21:47:54.840Z
matched_actions: 182
action_count: 182
confidence: medium
summary: "All 182 spec actions traced to source. (3 unresolved item(s) noted in Known Gaps.)"

Known Gaps

- "specific model numbers in \"Barco Series\" not enumerated in source; spec covers the family-level Pulse API"
- "no formal interlock procedures stated in source; only practical recommendations to verify state before power transitions"
- "firmware version compatibility not stated; model-specific behavior (presence of DMX, illumination type laser vs LED vs UHP) varies per projector model and must be introspected at runtime via `introspect`; authentication code values are not published in source; HDR boost / CLO availability varies by license (system.license.option.flexbrightness); specific voltage/current specs not stated"

From the AI4AV catalog (https://ai4av.net) · ODbL-1.0