NAV
lua

License, Copyright, and Trademark

The content contained in this repository is the intellectual property of Snap One, LLC, (formerly known as Wirepath Home Systems, LLC), and use without a valid license from Snap One is strictly prohibited. The user of this repository shall keep all content contained herein confidential and shall protect this content in whole or in part from disclosure to any and all third parties except as specifically authorized in writing by Snap One.

License and Intellectual Property Disclaimer

The content in this repository is provided in connection with Snap One products. No license, express or implied, by estoppal or otherwise, to any intellectual property rights is granted by this document or in this repository. Except as provided in Snap Oneʼs terms and conditions for the license of such products, Snap One and its affiliates assume no liability whatsoever and disclaim any express or implied warranty, relating to the sale and/or use of Snap One products including liability or warranties relating to fitness for a particular purpose, merchantability, or infringement of any patent, copyright or other intellectual property right. Snap One products are not intended for use in medical, lifesaving, or life sustaining applications.

Information regarding third-party products is provided solely for educational purposes. Snap One is not responsible for the performance or support of third-party products and does not make any representations or warranties whatsoever regarding the quality, reliability, functionality or compatibility of these products. The reader is advised that third parties can have intellectual property rights that can be relevant to this repository and the technologies discussed herein, and is advised to seek the advice of competent legal counsel regarding the intellectual property rights of third parties, without obligation of Snap One.

Snap One retains the right make changes to this repository or related product specifications and descriptions in this repository, at any time, without notice. Snap One makes no warranty for the use of this repository and assumes no responsibility for any errors that can appear in the repository nor does it make a commitment to update the content contained herein.

Copyright

Copyright 2025 SnapOne, LLC. All rights reserved.

The above copyright notice applies to all content in this repository unless otherwise stated explicitly herein that a third-party’s copyright applies.

No part of this publication may be reproduced, photocopied, stored on a retrieval system, or transmitted without the express written consent of the publisher.

Trademarks

Snap One and Snap One Logo, Control4 and the Control4 logo, and DriverWorks are trademarks or registered trademarks of Snap One, LLC. Other product and company names mentioned in this repository may be the trademarks or registered trademarks of their respective owners.

 Derivative Works

To the extent that you create any “Derivative Work” (meaning any work that is based upon one or more preexisting versions of the work provided to you in this repository, such as an enhancement or modification, revision, translation, abridgement, condensation, expansion, collection, compilation or any other form in which such preexisting works may be recast, modified, transformed or adapted, explicitly including without limitation, any updates or changes to Snap One, LLC’s software code or intellectual property) such Derivative Work shall be owned by Snap One, LLC and all right, title and interest in and to each such Derivative Work shall automatically vest in Snap One, LLC. To the extent any Derivative Work does not automatically vest in Snap One, LLC by operation of law, you hereby assign such Derivative Work to Snap One, LLC with full title guarantee. Snap One, LLC shall have no obligation to grant you any right in any such Derivative Work.

Contact Us

Snap One, LLC 11734 S. Election Road Salt Lake City, UT 84020 USA

http://www.control4.com

Introduction

This documentation includes content that details the functions that make up the Pool Control Proxy which is supported in the DriverWorks Software Development Kit.

Proxies (Commands)

A proxy driver is an interface to the Control4 system for a set of devices that share common functionality. For instance, most Pool Controllers have common controls such as SET POOL PUMP MODE and SET POOL HEAT MODE.  The pool controller proxy allows for a common user interface to control all pool controllers.  The Control4 system (Director) sends information to and receives information from the proxy drivers.  The proxy drivers send information to and receives information from the protocol drivers. Remember, your DriverWorks driver interacts with the proxy driver which then interacts with the system.  As a driver developer you will be relying on this proxy to provide status (notification) to the Control4 system for the device you are controlling.  You will also receive commands from the system that you will act on to control the device.  These commands and notifications are at the heart of what you will be implementing in your driver.  Essentially your driver is becoming the go-between from the Control4 system and your device with the proxy driver giving structure to the commands and notifications which you will be implementing. Your driver can facilitate communications with multiple types of proxies for a single device. As an example, a Security System driver will utilize both the Security proxy and the Contacts proxy. These additional proxies are configured in the <connections> section of the .c4z.

