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.
Keypad Configuration Options
Keypads in showrunner™ can be configured using either the XPanel UI or the showrunnerHUB™ UI. Both user interfaces allow for enabling/disabling keypads, changing the keypad area assignment, and modifying the keypad type.
If a keypad is manually enabled or disabled through the Keypad Configuration menu, it will stay in that enabled or disabled state until something else (e.g. a scheduled event or a global action) occurs that changes its status. For this reason, it is only recommended to enable or disable keypads through the Keypad Configuration menu for testing purposes. During normal operation, keypads should be enabled and disabled using Scheduled Events unless t
Note that while it is possible to use the XPanel UI to change a keypad from a standard keypad type to a custom X-Type keypad, defining custom functions is only possible through the showrunnerHUB™ UI or by editing the configuration manually. When a keypad is changed into an X-Type keypad using the XPanel UI, the keypad will perform any actions that are defined in the configuration. If no actions are defined, then it will not perform any functions.
showrunnerHUB™
To
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.
XPanel
Standard sh
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.X-Type Templates
Below is a table of possible actions for X-Type keypads (taken from the SHOWRUNNER™ Keypad Types page.
X-Type Actions Table
Type | 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 |