---
title: "Administration of large projects using FTP (legacy)"
canonical: "https://docs.cuesystem.com/space/CVCBP/504856612/Administration%20of%20large%20projects%20using%20FTP%20(legacy)"
format: markdown
---
---

This functionality is intended for large projects where Multi Configuration is used. This feature is available from Cue Visual Composer and firmware version 12.10. Multi Configuration enables to **clone of one project to more installations, which differs by IP addresses and Magic Names**. This is useful, for example, when many rooms with the same equipment in the building can be controlled by the same control system program/project.

For proper use of Multi Configuration, provide the following steps:

> Macro (toc)

# Create support for IP-controlled devices

If IP-controlled devices are used in the project, you need to prepare a section of **XPL code** that allows you to **change the IP addresses** of the controlled devices depending on the **project instance**.

**One way** to do this is described in the following section. As an example, an IP-controlled CUE device called tapCUE-4 and an IP-controlled HDMI switcher are used

The driver of the controlled device must offer a function that allows the IP address to be set. In the case of tapCUE-4, this is the function [https://cue.atlassian.net/wiki/spaces/CVCHELP/pages/524353698/tapCUE-4#InitCommunication](https://cue.atlassian.net/wiki/spaces/CVCHELP/pages/524353698/tapCUE-4#InitCommunication).

The following example shows how to implement the IP address setting for tapCUE-4 depending on the Magic Name controller.

```visualbasic
Private Process Autoexec()
Var myMagicName As Text[64]

  GetMagicName(myMagicName)
  Select MyMagicName
    Case "Controller_room1"
		TouchscreenKeypad1.InitCommunication("192.168.1.13")
		Switcher1.SetIPAddress("192.168.1.14")
	Case "Controller_room2"
		TouchscreenKeypad1.InitCommunication("192.168.1.23")
		Switcher1.SetIPAddress("192.168.1.24")
  	// other rooms
	Case "Room n"
  End Select

  //...	
		
End Process
```

# Create Multi Configuration

<details>
<summary>Use table in CVC </summary>

Steps are as follows:

1. Open the project, from which you want to create Multi Configuration.
2. Tap „Multi Configuration“ in the menu „Project“.
3. Click the button „New Configuration“. Select the name for the new configuration (e.g. „room1“).
4. Now in the table view double-click to field Magic Name and IP Address and fill in the required value.
5. Repeat steps 3 and 4 for each configuration.

> ℹ️ All units must have a **unique **Magic Name. The Magic Names entered in the Admin Websites of the respective units must be the same as the Magic Names used in the Multi Configuration.

Example multi-configuration with two configurations „room1” and „room2”.

![image](media://8eb31a3a-1ecf-464b-99d9-3cdf6f92164b)
</details>

<details>
<summary>Use JSON file describing Multi Configuration</summary>

Optionally the multiconfiguration can be described by a **JSON file** that can be imported into CVC. The JSON file must be in **UTF8 encoding**.

See the following example how the JSON file is structured. There are **two configurations** (room1, room2) for the project. The project includes one controller and one touch panel. 

> ℹ️ All units must have a **unique **Magic Name. The Magic Names entered in the Admin Websites of the respective units must be the same as the Magic Names used in the Multi Configuration.

```json
{
"Type":"MultiConfiguration",
"Version":1,
"Configurations":
  [
    {
    "Name":"room1",
    "CUEunits":
      [
      {
      "InstanceName":"Controller",
      "MagicName":"Controller_room1",
      "IPAddress":"192.168.1.11"
      },
      {
      "InstanceName":"TouchPanel",
      "MagicName":"TouchPanel_room1",
      "IPAddress":"192.168.1.12"
      }
      ]
    },
    {
    "Name":"room2",
    "CUEunits":
      [
      {
      "InstanceName":"Controller",
      "MagicName":"Controller_room2",
      "IPAddress":"192.168.1.21"
      },
      {
      "InstanceName":"TouchPanel",
      "MagicName":"TouchPanel_room2",
      "IPAddress":"192.168.1.22"
      }
      ]
    }
  ]
}
```

If you finished the JSON file creation, provide the following steps:

1. Open the project, from which you want to create Multi Configuration.
2. Tap „Multi Configuration“ in the menu „Project“.
3. Tap “Import from JSON …” and select the appropriate file.

Example multi-configuration with two configurations „room1” and „room2”.

![image](media://8eb31a3a-1ecf-464b-99d9-3cdf6f92164b)
</details>

# Update project instances

<details>
<summary>Update from CVC</summary>

If you have finished the Multi Configuration, you can update the individual instances of the project in the CVC. Steps are as follows:

1. Go to the Final section of the CVC.
2. In the Configuration scroll down list select appropriate instance.
3. Tap „Upload“.
4. Repeat steps 2 and 3 for all configuration described in the Multi Configuration table.
</details>

<details>
<summary>Update using FTP(S) server</summary>

This feature enables the storage of compiled projects on the FTP(S) server, then controllers automatically check, if on the server appears newer project version and update it. Also, firmware is automatically updated using this way. Configuration files for customizing the projects can be stored on the FTP server too. In this case, the download of these configuration files must be part of the XPL application.

> ℹ️ Server with SFTP protocol is not supported.

The following diagram clearly shows the stages of preparing an update using an FTP server.

![image](media://89fc35d1-2be0-47a8-8dcd-c67b6f9d192c)

## How to use FTP(S) server

#### Create files for FTP(S) server:

1. . Click the „Final“ button. In the left bottom corner tap „Export As“ and choose „Applications and firmware to folder for FTP server“. Applications for <Master> configuration are not exported. The <Master> configuration servers as a master source for other configurations only.
2. In the next dialog box select the folder on your PC to store files and choose the time, when the project upgrade will be updated from FTP(S) server by units. Then press the buttons OK. It creates a subfolder named by name of your project with internal subfolders „Applications“ and „Firmwares“.    
Example: The name of your project is „Example_Ftp.cvcp“. You select folder C:\Export“to export the files. When you press the button OK you will have the following folders:   
C:\Export\Example_Ftp\Applications   
C: \Export\Example_Ftp\Firmwares

#### Copy data to FTP(S) server part: 

Copy exported folder with content (Applications, Firmwares subfolders) to any folder on FTP(S) server.  Please remember the destination folder on FTP(S) server. 

Example: Copy exported folder „Example_Ftp” with content to folder „Dst” on FTP(S) server.  

If you want to use configuration files for customizing the projects, we recommend placing it in a separate subfolder created in the same place, as folders Applications, and Firmwares are located. 

#### CUEunit Web Admin / Runtime part: 

1. Open web admin of all CUE units (controllers, touch panels), which are managed using FTP(S) server
2. Select Configuration/Identification
3. Set the unit Magic name to match the magic name from the multi-configuration.  
Example:
4. Select FTP section
5. Enter the address of your FTP(S) server by IP address or URL. If your server supports FTPS, we recommend enforcing it by the „require FTPS“ checkbox for security reasons. If your server supports FTPS you can also enforce verification of the server certificate. If the certificate is signed by your root certification authority, you have to add it to the admin web „Trusted root CA“ page.
6. Enter user name and password to access the FTP(S) server.
7. Fill in the „Application base folder“ field. This is the folder, where subfolders „Applications“ and „Firmwares“ are stored.  
Example: If you copied exported folder „Example_Ftp” with content to folder „Dst” on FTP(S) server.  Enter „Dst/Example_Ftp” to the „Application base folder“ field.
8. Select Applications section
9. Start application from FTP server
10. The status of the application from the FTP server is visible on the page Application.
</details>