diff --git a/01-device-info/Device errors.bru b/01-device-info/Device errors.bru index 859d330..6b1e2e7 100644 --- a/01-device-info/Device errors.bru +++ b/01-device-info/Device errors.bru @@ -9,3 +9,15 @@ post { body: none auth: inherit } + +docs { + # Device Errors + + List active device error messages. + + ## Set Parameters + None. + + ## Response + - `err`: Array of active error messages +} diff --git a/01-device-info/Device software versions.bru b/01-device-info/Device software versions.bru index 72d79ab..60f8d31 100644 --- a/01-device-info/Device software versions.bru +++ b/01-device-info/Device software versions.bru @@ -9,3 +9,15 @@ post { body: none auth: inherit } + +docs { + # Device Software Versions + + Get device software version numbers. + + ## Set Parameters + None. + + ## Response + - `vers`: Integer array of version numbers +} diff --git a/01-device-info/LED Temps.bru b/01-device-info/LED Temps.bru index 0f2aa94..af8524c 100644 --- a/01-device-info/LED Temps.bru +++ b/01-device-info/LED Temps.bru @@ -6,6 +6,26 @@ meta { post { url: {{base_url}}/ltemps - body: none + body: formUrlEncoded auth: inherit } + +body:form-urlencoded { + ~index: 0 +} + +docs { + # Device LEDs Temperatures + + Read LED engine temperature values and reset max values. + + ## Set Parameters + - `index` (optional): Index of value to reset (0-2) + + ## Response + If LED temperature readings are not supported: empty JSON array `[]`. + - `lt0-lt2`: Current temperatures (C/F based on unit, float) + - `ltm0-ltm2`: Max temperatures + - `ltmr0-ltmr2`: Max resettable temperatures + - `status`: 0 if success +} diff --git a/01-device-info/Remote device info.bru b/01-device-info/Remote device info.bru index 5595591..200fba9 100644 --- a/01-device-info/Remote device info.bru +++ b/01-device-info/Remote device info.bru @@ -11,15 +11,18 @@ post { } docs { - # Device Status + # Remote Device Info Get device information without auth. - ## Response Fields + ## Set Parameters + None. + + ## Response - `dmxa`: DMX address + 1 - - `dmxp`: DMX preset (Mode X) + - `dmxp`: DMX preset (Mode X, channels in parentheses) - `dn`: Device name - `stat`: Status / 1 if some error else 0 - `rdm`: RDM UID - - `rdmi`: 1 if device is identifiing over RDM else 0 + - `rdmi`: 1 if device is identifying over RDM else 0 } diff --git a/01-device-info/device-state.bru b/01-device-info/device-state.bru new file mode 100644 index 0000000..fed8a93 --- /dev/null +++ b/01-device-info/device-state.bru @@ -0,0 +1,32 @@ +meta { + name: Device State + type: http + seq: 8 +} + +post { + url: {{base_url}}/devsta + body: none + auth: inherit +} + +docs { + # Device State + + Returns device state and status summary. + + ## Set Parameters + None. + + ## Response + - `devs`: Device status (e.g., "active") + - `sm`: Standby/mode flag (integer) + - `rains`: Current RAINS status ("WET" or "DRY") + - `maxw`: MAX WET/resettable status ("WET" or "DRY") + - `maxwt`: Last reset timestamp for MAX WET (DD.MM.YYYY HH:MM:SS) + + ## Example + ```json + {"devs":"active","sm":0,"rains":"WET","maxw":"WET","maxwt":"10.11.2025 11:48:08"} + ``` +} diff --git a/01-device-info/device-status.bru b/01-device-info/device-status.bru index 7f1aaa8..9383a96 100644 --- a/01-device-info/device-status.bru +++ b/01-device-info/device-status.bru @@ -15,7 +15,10 @@ docs { Get comprehensive device status information. - ## Response Fields + ## Set Parameters + None. + + ## Response - `dmxa`: DMX address + 1 - `dmxp`: DMX preset (Mode X) - `dmxf`: Preset footprint (X channels) diff --git a/01-device-info/device-supported-commands.bru b/01-device-info/device-supported-commands.bru index a17021a..2804683 100644 --- a/01-device-info/device-supported-commands.bru +++ b/01-device-info/device-supported-commands.bru @@ -11,7 +11,7 @@ post { } body:form-urlencoded { - index: 0 + ~index: 0 } docs { @@ -19,15 +19,15 @@ docs { Use this command first on each device to get supported parameters, labels and configurations. - ## Parameters + ## Set Parameters - `index` (optional): Index of supported command description (0-n) ## Response If index is valid: - `c`: API command name - - `p`: Array of supported parameters + - `p` (optional): Array of supported parameters - `l`: Array of labels for temperatures/timers - - `ra`: Resetable value bitmask + - `ra`: Resettable value bitmask - If index is undefined or >= number of commands: empty JSON + If index is undefined or >= number of commands: empty JSON response } diff --git a/01-device-info/error-dmx-sniffer-status.bru b/01-device-info/error-dmx-sniffer-status.bru new file mode 100644 index 0000000..59c3f75 --- /dev/null +++ b/01-device-info/error-dmx-sniffer-status.bru @@ -0,0 +1,25 @@ +meta { + name: Error/DMX Sniffer/RDM Identify Status + type: http + seq: 7 +} + +post { + url: {{base_url}}/serr + body: none + auth: inherit +} + +docs { + # Error/DMX Sniffer/RDM Identify Status + + Get error and diagnostic status flags. + + ## Set Parameters + None. + + ## Response + - `err`: 1 if some error else 0 + - `dmxsnf` (optional): 1 if DMX sniffer is running else 0 + - `idnt`: 1 if RDM identify is on else 0 +} diff --git a/01-device-info/pressure-test.bru b/01-device-info/pressure-test.bru new file mode 100644 index 0000000..4eed4b0 --- /dev/null +++ b/01-device-info/pressure-test.bru @@ -0,0 +1,27 @@ +meta { + name: Pressure Test + type: http + seq: 10 +} + +post { + url: {{base_url}}/prst + body: formUrlEncoded + auth: inherit +} + +body:form-urlencoded { + ~btn: 1 +} + +docs { + # Pressure Test + + Read pressure test status or control the test. + + ## Set Parameters + - `btn` (optional): 1 = start test, 2 = cancel test + + ## Response + - Status payload used by the device UI (fields may vary) +} diff --git a/01-device-info/standby-mode.bru b/01-device-info/standby-mode.bru new file mode 100644 index 0000000..e1eda2b --- /dev/null +++ b/01-device-info/standby-mode.bru @@ -0,0 +1,24 @@ +meta { + name: Standby Mode + type: http + seq: 9 +} + +post { + url: {{base_url}}/sbm + body: formUrlEncoded + auth: inherit +} + +body:form-urlencoded { + ~s: 0 +} + +docs { + # Standby Mode + + Enter standby mode. + + ## Set Parameters + - `s`: Standby flag (1 = enabled, 0 = disabled) +} diff --git a/02-configuration/blackout-settings.bru b/02-configuration/blackout-settings.bru new file mode 100644 index 0000000..8e1f24a --- /dev/null +++ b/02-configuration/blackout-settings.bru @@ -0,0 +1,36 @@ +meta { + name: Blackout Settings + type: http + seq: 8 +} + +post { + url: {{base_url}}/bl_s + body: formUrlEncoded + auth: inherit +} + +body:form-urlencoded { + ~bldmc: 0 + ~blptm: 0 + ~blprm: 0 + ~blgwm: 0 + ~bltim: 0 +} + +docs { + # Blackout Settings + + Configure blackout behaviors. + + ## Set Parameters + - `bldmc`: Blackout when DMC (0-1) + - `blptm`: Blackout when pan/tilt move (0-1) + - `blprm`: Blackout when prism/colour wheel move (0-1) + - `blgwm`: Blackout when gobo wheel move (0-1) + - `bltim`: Timeout blackout (0-1) + + ## Response + - All parameters as "off"/"on" + - `status`: 0 if success +} diff --git a/02-configuration/colour-settings.bru b/02-configuration/colour-settings.bru index a0bb815..7298b42 100644 --- a/02-configuration/colour-settings.bru +++ b/02-configuration/colour-settings.bru @@ -18,6 +18,8 @@ body:form-urlencoded { ~cmixm: 0 ~chrwh: 0 ~thefs: 0 + ~whip: 0 + ~whip83z: 0 } docs { @@ -33,6 +35,8 @@ docs { - `cmixm`: Colour mixing mode (0-1: RGB/CMY) - `chrwh`: Chromatic white (0-1) - `thefs`: Tungsten effect simulation (0-5: various wattages) + - `whip` (optional): White point (device-specific) + - `whip83z` (optional): White point 8000K (device-specific) ## Response - All parameters as strings or on/off diff --git a/02-configuration/date-time-settings.bru b/02-configuration/date-time-settings.bru new file mode 100644 index 0000000..85d1fbc --- /dev/null +++ b/02-configuration/date-time-settings.bru @@ -0,0 +1,38 @@ +meta { + name: Date/Time Settings + type: http + seq: 12 +} + +post { + url: {{base_url}}/ldt_s + body: formUrlEncoded + auth: inherit +} + +body:form-urlencoded { + ~dtmo: 1 + ~dty: 2026 + ~dtd: 1 + ~dth: 0 + ~dtmi: 0 + ~dts: 0 +} + +docs { + # Date/Time Settings + + Configure device date and time. + + ## Set Parameters + - `dtmo`: Month (1-12) + - `dty`: Year + - `dtd`: Day (1-days in month) + - `dth`: Hour (0-23) + - `dtmi`: Minute (0-59) + - `dts`: Second (0-59) + + ## Response + - `dtmo`, `dty`, `dtd`, `dth`, `dtmi`, `dts` + - `status`: 0 if success +} diff --git a/02-configuration/display-settings.bru b/02-configuration/display-settings.bru index 4ebcea5..f2a25a5 100644 --- a/02-configuration/display-settings.bru +++ b/02-configuration/display-settings.bru @@ -28,7 +28,7 @@ docs { - `dsd`: Display screensaver time (0-10) - `dtl`: Display touchscreen lock (0-10) - `dor`: Display orientation (0-2: normal/inverted/auto) - - `daofft`: Activate off timer (0-1) + - `daofft` (optional): Activate off timer (0-1) ## Response - All parameters with appropriate formats diff --git a/02-configuration/ethernet-reset-defaults.bru b/02-configuration/ethernet-reset-defaults.bru new file mode 100644 index 0000000..66f0bdd --- /dev/null +++ b/02-configuration/ethernet-reset-defaults.bru @@ -0,0 +1,24 @@ +meta { + name: Ethernet Reset Defaults + type: http + seq: 3 +} + +post { + url: {{base_url}}/d_ipnm + body: none + auth: inherit +} + +docs { + # Ethernet Reset Defaults + + Reset IP address and network mask to defaults. + + ## Set Parameters + None. + + ## Response + - `ip`: Default IP address + - `netm`: Default network mask +} diff --git a/02-configuration/ethernet-settings.bru b/02-configuration/ethernet-settings.bru index 96617dc..c8d92fc 100644 --- a/02-configuration/ethernet-settings.bru +++ b/02-configuration/ethernet-settings.bru @@ -17,6 +17,7 @@ body:form-urlencoded { ~emau: 1 ~emas: 1 ~esau: 1 + ~rnscope: scope } docs { @@ -25,13 +26,13 @@ docs { Configure ethernet/network mode. ## Set Parameters - - `emod`: Ethernet mode (0-4, or 0-2 for Promotion devices) - - Labels: disable/ArtNet/gMA1/gMA2/sACN (or DMX/ArtNet/sACN) + - `emod`: Ethernet mode (0-4, or 0-2 for Promotion devices). Labels: disable/ArtNet/gMA1/gMA2/sACN (or DMX/ArtNet/sACN) - `ee2d`: Ethernet to DMX (0-1) - `eanu`: ArtNet universe (0-255) - `emau`: MANet I/II universe (1-256) - `emas`: MANet session ID (1-32) - `esau`: sACN universe (1-32000) + - `rnscope` (optional): RDMNet scope group (1-16 characters, 0-9/a-z/A-Z/-) ## Response - All set parameters as strings/ints diff --git a/02-configuration/graphics-engine.bru b/02-configuration/graphics-engine.bru index f1ae4be..76c3e8b 100644 --- a/02-configuration/graphics-engine.bru +++ b/02-configuration/graphics-engine.bru @@ -33,6 +33,7 @@ docs { - `optm`: Optics module (0-1) ## Response + If graphics engine is not supported: empty JSON array `[]`. - Various string and integer fields - `status`: 0 if success } diff --git a/02-configuration/lamp-settings.bru b/02-configuration/lamp-settings.bru index e5cd44d..5f076b9 100644 --- a/02-configuration/lamp-settings.bru +++ b/02-configuration/lamp-settings.bru @@ -37,6 +37,7 @@ docs { - `lofdm`: Lamp off when DMX missing (0-1) ## Response + If lamp subsystem is not supported: empty JSON array `[]`. - All parameters as strings - `status`: 0 if success } diff --git a/02-configuration/led-engine.bru b/02-configuration/led-engine.bru index fcc8eb7..5b7be8f 100644 --- a/02-configuration/led-engine.bru +++ b/02-configuration/led-engine.bru @@ -29,6 +29,7 @@ docs { - `gamc`: Gamma curve (0-5) ## Response + If LED engine is not supported: empty JSON array `[]`. - `cprj`, `rprj`: Integer values - `colt`, `gamc`: String labels - `status`: 0 if success diff --git a/02-configuration/other-settings.bru b/02-configuration/other-settings.bru index 2b9b964..79711e4 100644 --- a/02-configuration/other-settings.bru +++ b/02-configuration/other-settings.bru @@ -21,6 +21,10 @@ body:form-urlencoded { ~fannl: 50 ~them: 0 ~frq: 0 + ~freq: 0 + ~freqa: 0 + ~gind: 0 + ~gwhm: 0 } docs { @@ -32,13 +36,17 @@ docs { - `mics`: Microphone sensitivity (0-19) - `fanm`: Fan mode (0-1 or 0-3) - `tmpu`: Temperature unit (0-1: F/C) - - `wfiap`: WiFi access point (0-1) - - `fsmo`: Followspot mode (0-3) - - `cpm`: Close proximity mode (0-1) - - `btns`: Buttons setting (0-1) - - `fannl`: Fan noise level (0-100) - - `them`: Theater mode (0-1) - - `frq`: Frequency (0-13951) + - `wfiap` (optional): WiFi access point (0-1) + - `fsmo` (optional): Followspot mode (0-3) + - `cpm` (optional): Close proximity mode (0-1) + - `btns` (optional): Buttons setting (0-1) + - `fannl` (optional): Fan noise level (0-100) + - `them` (optional): Theater mode (0-1) + - `frq` (optional): Frequency (0-13951) + - `freq` (optional): LEDs frequency (device-specific) + - `freqa` (optional): LEDs frequency adjust (device-specific) + - `gind` (optional): Green indicator (device-specific) + - `gwhm` (optional): Green/white mode (device-specific) ## Response - All parameters formatted appropriately diff --git a/02-configuration/pan-tilt-settings.bru b/02-configuration/pan-tilt-settings.bru index 5d05a4c..6981c9a 100644 --- a/02-configuration/pan-tilt-settings.bru +++ b/02-configuration/pan-tilt-settings.bru @@ -31,6 +31,7 @@ docs { - `pte`: Pan/tilt EMS (0-1) ## Response + If pan/tilt subsystem is not supported: empty JSON array `[]`. - All parameters as "off"/"on" or mode strings - `status`: 0 if success } diff --git a/02-configuration/wireless-module.bru b/02-configuration/wireless-module.bru index e01b163..08d3a76 100644 --- a/02-configuration/wireless-module.bru +++ b/02-configuration/wireless-module.bru @@ -22,19 +22,18 @@ docs { ## Set Parameters - `unlink` (optional): Set to 1 to unlink wireless card - ## Response Variants - - **Linked:** + ## Response + Linked: - `lwc`: "linked" - `lws`: Signal strength (0-100%) - **Unlinked:** + Unlinked: - `lwc`: "unlinked" - `lws`: "..." - **Not installed:** + Not installed: - `lwc`: "not installed" - `lws`: "..." - - - `status`: 0 if success + + - `status` (optional): 0 if success } diff --git a/03-counters/Device Hours.bru b/03-counters/Device Hours.bru index 9baf526..97a3e79 100644 --- a/03-counters/Device Hours.bru +++ b/03-counters/Device Hours.bru @@ -15,7 +15,7 @@ body:form-urlencoded { } docs { - # Device hours + # Device Hours Get or reset device hours values. @@ -24,6 +24,6 @@ docs { ## Response - `h0-h3`: Value - - `hr0-hr3`: Resetable value + - `hr0-hr3`: Resettable value - `status`: 0 if success } diff --git a/03-counters/device-temperatures.bru b/03-counters/device-temperatures.bru index 1429c80..b2957bb 100644 --- a/03-counters/device-temperatures.bru +++ b/03-counters/device-temperatures.bru @@ -18,13 +18,29 @@ docs { # Device Temperatures Get or reset device temperature values. + + Temperature labels: + - `t0`: Base + - `t1`: Head + - `t2`: LEDs RGBW + - `t3`: LEDs White ## Set Parameters - - `index` (optional): Index of value to reset (0-3) + - `index` (optional): Reset index + - `0`: Base temperature reset + - `1`: Head temperature reset + - `2`: LEDs RGBW temperature reset + - `3`: LEDs White temperature reset ## Response - `t0-t3`: Current temperatures (C/F based on unit) - - `tm0-tm3`: Max temperatures - - `tmr0-tmr3`: Max resetable temperatures + - `tm0-tm3`: Maximum temperatures + - `tmr0-tmr3`: Resettable maximum temperatures + - `tu`: Temperature unit ("C" or "F") - `status`: 0 if success + + ## Example + ```json + {"t0":30,"t1":29,"t2":29,"t3":33,"tm0":44,"tm1":45,"tm2":45,"tm3":45,"tmr0":44,"tmr1":45,"tmr2":45,"tmr3":45,"tu":"C"} + ``` } diff --git a/03-counters/max-wet-reset.bru b/03-counters/max-wet-reset.bru new file mode 100644 index 0000000..9902696 --- /dev/null +++ b/03-counters/max-wet-reset.bru @@ -0,0 +1,20 @@ +meta { + name: MAX WET Reset + type: http + seq: 3 +} + +post { + url: {{base_url}}/mwres + body: none + auth: inherit +} + +docs { + # MAX WET Reset + + Reset MAX WET (resettable) status. + + ## Set Parameters + None. +} diff --git a/04-network scan/folder.bru b/04-network scan/folder.bru new file mode 100644 index 0000000..98e7894 --- /dev/null +++ b/04-network scan/folder.bru @@ -0,0 +1,3 @@ +meta { + name: 04-network scan +} diff --git a/04-network scan/get-child.bru b/04-network scan/get-child.bru new file mode 100644 index 0000000..ddb267d --- /dev/null +++ b/04-network scan/get-child.bru @@ -0,0 +1,37 @@ +meta { + name: Information About Found Devices + type: http + seq: 2 +} + +post { + url: {{base_url}}/get_child + body: formUrlEncoded + auth: inherit +} + +body:form-urlencoded { + ~i: 0 +} + +docs { + # Information About Found Devices + + Retrieve results from the network scan. + + ## Set Parameters + - `i` (optional): Index of device for sending info back (0-searched devices count) + + ## Response + If `i` is not set: + - `sd`: 0 if scan is done else 1 + - `max`: 1 if max devices reached else 0 + - `c`: Discovered devices count + - `ip`: Discovered device IP address for each index (returned as numbered fields) + + If `i` is set and `i` < devices count: + - `ip`: Discovered device IP address at index `i` + + If `i` is set and `i` >= devices count: + - Empty JSON response +} diff --git a/04-network scan/start-scan.bru b/04-network scan/start-scan.bru new file mode 100644 index 0000000..304e336 --- /dev/null +++ b/04-network scan/start-scan.bru @@ -0,0 +1,23 @@ +meta { + name: Devices on Network Scan + type: http + seq: 1 +} + +post { + url: {{base_url}}/start_scan + body: none + auth: inherit +} + +docs { + # Devices on Network Scan + + Start artpool devices search. + + ## Set Parameters + None. + + ## Response + Empty JSON response. +} diff --git a/bruno.json b/bruno.json index 54cc9fa..bfe8fac 100644 --- a/bruno.json +++ b/bruno.json @@ -1,5 +1,5 @@ { "version": "1", - "name": "Robe Webserver API", + "name": "Robe REAP API", "type": "collection" } \ No newline at end of file diff --git a/collection.bru b/collection.bru index 159b05c..6bbf9f3 100644 --- a/collection.bru +++ b/collection.bru @@ -12,7 +12,7 @@ vars:pre-request { } docs { - # Robe Webserver API + # Robe REAP API ## Setup @@ -22,4 +22,11 @@ docs { 2. **Environment Variables**: Configure these in Bruno: - `base_url`: Your device IP (e.g., `http://2.242.1.2`) + + 3. **Parameters setting**: When setting values on API endpoints, all parameters of the endpoint must be provided in the request. + + ## Capability Discovery + + Device capabilities vary by model/firmware. First call `sup_c` to discover + which parameters are supported, then only send those parameters when setting values. } diff --git a/environments/REAP Environment.bru b/environments/REAP Environment.bru new file mode 100644 index 0000000..49017fa --- /dev/null +++ b/environments/REAP Environment.bru @@ -0,0 +1,3 @@ +vars { + base_url: 2.245.142.124 +}