RDM Devices#

Note

The endpoints listed on this page require a project to be loaded on the controller.

All properties described below relating to an RDM device’s status are obtained by the Status Monitor.

RDM Devices Overview#

GET#

Get an overview of RDM devices including their statuses.

GET /api/rdm_devices[?fixture=fixtureNumber][&offline=true][&unpatched=true]

fixture can be used the filter the response to devices patched to a single fixture. Set offline to true to return only offline devices, or set unpatched to true to return only unpatched devices.

One of fixture, offline, or unpatched is required, and no two parameters may be provided together.

Returns a JSON array of objects with the following attributes:

Attribute

Value Type

Description

Value Example

uid

string

RDM device UID

"1234:56789abc"

fixture_number

number

User number of the fixture this device is assigned to, or null if not patched.

123

issues

array of objects

Issues found with this RDM device. See Device Issues.

[{"issue":"address_mismatch","valid":[1,11,51]}]

patch

string

Combined universe key and address (see Universe Key String Format). Only included if status is online.

"dmx:2:101"

rdm

object

RDM parameters cached from the latest status monitor run. Only included if status is online.

{}

status

string

"online", "offline", "loading", or "unknown"

"online"

updated_at

string

ISO 8601-formatted timestamp of the last status update, or null if unknown

2024-06-27T09:30

variant_key

string

A unique identifier for the RDM device variant. See Device Variant String Format.

"25972-517-17170449"

RDM Device#

GET#

Get a single RDM device including its status.

GET /api/rdm_devices/{deviceId}

Returns a JSON object with the same properties as contained in the RDM Devices Overview GET response.

PUT#

Patch an unpatched RDM device.

PUT /api/rdm_devices/{deviceId}/patch

The payload is a JSON object with the following attributes:

Attribute

Value Type

Description

Value Example

action

string

The patch action to perform.

"assign", or "replace"

Assign#

Assign a new RDM device to a fixture. When action is assign, the following additional attributes are required:

Attribute

Value Type

Description

Value Example

fixture_number

number

User number of the fixture this RDM device will be assigned to.

123

Replace#

Replace an offline RDM device. When action is replace, the following additional attributes are required:

Attribute

Value Type

Description

Value Example

target_device_id

string

The RDM UID of the device to replace.

"1234:56789abc"

Device Issues#

The status monitor tracks patch issues for each patched RDM device. The following issues are detected, discriminated by the issue field:

Address Mismatch#

The DMX start address of the RDM device does not match any patched addresses for the parent fixture on the universe upon which it was discovered.

Attribute

Value Type

Description

Value Example

issue

string

Issue type discriminator.

"address_mismatch"

valid

array of integers

Valid DMX start addresses for this device on the current universe.

[1,11,51]

Output Mismatch#

The RDM device was discovered on an output upon which the parent fixture is not patched.

Attribute

Value Type

Description

Value Example

issue

string

Issue type discriminator.

"output_mismatch"

valid

array of strings

Valid outputs for this device. See Universe Key String Format.

["dmx:1:1","riog4:1:2"]

Device Variant String Format#

An RDM device variant string is structured as follows, with each of the 3 tokens formatted as decimal integers.

{manufacturer ID}-{model ID}-{software version ID}

Universe Key String Format#

A universe key string takes the form:

  • protocol:index for protocols dmx, pathport, sacn, art-net;

  • protocol:kinetPowerSupplyNum:kinetPort for protocol kinet;

  • protocol:remoteDeviceType:remoteDeviceNum for protocol rio-dmx;

  • protocol:remoteDeviceType:remoteDeviceNum:port for protocols edn, edn-spi.

Where:

  • kinetPowerSupplyNum is an integer;

  • kinetPort is an integer;

  • remoteDeviceType can be rio08, rio44 or rio80, edn10 or edn20;

  • remoteDeviceNum is an integer;

  • port is an integer.

For example:

  • "dmx:1"

  • "rio-dmx:rio44:1"