irZIX - Infrared gateway to HomeZIX


This latest addition to the HomeZIX arsenal brings the platform to a whole new level, where the A/V system (TV, receiver, DVD player, etc…) can be integrated seamlessly with the rest of your automation devices (appliance modules, dimmers, motion detectors, thermostats, IP cameras, webcams, etc..)


Here are the six simple steps to follow to make it work:

1. Obtain the necessary IR hardware, and then download irZIX (another free upgrade for the growing HomeZIX community).
2. Create a database of Infrared commands you want irZIX to recognize.
3. Export the irZIX database to a HomeZIX script.
4. Customize the script in HomeZIX.
5. Run HomeZIX and connect irZIX to HomeZIX
6. Enjoy.

1. Obtain the necessary IR hardware. HomeZIX currently supports only the USBUIRT, interfacing to a huge range of IR devices. You can order here: If you're not sure about your remote control, you can pretty safely select the 56KHz option. In the future we will support additional infrared I/O hardware.

Download the irZIX software here. This is not an install program. You can place this single executable file anywhere you want to save it (the folder you installed HomeZIX into is a good choice.) Use your HomeZIX's activation key to activate the software. (You can download and try the software to learn and test infrared commands without purchasing HomeZIX. It's just that irZIX won't be able to connect to HomeZIX in this case.)

Please note that the driver for USBUIRT is port-specific, meaning that if you plug the device into a different USB port than the one you used when you first installed it, you will be asked to install the driver again.

2. Create your database of commands. When you first start irZIX, the IR code database is empty. You create a command by right-clicking on the Commands window and selecting "Add Command".


An IR command here can be thought as a button click on your remote control. In general, two things you normally want to do with a command are:

a. Recognize when you press a particular button on your remote control. This enables you to perform an action or sequence of actions when you press the designated button on your remote control. For example, turn on or off the light(s) (Zwave, X10, or Insteon) from your remote control, increase or decrease temperature setting on your thermostat, etc..

b. Retransmit the IR code just like it is being sent from the original remote control. This powerful feature enables the software to learn IR codes and replay later to control devices. For example, with your press of a single button on your receiver's remote control, irZIX can:
  • turn on the cable TV receiver
  • turn on the TV
  • switch the TV input to cable
  • switch the TV channel to Monday Night Football
  • turn the volume way up (like you and the gang are right there in the stadium)
  • dim the lights
irZIX performs all these actions by sending previously learned IR codes to the different devices.

To achieve the above two important functions, you have to tell irZIX to capture the related IR codes in its "Infrared Command" dialog.


As you will see in the picture below, the command's text is the string that will be sent to HomeZIX. HomeZIX will recognize a particular button by receiving its corresponding text string from irZIX. So this text string must be unique within your database.


STEP 1 is where you teach irZIX to recognize when you press a particular button on your remote control (RX code). At run time, when irZIX detects a matched IR code, irZIX can:
- Send the command's text to HomeZIX as explained earlier.
- Simulate mouse actions (movements, left click, double click, and right click)
- Simulate keyboard actions (arrow keys, ENTER, and ESC)
The simulation feature provides an easy and convenient way for you to control your media center software right from the remote control but you can control anything on your desktop, too.

However, recognizing is not enough for reconstructing the IR code. For example, you can look at a beautiful house in an architectural magazine a hundred times and be able to recognize it when you actually see it in real life. However, if you want to build one exactly like it, you will need a lot more information: measurements, foundation, materials, etc… Similarly, if you want irZIX to be able to send the code just like it is being generated from the original remote control, you have to perform STEP 2 successfully (learning the TX Code).

The Repeat count (ranging from 1 to 100) defines how many times irZIX will repeat the TX Code when sending it. For example, for channel browsing, you want to send the code only once. However, you may want to send 5 in a row for increasing or decreasing the volume.

Hints to perform STEP 2 correctly:

- You can find many existing IR codes already documented here:;db=discrete. If you find the right one for your device on the web, then simply copy and paste it into the textbox in STEP 2.

- For a normal remote control (such as VCR, DVD player, Receiver, TV, etc..) after clicking the "Learn TX Code", you have to HOLD the button (not just briefly press and release.)

- The distance between the USBUIRT and the remote control can greatly affect the outcome. For some remotes, you have to keep the distance about 6 inches as suggested, but for others, you will have to move closer.

- The angle between the USBUIRT and the remote is also sometimes a factor. Try to point it straight into the USBUIRT receiver.

- Sometimes, the USBUIRT only captures a partial code. If you see a short code (often only a single line in the textbox) after the learning process, it is probably incomplete.

- There is a special category of remote control called a "smart remote". For example, the remote controls for some wall-hanging air conditioners are often "smart remotes". When you press a button on the smart remote, it doesn't blindly send out a permanently fixed key code for that button. Instead, it sends out dynamic information such as: temperature, fan speed, etc… This means every time you press the button, it sends out different codes. For such remotes, it will be harder to learn the code. Fortunately, not many devices belong to this category.

3. Export the IR code database to a HomeZIX script. After you finish testing your commands to ensure that irZIX can recognize and retransmit the codes correctly, export the IR code database to a HomeZIX script. This creates a C# script that you will import into HomeZIX for action customization. (So, remember where you save the database file.)


4. Customize the script in HomeZIX. Run HomeZIX, and import the IR code database you created in Step 3 by dropping an "Advanced Script" into the HomeZIX workspace. Then navigate to "C# source code" window and right click to open the file.


Navigate to the "ProcessMessage" function, and there you should see all the commands from your imported IR code database.

Now, you have unlimited flexibility to determine what actions are to be performed when HomeZIX receives a particular IR command. For example: The C# code below implements control logic that would automatically dim two Zwave dimmers when you hit the PLAY button to start playing the DVD. Then, when you stop playing, it turns all the lights back on. Of course, this example is very simple for demonstration purposes. The real and practical possibilities are incredibly flexible and powerful using the C# scripting feature of HomeZIX.


For complete IR automation, HomeZIX not only receives IR commands, but can also send back commands to irZIX to control devices via Infrared. As shown in the code below, when you start playing the DVD, HomeZIX also sends commands to irZIX to switch the receiver to DVD and increase the receiver's volume.


5. Connecting irZIX to HomeZIX. After you define all the actions in Step 4, make sure the script compiles ok, and then switch HomeZIX to "Run" mode. Next, flip back to irZIX and click on the "Connect to HomeZIX" button located at the bottom of the window. If the connection is successfully established, you should see a confirming message in the status line. Otherwise, please check your firewall and/or anti-virus program settings, which could cause the connection to be blocked.


6. Enjoy remote controlling. Have fun. Without limit. With irZIX, all of HomeZIX's unlimited power is now at your fingertips. Literally. As you can see, more and more pieces are coming together into the most powerful, most flexible, and – amazingly - most economical home automation system available anywhere, with much more to come...