As part of the development around our Scavenger Hunt, we also built a cloud-based remote control system for the show. This allows us to remotely control ShowMon from anywhere in the world. The project is a Python script hosted in Azure Functions. When a command is triggered on the web, it sends an API call to the script. The script stores that command (along with a GUID key) into an Azure blob database.
On the ShowMon side in Q-SYS, there is a seperate API endpoint that Q-SYS polls every 10 seconds. If there is a command waiting in the Blob database, Azure returns that command to Q-SYS and it is compared against the GUID. If both match, then Q-SYS processes the command and issues a notification to the system to run the command. If there are multiple commands queued, it will run through each command until there are none left.