Skip to content

Overview

Erizos Studio supports integration with the Elgato Stream Deck for faster and more intuitive control.
This feature allows operators to trigger actions, send commands, and receive feedback directly on the Stream Deck device.

Below you will find examples of how to:

  • set text labels on Stream Deck buttons,
  • use Font Awesome Icons on buttons,
  • handle button press events sent back from the device.

These examples use WebSocket payloads, making it easy to configure and customize the Stream Deck for your production workflow.

Stream Deck Examples

Set Text Label on Device

To set a text value on a button on the Stream Deck device send the following payload over WebSocket:

1
2
3
4
5
6
7
8
9
{
    "type": "button_fill",
    "data": {
      "keyIndex": 4,
      "label": "Example",
"bgRgb": "#000000",
      "fgRgb": "#00ff7eff"
    }
  }
Property Description Type Default Value
keyIndex button’s index to set, 0 is the first key on the top left number 0
label text value that will appear on the button string
bgRgb background color of the button hex #000000
fgRgb foreground color (text color) hex #FFFFFFFF

Set Font Awesome Icon on Device

To set an Icon value on a button on the Stream Deck device send the following payload over WebSocket:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
{
    "type": "button_svg",
    "data": {
      "keyIndex": 1,
      "label": "TAKE_PAGE",
      "name": "play",
      "style": "solid",
"bgRgb": "#00ff7eff",
      "fgRgb": "#00ff7eff"
    }
  }
Property Description Type Default Value
keyIndex button’s index to set, 0 is the first key on the top left number 0
label fallback text that will appear on the button string
name name of the Font Awesome Icon string (FA icon Name)
style Font Awesome style string (enum: solid/regular/light/thin) default
bgRgb background color of the button hex #000000
fgRgb foreground color (text color) hex #FFFFFFFF

On Device Button Press

When a button or slider is changed on the Stream Deck device, Agent will send the following payload to all clients connected to the WebSocket:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
{
  "keyIndex": {
    "type": "button",
    "row": 0,
    "column": 0,
    "index": 0,
    "hidIndex": 0,
    "feedbackType": "lcd",
    "pixelSize": {
      "width": 72,
      "height": 72
    }
  },
  "action": "down",
  "timestamp": "2025-09-10T12:13:44.343Z"
}
Property Description Type Default Value
keyIndex.type what element was changed on the device string button
keyIndex.row row number of the button pressed number
keyIndex.column column number of the button pressed number
keyIndex.index index of the button in the grid number
keyIndex.hidIndex button index that was pressed number
keyIndex.feedbackType feedback type of the display string lcd
keyIndex.pixelSize.width button width in pixels number 72
keyIndex.pixelSize.height button height in pixels number 72
action action that was taken string (enum: up/down)
timestamp when the action was taken DateString