Well, it’s been a while since I’ve taken on a DIY project that related to Home Theater, but I finally did something recently that some of you may be interested in. In our HT, we have two entertainment TiVos, a DSS receiver (not tied to a TiVo), a DVD player, a VCR, and two surveillance video TiVos. None of my equipment employs discrete codes for On/Off/Select. Programming my Pronto has been fun, but without the discrete codes I need, it’s really difficult to get macros to do exactly what I would like them to do. Macros need setting up with the correct sequence of power commands. For example, there’s no point in pressing the DVD button unless the video selector is powered on, because doing so will just result in the DVD player spinning up the disc without video or sound. Integrating the power commands into the macros makes things worse, since I then can’t move between devices without power-cycling the TV and sound system. Enter the Ocelot. The Ocelot is a home automation device with extensive IR capability. It can learn up to 250 IR codes. It can transmit them, but more importantly, it can watch for them and use them to trigger smart macros. Combined with my other remotes, this gives me capabilities beyond what I can accomplish with even the smarted learning remote. The reason for this is because the Ocelot can be programmed to use variables to modify its behavior. One variable (for instance) indicates the state of the TV’s power (On/Off) while another variable indicates the state of the sound system’s power. If I press the TV ON button, then the Ocelot will check the TV power variable. If it indicates that the set is on, then nothing happens. If it indicates that the set is off, then it transmits an IR to toggle the TV’s power. Likewise for the sound system. If I press the SYSTEM ON button, then it checks the power variable for each and does the appropriate thing to ensure that both the TV and the sound system are on. Now my Pronto macros can make sense. Oh, and before I get ahead of myself, I “made up” many of these new button functions. I saved my remote controls from long dead equipment and assigned, for example, the Play button from my old Betamax VCR (RIP) to be the SYSTEM ON button on my Pronto. That gives me discrete functionality, but why stop there? The Ocelot can listen for any remote code and take any action as a result. Other functions I “made up” are the device selection buttons. So now when I press the DVD button on my Pronto, it’s the same as pressing the SYSTEM ON button, so both the TV and the sound system come on (if originally off), and the video/sound selector is set to the correct input for watching a DVD. And yes, I have another variable that tracks the selected device, so the video selectors get IR’ed only when necessary, just like the TV and sound system. If I’m watching a DVD, and I select the CD player, then the TV goes off, the sound system stays on, and the CD player is selected. If I select another device that requires the TV, then the TV will turn on, and the proper device will be selected. Just one device-select IR code is transmitted by the Pronto (or whatever), and the Ocelot handles the rest using its internal state machine to determine what power toggles need to take place, and what video/audio selections need to be made, and it sends out only the necessary IR codes to make it happen. Before I go on, I should explain that selecting the A/V device is more complicated for me than for most people because I have to select the device on the sound system, select component or S-Video on the TV, and select A/V on a separate video switcher before I finally get the right combination. On the Pronto, this could take several seconds waiting for it to cycle through the TV’s inputs (no discretes there) and issue IR codes to the A/V switcher and receiver that most likely didn’t need to be sent. With the Ocelot, it remembers the state of all the equipment and issues only the IR codes needed to get it to the desired configuration. But again, why stop there? I know the Holy Grail of HT/Human interface is to use one universal remote control to manage everything in the house, but sometimes that can be more burdensome than it’s worth. While watching TiVo, for instance, it’s nice to simply grab the TiVo remote and watch without having to go through a power-up/selection process. So now when I want to watch my TiVo, I just pick up my TiVo remote and press the TiVo button. The Ocelot, which is programmed to watch for this button press, then turns on the TV (if off), turns on the receiver (if off), and configures the system for me to watch my TiVo. Up comes my TiVo Central screen, waiting for my command. If my wife wants to watch her TiVo, she does the same. She just presses the TiVo button on her TiVo remote, and one second later, she’s watching her TiVo. Pressing the Power button on both TiVos does the same thing, including selecting the appropriate device, if the TV is off, but it turns everything off if the TV is on. So armed with just a TiVo remote, I can turn everything on, watch the TiVo associated with that remote, and I can turn everything off when I’m done. This is especially great since I’ve got a total of four TiVos, two for entertainment, and two for surveillance. The remotes are marked with a label maker, but only the entertainment TiVo remotes sit out with the Pronto. But again, why stop there? The Ocelot is capable of home automation tasks as well as IR control. So in response to more “made up” commands from old remotes (yeah, I know – I’m such a geek for saving old, useless remotes) I can control just about anything in the house. If I’m watching one of my surveillance video cameras, for instance, I can control the exterior lights closest to that camera with a single button (usually on my Pronto). And, of course, I can control the lights and ceiling fan in the HT room. I can even control the heating/AC in the HT room with the remote. I was able to do this before using the X-10 IR receiver, but that allowed me direct control of items on a single house code, or 16 devices, total. With the Ocelot, I can control every slave device in my house with complex macros, and trigger them with a single IR code from an old remote from a long-dead VCR. And I can use up to 250 IR codes as triggers (though it’s a good idea to save most of those slots for output to control other devices). Ah, but why stop there? The Ocelot can see IR from most rooms in the house, so why shouldn’t I be able to control other stuff from other rooms? Well, I can. From the master bedroom, I can control the security system, turn off all the lights in the house, and gradually dim the lights in the bedrooms as we make our way to bed. In the morning, I can bring the house back to life with my Good Morning button. In the computer room, I can see whose at the front door right on my computer screen while I work. I can even have the house announce when someone comes or goes in and out of the house. I’ve got a button that puts the house in DoNotDisturb mode to silence the phones, unless a pre-determined high-priority caller calls. Let’s see… I think I’ll stop there. If anybody is interested in the details, I’m only too happy to share.