Keypad Configuration
The showrunner™ program includes several pre-built keypad types suitable for a wide variety of applications. In addition to standard keypad types, showrunner™ supports custom "X-Type" keypad configurations. Custom keypads can be configured from the showrunnerHUB™ Web Interface, or they can be manually added to the config and enabled using the XPanel Touchscreen interface. The SHOWRUNNER™ Keypad Types page page lists all the available built-in keypad types for the most common keypad models:
It is recommended to use built-in keypad types whenever possible, as configuring custom (X-Type) keypads is a more complex and time-consuming process. If custom keypad programming is required, there are several methods of configuring custom actions detailed in subsequent sections.
Built-In Keypad Configuration
showrunnerHUB™
XPanel
Custom (X-Type) Keypad Configuration
The showrunner™ X-Type keypad is a customizable keypad type available for Cameo, Horizon, GLPPA-KP, and Zūm Wired keypads. See
for a list of possible keypad layouts for all keypad types. It is recommended to customize keypads using the showrunnerHUB™ UI whenever possible, as keypads which have been manually customized in the configuration will be missing certain attributes that are required to allow them to be subsequently editable from the showrunnerHUB™ UI.showrunnerHUB™
Downloadable instructions for configuring X-Type keypads from the showrunnerHUB™ UI are available
.Custom keypads can be configured from the showrunnerHUB™ Web Interface, or they can be manually added to the config and enabled using the XPanel Touchscreen interface.
The table below is a comprehensive list of actions which can be used to manually configure X-Type keypads from the SrConfig.json file. The table was generated using showrunner™ v3.019, but can be viewed for any version of showrunner™ by connecting to a processor running the desired version of showrunner™ and running the command: sr sh ac
Note that actions with "None" listed under "Triggers" are read-only and are only able to be used for keypad or keyswitch feedback.
X-Type Templates
Below is a table of possible actions for X-Type keypads (taken from the SHOWRUNNER™ Keypad Types page.
-Type Actions TableType | Action | Action Description | Reference Property | Reference Required | Triggers | Supported Properties |
EDmxReceiver | Disable | Turns off E-DMX Receiver | n/a | False | Digital, Analog | n/a |
EDmxReceiver | Enable | Turns on the E-DMX Receiver | n/a | False | Digital, Analog | n/a |
EDmxReceiver | UpdateLoadsDisable | Disables the transfer of E-DMX Values to hardware loads | n/a | False | Digital, Analog | n/a |
EDmxReceiver | UpdateLoadsEnable | Enables the transfer of E-DMX Values to hardware loads | n/a | False | Digital, Analog | n/a |
GlobalActions | CctSourceSensor | Select which sensor the system will accept CCT values from | SensorId | True | Digital, Analog | 'SensorId':(Integer)'Id of the sensor to use as reference' |
GlobalActions | DemandResponseOff | Turns demand response off system wide | n/a | False | Digital, Analog | n/a |
GlobalActions | DemandResponseOn | Turns demand response system wide | n/a | False | Digital, Analog | n/a |
GlobalActions | Execute | Executes the global action | ActionId | True | Digital, Analog | 'ActionId':(Integer)'Action to recall' |
GlobalActions | ExecuteLastEvent | Executes the last event that fired before the current time globally and in each group | n/a | False | Digital, Analog | Global':(Boolean)'Recall last global event' 'GroupUniqueIds':(String)'Limits group IDs to those specified in the list. Specify n/a if all groups or comma separated list of UniqueIDs' |
GlobalActions | Log | Adds an entry to the system log | n/a | False | Digital, Analog | Message':(String)'Message to add to the log' 'Severity':(String)'Severity, default to 'Notice' if not specified. Valid values: Notice | Warn | Error | Exception' |
GlobalActions | MasterOff | Turns off areas system wide | n/a | False | Digital, Analog | n/a |
GlobalActions | MasterOn | Turns On areas system wide | n/a | False | Digital, Analog | n/a |
GlobalActions | MasterOverrideOff | Deactivates the system wide override | n/a | False | Digital, Analog | n/a |
GlobalActions | MasterOverrideOn | Activates the system wide override | n/a | False | Digital, Analog | n/a |
GlobalActions | NodeOff | Turns off areas system wide | n/a | False | Digital, Analog | 'NodeId':(String)'GUID of the Node' |
GlobalActions | NodeOn | Turns On areas system wide | n/a | False | Digital, Analog | 'NodeId':(String)'GUID of the Node' |
GlobalActions | RemoteGlobalExecute | Execute a global action on a remote system | n/a | False | Digital, Analog | GlobalActionId':(Integer)'Global Action Id on the Remote System to execute' 'RemoteSystemId':(Integer)'System ID of the Remote System' |
GlobalActions | SchedulerDisable | Disables the scheduler | n/a | False | Digital, Analog | n/a |
GlobalActions | SchedulerEnable | Enables the scheduler | n/a | False | Digital, Analog | n/a |
GlobalActions | TagOff | Turns off areas system wide | n/a | False | Digital, Analog | 'TagId':(String)'GUID of the Tag' |
GlobalActions | TagOn | Turns On areas system wide | n/a | False | Digital, Analog | 'TagId':(String)'GUID of the Tag' |
Load | CctLower | Lowers the CCT for a CCT load | n/a | False | Digital, Analog | n/a |
Load | CctRaise | CctRaises the light level on the load | n/a | False | Digital, Analog | n/a |
Load | CctRaiseLower | Raises/Lowers the CCT on the load | n/a | False | Digital, Analog | n/a |
Load | CctStop | Stop CCT raise/lower on the load | n/a | False | Digital, Analog | n/a |
Load | Disable | Turns off the load and prevents it from being controlled | n/a | False | Digital, Analog | n/a |
Load | Enable | Enables the load and allows normal operation | n/a | False | Digital, Analog | n/a |
Load | Lower | Lowers the load | n/a | False | Digital, Analog | n/a |
Load | LowerScene | Lowers all loads that belong to a scene | SceneId | True | Digital, Analog | 'SceneId':(Integer)'Scene Number to raise' |
Load | Off | Turns off the load | n/a | False | Digital, Analog | n/a |
Load | On | Turns on the load | n/a | False | Digital, Analog | n/a |
Load | OnWithTimeout | Turns on the load for a specified time | Timeout | False | Digital, Analog | 'Timeout':(Integer)'Timeout in seconds' |
Load | OverrideDisable | Deactivates override on the load | n/a | False | Digital, Analog | n/a |
Load | OverrideEnable | Activates override on the load | n/a | False | Digital, Analog | n/a |
Load | Raise | Raises the light level on the load | n/a | False | Digital, Analog | n/a |
Load | RaiseLower | Raise/Lowers the light level on the load | n/a | False | Digital, Analog | n/a |
Load | RaiseLowerScene | Raises/Lowers all loads that belong to a scene | SceneId | True | Digital, Analog | 'SceneId':(Integer)'Scene Number to raise/lower' |
Load | RaiseScene | Raises all loads that belong to a scene | SceneId | True | Digital, Analog | 'SceneId':(Integer)'Scene Number to raise' |
Load | RecallScene | Recalls the specified scene on this load | SceneId | False | Digital, Analog | 'SceneId':(Integer)'Scene Number to recall' |
Load | ReleaseScene | Releases the scene from the load, functionally turning off any loads that are included in the scene | SceneId | True | Digital, Analog | 'SceneId':(Integer)'Scene Number to recall' |
Load | SceneToggle | SceneToggle switches between two scenes on a load | OnScene | True | Digital, Analog | OffScene':(Integer)'Scene used when toggle triggers the off state' 'OnScene':(Integer)'Scene used when toggle triggers the on state' |
Load | SetCct | Recalls the specified Cct on this load | Cct | True | Digital, Analog | Cct':(Integer)'Cct to recall' 'FadeTime':(Double)'Fade time to recall level over' |
Load | SetLevel | Recalls the specified level on this load | Level | True | Digital, Analog | FadeTime':(Double)'Fade time to recall level over' 'Level':(Integer)'Level to recall' |
Load | SetLevelByByte | Recalls the specified level on this load as a byte | Level | True | Digital, Analog | FadeTime':(Double)'Fade time to recall level over' 'Level':(Integer)'Level to recall as a byte' |
Load | Stop | Stop raise/lower on the load | n/a | False | Digital, Analog | n/a |
Load | StopScene | Releases the scene from the load, functionally turning off any loads that are included in the scene | SceneId | True | Digital, Analog | 'SceneId':(Integer)'Scene Number to recall' |
Load | Toggle | Toggles the load | n/a | False | Digital, Analog | n/a |
LoadController | OverrideDisable | Deactivates override on the load controller | n/a | False | Digital, Analog | n/a |
LoadController | OverrideEnable | Activates override on the load controller | n/a | False | Digital, Analog | n/a |
LoadController | RecallScene | Recalls the specified scene on this load | SceneId | False | Digital, Analog | 'SceneId':(Integer)'Scene Number to recall' |
LoadController | ReleaseScene | Releases the specified scene on this load controller | SceneId | False | Digital, Analog | 'SceneId':(Integer)'Scene Number to Release' |
OutputSignal | Disable | Disables the output signal | n/a | False | Digital, Analog | n/a |
OutputSignal | Enable | Enables the output signal | n/a | False | Digital, Analog | n/a |
PartitionSensor | Combined | Reports the sensor is combined | n/a | False | None | n/a |
PartitionSensor | Disable | Disables the paritition sensor | n/a | False | Digital, Analog | n/a |
PartitionSensor | Divided | Reports the sensor is Divided | n/a | False | None | n/a |
PartitionSensor | Enable | Enables the partition sensor | n/a | False | Digital, Analog | n/a |
PartitionSensor | ModeAuto | Sets the sensor to auto mode | n/a | False | Digital, Analog | n/a |
PartitionSensor | ModeCombined | Sets the sensor to combined mode | n/a | False | Digital, Analog | n/a |
PartitionSensor | ModeDivided | Sets the sensor to divided mode | n/a | False | Digital, Analog | n/a |
Photocell | AboveThreshold | Photocell reading is above the threshold (it's bright out) | n/a | False | None | n/a |
Photocell | BelowThreshold | Photocell reading is below the threshold (it's dark out) | n/a | False | None | n/a |
Photocell | Disable | Disables the photocell sensor | n/a | False | Digital, Analog | n/a |
Photocell | Enable | Enables the photocell sensor | n/a | False | Digital, Analog | n/a |
Shade | Close | Closes the shade | n/a | False | Digital, Analog | n/a |
Shade | JogClose | Jog Close the shade | JogTime | True | Digital, Analog | 'JogTime':(Integer)'Time to Jog in ms' |
Shade | JogOpen | Jog Open the shade | JogTime | True | Digital, Analog | 'JogTime':(Integer)'Time to Jog in ms' |
Shade | Lower | Lowers the shade | n/a | False | Digital, Analog | n/a |
Shade | NextPreset | Steps to the next preset on the shade, goes back to start if at end | n/a | False | Digital, Analog | n/a |
Shade | Open | Opens the shade | n/a | False | Digital, Analog | n/a |
Shade | PreviousPreset | Steps to the Previous preset on the shade, goes back to end if at start | n/a | False | Digital, Analog | n/a |
Shade | Raise | Raises the shade | n/a | False | Digital, Analog | n/a |
Shade | SetPosition | Sets the position of the shade | Position | True | Digital, Analog | 'Position':(Integer)'Position of the shade 0-65535' |
Shade | Stop | Stop raise/lower on the load | n/a | False | Digital, Analog | n/a |
Shade | Toggle | Toggles the shade between open and close | n/a | False | Digital, Analog | n/a |
LoadGroup | Disable | Turns off the load and prevents it from being controlled | n/a | False | Digital, Analog | n/a |
LoadGroup | Enable | Enables the load and allows normal operation | n/a | False | Digital, Analog | n/a |
LoadGroup | Lower | Lowers the load | n/a | False | Digital, Analog | n/a |
LoadGroup | Off | Turns off the load | n/a | False | Digital, Analog | n/a |
LoadGroup | On | Turns on the load | n/a | False | Digital, Analog | n/a |
LoadGroup | OnWithTimeout | Turns on the load group for a specified time | Timeout | False | Digital, Analog | 'Timeout':(Integer)'Timeout in seconds' |
LoadGroup | OverrideDisable | Deactivates override on the load | n/a | False | Digital, Analog | n/a |
LoadGroup | OverrideEnable | Activates override on the load | n/a | False | Digital, Analog | n/a |
LoadGroup | Raise | Raises the light level on the load | n/a | False | Digital, Analog | n/a |
LoadGroup | RaiseLower | Raise/Lowers the light level on the load | n/a | False | Digital, Analog | n/a |
LoadGroup | RaiseLowerScene | Raises/Lowers all loads that belong to a scene | SceneId | True | Digital, Analog | 'SceneId':(Integer)'Scene Number to raise/lower' |
LoadGroup | RecallScene | Recalls the specified scene on this load | SceneId | False | Digital, Analog | 'SceneId':(Integer)'Scene Number to recall' |
LoadGroup | ReleaseScene | Releases the scene from the load, functionally turning off any loads that are included in the scene | SceneId | True | Digital, Analog | 'SceneId':(Integer)'Scene Number to recall' |
LoadGroup | SceneToggle | SceneToggle switches between two scenes on a load | OnScene | True | Digital, Analog | OffScene':(Integer)'Scene used when toggle triggers the off state' 'OnScene':(Integer)'Scene used when toggle triggers the on state' |
LoadGroup | SetCct | Recalls the specified Cct on this load | Cct | True | Digital, Analog | 'Cct':(Integer)'Cct to recall' |
LoadGroup | SetLevel | Recalls the specified level on this load | Level | True | Digital, Analog | FadeTime':(Double)'Fade time to recall level over' 'Level':(Integer)'Level to recall' |
LoadGroup | Stop | Stop raise/lower on the load | n/a | False | Digital, Analog | n/a |
LoadGroup | StopScene | Stops the raise/lower on any load that is included in the scene | SceneId | True | Digital, Analog | 'SceneId':(Integer)'Scene Number to affect' |
LoadGroup | Toggle | Toggles the load | n/a | False | Digital, Analog | n/a |
ShadeGroup | Close | Closes the shade | n/a | False | Digital, Analog | n/a |
ShadeGroup | NextPreset | Steps to the next preset on the shade, goes back to start if at end | n/a | False | Digital, Analog | n/a |
ShadeGroup | Open | Opens the shade | n/a | False | Digital, Analog | n/a |
ShadeGroup | PreviousPreset | Steps to the Previous preset on the shade, goes back to end if at start | n/a | False | Digital, Analog | n/a |
ShadeGroup | Stop | Stop raise/lower on the load | n/a | False | Digital, Analog | n/a |
BaseKeypad | Disable | Disables the keypad | n/a | False | Digital, Analog | n/a |
BaseKeypad | Enable | Enables the keypad | n/a | False | Digital, Analog | n/a |
BaseKeypad | EnableToggle | Toggles Enable for the keypad | n/a | False | Digital, Analog | n/a |
BaseKeypad | MasterRaiseLowerReference | Evaluates to see if the referenced HostGlobalId is in the master raise/lower list | GlobalIds | True | None | 'GlobalIds':(String)'GlobalIds to reference when comparing to see if master raise/lower is active. Use comma/dash separated list of numbers.' |
Area | CancelTimeout | Cancel Timeout operation | n/a | False | Digital, Analog | n/a |
Area | ExtendOccupancyTimeoutSetting | Extend the Occupancy Timeout Setting in the area | Timeout | True | Digital, Analog | 'Timeout':(Integer)'Timeout in seconds' |
Area | Lower | Lowers the area | n/a | False | Digital, Analog | n/a |
Area | LowerScene | Lowers all loads that belong to a scene | SceneId | True | Digital, Analog | 'SceneId':(Integer)'Scene Number to lower' |
Area | OccupancyMode | Changes the occupancy mode of an area | Mode | True | Digital, Analog | 'Mode':(String)'Name of the mode' |
Area | Occupied | Reports the occupied status of an area | n/a | False | None | n/a |
Area | Off | Turns off the area | n/a | False | Digital, Analog | n/a |
Area | On | Turns on the area | n/a | False | Digital, Analog | n/a |
Area | OnWithTimeout | Turns on the area for a specified time | Timeout | False | Digital, Analog | 'Timeout':(Integer)'Timeout in Seconds' |
Area | OverrideDisable | Deactivates override on the area | n/a | False | Digital, Analog | n/a |
Area | OverrideEnable | Activates override on the area | n/a | False | Digital, Analog | n/a |
Area | Raise | Raises the light level on the area | n/a | False | Digital, Analog | n/a |
Area | RaiseLower | Raise/Lowers the light level on the area | n/a | False | Digital, Analog | n/a |
Area | RaiseLowerScene | Raises/Lowers all loads that belong to a scene | SceneId | True | Digital, Analog | 'SceneId':(Integer)'Scene Number to raise/lower' |
Area | RaiseScene | Raises all loads that belong to a scene | SceneId | True | Digital, Analog | 'SceneId':(Integer)'Scene Number to raise' |
Area | RecallLastLevel | Turns RecallLastLevel the area | n/a | False | Digital, Analog | n/a |
Area | RecallScene | Recalls the specified scene on this load | SceneId | False | Digital, Analog | 'SceneId':(Integer)'Scene Number to recall' |
Area | ReleaseScene | Releases the scene from the load, functionally turning off any loads that are included in the scene | SceneId | True | Digital, Analog | 'SceneId':(Integer)'Scene Number to recall' |
Area | SceneCycle | SceneCycle steps through a list of scenes | OnScene | True | Digital, Analog | OnScene':(Integer)'Scene used to indicate feedback' 'SceneList':(String)'Comma and dash delimited list of scenes to cycle through' |
Area | SceneToggle | SceneToggle switches between two scenes on an area | OnScene | True | Digital, Analog | OffScene':(Integer)'Scene used when toggle triggers the off state' 'OnScene':(Integer)'Scene used when toggle triggers the on state' |
Area | SetCct | Recalls the specified Cct on this area | Cct | True | Digital, Analog | 'Cct':(Integer)'Cct to recall' |
Area | SetCctAuto | Sets the CCT Mode to auto | n/a | False | Digital, Analog | n/a |
Area | ShadeClose | Close All Area Shades | n/a | False | Digital, Analog | n/a |
Area | ShadeOpen | Open All Area Shades | n/a | False | Digital, Analog | n/a |
Area | ShadeStop | Stop All Area Shades | n/a | False | Digital, Analog | n/a |
Area | Stop | Stop raise/lower on the area | n/a | False | Digital, Analog | n/a |
Area | StopScene | Stops the raise/lower on any load that is included in the scene | SceneId | True | Digital, Analog | 'SceneId':(Integer)'Scene Number to affect' |
Area | Toggle | Toggles the area on/off | n/a | False | Digital, Analog | n/a |
Keyswitch | Active | Reports the keyswitch state | n/a | False | Digital, Analog | n/a |
Keyswitch | Disable | Disables the keyswitch | n/a | False | Digital, Analog | n/a |
Keyswitch | Enable | Enables the keyswitch | n/a | False | Digital, Analog | n/a |
Occupancy | Disable | Disables the occupancy sensor | n/a | False | Digital, Analog | n/a |
Occupancy | Enable | Enables the occupancy sensor | n/a | False | Digital, Analog | n/a |
Occupancy | Occupied | Reports the occupied status of an occupancy sensor | n/a | False | None | n/a |