Interfacing to a Jandy Aqua-Link System

Application:

 

Interfacing the Jandy Aqua-Link product to a Leviton automation controller.

 

Equipment:

 

Leviton Controller - LT, Omni Pro (firmware version 1.8 or later), Omni LTe, Omni II, Omni IIe, Omni Pro II, Lumina, or Lumina Pro

 

10A17-1 Serial Interface Module (Optional) - required on the Omni Pro, but optional on any other Leviton product

 

36A05-4 Serial Connectivity Kit or Standard Serial Cable (DB9F-to-DB9M) if using the 10A17-1 Serial interface Module

 

PC Access Software (Optional)

 

Installation:

 

  1. If using the 10A17-1, install on the Leviton controller, following the module's instructions.
  2. Connect the 36A05-4 to the Jandy Serial Adapter, and to a built-in serial port on the Leviton controller.  If using the 10A17-1 Serial interface, make the connection between the module and Jandy Serial Adapter using a standard serial cable.

 

Setup:

 

  1. Using a console or PC Access, go to Setup>>Installer>>Expansion and set the Serial Function of the desired serial port to Pro-Link .  Note: If using the Serial Interface Module, you will set the "Module #" (based on the address jumper) to Pro-Link.
  2. Set the Serial Port Baud Rate to 9600.
  3. Using a console or PC Access, go to Setup>>Names>>Messages, and name the messages that are to be sent and/or received between the Leviton controller and the Jandy system.

 

Configuration/Programming:

 

Using the built-in Pro-Link protocol in the Leviton controllers, you can send and receive ASCII text strings over the serial interface.  Pro-Link is programmable, so you can custom build the ACSII strings based the defined protocol(s) of other systems.

 

The RS-232 interface on Leviton controllers is configured as DTE (data terminal equipment).  The RS-232 interface on the AquaLink is DCE (data communications equipment).  As such, you can use the Leviton 36A05-4 Serial Connectivity Adapter for connecting the two.

 

The Pro-Link protocol allows you to send and receive predefined text messages through a Leviton serial interface.  Each message can be up to 15 ASCII characters long.  Several messages can be strung together and sent as one long
message.  Messages can be sent using any system trigger (timed, event, or macro) just like any other item in the controller. 

 

Pro-Link also monitors each serial interface for incoming messages.  Incoming ASCII strings that match stored messages in the controller can be used to activate macros.  When a message is matched, the Program Command (macro) corresponding to the matching message is activated.  When receiving an ASCII message that is over 15 characters, the Leviton controller only processes the last 15 characters of the message.

 

With that said, you can send commands to the Jandy interface to control any of its functions (see the Jandy AquaLink protocol).

 

To send commands to the AquaLink, simply use the command set outlined in the AquaLink protocol.  For example, to turn the pool pump on:

           
          #PUMP = ON^M

 

NOTE: When sending commands to the AquaLink, remember to use the ^M (carriage return).

 

To receive messages from the AquaLink, each message must be anticipated.  This means that you have to create messages in the controller for each anticipated response. 

 

Because each possible temperature value must have a unique message in the controller, when querying for temperatures, the best approach is to establish a nominal range for the water temperature.  For example, if the pool temperature is typically between 65º - 80º F, you must create 16 unique messages in the controller.  The reply message format is as follows:

            
          !00 POOLTMP = 65 F

 

Since the message length in the Leviton controller is 15 characters, you can truncate the message by dropping off the first few characters (i.e. !00).

 

POOLTMP = 65 F

 

POOLTMP = 66 F

 

POOLTMP = 67 F

 

POOLTMP = 68 F

 

POOLTMP = 69 F

 

POOLTMP = 70 F

 

POOLTMP = 71 F

 

POOLTMP = 72 F

 

POOLTMP = 73 F

 

POOLTMP = 74 F

 

POOLTMP = 75 F

 

POOLTMP = 76 F

 

POOLTMP = 77 F

 

POOLTMP = 78 F

 

POOLTMP = 79 F

 

POOLTMP = 80 F

 

You must also create a message that will be sent to the AquaLink to query for the pool temperature:

 

           #POOLTMP ?^M

 

You can then create a program that will send the message.  For example, you could use a Button (I named this one Pool Temp?) but you could also have programs that periodically send this message to check the temperature:

 

          WHEN Pool Temp?

                         THEN SEND #POOLTMP ?^M OUT SERIAL 2

 

Next, you have to create programs that will allow you to view the temperature.  Here are two examples of how you might do this:

 

Example 1:

 

You can use a Flag Unit to retain the value for the temperature.  In this case, I have named the flag Pool Temp:

 

          WHEN RECEIVE POOLTMP=65 F

                         THEN SET Pool Temp TO 65

 

          WHEN RECEIVE POOLTMP=66 F

                         THEN SET Pool Temp TO 66

 

          WHEN RECEIVE POOLTMP=67 F

                         THEN SET Pool Temp TO 67

 

Now, when you check the status of the Pool Temp flag, the value should reflect the temperature of the pool.

 

Example 2:

 

You can display the message on the console or touchscreen when the message is received:

 

          WHEN RECEIVE POOLTMP = 65 F

                         THEN SHOW POOLTMP = 65 F

 

          WHEN RECEIVE POOLTMP = 66 F

                         THEN SHOW POOLTMP = 66 F

 

          WHEN RECEIVE POOLTMP = 67 F

                         THEN SHOW POOLTMP = 67 F

 

Now, when the query command is sent to the AquaLink, the temperature will be displayed on the console or touchscreen.

 

You can use these principles to query for other items as well.