Devices such as Video and Audio matrixes can use the same set of inputs and across multiple outputs. Using custom states with an array for the Output, we can create logic within the buttons to indicate which input is currently in use in each location. Follow the process below to add this feature to your User Interface.
Using the Custom States within the System device, create a String state with Possible Values for the Inputs of the switcher. With this State we are going to enable the Array option.
If you have not yet created buttons for the Inputs/Outputs, follow this tutorial on adding buttons to your User Interface
Add the Custom State for Input to the Buttons on the User Interface
In the above image, we added a State Key that references the name of the Output. In this example we used Zone B.
Repeat above steps for the remaining buttons
Once the Set states have been added to buttons, we need to create the Events for each button.
In the Key field, enter the name of the key that was used within the Button. In the above example, we are referencing Zone A.
Once the Watch State has been added, we need to use a Conditional to change the image shown within the User Interface.
Within the IF statement, add the Custom State for Input and add the Key and Value within the popup window
Finish your Conditional statement by adding Update Properties that change the Image on the widget. Use the Pressed or Selected state of the image to your IF, and the Default image to the ELSE
By using Arrays, we can reference the Custom States we create across multiple Outputs, Zones or Devices. We can use these Arrays/Keys within Conditional statements to track the state of your Output, Zones and/or Devices.