Protocol (Notifications)

Two similar devices may have the same functionality but utilize a very different command set.  A protocol driver provides the device-specific information needed to communicate with the Control4 system.  In the case of DriverWorks, the DriverWorks driver is the protocol driver.  When combined with the device-specific.c4Z file it provides the custom code necessary to implement the 2-way device driver. In the case of DriverWorks, the DriverWorks driver is the protocol driver. When combined with the device-specific.c4Z file it provides the custom code necessary to implement the 2-way device driver.

What’s New

What’s New in 3.4.2

There were no modifications to the Pool Proxy in conjunction with O.S. Release 3.4.2.

What’s New in 3.4.1

There were no modifications to the Pool Proxy in conjunction with O.S. Release 3.4.1.

What’s New in 3.4.0

There were no modifications to the Pool Proxy in conjunction with O.S. Release 3.4.0.

What’s New in 3.3.2

There were no modifications to the Pool Proxy in conjunction with O.S. Release 3.3.2.

What’s New in 3.3.1

There were no modifications to the Pool Proxy in conjunction with O.S. Release 3.3.1.

What’s New in 3.3.0

There were no modifications to the Pool Proxy in conjunction with O.S. Release 3.3.0.

What’s New in 3.2.3

There were no modifications to the Pool Proxy in conjunction with O.S. Release 3.2.3.

What’s New in 3.2.2

There were no modifications to the Pool Proxy in conjunction with O.S. Release 3.2.2.

What’s New in 3.2.1

There were no modifications to the Pool Proxy in conjunction with O.S. Release 3.2.1.

What’s New in 3.2.0

There were no modifications to the Pool Proxy in conjunction with O.S. Release 3.2.0.

What was New in 3.1.2

There were no modifications to the Pool Proxy in conjunction with O.S. Release 3.1.2.

What was New in 3.1.0

There were no modifications to the Pool Proxy in conjunction with O.S. Release 3.1.0.

What was New in O.S.3

There were no modifications to the Pool Proxy in conjunction with O.S. Release 3.0.0.

Pool Capabilities

The following Capabilities are supported with the Pool Proxy:

<aux_types></aux_types> List of auxiliary types needed by the protocol driver. There are two types of auxiliary types supported: Toggle and List.

<pool_heat_modes></pool_heat_modes> xml list of pool heat modes.

<pool_pump_modes></pool_pump_modes> xml list of pool pump modes.

<spa_heat_modes></spa_heat_modes> xml list of spa heat modes.

<spa_ pump_modes></spa_ pump_modes> xml list of spa pump modes.

<temp_max></temp_max> Should be entered as Fahrenheit value, it is automatically adjusted to Celsius when the pool is set to Celsius.

<temp_min></temp_min> Should be entered as Fahrenheit value, it is automatically adjusted to Celsius when the pool is set to Celsius.

<provides_aux_list></provides_aux_list> Should be true (false by default) when the pool controller device provides aux list to the driver.

This capability disables name and type changes in Auxiliary Controls card in Composer Pro.

Example

The example capabilities XML is from the Jandy Aqualink driver.

