If the initialization of panel takes much time (about 5 minutes)

The AMX controller is an NI-3100. The initialization takes about 5 minutes (give or take). The interface hangs first and then starts to receive all statuses at once. After the initialization everything works OK
The problem was the Intercom Module.
Remove the iPad running the iRidium from the intercom and it no longer freeze at startup
iRidium doesn't support an AMX intercom.

Support for TP5

TP5 projects will be supported at the future.
Time limit for it create  is undefined now.

Multiple AMX processor licensing

If you have a system with two or more AMX processors ...

This system should work with two processor with different system number, even if they are on the same network. You can make the Site license work with both processors.

- If you have two panels, each of which connects to its own controller, then you will need 2 Site licenses (one for each processor). The panel connects to the licensed controller (by its IP), checks its serial number and works.

- If you have to set two panels connected to both processors at the same time, you cannot do it with TP4, but CAN do it with iRidium GUIEditor. The project configured to work with 2 processors need only one Site license (for one processor), the second one will work automaticly when the firstworks.

- If you just need a Device License then it doesn't matter what controller it connects to. The Device license is assigned to the ID of the control panel it works on.

Switching between Wi-Fi and 3G for AMX

iRidium panels can connect to the АМХ controller in the local network or via the Internet. For switching between Wi-Fi (local network) and 3G (Internet, remote connection) it is required to create buttons which will initiate change of the connection settings. At that two variants are possible:

1. If the project is created in TPDesign4, then for changing the connection settings you should use the command which is formed in TPDesign4 (Button Command Output) or can be sent to iRidium panels from the АМХ controller:

Syntax of the command for switching properties in TPDesign4: IR_PARAMETERS-<host>,<port>,<login>,<password>,<panel_id>

2. If the project is created in iRidium GUI Editor then for changing the connection settings you can use the iRidium Script command which is formed in the Script Editor tab of iRidium GUI Editor.
Syntax of the command for switching properties in iRidium GUI Editor:

IR.GetDevice("AMX").SetParameters({Host: "<host>", Port: "<port>", DeviceID: "<panel_id>",
Login: "<login>", Password: "<password>"});

You can read more about it here

Sending AMX commands (push/hold/release/string/command) from JS Code

Please try this project describes how to send an AMX specific commands from JS Code


Send a command to Global Cache from the script


If the command is already created in the device tree (built-in drivers):

If you want to form the command string inside the script:


Take part in webinars of iRidium Academy to receive more information about working with equipment using iRidium Script.

Let’s say you have GC-100-12, and some RS232-Device is connected to the output Serial 2. RS232-Device has a set of commands described in the driver (in output Commands).

So in order to activate the command what should you write?

One GC-100-12 module consists of 3 transports (as it works with 3 different devices at a time):

  • port 4998 – IR commands, system data, relay control
  • port 4999 – Serial 1
  • port 5000 – Serial 2

Thus, to refer to different ports, you will need to describe the device differently from the standard AV driver.

.Send command to GC:

IR.GetDevice("Global Cache").Send(['DATA'], <TRANSPORT ID>)

is 0, 1 or 2 - it is the number of TCP transport created by GC driver

0 = TCP transport on port 4998 (IR commands, system data, relays)

1 = TCP transport on port 4999 (Serial 1)

2 = TCP transport on port 5000 (Serial 2)

.Set command to GC:

IR.GetDevice("Global Cache").Set("COMMAND", "")

"COMMAND" have to be created on the GC output

Example 1 (.Send and .Set command to Serial output):

