Premise Advanced RF and IR control for Premise

Motorola Premise


Senior Member
I've been meaning to post this for a while. A few months ago I was able to perfect RF control and Premise using a zone based method. Since I can't post all the pics at once, please review the following posts. The attached image is a wiring diagram of how it's hooked up.

I wanted to get rid of (hide) all the original IR remotes, and build a system where all device control is done through Premise. This means Premise will be used to keep track of the selected source, equipment state, etc... and control all IR devices using Global Cache products such as the GC100 and the new iTach line (WIFI2IR). I'm not a huge fan of touch screens, so I wanted more of a quasi hard button approach.

System Overview
Several (an almost unlimited number) of IR/RF remotes are distributed throughout my home. I chose to use Universal Remote Control's MX-900 remotes. The remotes can be programmed either for a single room, or all rooms. In my installation, the user selects what room they are in using a soft-key display that lists various rooms. Once the room is selected, all the buttons on the remote are set to codes for that room. These codes can any combination of RF and/or IR. The codes are set individually one button at a time to allow for custom integration. For typical use, the buttons are set to RF codes that a main MSC-400 controller interprets, then sends RS232 commands to Premise.

Another option is seldom used, but is very handy: each room also has access to the factory IR codes once the user navigates to that room, then selects the component. For example, navigating to the "Theater", then to "Projector" gives all of the factory options that the original projector remote has. This is very handy when you want to bypass Premise altogether and just send the IR code. The IR code can be sent in one of two ways: from the MX-900 remote directly, or out of an IR port on the MSC-400 controller. The IR output from the MSC-400 system controller is connected to a Xantech block. This allows one set of blinkies glued on the IR devices that both the GC-100 and MSC-400 can use.

Example of How it Works
A user enters the theater and picks up the MX-900 remote. They want to watch TV. They hit "Theater", then hit "WatchTV." The remote then sends the proper RF code to the MSC-400 controller. This code is internal to URC's software and not edited by the programmer. The MSC-400 controller decodes this RF code and sends "THEATERWATCHTV" (plus a carriage return) out its serial port. The serial port is connected to an GC-100 that is setup in Premise. The GC-100 sends the received serial command to Premise over TCP/IP. Premise receives the command, then gives the projector and A/V receiver a command to come on.

Another example is if the user hits play after selecting "Theater." This allows Premise to receive the command THEATERPLAY. What's neat is this is all Premise needs to receive! There's no need to have a play command for each device programmed into the remote and MSC-400 since Premise knows what source is selected on the A/V receiver for that zone and will now send the IR or RS232 play command to the selected device. If the command is IR, Premise will use the GC100 to send the command.

Another example is if a user wants to modify temperature for zone 1. All they do is navigate to "Home" on the soft-key display, then to COOLZ1. Now options appear such as Temp that will allow a user to select the desired temperature for zone 1.

This sounds more complex than it is. Study the attached diagram for clarification :) This is actually a very nice system that is 100% reliable and operates very fast (lag is not noticeable). I can post the MSC-400 and MX-900 programming files too if anyone is interested in trying this too. I'll also throw in the XDO file I use.


  • MSC400Diagram.jpg
    88.3 KB · Views: 203
Remote with backlight turned on. Notice, all button labels light up for ease of use in a dark setting. This is the "Home" screen I designed, but the remote's software (MX900 Editor) will let you design any menu flow you'd like. The remote will also remember the last room selected and stay there. Hitting the "Watch" or "Listen" buttons always results in returning to the "Home" screen, but this is customizable.

You can also enable a beep upon a button press, or vary the intensity of the backlight.

For me, this is much better than using a touchscreen as I like to feel my way to the button most of the time.


  • remoteWithBacklight.jpg
    93.5 KB · Views: 75
Ignore the green M, that just means that a macro is assigned to the button within the MX-900 Editing software.

This example shows how to manually change the lights in the theater. These menus are completely customizable, so this is just how I decided to handle things.

