Keypad Configuration

Version 40.4 by Alexander Mott on 2023/02/08 20:09

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 here.

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 this document 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

 TypeActionAction DescriptionReference PropertyReference RequiredTriggersSupported Properties
EDmxReceiverDisableTurns off E-DMX Receivern/aFalseDigital, Analogn/a
EDmxReceiverEnableTurns on the E-DMX Receivern/aFalseDigital, Analogn/a
EDmxReceiverUpdateLoadsDisableDisables the transfer of E-DMX Values to hardware loadsn/aFalseDigital, Analogn/a
EDmxReceiverUpdateLoadsEnableEnables the transfer of E-DMX Values to hardware loadsn/aFalseDigital, Analogn/a
GlobalActionsCctSourceSensorSelect which sensor the system will accept CCT values fromSensorIdTrueDigital, Analog'SensorId':(Integer)'Id of the sensor to use as reference'
GlobalActionsDemandResponseOffTurns demand response off system widen/aFalseDigital, Analogn/a
GlobalActionsDemandResponseOnTurns demand response system widen/aFalseDigital, Analogn/a
GlobalActionsExecuteExecutes the global actionActionIdTrueDigital, Analog'ActionId':(Integer)'Action to recall'
GlobalActionsExecuteLastEventExecutes the last event that fired before the current time globally and in each groupn/aFalseDigital, AnalogGlobal':(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'
GlobalActionsLogAdds an entry to the system logn/aFalseDigital, AnalogMessage':(String)'Message to add to the log'
'Severity':(String)'Severity, default to 'Notice' if not specified. Valid values: Notice | Warn | Error | Exception'
GlobalActionsMasterOffTurns off areas system widen/aFalseDigital, Analogn/a
GlobalActionsMasterOnTurns On areas system widen/aFalseDigital, Analogn/a
GlobalActionsMasterOverrideOffDeactivates the system wide overriden/aFalseDigital, Analogn/a
GlobalActionsMasterOverrideOnActivates the system wide overriden/aFalseDigital, Analogn/a
GlobalActionsNodeOffTurns off areas system widen/aFalseDigital, Analog'NodeId':(String)'GUID of the Node'
GlobalActionsNodeOnTurns On areas system widen/aFalseDigital, Analog'NodeId':(String)'GUID of the Node'
GlobalActionsRemoteGlobalExecuteExecute a global action on a remote systemn/aFalseDigital, AnalogGlobalActionId':(Integer)'Global Action Id on the Remote System to execute'
'RemoteSystemId':(Integer)'System ID of the Remote System'
GlobalActionsSchedulerDisableDisables the schedulern/aFalseDigital, Analogn/a
GlobalActionsSchedulerEnableEnables the schedulern/aFalseDigital, Analogn/a
GlobalActionsTagOffTurns off areas system widen/aFalseDigital, Analog'TagId':(String)'GUID of the Tag'
GlobalActionsTagOnTurns On areas system widen/aFalseDigital, Analog'TagId':(String)'GUID of the Tag'
LoadCctLowerLowers the CCT for a CCT loadn/aFalseDigital, Analogn/a
LoadCctRaiseCctRaises the light level on the loadn/aFalseDigital, Analogn/a
LoadCctRaiseLowerRaises/Lowers the CCT on the loadn/aFalseDigital, Analogn/a
LoadCctStopStop CCT raise/lower on the loadn/aFalseDigital, Analogn/a
LoadDisableTurns off the load and prevents it from being controlledn/aFalseDigital, Analogn/a
LoadEnableEnables the load and allows normal operationn/aFalseDigital, Analogn/a
LoadLowerLowers the loadn/aFalseDigital, Analogn/a
LoadLowerSceneLowers all loads that belong to a sceneSceneIdTrueDigital, Analog'SceneId':(Integer)'Scene Number to raise'
LoadOffTurns off the loadn/aFalseDigital, Analogn/a
LoadOnTurns on the loadn/aFalseDigital, Analogn/a
LoadOnWithTimeoutTurns on the load for a specified timeTimeoutFalseDigital, Analog'Timeout':(Integer)'Timeout in seconds'
LoadOverrideDisableDeactivates override on the loadn/aFalseDigital, Analogn/a
LoadOverrideEnableActivates override on the loadn/aFalseDigital, Analogn/a
LoadRaiseRaises the light level on the loadn/aFalseDigital, Analogn/a
LoadRaiseLowerRaise/Lowers the light level on the loadn/aFalseDigital, Analogn/a
LoadRaiseLowerSceneRaises/Lowers all loads that belong to a sceneSceneIdTrueDigital, Analog'SceneId':(Integer)'Scene Number to raise/lower'
LoadRaiseSceneRaises all loads that belong to a sceneSceneIdTrueDigital, Analog'SceneId':(Integer)'Scene Number to raise'
LoadRecallSceneRecalls the specified scene on this loadSceneIdFalseDigital, Analog'SceneId':(Integer)'Scene Number to recall'
LoadReleaseSceneReleases the scene from the load, functionally turning off any loads that are included in the sceneSceneIdTrueDigital, Analog'SceneId':(Integer)'Scene Number to recall'
LoadSceneToggleSceneToggle switches between two scenes on a loadOnSceneTrueDigital, AnalogOffScene':(Integer)'Scene used when toggle triggers the off state'
'OnScene':(Integer)'Scene used when toggle triggers the on state'
LoadSetCctRecalls the specified Cct on this loadCctTrueDigital, AnalogCct':(Integer)'Cct to recall'
'FadeTime':(Double)'Fade time to recall level over'
LoadSetLevelRecalls the specified level on this loadLevelTrueDigital, AnalogFadeTime':(Double)'Fade time to recall level over'
'Level':(Integer)'Level to recall'
LoadSetLevelByByteRecalls the specified level on this load as a byteLevelTrueDigital, AnalogFadeTime':(Double)'Fade time to recall level over'
'Level':(Integer)'Level to recall as a byte'
LoadStopStop raise/lower on the loadn/aFalseDigital, Analogn/a
LoadStopSceneReleases the scene from the load, functionally turning off any loads that are included in the sceneSceneIdTrueDigital, Analog'SceneId':(Integer)'Scene Number to recall'
LoadToggleToggles the loadn/aFalseDigital, Analogn/a
LoadControllerOverrideDisableDeactivates override on the load controllern/aFalseDigital, Analogn/a
LoadControllerOverrideEnableActivates override on the load controllern/aFalseDigital, Analogn/a
LoadControllerRecallSceneRecalls the specified scene on this loadSceneIdFalseDigital, Analog'SceneId':(Integer)'Scene Number to recall'
LoadControllerReleaseSceneReleases the specified scene on this load controllerSceneIdFalseDigital, Analog'SceneId':(Integer)'Scene Number to Release'
OutputSignalDisableDisables the output signaln/aFalseDigital, Analogn/a
OutputSignalEnableEnables the output signaln/aFalseDigital, Analogn/a
PartitionSensorCombinedReports the sensor is combinedn/aFalseNonen/a
PartitionSensorDisableDisables the paritition sensorn/aFalseDigital, Analogn/a
PartitionSensorDividedReports the sensor is Dividedn/aFalseNonen/a
PartitionSensorEnableEnables the partition sensorn/aFalseDigital, Analogn/a
PartitionSensorModeAutoSets the sensor to auto moden/aFalseDigital, Analogn/a
PartitionSensorModeCombinedSets the sensor to combined moden/aFalseDigital, Analogn/a
PartitionSensorModeDividedSets the sensor to divided moden/aFalseDigital, Analogn/a
PhotocellAboveThresholdPhotocell reading is above the threshold (it's bright out)n/aFalseNonen/a
PhotocellBelowThresholdPhotocell reading is below the threshold (it's dark out)n/aFalseNonen/a
PhotocellDisableDisables the photocell sensorn/aFalseDigital, Analogn/a
PhotocellEnableEnables the photocell sensorn/aFalseDigital, Analogn/a
ShadeCloseCloses the shaden/aFalseDigital, Analogn/a
ShadeJogCloseJog Close the shadeJogTimeTrueDigital, Analog'JogTime':(Integer)'Time to Jog in ms'
ShadeJogOpenJog Open the shadeJogTimeTrueDigital, Analog'JogTime':(Integer)'Time to Jog in ms'
ShadeLowerLowers the shaden/aFalseDigital, Analogn/a
ShadeNextPresetSteps to the next preset on the shade, goes back to start if at endn/aFalseDigital, Analogn/a
ShadeOpenOpens the shaden/aFalseDigital, Analogn/a
ShadePreviousPresetSteps to the Previous preset on the shade, goes back to end if at startn/aFalseDigital, Analogn/a
ShadeRaiseRaises the shaden/aFalseDigital, Analogn/a
ShadeSetPositionSets the position of the shadePositionTrueDigital, Analog'Position':(Integer)'Position of the shade 0-65535'
ShadeStopStop raise/lower on the loadn/aFalseDigital, Analogn/a
ShadeToggleToggles the shade between open and closen/aFalseDigital, Analogn/a
LoadGroupDisableTurns off the load and prevents it from being controlledn/aFalseDigital, Analogn/a
LoadGroupEnableEnables the load and allows normal operationn/aFalseDigital, Analogn/a
LoadGroupLowerLowers the loadn/aFalseDigital, Analogn/a
LoadGroupOffTurns off the loadn/aFalseDigital, Analogn/a
LoadGroupOnTurns on the loadn/aFalseDigital, Analogn/a
LoadGroupOnWithTimeoutTurns on the load group for a specified timeTimeoutFalseDigital, Analog'Timeout':(Integer)'Timeout in seconds'
LoadGroupOverrideDisableDeactivates override on the loadn/aFalseDigital, Analogn/a
LoadGroupOverrideEnableActivates override on the loadn/aFalseDigital, Analogn/a
LoadGroupRaiseRaises the light level on the loadn/aFalseDigital, Analogn/a
LoadGroupRaiseLowerRaise/Lowers the light level on the loadn/aFalseDigital, Analogn/a
LoadGroupRaiseLowerSceneRaises/Lowers all loads that belong to a sceneSceneIdTrueDigital, Analog'SceneId':(Integer)'Scene Number to raise/lower'
LoadGroupRecallSceneRecalls the specified scene on this loadSceneIdFalseDigital, Analog'SceneId':(Integer)'Scene Number to recall'
LoadGroupReleaseSceneReleases the scene from the load, functionally turning off any loads that are included in the sceneSceneIdTrueDigital, Analog'SceneId':(Integer)'Scene Number to recall'
LoadGroupSceneToggleSceneToggle switches between two scenes on a loadOnSceneTrueDigital, AnalogOffScene':(Integer)'Scene used when toggle triggers the off state'
'OnScene':(Integer)'Scene used when toggle triggers the on state'
LoadGroupSetCctRecalls the specified Cct on this loadCctTrueDigital, Analog'Cct':(Integer)'Cct to recall'
LoadGroupSetLevelRecalls the specified level on this loadLevelTrueDigital, AnalogFadeTime':(Double)'Fade time to recall level over'
'Level':(Integer)'Level to recall'
LoadGroupStopStop raise/lower on the loadn/aFalseDigital, Analogn/a
LoadGroupStopSceneStops the raise/lower on any load that is included in the sceneSceneIdTrueDigital, Analog'SceneId':(Integer)'Scene Number to affect'
LoadGroupToggleToggles the loadn/aFalseDigital, Analogn/a
ShadeGroupCloseCloses the shaden/aFalseDigital, Analogn/a
ShadeGroupNextPresetSteps to the next preset on the shade, goes back to start if at endn/aFalseDigital, Analogn/a
ShadeGroupOpenOpens the shaden/aFalseDigital, Analogn/a
ShadeGroupPreviousPresetSteps to the Previous preset on the shade, goes back to end if at startn/aFalseDigital, Analogn/a
ShadeGroupStopStop raise/lower on the loadn/aFalseDigital, Analogn/a
BaseKeypadDisableDisables the keypadn/aFalseDigital, Analogn/a
BaseKeypadEnableEnables the keypadn/aFalseDigital, Analogn/a
BaseKeypadEnableToggleToggles Enable for the keypadn/aFalseDigital, Analogn/a
BaseKeypadMasterRaiseLowerReferenceEvaluates to see if the referenced HostGlobalId is in the master raise/lower listGlobalIdsTrueNone'GlobalIds':(String)'GlobalIds to reference when comparing to see if master raise/lower is active. Use comma/dash separated list of numbers.'
AreaCancelTimeoutCancel Timeout operationn/aFalseDigital, Analogn/a
AreaExtendOccupancyTimeoutSettingExtend the Occupancy Timeout Setting in the areaTimeoutTrueDigital, Analog'Timeout':(Integer)'Timeout in seconds'
AreaLowerLowers the arean/aFalseDigital, Analogn/a
AreaLowerSceneLowers all loads that belong to a sceneSceneIdTrueDigital, Analog'SceneId':(Integer)'Scene Number to lower'
AreaOccupancyModeChanges the occupancy mode of an areaModeTrueDigital, Analog'Mode':(String)'Name of the mode'
AreaOccupiedReports the occupied status of an arean/aFalseNonen/a
AreaOffTurns off the arean/aFalseDigital, Analogn/a
AreaOnTurns on the arean/aFalseDigital, Analogn/a
AreaOnWithTimeoutTurns on the area for a specified timeTimeoutFalseDigital, Analog'Timeout':(Integer)'Timeout in Seconds'
AreaOverrideDisableDeactivates override on the arean/aFalseDigital, Analogn/a
AreaOverrideEnableActivates override on the arean/aFalseDigital, Analogn/a
AreaRaiseRaises the light level on the arean/aFalseDigital, Analogn/a
AreaRaiseLowerRaise/Lowers the light level on the arean/aFalseDigital, Analogn/a
AreaRaiseLowerSceneRaises/Lowers all loads that belong to a sceneSceneIdTrueDigital, Analog'SceneId':(Integer)'Scene Number to raise/lower'
AreaRaiseSceneRaises all loads that belong to a sceneSceneIdTrueDigital, Analog'SceneId':(Integer)'Scene Number to raise'
AreaRecallLastLevelTurns RecallLastLevel the arean/aFalseDigital, Analogn/a
AreaRecallSceneRecalls the specified scene on this loadSceneIdFalseDigital, Analog'SceneId':(Integer)'Scene Number to recall'
AreaReleaseSceneReleases the scene from the load, functionally turning off any loads that are included in the sceneSceneIdTrueDigital, Analog'SceneId':(Integer)'Scene Number to recall'
AreaSceneCycleSceneCycle steps through a list of scenesOnSceneTrueDigital, AnalogOnScene':(Integer)'Scene used to indicate feedback'
'SceneList':(String)'Comma and dash delimited list of scenes to cycle through'
AreaSceneToggleSceneToggle switches between two scenes on an areaOnSceneTrueDigital, AnalogOffScene':(Integer)'Scene used when toggle triggers the off state'
'OnScene':(Integer)'Scene used when toggle triggers the on state'
AreaSetCctRecalls the specified Cct on this areaCctTrueDigital, Analog'Cct':(Integer)'Cct to recall'
AreaSetCctAutoSets the CCT Mode to auton/aFalseDigital, Analogn/a
AreaShadeCloseClose All Area Shadesn/aFalseDigital, Analogn/a
AreaShadeOpenOpen All Area Shadesn/aFalseDigital, Analogn/a
AreaShadeStopStop All Area Shadesn/aFalseDigital, Analogn/a
AreaStopStop raise/lower on the arean/aFalseDigital, Analogn/a
AreaStopSceneStops the raise/lower on any load that is included in the sceneSceneIdTrueDigital, Analog'SceneId':(Integer)'Scene Number to affect'
AreaToggleToggles the area on/offn/aFalseDigital, Analogn/a
KeyswitchActiveReports the keyswitch staten/aFalseDigital, Analogn/a
KeyswitchDisableDisables the keyswitchn/aFalseDigital, Analogn/a
KeyswitchEnableEnables the keyswitchn/aFalseDigital, Analogn/a
OccupancyDisableDisables the occupancy sensorn/aFalseDigital, Analogn/a
OccupancyEnableEnables the occupancy sensorn/aFalseDigital, Analogn/a
OccupancyOccupiedReports the occupied status of an occupancy sensorn/aFalseNonen/a