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.
TP5 projects will be supported at the future.
Time limit for it create  is undefined now.
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.
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
Please try this project describes how to send an AMX specific commands from JS Code

SendEditBox.irpz

SEND COMMAND

If the command is already created in the device tree (built-in drivers):
http://wiki2.iridiummobile.net/Drivers_API#Set


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

http://wiki2.iridiummobile.net/Drivers_API#Send



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';
    device.Send([command1,0x0D]);
}
IR command has a following syntax:


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



RECEIVE FEEDBACK

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)

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

Example:

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.

ASCII-HEX.irpz
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.

AlternateCommandSendingGC.irpz
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).




http://wiki2.iridiummobile.net/images/c/c2/XBMC_Server_SetParam_1.png
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');
});
SendCommandIfDriverOnline.irpz
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.
in iRidium Script available:
"GET,"
"PUT,"
"POST,"

in GUI Editor available:
"GET,"
"PUT,"
"POST,"

read example:
http://wiki2.iridiummobile.net/Drivers_API#Send
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 255.255.255.255 with AV driver.
You have to set the IP address of broadcasting device and listen to data from it, not from all the network.
"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.
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:



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.

RelayTriggerGC.irpz
RelayTriggeriTach.irpz
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 protocol is not supported by iRidium.
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 255.255.255.255)
- Remote Server (when iRIdium connects to the HDL thrue the remote HDL server or directly via the internet)
Q:
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?
A:
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)