Feb 122016

iTachIP2IR-medtransDownload this Linux IR learning utility that supports the Global Caché® iTach IP2IR networked IR blaster. A company called Global Caché markets a line of IR Blasters that are controllable across a network. With these devices you can send commands from any networked computer or smartphone to the IR emitters attached to your TV and stereo equipment. This way you can adjust the volume or change the channel from the next room or across the country.

Each Global Caché device supports three independently controlled IR emitters. Each emitter is attached to a single IR input of a TV, stereo, etc. Each Global Caché device also contains an integral IR receiver. The purpose of the receiver is for capture of button IR codes from your existing remote controls. In this way these Global Caché devices learn how to behave the same as your remotes. The Global Caché software tool iLearn is used to record these button codes. The software support Global Caché provides is exclusive to the Windows operating system. And therein lies the rub. There is virtually no support for Linux.

A couple of years ago I wrote companion Linux utilities for the Global Caché IP2IR device to fill the void for use in my MythTV setup. My “Wire” utility is akin to the Global Caché iLearn tool, and my “Wirch” utility is used to change channels on a TV or cable TV tuner box. There is also a “Wircmd” utility for sending any IR command sequence.

Get started with Wire by Downloading the tarball.

  18 Responses to “Linux Tools for Global Caché® Networked IR Blaster”

  1. brilliant. works perfectly. 🙂 the wirch can you do a version that just sends the commands not the channel bit, it works fine for just switching on my ir lights but errors without -s so just add a dummy value. 🙂

    • Wirch was designed as a demonstration of the IR output. It is easily modified to do whatever you wish it to. Its all written in BASH scripting. There are just enough comments in the code to help you along. In fact you could just remove all of the channel change code, leaving just the “terminate” button to send whatever you wish.

    • I just updated the tar ball with a new utility to address this need. This tool is called “Wircmd”. It supports the sending of a sequence of IR commands that you choose.

  2. Thanks a lot! It helped a lot to setup the iTach on Domoticz

  3. Thanks a lot!

    Using it with Itach Wifi on domoticz, running on cubietruck platform.
    Using mainly wirecmd , wire give me some errors, but i can work around that…

    Press remote button
    1: ./wire: line 477: ir_array: bad array subscript
    ./wire: line 477: [: : integer expression expected
    got it … ./wire: line 493: ir_array: bad array subscript
    ./wire: line 493: [: : integer expression expected
    Press button again

    • Can you detail the circumstance under which this error occurs. Is it just a certain button on a particular remote?

      • It happens direct when i press 2. learn a button
        Also when i change the remote to another one, same situation.

  4. The link to download the tarball doesn’t seem to be live anymore. Any way I can still get this?

  5. This looks great to me!

    I’m going to be implementing this on a Mac.
    Don’t have “sleepenh” but I’ll try it with regular “sleep” and see what happens…

    Appreciate your work!

    • Should be fine. Only used in wirch and wircmd, for the delay between digits. Sleepenh is used only to allow for delay shorter than one second. A whole second is a really long time between digits.

  6. Ok cool. The command sleep on a Mac does in fact work so sleep .3 will in fact sleep for 3/10 of a second.

  7. Update: unfortunately couldn’t get your script wircmd to work on OS X for some reason.
    Not sure why but I’m not shell scripting expert – it was probably something I was doing wrong.

    But I spent a little time deconstructing things and I came up with this.
    It uses that little script you wrote to send cmds via ncat.
    This turns my NAD C 356 BEE receiver off.
    It requires nmap to be installed via brew install nmap.
    I got the ir code from https://irdb.globalcache.com/Home/Database.

    Not sure it’ll help anyone but thought I’d post it anyway…


    ncat=/usr/local/bin/ncat # brew install nmap

    # create the script for ncat
    cat < /tmp/ir.sh
    echo -e -n "$1\r" ; read -t 5 -d $'\r' input ; rc=$?
    if [ $rc -ne 0 ]; then input="ERR:$rc, iTach command timeout" ; fi
    echo $input > /tmp/ir.out
    chmod a+x /tmp/ir.sh

    # IR codes from https://irdb.globalcache.com/Home/Database

    # send the code
    cmd="$ncat -w 3 --exec '/tmp/ir.sh $off' $ip $port"
    eval $cmd > /dev/null 2>&1
    if [ "$?" != "0" ] ; then echo "ERR: could not send IR code." ; exit 1 ; fi
    if ! `grep -q completeir /tmp/ir.out` ; then echo "ERR: IR code did not work" ; exit 1 ; fi

    # cleanup
    rm /tmp/ir.sh /tmp/ir.out > /dev/null 2>&1

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>