var device = IR.GetDevice("Global Cache");
IR.AddListener(IR.EVENT_ONLINE , device, function() 
   device.Send(['POWER_ON', '\r\n'], 1); // to Serial 1
   device.Send([0x00, 0x00, 0x00, 0x0D], 2); // to Serial 2
   device.Set("POWER_ON", ""); // Command from the tree

Example 2 (.Send IR command to IR Output):

var device = IR.GetDevice("Global Cache");
IR.AddListener(IR.EVENT_ONLINE , device, function() 
    var command1 = 'sendir,1:1,1,36127,1,1,96,31,17,16,16,16,16,32,16,32,49,32,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,32,17,16,16,16,16,16,32,16,16,16,16,16,16,16,16,32,32,16,16,16,16,16,16,16,16,32,17,16,16,16,16,16,32,16,4624';
IR command has a following syntax:

'sendir,<connectoraddress>,<ID>,<frequency>,<repeat>,<offset>,<command sequence>'
see the iTach API for details


To receive the feedback from Global Cache with COM port and process it with JS, please use the construction:

IR.AddListener(IR.EVENT_RECEIVE_TEXT, IR.GetDevice("Global Cache"), function(text, id)
   if (id == 0)
      IR.Log("system data: "+ text);   
   else if (id == 1)
      IR.Log("COM1 data: "+ text); 
   else if (id == 2)
      IR.Log("COM2 data: "+ text); 

function (text, id)

text - the data received from equipment

id - is 0, 1 or 2, it is the number of TCP transport created by GC driver

0 = TCP transport on port 4998 (IR commands, system data, relays)

1 = TCP transport on port 4999 (Serial 1)

2 = TCP transport on port 5000 (Serial 2)

Send command to AV driver from Level or Edit-Box item

For example, you need to send the HEX string which contains volume level and part of this string is constant and the other part which represents the volume level changes from 0 to 100.

For example: $25,$50,$30,$31,xx  where хх is a required volume level from 0 to 100 (in HEX format).

Another example is the ASCII string 'VALUE хх' where хх is also a required volume level from 0 to 100 (in DEC).
These values should be sent from Levels or Editbox (not from separate Buttons). It can be implemented with the help of iRidium script


function Level_ASCII() {
var Packet = "VOLUME " + IR.GetItem("Page 1").GetItem("Item 6").Value + '\r\n';
IR.GetDevice("AV & Custom Systems (TCP)").Send([Packet]);

- this function is called Level_ASCII. It can be activated with the help of the command Script Call (Level_ASCII) in the Release event of the Level item.

If your command includes a ASCII string and you should send a Value in ASCII format (for example: 'SET LEVEL XX',$0A), use this script:

// -------- to send a Volume Value from the Level
var Msg = "SET LEVEL "; //This is the string with our command without volume value
var Packet;
IR.AddListener(IR.EVENT_ITEM_RELEASE,IR.GetItem("Page  1").GetItem("Item 1"),function() //This event will be active when you  release the level-button
  Packet = Msg+IR.GetVariable("Drivers.GC-100-12:Serial  1.Volume").toString()+'\n';   //Here we add the volume value to our  command
//IR.Log("Sended message = "+Packet)
  IR.GetDevice("GC-100-12:Serial 1").Send([Packet]); //here we send the result string to device

This commands takes the slider position at the moment of its release and writes VALUE xx \r\n inside the command and then send the complete command to the AV & Custom Systems (TCP) driver.

Forming commands in НЕХ works the same way but with the data converting from DEC to HEX. Please see the example.


Alternative sending of AV commands from one button

You can send data strings to your equipment with the help of Trigger Button in the iRidium interface and the script module (see example in the attachment). Sending of this or that string depends on the current state of Trigger Button.
Selection of the Trigger button item and forming of the outgoing commands are performed in the script.


Configuring XBMC 12

Look at the attached screenshots configure your setting exactly the same way.
Make sure that if you are running XBMC on windows that your firewall allows XBMC access (even if the firewall is disabled).
Image 7221

Image 7222


Send a command to AV equipment automatically on project start

In the project attached to the question you can find a script example which make it possible.
if this command is in the list of GC-100 Commands:

IR.AddListener(IR.EVENT_ONLINE , IR.GetDevice("GC-100-12:Serial 1"), function() {
IR.GetDevice("GC-100-12:Serial 1").Set("CONNECT", ""); 
//IR.Log('online and sent');
if this command is NOT in the list of GC-100 Commands:
IR.AddListener(IR.EVENT_ONLINE , IR.GetDevice("GC-100-12:Serial 1"), function() {
IR.GetDevice("DEVICE").Send(['SYSTEM CONNECT', '\r\n']);
//IR.Log('online and sent');

AV & Custom Systems (UDP) - connection of 2 drivers

If you have to communicate with 2 UDP devices but can't connect with one them with:

[00:00:02.418]   CCustomDevice(2): StartConnect()
[00:00:07.426]   CCustomDevice(2): Time of waiting for connection is over!
[00:00:07.441]   CCustomDevice(2): StartConnect()
[00:00:12.464]   CCustomDevice(2): Time of waiting for connection is over!
It occurs only if 2 devices communicate with the same local port.

Please change a local port of one of devices to the different value. It is not fales the connection with remote equipment.

PUT command via HTTP Driver

in iRidium Script available:

in GUI Editor available:

read example:

Listen to UDP packets

If you have a device and it broadcasts a UDP packet to the multicast address on a specific port, client can not listen it by the address with AV driver.
You have to set the IP address of broadcasting device and listen to data from it, not from all the network.

Global Cache IP2IR: problem with short commands sending

"I have perfectly working AMX IRL file for my SONY Bravia TV (from AMX IR devices). I have also some discrete codes from remotecentral.com
for the same one - also working with AMX devices right way. When I export codes from AMX IRL file using IRFile or Vert app, on following import do IRL file I can see, that HEX codes are OK - AMX IREdit app shows me warning, that I'm trying to import duplicate code - and it means, that are the same=OK. Discrete codes from remotecentral.com I alredy have in HEX format.
But, when I import these working HEX codes using iConvert to iRidium app, my codes are NOT WORKING with IP2IR unit... Of course, I'm using
the right method, described in manuals - one time with headers (replacing missing data - mod-addr,connaddr,repeatcount), one time
without headers (with setting: disable header = false). Only codes from GC IR database included with iRidium GUI app for SONY TV are working - but they are totally different from my, learned or downloaded from remotecentral.com and working codes!"

As I found out, problem is with Sony codes - they are too short. In GC I must repeat my code at least 2x and then it starts work. Problem is especially with Sony codes, I have confirmed this info also from Global Cache support. AMX devices send these codes by default for 0.5 second (if code is shorter,
AMX automatically repeats it), so there is difference in comparison with GC, which takes by default only one repetition and send it.

GC-100 & iTach Relay switching, triggering

For new version of GC driver (V2.2 and later)
You can use an item type "Trigger Button" with the value 0/1. Drag the relay command to the trigger buton with this options:

Image 7205

For old version of GC driver (V2.1 and older)

You can use the script module in the attachment to implement switching of GC-100 or iTach relay from the closed condition to the open one and back with the help of one button.

 It monitors the current relay state and depending on it activates the command of relay closing or opening. In order to activate trigger switching you need to activate the option of monitoring the relay state and switching with the help of the ScriptCall function in macros editor. The function is assigned to the Button type graphic item.


If the Apple TV IR codes from GC database doesn't work

Unpin the current IR remote related with this Apple TV.
If the physical remote pinned to Apple TV, you cannot control it from any other remote, the control from Global Cache doesn't work.

G4 support

G4 protocol is not supported by iRidium.

Control the HDL-BUS Pro via the Internet?

You can control it via the Inet or Locally.
Any HDL module with the actual firmware supports different connection modes:
- Local (with the broadcast address like
- Remote Server (when iRIdium connects to the HDL thrue the remote HDL server or directly via the internet)

Curtains control with HDL

A few days ago I installed the curtains controller from HDL, I had no problem with the installation or with the basic configuration, them go up, down and stop perfectly.
The questions are:
1) How can I setup a button to turn the shutter? The shutter rotate when the motor works in the direction opposite to the last movement for 2 seconds.
2) I can make a curtain opens, for example 40%, with the touch of one button? How do I configure this?
Better yet, I can control the shutter button with a level?
1. Yes, You can use Macros Delay(2000) in Programming Tab or Scritps Command .Set for activate channel and IR.SetTimeout for Delay
2. can not be done 
3. Yes, You can use Level Min = 0, Max = 2 and in Programming Tab send Value of Level in Send Token (Send to Driver Group Macros)