<capabilities>
     <provides_aux_list>True</provides_aux_list>
         <pool_pumpmodes>Off,On</pool_pumpmodes>
         <spa_pumpmodes>Off,On</spa_pumpmodes>
         <temp_min>34</temp_min>
         <temp_max>104</temp_max>
         <pool_heat_modes>
               <mode>
                    <id>1</id>
                    <text>Heater</text>
                    <command>set_pool_heater</command>
               </mode>
               <mode>
                    <id>2</id>
                    <text>Solar Heater</text>
                    <command>set_solar_heater</command>
               </mode>
          </pool_heat_modes>
          <spa_heat_modes>
               <mode>
                    <id>1</id>
                    <text>Heater</text>
                    <command>set_spa_heater</command>
               </mode>
          </spa_heat_modes>
          <aux_types>
               <aux_type>
                    <type>TOGGLE</type>
                    <name>Toggle</name>
               </aux_type>
               <aux_type>
                    <type>LIST</type>
                    <provides_selected_item>false</provides_selected_item>
                    <name>Light Dimmer Jandy Colors</name>
                    <items>Off,Alpine White,Sky Blue,Cobalt Blue,Caribbean Blue,Spring Green,Emerald</items>
               </aux_type>
               <aux_type>
                    <type>LIST</type>
                    <provides_selected_item>false</provides_selected_item>
                    <name>Light Dimmer Pentair</name>
                    <items>Off,White,Light Green,Green,Cyan,Blue,Lavender,Magenta,Light Magenta,Color</items>
               </aux_type>
               <aux_type>
                    <type>LIST</type>
                    <provides_selected_item>false</provides_selected_item>
                    <name>Light Dimmer Hayward Color Logic</name>
                    <items>Off,Voodoo Lounge,Deep Blue Sea,Afternoon Skies,Emerald,Sangria,Cloud</items>
               </aux_type>
               <aux_type>
                    <type>LIST</type>
                    <provides_selected_item>false</provides_selected_item>
                    <name>Light Dimmer Jandy LED Water Colors</name>
                    <items>Off,Alpine White,Sky Blue,Cobalt Blue,Caribbean Blue,Spring Green</items>
               </aux_type>
               <aux_type>
                    <type>LIST</type>
                    <provides_selected_item>false</provides_selected_item>
                    <name>Light Dimmer Pentair Intellibright</name>
                    <items>Off,Sam,Party,Romance,Caribbean,American,California Sunset,Royal,Blue,Green,Red,White,Magenta</items>
               </aux_type>
               <aux_type>
                    <type>LIST</type>
                    <provides_selected_item>true</provides_selected_item>
                    <name>Dimmer</name>
                    <items>Off,25%,50%,75%,100%</items>
               </aux_type>
          </aux_types>
     </capabilities>

Pool Conditionals

The Pool Proxy supports the following conditionals:

IF_AIR_TEMPERATURE

IF_BUTTON

IF_POOL_SETPOINT

IF_POOL_TEMPERATURE

IF_PUMPMODE

IF_SPA_MODE

IF_SPA_SETPOINT

IF_SPA_TEMPERATURE

Pool Events

The Pool Proxy fires the following events:

AirTemperatureChanged

AirModeChanged

PoolHeatModeChanged

PoolSetpointChanged

PoolTemperatureChanged

PumpModeChanged

ScaleChanged

SpaHeatModeChanged

SpaModeChanged

SpaSetpointChanged

SpaTemperatureChanged

Pool Proxy Commands

SET_AUX_MODE

Received from the proxy when the auxiliary mode has been changed.

Name

SET_AUX_MODE ()

Parameter Type Description
ID NUM ID value of the auxiliary to set.
MODE STR ON/OFF

Returns

None

SET_POOL_HEAT_MODE

Received from the proxy when pool het mode has been changed.

Name

SET_POOL_HEATMODE ()

Parameter Description Description
MODE STR ON/OFF
ID INT Heat mode ID value

Returns

None

SET_POOL_PUMP_MODE

Received from the proxy when pool pump mode has been changed.

Name

SET_POOL_PUMPMODE ()

Parameter Description
PUMPMODE From : <pool_pumpmodes> capability.

Returns

None

SET_POOL_SETPOINT

Received from the proxy when pool temperature etpoint has been changed.

Name

SET_POOL_SETPOINT ()

Parameter Description Description
SETPOINT INT Temperature Value

Returns

None

SET_SPA_HEAT_MODE

Received from the proxy when spa heat mode been changed.

Name

SET_SPA_HEATMODE ()

Parameter Type Description
MODE STR ON/OFF
ID INT Heat mode ID

Returns

None

SET_SPA_PUMP_MODE

Received from the proxy when spa pump mode has been changed.

Name

SET_SPA_PUMPMODE ()

Parameter Description
PUMPMODE From : <SPA_pumpmodes> capability.

Returns

None

SET_SPA_SETPOINT

Received from the proxy when Spa Setpoint has been changed.

Name

SET_SPA_SETPOINT ()

