Changing a preset

A couple of steps are needed to perform a preset change in our system.

  • Getting a list of spaces and presets

  • Patching a selected space with the desired preset

That data can be fetched from the interactive API or other HTTP request methods.

Getting a list of spaces

This is done through the GET /spaces method. Here is a sample data output. You can try it out yourself.

{
  "1ca6407b-05f7-4bee-ac93-ec8c19879749": {
    "name": "Conference breakout",
    "presets": {
      "023c3d35-5d5c-4def-aea2-3ae07c88ddae": {
        "name": "Preset 1 for Conference breakout"
      },
      "75258a79-f949-44e2-b248-519665a404f2": {
        "name": "Preset 2 for Conference breakout"
      }
    },
    "active_preset_id": "023c3d35-5d5c-4def-aea2-3ae07c88ddae",
    "active_environmental_conditions_id": null
  },
  "1d32edb0-4a56-4571-a6c5-49050ca06d51": {
    "name": "Main Hall",
    "presets": {
      "23d6cd0e-5b53-460b-9202-b152538850c0": {
        "name": "Preset 2 for Main Hall"
      },
      "51fa103c-44bb-4ccd-96f7-4c0c2d90c34f": {
        "name": "Preset 3 for Main Hall"
      },
      "9d2514db-0cf6-4cdf-86fc-362f16e3e6d7": {
        "name": "Preset 1 for Main Hall"
      }
    },
    "active_preset_id": "23d6cd0e-5b53-460b-9202-b152538850c0",
    "active_environmental_conditions_id": null,
    "environmental_conditions": {
      "temperature_celsius": 20,
      "atmospheric_pressure_pascal": 101325,
      "humidity_percentage": 50
    }
  },
  "e37c777e-a4b4-4edb-b9dc-d28a497517cf": {
    "name": "Food court",
    "presets": {
      "daa1d51e-9e16-47d7-b142-d6e921acf9bc": {
        "name": "Preset 1 for Food court"
      }
    },
    "active_preset_id": null,
    "active_environmental_conditions_id": null
  }
}

In the response above, you can already see the list of available spaces (“Conference breakout,” “Main Hall,” and “Food Court”) and their respective presets. Each space and Preset is referenced by a unique identifier (UUID).

For this example, let’s examine the “Main Hall”. Its ID is 1d32edb0-4a56-4571-a6c5-49050ca06d51.


  "1d32edb0-4a56-4571-a6c5-49050ca06d51": {
    "name": "Main Hall",
    "presets": {
      "23d6cd0e-5b53-460b-9202-b152538850c0": {
        "name": "Preset 2 for Main Hall"
      },
      "51fa103c-44bb-4ccd-96f7-4c0c2d90c34f": {
        "name": "Preset 3 for Main Hall"
      },
      "9d2514db-0cf6-4cdf-86fc-362f16e3e6d7": {
        "name": "Preset 1 for Main Hall"
      }
    },
    "active_preset_id": "23d6cd0e-5b53-460b-9202-b152538850c0",
    "active_environmental_conditions_id": null,
    "environmental_conditions": {
      "temperature_celsius": 20,
      "atmospheric_pressure_pascal": 101325,
      "humidity_percentage": 50
    }
  },

It has three available presets, and the currently active preset is Preset 2 for Main Hall.

Changing the active preset

We will use the PATCH /spaces/{space-id} method for this operation. We will change the active preset to Preset 1 for Main Hall. The method takes a request body with the following format:

{
  "active_preset_id": "51fa103c-44bb-4ccd-96f7-4c0c2d90c34f"
}

Using cURL

cURL is a program available on Windows 10 and above, MacOS, and Linux OS. It provides a simple way to interact with HTTP endpoints and test API requests. Whenever you use one of the API Methods in the interactive documentation, it will display the corresponding request as a cURL command. This makes it easy to copy, paste, and iterate the request.

curl -X 'PATCH' \
  'http://localhost:6789/spaces/1d32edb0-4a56-4571-a6c5-49050ca06d51' \
  -H 'accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
  "active_preset_id": "51fa103c-44bb-4ccd-96f7-4c0c2d90c34f"
}'

You should expect a response with the confirmed patched space when you send that.

Using QLab

You need to create a Script Cue and include the following code. The script is simply an AppleScript version of the cURL command.

do shell script "curl -X 'PATCH' 'http://localhost:6789/spaces/1d32edb0-4a56-4571-a6c5-49050ca06d51' -H 'accept: application/json'  -H 'Content-Type: application/json' -d '{
\"active_preset_id\": \"23d6cd0e-5b53-460b-9202-b152538850c0\" }'"

Last updated

Logo

© 2024 HOLOPLOT GmbH. All rights reserved.