MUSE Controller-to-Controller Programming with Python
Table of Contents
Overview:
Programming Controller-to-Controller (C2C) in MUSE is less about the actual programming, and more about the configuration of the communication. Previously in the NX environment, you would connect one NX to another and every single device, port, channel, level, etc. would be reported to the main controller. In a MUSE system, each device created in the ‘main’ MU connects and controls a single device in the second MU.
Prerequisites
To do this, you need three pieces of information. You need the Name of the secondary MU, the IP address of the MU (optional), and the Instance ID of the device you are controlling. To find this information, login to the webpage of the second MU, the Name and IP address will be located on the Home page of the controller.

The Instance ID of the device you will be controlling is located on the System -> Devices page. The Instance ID is the name located on the list on the left hand side of the page, or under the Instance ID field on the right hand side of the page when you click on a device in the device list.

Procedure
When creating the device on your ‘main’ controller:
- Go to System -> Device and click the Create button.
- Select the com.amx.mojo.hcontrol.controller option from the Driver ID dropdown
- Enter a unique Instance ID for this controller’s device
- For the Controller’s Name, use the Name retrieved from the Home page of the secondary controller
- Type in the IP address of the secondary controller (optional)
- In the Target Device’s Instance ID, type in the Instance ID retrieved from the previous controller
- Click Accept
From this point on, programming for the device is like programming any other device on an MU controller. Please see the example code provided in this KB that turns the relay on the secondary MU on/off once per second.
Download:
Table of Contents