Use VPN Connection with HDL

If you use the VPN connection, you cannot work with HDL using the broadcast data.
Set up the conection with "Internet" or "Remote Server" mode, it will help.

Panel Control

Please read Manual, here you can find a properties of Control Panel commands.

Read channel value in JavaScript

Please try: 

IR.AddListener(IR.EVENT_TAG_CHANGE , IR.GetDevice("HDL-BUS Pro Network (UDP)"), function(name,value)
{
   if (name == "Relay 1:Channel 3") {
         IR.Log("Channel 3"+value);      
   }
});

iRidium for KNX sends many commands to KNX IP router at startup

when I run iRidium application on the panel, it controls (sends request to) all the KNX devices in the KNX line. I mean I have only one button and one single command object assigned to the  Press event of the button, but it seems that the application sends many commands to KNX IP router and tries to control (interview) all devices (on/off all lights etc.) at startup.
I simply imported the ETS file in GUI Editor and used one of the commands. I use KNX IP router for application. Remember that it happens only at the startup of the application. What can cause this?

It is normal. iRidium requests all feedbacks written in the Feedbacks tab of the driver at project start. It is how the start initialization of the project happens.
In the Feedback tab of driver you need to leave only those feedbacks from which you need to receive feedback. Feedbacks available for reading should have the Read field marked in the ЕТS settings.

Secure external acces (VPN)

The only solution to let clients control there home externally in a secure way is using a VPN.
The are plenty of routers on the market that act as VPN gateway to the local network.  Be wary of the cheaper products because the VPN throughput is usually quite low.  Also some  manufacturers will supply their VPN routers with some sort of licensing scheme based on the number VPN connections allowed.  You should also consider the fact devices that use multicast \ broadcast packets may not work unless otherwise specified by the router.  Even if they do say that there is no guarantee without testing.   Typical example for this would be UPNP based devices, so Sonos, Apple TV, iTunes (Bonjour based).

BAOS Error: No item found

If you see this messages in iRidium log:

[00:00:03.011]   CBAOS2xTCPDevice(1): Error: No item found 100
[00:00:04.540]   CBAOS2xTCPDevice(1): Error: No item found 100
[00:00:06.068]   CBAOS2xTCPDevice(1): Error: No item found 100
This message is not an error, this system message informs you about addresses which was added in your project but wasn't initialized on the BAOS side by some reasons. You can just ignore it.

KNX Time and Date

It is simple to read Date and Time from KNX bus, but you have to use a special script to write a new value to the bus. Please take a look at the attached project.

KNX-DateTime.irpz

Delay on starting iridium application for KNX initialization

"I created a Iridium projekt with KNXip and Modbus TCP connections to a Wago-Controller 750-849 (KNXip) and a 750-880 Controller (Modbus TCP). Everthing works fine.

The project contains about 250 KNX feedbacks. Evertime the application on iPad4/iPhone4 is started, iridium starts the initialization of the feedbacks. This takes about 20 sec. (checked with group adress monitor in ETS).
In this period commands are difficult to send/are not sended.

Is there a possibility to get an information (e.g. token) when the iridium application starts, to trigger a popup ?
It would be helpful to show the information "initialization running, please wait" to the user and simultaniously block the other pages/popups, until initialization has finished.


The easiest way to setup an initialize page is  add a popup to your project that covers the entire screen.  Now add whatever text graphic that will inform the user that they have to wait.  

In the object properties of the popup there is a property called Lifetime,  its measured is milliseconds.  Put your wait time in there.

Now in the properties of the project file, add this new popup to the list of popups that start.
That's it you should have a wait page showing at the start of the project.
Q:
thanks for your proposal but the popup with lifetime limitation appears only if the iridium project is loaded by iridium transfer or if the app on the apple device is really stopped and completely new started. If i just push the Exit-Button on the apple device and afterwards tab the iridium app for starting iridium mobile, the application shows the last page before exit without showing the "information" popup. However the initialization starts every time. Any idea ?
A:
It can be done using a iRidium script.   by attaching a listener to the IR.EVENT_ONLINE event the function in the listener would simply show the wait popup.

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

Schedules for KNX

You can use this Project.

calendar__2_.irpz

BAOS Error: No connection with the bus

"No connection with the bus" means that the BAOS lost the connection with KNX bus. BAOS sends this error it the KNX bus is not connected physically.

send value's of 1 byte to a modbus device

In the editor you can see word, dword and float values, but in some apps like a CoDeSys it is possible to configure a smaller variables like 1 byte.

In the Modbus table of PLC with CoDeSys and any other Modbus-compatible PLC all the data stored in the universal table. This table includes bytes, and when you need to get a 16-bit, you just get 2 slots of this table. So, if you have a 16-bit variable in iRidium and need to read it, you just get 2 bytes and parse it to 1 byte + 1 byte by the next way:

CoDeSys:     | FF | FF |  - two separated registers (addresses)
iRidium got: | FF FF | - only one register (address).

iRidium automaticly converting this data from HEX to DEC, so we get | 255 | 255 |
We have to parse this data back to HEX, divide the low and high byte and convert it back to DEC.

Example:

