Using the Web Mountain RUC-01 with the ESI Drapery Control System Electronic Solutions, Inc, (ESI), is a manufacturer of an extremely powerful and flexible drapery control system. They make controllers that control the motors to open, lower, or set blinds and drapes to any position. There are two main pieces to their system of interest to us – the actual motor controllers themselves (RP or RQ series) and the interface devices (R2D7 or RQ Bridge). The interface devices provide an RS-232 serial interface that we can use to interface to the RUC, and then the motor controllers are connected to the interface device via cabling on what ESI calls the RP Bus, or the RQ Bus. RP System Let’s start with the ESI RP System. This is ESI’s original product offering, which is still being sold today. The RP system is one direction only – commands are issued from a controller – either a manual controller, or an intelligent controller such as the RUC-01. The commands are received by the motor controllers and acted upon. The motor controllers have to be programmed and then calibrated to match the blind or drape they are controlling. Commands would look like *1c01; or *1o02;. Here is a drawing of how the RP System is connected to the RUC-01. Other protocol for Triggering, i.e., UPB COM1 R2D7 SYS1 MAIN RUC-01 RS232 COM2 EYE AUX Motor Controller 1 RP60 Blind / Drape MTR EYE AUX Motor Controller 2 RP60 Blind / Drape MTR Now, the RUC-01 can be used to control the blinds by several methods (we call them Trigger Events): Time of Day (including Sunset / Sunrise) Upon receipt of a UPB command Upon receipt of a Zwave Command Upon receipt of an X10 command Upon receipt of an Insteon command Upon receipt of an ESI RQ Command Upon receipt of almost any other serial string command that is terminated by a CR or a “;”. Procedure for triggering an ESI RP control command: 1. Setup COM1 on the device page for the type of trigger protocol you want to use. For example, if you want to trigger from a UPB command, check the box on the Device Configuration page for COM1 that says UPB default. That will populate the configuration fields with 4800-8-N-1. Or, if you want to use Zwave, uncheck the UPB box and select 9600-8-N-1. 2. Setup COM2 on the Device Configuration page for the ESI settings, namely 9600-8-N-1. 3. Now, go to the Trigger Events page and let’s add some triggers. For the first event, let’s assume that we want to open a particular blind at Sunrise. Your entries on the trigger screen will look like this: Notice that we are using the Command type in the Send Command area as RAW. This means that the RUC will not take care of any characters for you, most notably a start character and a terminating character – you must enter those yourself. In this case, the start character for an ESI RP command is an “*” while the terminating character is a “;”. Make sure you select that the Send Command is going out COM2. Now, if you look at the Trigger listing, you will see this listing: This event is scheduled to run at Sunrise + / - 0 minutes, and be sent out COM2 as a RAW command, and sent every day of the week. Now, let’s setup a trigger that will cause the same blinds to open when a UPB command is received. Get back to the Trigger Event screen. Here’s what the screen will look like to trigger on a UPB command of NID = 66, Link ID = 13 with a command of Activate. And, here’s what the line in the Trigger Listing looks like once you click on Add Trigger. This is interpreted that when the RUC sees a UPB command on the powerline that is Link 13 Activate for a network ID of 66, then immediately (with no delay) send out a command to open a particular blind. The installer / user can use this capability to control lighting and drapes at the same time with the push of one button. ESI RQ System – Sending from a trigger The ESI RQ system is ESI’s next generation drapery / blind control system. The RQ system has two major advantages over the RP system. First, the RQ system is bi-directional, meaning that you can “Query” individual units for their current status. Also, there are system commands that are generated that can be detected by an intelligent controller. Secondly, there is an improved addressing scheme that allows for much finer detail and control of individual motor controllers. Motor controllers are addressed randomly at the factory with an address that looks like XYZ where X, Y, and Z can be any character of the alphabet or any number. Here is a drawing of how the RQ system is interconnected with the RUC-01. Other protocol for Triggering, i.e., UPB COM1 RQ BUS RQ BUS RQ Bridge RUC-01 RS232 COM2 EYE AUX Motor Controller 1 RQ60 Blind / Drape MTR EYE AUX Motor Controller 2 RQ60 Blind / Drape MTR Here is the same drawing except one of the Blinds / Drapes and RQ60s has been replaced with a M50Q blind / drape with an embedded RQ controller. Other protocol for Triggering, i.e., UPB COM1 RQ BUS RQ BUS RQ Bridge RUC-01 RS232 COM2 EYE AUX Motor Controller 1 RQ60 M50Q Enabled Blind / Shade Blind / Drape MTR Notice that the RQ architecture is almost identical to the RP Architecture. Now, just like with the RP system, the RUC-01 can be used to control the RQ controlled blinds by several methods (we call them Trigger Events): Time of Day (including Sunset / Sunrise) Upon receipt of a UPB command Upon receipt of a Zwave Command Upon receipt of an X10 command Upon receipt of an Insteon command Upon receipt of an ESI RQ Command Upon receipt of almost any other serial string command that is terminated by a CR or a “;”. Procedure for triggering an ESI RQ control command: 1. Setup COM1 on the device page for the type of trigger protocol you want to use. For example, if you want to trigger from a UPB command, check the box on the Device Configuration page for COM1 that says UPB default. That will populate the configuration fields with 4800-8-N-1. Or, if you want to use Zwave, uncheck the UPB box and select 9600-8-N-1. 2. Setup COM2 on the Device Configuration page for the ESI settings, namely 9600-8-N-1. 3. Now, go to the Trigger Events page and let’s add some triggers. For the first event, let’s assume that again, we want to open a particular blind at Sunrise. Your entries on the trigger screen will look like this: Notice that rather than using RAW in the Send command field, we are now using a command type called ESI. The ESI command type is only for RQ commands. Also notice that we did not add the start character (!) and the terminating character (;) to the command – the RUC automatically adds those characters for you. The real RQ command would be !WBTo;. This command tells the blind controller with an address of WBT to open its blind all the way. Once you click on Add Trigger, the command gets added to the Trigger listing as such: And, we could do the same thing we did above with the RP command, use a UPB command or Zwave command to trigger sending the ESI RQ command. You might be asking how you could determine the addresses of the motor controllers on your ESI network. There’s an easy way to do this if you have less than 12 or 13 motor controllers on your ESI network. The RQ protocol specifies a global command - !000v?; - that tells all devices on the ESI network to report their address and Version number. So, merely setup a trigger with this command, RUN it, and then go look at the Receive webpage of the RUC. This page shows the last 15 commands received by the RUC on both serial ports – COM1 & COM2. You’ll see a screen like this: To interpret this, the RQ Bridge responded with !BR1vB10. The next four lines are the RQ motor controllers (RQ60 units). You can see the addresses of the four motor controllers are T96, P9P, QFT, and WBT. They are all Version # D15. The following are some useful RQ commands that show you some examples of what you can do with the RQ system and the RUC. !000v?; !000r? !T96v?; !QFTr?; !P9Pm62; !WBTc; !WBTo; !WBTs; Request addresses and version numbers of all RQ elements Request the position of all the RQ60 controllers (blinds are open, closed, 60%, etc) Request the version # of the motor controller with an address of T96 Request the position of the motor controller with an address of QFT Request motor controller P9P to go to 62% Request motor controller WBT to close its drapes Request motor controller WBT to open its drapes Tell motor controller WBT to stop A quick comment. If you issue the global command !000r?; requesting the position of all the motor controllers, you will only get responses from motors that have been calibrated. In addition, if you issue the command !XYZr?; to a motor controller that has not been calibrated, you will get an error response of !XYZEnc; indicating it is not calibrated. To calibrate the motor controller with the address XYZ, send !XYZpTC;. We have only touched the tip of the iceberg on the power and flexibility of the RQ system, but this gives you a good introduction. ESI RQ System – Triggering an event Remember that earlier in this document, we commented that the RQ system is bidirectional. We can use this bidirectional capability to trigger another event. Let’s say that you, the user, would like to turn on an overhead light anytime someone manually closes a blind. Here’s the procedure for setting that up. First, cause the blind to close, probably from a handheld control of some kind. Then, determine what the commands are that were sent. One way to do this would be to use the Receive webpage on the RUC. Here is a screen capture where we captured a button press from a manual controller telling the motor controller with address WBT to close. Recognize that a 00 indicates fully open, while a 99 indicates fully closed. The command !WBT>00; indicates that the motor is moving and started from a fully open position. Let’s say that we want some lights controlled by UPB to turn on when the blind starts lowering. You can see the entries in the Trigger webpage that allows this to happen: Notice that you don’t need the leading ! or the trailing ;. The ESI command type takes care of this. Now, when you click on Add Trigger, the trigger looks like this in the Trigger listing: You can do the same thing in the opposite direction. When the blind opens, you can turn off the UPB controlled light. The Trigger entry would look like this: And, the trigger listing will look like this: While this demo was done with UPB, you could just as easily perform these same functions using Zwave or X10. Using the ESI Software Remotely with the RUC ESI has control software that can be used to program and control their motor controllers. You can use the RUC to allow remote usage of that software to program or control the motor controllers. For example, the installer could be sitting at their desk in their business office in front of their PC that has the ESI software, connect to the RUC that is at their client’s home, and use the ESI software to program or control that system. Here is the procedure to do this. First, download the free virtual serial port software HW VSP from www.hw-group.com. Install it and then run the software. Click on the tab Virtual Serial Port. You will see this screen. Pick a COM port that will not commonly be used on your PC – we picked COM8 in this example. Use the drop down and select COM8. In the IP address field, you have two options. If you are on the local LAN, then you need to use the IP address of the RUC. As you can see above, this IP address will normally be a non-routable address such as 192.168.x.xxx or 10.x.x.x. We highly recommend that you set the RUC to a fixed address (rather than DHCP) if you are going to do this. If you are going to access the RUC remotely as we started the discussion, then the IP address will be the WAN IP address of the home. There are multiple ways to get this address – one way is to access the website www.ipchicken.com and capture the address from there. Next, enter the port # that you will use to access the remote network. By default, the RUC assigns port 9761 to COM1 on the RUC and port 9762 to COM2 on the RUC. These are configurable from the Network Configuration page of the RUC, but there is rarely a reason to change them. Notice that we’ve used 9762 as the port in this example, as it is the default port assigned to COM2. Now, any data routed to port 9762 on the RUC will be switched internally to be sent out COM2. If you are going to remotely access the RUC on port 9762 from your office, in order to make this work, you must open a port through the local router’s firewall, in this case port 9762 to the local IP address of the RUC. Now, click on the button in HW-VSP that says Create COM. You will see the status under VSP change to “Created” and Status under LAN change to Connected. This tells you that you have made the necessary connections from your PC in your office to the RUC at the remote location. Now that you have the networking configured, go ahead and open the ESI GUI software. You will get a screen that looks like this: Click on Edit, then COM port, and select the appropriate COM port from the dropdown, in our case COM8. Now, you’re ready to start using the software. In this particular case, the Open All and Close All buttons above will work, but they are sending RP protocol commands. However, you can use the software now as if you were local to the RUC and ESI equipment. Once you’re finished with the software, merely close the ESI GUI application, then click on the button Delete COM in HW VSP. The VSP status will change to Deleted and the LAN status will change to Closed. Then, just “X” out of HW VSP and you’re done! Summary In conclusion, the amount of control you can command is only limited by one’s imagination. The purpose of this document is not to teach you, the user or installer, how to install or program the ESI system – you should go to their training for that – but to show you how you can use the RUC-01 unit as part of an integrated system to allow different protocols to control each other. For more information, please contact Web Mountain Technologies at 303-627-1856 or firstname.lastname@example.org.