Parameter Type Description
SETPOINT INT Temperature

Returns

None

UPDATE_AUX_ITEM

Received from the proxy when the auxiliary id is changed in Auxiliary Controls card. The command should be received only when provides_aux_list capability is set to true.

Name

AUX_ITEM_UPDATED ()

Parameter Type Description
ID STR Current aux ID
NEW_ID STR New aux ID

Returns

None

ADD_AUX_ITEM

Received from the proxy when an auxiliary item is added by clicking on the + icon in Auxiliary Controls card. The command should be received only when provides_aux_list capability is set to true.

Name

AUX_ITEM_ADDED ()

Parameter Type Description
AUX_ID STR ID of the aux added

Returns

None

REMOVE_AUX_ITEM

Received from the proxy when an auxiliary item is removed by clicking on the - icon in Auxiliary Controls card. The command should be received only when provides_aux_list capability is set to true.

Name

AUX_ITEM_ADDED ()

Parameter Description Description
ID STR ID of the aux removed

Returns

None

Pool Protocol Notifications

AIR_TEMP_CHANGED

Sent to the proxy to indicate that the air temperature has changed

Name

AIR_TEMP_CHANGED ()

Parameter Type Description
TEMPERATURE NUM Temperature value.

Returns

None

Example

C4:SendToProxy(5001, "AIR_TEMP_CHANGED", {TEMPERATURE = 99})

AUX_NAMES_CHANGED

This notification provides a way to override capabilities.

Name

AUX_NAMES_CHANGED ()

Parameter Type Description
AUXNAMES BOOL XML UPDATE LIST - True

Returns

None

Example


<items>
    <item>
        <id>1</id>
        <item_text>Pool Cleaner</item_text>
        <type>Toggle</type>
    </item>
    <item>
        <id>2</id>
        <item_text>Low Speed Pump</item_text>
        <type>Toggle</type>
    </item>
    <item>
        <id>3</id>
        <item_text>Spa Spillover</item_text>
        <type>Toggle</type>
    </item>
</items>

AUXMODE_CHANGED

Notification sent to the proxy to indicate whether Aux Buttons on the right side of the UI are On or Off.  ID corresponds to the button name ID in the BUTTONNAMES notify. Mode Y is On, N is Off.

Name

AUXMODE_CHANGED ()

Parameter Type Description
ID INT ID of auxiliary
MODE STR ON/OFF
SELECTED LIST For type LIST from <aux_types> <items> item selected if is provided by the device.

Returns

None

Example


<aux_state>
    <item>
        <id>1</id>
        <mode>ON</mode>
    </item>
    <item>
        <id>6</id>
        <mode>ON</mode>
        <selected>50%</selected>
    </item>
</aux_state>

HAS_AIR_CHANGED

Sent to the proxy to indicate that there is an outdoor air temperature available on this pool controller.  Determines whether the outdoor temperature is shown on the Navigator UI.

Name

HAS_AIR_CHANGED ()

Parameter Description Description
HASAIR BOOL (“True/False”) Is an outdoor air temperature available.

Returns

None

Example

C4:SendToProxy(5001, "HASAIR_CHANGED", {HASAIR = "True"})

HAS_POOL_CHANGED

Sent to the proxy to indicate that there is a Pool available on this controller. If ‘False’, Pool Setpoint is unavailable to set.

Name

HAS_POOL_CHANGED ()

Parameter Description Description
HASPOOL BOOL (“True/False”) Is a Pool available on this controller

Returns

None

Example

C4:SendToProxy(5001, "HASPOOL_CHANGED", {HASPOOL = "True"}) 

HAS_SPA_CHANGED

Sent to the proxy to indicate that there is a Spa available on this controller. If ‘False’, Spa Setpoint is unavailable to set.

Name

HAS_SPA_CHANGED ()

Parameter Type Description
HASSPA BOOL (“True/False”) Is a Spa available on this controller.

Returns

None

Example

C4:SendToProxy(5001, "HASSPA_CHANGED", {HASSPA = "True"})

NUM_AUXS_CHANGED

Sent to the proxy to indicate the number of Aux Buttons available in ComposerPro, and on Navigator

