Automator - IP Control | MUSE
In this video, you’ll be introduced to IP-based control in MUSE Automator and learn how to communicate with external devices using network protocols like TCP. We’ll walk through configuring nodes to send commands and receive responses from a network AV decoder over a TCP connection. You’ll also see how to build a flow that updates device states and uses returned data to drive real-time UI feedback. By the end, you’ll understand how to integrate IP-controlled devices and create responsive, network-driven automation workflows.
What You’ll Learn:
• Fundamentals of IP-based control in MUSE Automator
• Configuring TCP connections for external device communication
• Sending commands and receiving responses over the network
• Building flows to control IP-enabled AV devices
• Using returned data to drive real-time UI feedback
• Creating responsive, network-driven automation systems
Hello, and welcome to this video on IP Control in Muse Automator. The Network node palette of Muse Automator contains nodes used for sending, receiving, and handling data over network protocols. These nodes let flows communicate with external systems, devices, web services, and other applications using standard networking methods such as HTTP, TCP, UDP, and WebSockets.
In this video we will be making a TCP connection to a network AV decoder and using the Direct Control API of the decoder to change the stream number. In this example, our project is already setup with a Controller, a Control Panel, and two UI Control nodes, one for each button on our Touch Panel.
We will now add a Change node to our canvas and configure it with the string we want to send to our decoder which is ‘set:1’. We will duplicate this change node for our second button and use the command ‘set:2’. These 2 nodes will then be wired to our UI Control nodes.
The next step is to create the TCP connection to our decoder. For this we will use a TCP Request node. The TCP Request node is chosen because it allows us to both send messages to our devices as well as receive messages from it. If a TCP Out node was used, we could send messages to our device, but we would not be able to receive any message from it.
Double click the TCP Request node to open the node settings. We will enter the IP address of our decoder into the server field, the port number 50001, choose a return type of String, a close type of Never – keep connection open, and press Done. Now wire both change nodes to the input of this TCP request, add a debug to the output, and Deploy the project.
We can now test this flow and see in the Debug sidebar of Automator we are receiving responses from the decoder that tell us the stream was set and we can see the stream number changing in N-Able. The thing we do not have right now is any button feedback. We can use the responses we receive to give us true feedback based on which stream is routed.
Now we will add a Switch node that is wired to the output of the TCP node. In the settings of the Switch node we will create 2 rules. The first rule will be Contains the string of ‘Set stream to:1’ and the second will be Contains the string of ‘Set stream to:2’.
The output of the first rule will be wired to a UI Feedback node that turns on feedback of the button named Stream 1 and that node will be wired to a second UI Feedback node that turns off feedback on the button named Stream 2.
We will do the opposite for the output of rule 2 and use UI Feedback nodes that turn on Stream 2 button feedback and turn off Stream 1.
We can now Deploy the project and test the flow. Now we can see that our stream number is changing when we press each button and our button feedback is turning on and off based on the messages we are receiving from the TCP connection to our decoder.