IR.AddListener(IR.EVENT_TAG_CHANGE,IR.GetDevice("Modbus TCP"),function(item,value) // listener of tag changes for ModBus TCP 
{   
	if (item == "Feedback 1") //set the name of register which should be parsed
		{ 
		// It was DEC value made of 2 bytes in the string format
		var dec2byte = "27542"; 
		// convert it to number, and then in string of 16-bit 
		var hex2byte = parseInt(dec2byte).toString(16); 
		// get the first byte from the string 
		var hexfirst = hex2byte.charAt(0) + hex2byte.charAt(1); 
		// get the second byte drom the string
		var hexsecond = hex2byte.charAt(2) + hex2byte.charAt(3); 
		// get the DEC number from the HEX bytes in string  
		decfirst = parseInt(hexfirst, 16); decsecond = parseInt(hexsecond, 16);  
		IR.Log(decfirst); // first byte
		IR.Log(decsecond); // second byte
});



How to disconnect or reconnect to another Modbus controller

http://wiki2.iridiummobile.net/Multi-design. There you can find the instructions on how to upload several projects on 1 control device. But you can also use the other way: just combine control of several systems in one project. iRidium allows you to add different drivers for connection with different equipment in 1 project and you can display these drivers on different pages of the project. If it is necessary to deactivate some unused systems, you can do it using the SetParameters function (please see the previous e-mail from us). 

You do not need a Device Pro license for the SetParameters function, just a Device license will be enough. You will need a Device Pro license ONLY if you plan to use ready script modules with feedback (Sonos, XBMC, ....)

If you select the Multi-design function then you will need a separate license for each project. If you choose the other option - several drivers in one project - then you can use one license (a standard Device: if you use just one type of equipment or a Full license: if you use different types).

If you need to change IP without closing the project, then it can be done only using scripts. It is easily done - you will have just standard buttons an you can even make an input field (read more).

Modbus Slave, Server mode

This feature implemented. You can use driver "Modbus TCP Server" to make Master-Slave communication between iRidium Clients.

@ModbusServer.irpz
@ModbusClient.irpz

Separation of Particular Bits in Holding Register

Holding or Input registers received from the controller can be separated into particular bits with the help of the following script:

IR.AddListener(IR.EVENT_TAG_CHANGE,IR.GetDevice("Modbus TCP"),function(name,value)
{
   switch (name) {
      case "Address 1": 
         var NewValue = parseInt(value.toString());
         var bit1 = (NewValue >> 0) & 0x1;
         var bit2 = (NewValue >> 1) & 0x1;
      break;
      case "Address 2":
         var NewValue = parseInt(value.toString());
         var bit2 = (NewValue >> 1) & 0x1;
         var bit6 = (NewValue >> 7) & 0x1;       
      break;
   }
});
Read more about Script API:
http://wiki2.iridiummobile.net/index.php/IRidium_Script_API (EN)

Ready samples:
separate bits - read.irpz
separate bits - rw.irpz

Modbus Data Scaling

How to scale incoming values, for or example:
Value 236 degrees, should be shown on screen as 23,6 degrees.
So de value has to be divided by 10, or a function that can shift the decimal point to the left
 
You can do it with help of Script in GUI Editor
http://wiki2.iridiummobile.ru/?title=IRidium_Driver_SDK
http://wiki2.iridiummobile.ru/?title=Drivers_API

Create a new script, initializes devices and make a function for division. The function for division is:

IR.AddListener(IR.EVENT_TAG_CHANGE, IR.GetDevice("Modbus TCP"), function(name,value){   
   if(name == "nameOFchannel") {
        IR.GetItem("Page 1").GetItem("Item 1").Text = (value*0.1).toFixed(1).toString();    
   }
});

All the sample and script is in the attachment (it will work with Modbus controller or simulation tool)
 
MathExample.irpz

Bticino myhome and iridium

documentation for Bticino is not available yet.

We have example project on wiki
It depends what you are trying to control and the UI item type (button, level, etc) will determine whether you send a token or number.
So there are 3 things you need to look at.
In the item properties general tab ( item type, button etc and maybe values (min\max\trigger, etc.)
The programming tab, shows the link between the UI and bticino device and when the link will be activated, so when you press\release etc  the ui item.
Then lastly in the right side, the project device panel. the commands are what is sent to the device and feedbacks is what is received from the device.
That's a quick, quick summary....;
Maybe take a look at one of the other protocols where there is more documentation, like KNX. That will give you a better idea of how to configure iRidium.

BticinoNewEditorTest.irp

Lutron: Grafic Eye, HomeWorks and RadioRa

Lutron has three protocols: Grafic Eye, HomeWorks and RadioRa.

We have developed the Grafic Eye driver. We made it on the c++ and it is located in GUI Editor in the main database (iRidium Base(2.0)).

We did not do drivers for HomeWorks and RadioRa because we do not have any information about them and we do not have devices controlled by HomeWorks and RadioRa . If you want to help us, you can develop them yourself on javascript or you can give us access to the devices via the Internet and we will develop the drivers.

Thank you for your help!

SIP integration with Intercom and domophons

Beginning with V2.1 iRidium supports the SIP protocol for setting up voice communication between iRidium panels, other SIP-clients, other iRidium panels.
iRidium panels work in the SIP-client mode. In order to have connection with Intercom you need to have the set up SIP server. You need to indicate the connection properties in the settings of iRidium SIP-client. iRidium provides only the client part, the server part is selected to the discretion of the integrator. The SIP driver for iRidium V2.1 can be downloaded for free from the iRidium mobile web site.

Look at the information on our wiki