When the user hits the soft-key to the right of LTS_ON, THEATERLIGHTSON (plus a carriage return) is sent to Premise. Premise then has code to manipulate the light's corresponding home object to turn the light on. I use the VRC0P RS232 z-wave controller for lighting control within Premise.


  • remoteUsage.jpg
    87 KB · Views: 66
Here's the navigation that controls of the zone 1 cooling set point. I chose 5 degree increments for simplicity, but finer increments are possible by adding additional menu pages and RS232 commands. When a user hits 70 for example, Premise will receive Z1COOL70 followed by a carriage return. As with all other button triggers, this an RS232 command I made up and programmed Premise to understand.


  • remoteThermostat.jpg
    55.8 KB · Views: 58
That's the one. Be sure to use the GC-CGX cable if interfacing with the GC-100's IR output (optical isolation cable).
ETC... I posted this in another thread... but, thought it best to repost here to ensure you see it.

I'm sorry to drag up an old thread, but it sounds like you are doing exactly what I need to do. The only item I do not yet have is the Premise server set up. I had hoped to not need to use a home automation server, but it's looking more and more like I will be forced down that path. How can I get the MSC-400, 900 AND the premise files from you?

Thanks in advance.
Also interested in this options.

Simple question

I have a room with three devices, TV, Receiver and DVD player. I then create three buttons at the top to select the device to be used. When i select the TV option at the top, all the button for navigation and control (numbers etc. are for the TV. if I then select DVD, the remote then changes over to use all the DVD codes/commands.

is this corret. This is a simplified example, the real requirements are a lot more complicated. Similar in a lot of ways to what you have with CQC though.


The files are very customized and would take a lot of explaining for someone to install, modify and get working.

Further, URC's software is not versatile nor is it object oriented. You basically hard code each button (soft buttons and hard buttons). I also included only stuff I wanted to control in the protocol I made up (MSTRLIGHTSON is included, but OFFICELIGHTSON is not).

Also, the Premise module relies on this same hard coded protocol and points to specific home objects that are unique to my home. You would get tons of errors if you imported my module since your home layout will not be the same as mine.

How I would start: get Premise working with whatever devices you want to control via the MSC400 (security, lighting, iTach IR module etc...). Learn all you can about vbscript and building a basic serial module (watch the videos in the wiki, in one of them a module for an Integra receiver (serial device) is created).

Next, master URC's software (MSC 400 editor and the MX 900 software) if you haven't already. You'll need to know how to create a custom serial device with a lot of serial commands and how to use triggers (from hard and soft buttons) on the MX-900 to send the associated serial commands out of the MSC 400. I would get this working and check things with your favorite terminal server (PuTTY, Hyperterminal etc...).

All of this isn't easy if you've never done it before, but a good learning experience. Sorry, I don't have the time to document step by step instructions (as this would take days). If you have an IT background and HA experience you can figure it out though.
Thanks for taking the time to reply.

I'm very familiar with URC software, I've been using some form or fashion of their products for 15 years, and have owned and programmed my MSC-400 since 2007. I do, however, now use the CCP software not the individual MSC-400 or MX-880 editors. I made that move when CCP was released to stay ahead of the curve. Of course, I'm using triggers and have written my own serial commands for many devices that are not included in URC's software (Elk M1Gold, VideoStorm Matrix Switcher and an Ocelot).

Premise I'm not familiar with. I've used several different HA software apps in the past (many years ago), but moved away from it based upon a desire to go with standalone controllers for stability reasons.

You made an offer that you could provide the files, I was simply asking for them... not to USE, but rather to review them to follow your logic and help if I get stuck. Certainly not asking you to document anything.

But, no worries, I'll figure it out.

That is kind of the idea... Let me try to exmplain things better.

With the two-way rs232 communication with my Onkyo receiver, I never have to tell the remote I want to control the TV, DVD, Blu-Ray player etc... (other than when I run an initializing macro which is not really required). All that is needed is for the end user to tell the remote what room they are in. The system then "knows" what component to send a play command to based on the selected room in the remotes menu and the selected source on the Onkyo receiver. Even if I walk up to my receiver and manually hit a source, things will still work in this manner since the receiver driver (residing under Premise) is full two-way rs232. All that is needed upon manual source selection at the receiver is to pick up the remote and hit play. You can't do that with URC's MSC-400 or MX-900 alone.

In other words, Premise always knows what source setting the receiver is set to and what room I'm in. Premise gets the room information from the MSC 400 since the serial protocol programmed into the MSC400 (and triggered by the remotes menus and hard buttons) gives out prefixes that are room descripters for whatever rs232 command is sent. For example, sample commands are THTR_PLAY or MSTR_PLAY. If I tell the remote I'm in the master bed room, MSTR_PLAY is sent to whatever device is selected on my A/V receiver whenver I hit the play button; simple as that. MSTR_PLAY is then processed by Premise and Premise decides which component should be sent the IR command based on the selected source. Premise also figures out internally how to send this IR signal. It could be sent over WIFI, ethernet etc...

For most rooms, I also have an initializing macro for each room based on task (watch tv, play dvd etc...). This initializing macro results in a serial command being sent to Premise and Premise processes it. For example, THTR_WATCHTV would cause Premise to switch the source on my receiver, turn on the TV etc... This initializing macro idea is very useful for receivers that do not have two way rs232 status, but instead only offer IR control. I know the initializing macro doesn't make things look as neat, but if someone changes the source on my receiver, you never have to hit the initializing macro again unlike most universal remote options. In fact, you could have the IR remote for the receiver in one hand and the MX-900 in the other and try to confuse the system by sending IR commands to the receiver, but it will still work.

Note that some MSC400 commands do not have a room prefix such as HVAC commands and whole home scenes such as GOODNIGHT. These are stored on the second page under Home. The GOODNIGHT macro stored on Premise automatically sets the alarm, sets back the thermostat, dims the lights (so when motion is sensed occupants are blinded) and then turns them off as needed. You could alternatively have a GOODNIGHT command for each room. Then the MSC400 would send Premise THTRGOODNIGHT and Premise could light a path to your bedroom and turn the lights off after x seconds.

I've never seen a remote setup as overly complex as this and would be interested in hearing more on your setup and what your plans are so please share.

PS: I use Premise not CQC ;)
Here are all the files in my current setup.  The ccp file requires URC's Complete Control Program.  Please don't ask me for it as I cannot give it out.
The xdo file is the Premise module that talks to the MSC-400.  sys://Schema/Modules/URC_CUSTOM/Classes/MSC400/OnChangeOnNewData contains the scripts that are triggered when a particular button press is received.
Also attached is a picture of a water proof version of the MX-900 I bought from ebay, the MXW-920.  It's a pretty solid feeling remote.  The buttons actually click when you push them.  Finally, no more mushy buttons like on the MX-900!


  • Premise URC
    36.1 KB · Views: 16
  • mxw-920.jpg
    13.9 KB · Views: 13
This sounds like a cool setup.  I have a question, what wires do you have in each room?  I am in the early part of building my house and I am getting ready to buy wires.  So far, I will have 3 cat-5e and 1 coax in each room.
For this type of IR control, you really don't need any wires if you are using a Global Cache WIFI2IR.  However, I'd recommend a cat 5e run as I'd rather use a non-wireless Global Cache controller such as a cheap GC-100 from ebay.  The GC-100 line offers more options that may be useful in the future such as relays, sensor inputs and serial ports (along with IR ports).
For everything else:
I would read the Wiring 101 guide found on cocoontech.  
I don't plan on using coax ever, but that's something else to consider.  Also, if you have a whole home audio system, be planning for that.  I'd add two cat6 runs just in case you want an HDMI balun for a matrix switch someday.
Definitely consider ceiling mounted motion sensors in each room, along with door sensors on each door.
For displays:
At a minimum I would want 3-4 cat6 runs to a recessed box mounted where you want your display.  Use the recessed boxes that have a divider so you can also have power.  What I used are two duplex receptacles, with one being a Leviton surge protection outlet.  The other receptacle gets daisy chained to the surge protector per Leviton's instructions.  Then I have the divider with 4 cat6 runs.