Name

NUM_AUXS_CHANGED ()

Parameter Type Description
AUXS NUM Maximum number of auxiliaries.

Returns

None

Example

C4:SendToProxy(5001, "NUM_AUXS", {AUXS = 5}

POOL_PUMPMODES_ LIST_CHANGED

Sent to the proxy to indicate the number of Aux Buttons available in ComposerPro, and on Navigator

Name

POOL_PUMPMODES_LIST_CHANGED ()

Parameter Type Description
POOL_PUMPMODES  LIST Comma delimited list of Aux buttons.

Returns

None

POOL_SETPOINT_CHANGED

Sent to the proxy to indicate that the setpoint on the pool controller has changed.

Name

POOL_SETPOINT_CHANGED ()

Parameter DType Description
SETPOINT NUM New setpoint.

Returns

None

Example

C4:SendToProxy(5001, "POOL_SETPOINT_CHANGED", {SETPOINT = 23})

POOL_TEMP_CHANGED

Sent to the proxy to indicate that the pool temperature has changed.

Name

POOL_TEMP_CHANGED ()

Parameter Type Description
TEMPERATURE NUM New temperature value.

Returns

None

Example

C4:SendToProxy(5001, "POOL_TEMP_CHANGED", {TEMPERATURE = 78})

POOL_HEATMODE_CHANGED

Sent to the proxy to indicate that the pool heat mode has changed.

Name

POOL_HEATMODE_CHANGED ()

Parameter Description
XML HEATMODE.

Returns

None

Example


<pool_heatstate>
   <item>
        <id>set_pool_heater</id>
        <mode>ON</mode>
   </item>
   <item>
        <id>set_solar_heater</id>
        <mode>OFF</mode>
   </item>
</pool_heatstate>`

POOL_HEATMODE_LIST_CHANGED

Sent to the proxy to indicate that the pool heat mode list has changed.

Name

POOL_HEATMODE_LIST_CHANGED ()

Parameter Description
XML POOL_HEATMODE.

Returns

None

Example

<pool_heat_modes>
    <mode>
        <id>1</id>
        <text>Heater</text>
        <command>set_pool_heater</command>
    </mode>
    <mode>
        <id>2</id>
        <text>Solar Heater</text>
        <command>set_solar_heater</command>
    </mode>
</pool_heat_modes>

PUMP_MODE_CHANGED

Sent to the proxy to indicate that the pump mode has changed.

Name

PUMP_MODE_CHANGED ()

Parameter Description Description
PUMPMODE BOOL From <pool_pumpmodes>True/False

Returns

None

Example

C4:SendToProxy(5001, "PUMP_MODE_CHANGED", {PUMPMODE = "True"})

SCALE_CHANGED

Sent to the proxy to indicate that the Temperature scale has changed.

Name

SCALE_CHANGED ()

Parameter Type Description
SCALE STR “C” or “F”

Returns

None

Example

C4:SendToProxy(5001, "SCALE_CHANGED", {SCALE = "C"})

SPA_HEATMODE_CHANGED

Sent to the proxy to indicate that the spa heat mode has changed.

Name

SPA_HEATMODE_CHANGED ()

Parameter Description
XML HEATMODE.

Returns

None

Example

XML:
id: from <command>
mode: OFF | ON | ENABLED
 
<spa_heatstate>
    <item>
        <id>set_spa_heater</id>
        <mode>OFF</mode>
    </item>
</spa_heatstate>

SPA_HEATMODES_LIST_CHANGED

This notification provides a way to override capabilities. It is sent to the proxy when the list of available spa heat modes has changed.

Name

SPA_HEATMODES_LIST_CHANGED ()

Parameter Description
SPA_HEATPMODES  XML.

Returns

None

Example

XML
<spa_heat_modes>
    <mode>
        <id>1</id>
        <text>Heater</text>
        <command>set_spa_heater</command>
    </mode>
</spa_heat_modes>

SPA_MODE_CHANGED

Sent to the proxy to indicate whether the ‘Spa’ Aux button on the right side of the UI is On or Off.

Name

SPA_MODE_CHANGED ()

Parameter Type Description
SPAMODE BOOL From <spa_pumpmodes>True/False

Returns

None

Example

C4:SendToProxy(5001, "SPA_MODE_CHANGED", {SPAMODE = "True"}) 

SPA_PUMPMODES_LIST_CHANGED

This notification provides a way to override capabilities. It is sent to the proxy when the list of available spa pump modes has changed

Name

SPA_PUMPMODES_LIST_CHANGED ()

Parameter Description Description
SPA_PUMPMODES  LIST Comma delimited list of available spa pump modes.

Returns

None

SPA_SETPOINT_CHANGED

Sent to the proxy to indicate that the temperature setpoint on the spa controller has changed.

Name

SPA_SETPOINT_CHANGED ()

Parameter Type Description
SETPOINT NUM New setpoint value.

Returns

None

Example

C4:SendToProxy(5001, "SPA_SETPOINT_CHANGED", {SETPOINT = 103}) 

SPA_TEMP_CHANGED

Sent to the proxy to indicate that the spa temperature has changed.

Name

SPA_TEMP_CHANGED ()

Parameter Type Description
TEMPERATURE NUM New temperature value.

Returns

None

Example

C4:SendToProxy(5001, "SPA_TEMP_CHANGED", {TEMPERATURE = 105}) 

Pool Proxy UI Requests

GET_PROPERTIES

Obtains the pool driver’s property information.

Example

<pool_properties>
    <hasair>True</hasair>
    <hasspa>True</hasspa>
    <haspool>True</haspool>
    <aux_list>
        <items>
            <item>
                <id>1</id>
                <item_text>Auxiliary Control 1</item_text>
                <type>Toggle</type>
            </item>
            <item>
                <id>2</id>
                <item_text>Auxiliary Control 2</item_text>
                <type>Toggle</type>
            </item>
            <item>
                <id>3</id>
                <item_text>Auxiliary Control 3</item_text>
                <type>Toggle</type>
            </item>
            <item>
                <id>4</id>
                <item_text>Auxiliary Control 4</item_text>
                <type>Toggle</type>
            </item>
            <item>
                <id>5</id>
                <item_text>Jandy Color Aux 5</item_text>
                <type>Light Dimmer Jandy Colors</type>
            </item>
            <item>
                <id>6</id>
                <item_text>Dimmer Aux 6</item_text>
                <type>Dimmer</type>
            </item>
            <item>
                <id>7</id>
                <item_text>Auxiliary Control 7</item_text>
                <type>Toggle</type>
            </item>
            <item>
                <id>8</id>
                <item_text>Auxiliary Control 8</item_text>
                <type>Toggle</type>
            </item>
        </items>
    </aux_list>
</pool_properties>

GET_STATE

Obtains the pool’s state.

Example

<pool_state>
    <spamode>Off</spamode>
    <pumpmode>On</pumpmode>
    <pool_setpoint>86</pool_setpoint>
    <spa_setpoint>102</spa_setpoint>
    <pool_temp>79</pool_temp>
    <spa_temp>-1</spa_temp>
    <scale>F</scale>
    <air_temp>79</air_temp>
    <aux_state>
        <item>
            <id>1</id>
            <mode>ON</mode>
        </item>
        <item>
            <id>2</id>
            <mode>OFF</mode>
        </item>
        <item>
            <id>3</id>
            <mode>OFF</mode>
        </item>
        <item>
            <id>4</id>
            <mode>OFF</mode>
        </item>
        <item>
            <id>5</id>
            <mode>OFF</mode>
        </item>
        <item>
            <id>6</id>
            <mode>ON</mode>
            <selected>75%</selected>
        </item>
        <item>
            <id>7</id>
            <mode>ON</mode>
        </item>
        <item>
            <id>8</id>
            <mode>OFF</mode>
        </item>
        <item>
            <id>9</id>
            <mode>OFF</mode>
        </item>
        <item>
            <id>10</id>
            <mode>OFF</mode>
        </item>
        <item>
            <id>11</id>
            <mode>OFF</mode>
        </item>
        <item>
            <id>12</id>
            <mode>OFF</mode>
        </item>
        <item>
            <id>13</id>
            <mode>OFF</mode>
        </item>
        <item>
            <id>14</id>
            <mode>OFF</mode>
        </item>
        <item>
            <id>15</id>
            <mode>OFF</mode>
        </item>
    </aux_state>
    <pool_heatstate>
        <item>
            <id>set_pool_heater</id>
            <mode>ON</mode>
        </item>
        <item>
            <id>set_solar_heater</id>
            <mode>OFF</mode>
        </item>
    </pool_heatstate>
    <spa_heatstate>
        <item>
            <id>set_spa_heater</id>
            <mode>OFF</mode>
        </item>
    </spa_heatstate>
</pool_state>

GET_SETUP

Obtains the driver’s setup information.

Example

pool_setup>
    <temp_min>34</temp_min>
    <temp_max>104</temp_max>
    <pool_pumpmodes>Off,On</pool_pumpmodes>
    <spa_pumpmodes>Off,On</spa_pumpmodes>
    <max_aux>15</max_aux>
    <pool_heat_modes>
        <mode>
            <id>1</id>
            <text>Heater</text>
            <command>set_pool_heater</command>
        </mode>
        <mode>
            <id>2</id>
            <text>Solar Heater</text>
            <command>set_solar_heater</command>
        </mode>
    </pool_heat_modes>
    <spa_heat_modes>
        <mode>
            <id>1</id>
            <text>Heater</text>
            <command>set_spa_heater</command>
        </mode>
    </spa_heat_modes>
    <aux_types>
        <aux_type>
            <type>TOGGLE</type>
            <name>Toggle</name>
        </aux_type>
        <aux_type>
            <type>LIST</type>
            <provides_selected_item>false</provides_selected_item>
            <name>Light Dimmer Jandy Colors</name>
            <items>Off,Alpine White,Sky Blue,Cobalt Blue,Caribbean Blue,Spring Green,Emerald Green,Emerald Rose,Magenta,Garnet Red,Violet,Color Splash</items>
        </aux_type>
        <aux_type>
            <type>LIST</type>
            <provides_selected_item>false</provides_selected_item>
            <name>Light Dimmer Pentair</name>
            <items>Off,White,Light Green,Green,Cyan,Blue,Lavender,Magenta,Light Magenta,Color Splash</items>
        </aux_type>
        <aux_type>
            <type>LIST</type>
            <provides_selected_item>false</provides_selected_item>
            <name>Light Dimmer Hayward Color Logic</name>
            <items>Off,Voodoo Lounge,Deep Blue Sea,Afternoon Skies,Emerald,Sangria,Cloud White,Twilight,Tranquility,Gemstone,USA,Mardi Gras,Cool Cabaret</items>
        </aux_type>
        <aux_type>
            <type>LIST</type>
            <provides_selected_item>false</provides_selected_item>
            <name>Light Dimmer Jandy LED Water Colors</name>
            <items>Off,Alpine White,Sky Blue,Cobalt Blue,Caribbean Blue,Spring Green,Emerald Green,Emerald Rose,Magenta,Violet,Slow Color Splash,Fast Color Splash,USA,Fat Tuesday,Disco Tech</items>
        </aux_type>
        <aux_type>
            <type>LIST</type>
            <provides_selected_item>false</provides_selected_item>
            <name>Light Dimmer Pentair Intellibright</name>
            <items>Off,Sam,Party,Romance,Caribbean,American,California Sunset,Royal,Blue,Green,Red,White,Magenta</items>
        </aux_type>
        <aux_type>
            <type>LIST</type>
            <provides_selected_item>true</provides_selected_item>
            <name>Dimmer</name>
            <items>Off,25%,50%,75%,100%</items>
        </aux_type>
    </aux_types>
</pool_setup>

Pool Proxy Variables

POOL VARIABLES

The Pool Proxy supports the following variables:

AIR_TEMPERATURE integer

POOL_HEATMODE string

POOL_SETPOINT integer

POOL_TEMPERATURE integer

PUMPMODE string

SCALE string

SPAMODE string

SPA_HEATMODE string

SPA_SETPOINT integer

SPA_TEMPERATURE integer

lua