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 2024 Snap One, 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
Introduction
This documentation includes content that details the functions that make up the Thermostat 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 Thermostats have common controls such as INCREASE SET POINT, DECREASE SET POINT and SET PRESET. The Thermostat proxy allows for a common user interface to control all Thermostats. 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 Thermostat Proxy in conjunction with O.S. Release 3.4.2
What’s New in 3.4.1
There were no modifications to the Thermostat Proxy in conjunction with O.S. Release 3.4.1
What’s New in 3.4.0
There were no modifications to the Thermostat Proxy in conjunction with O.S. Release 3.4.0.
What’s New in 3.3.2
There were no modifications to the Thermostat Proxy in conjunction with O.S. Release 3.3.2.
What’s New in 3.3.1
There were no modifications to the Thermostat Proxy in conjunction with O.S. Release 3.3.1.
What’s New in 3.3.0
There were no modifications to the Thermostat Proxy in conjunction with O.S. Release 3.3.0.
What’s New in 3.2.3
There were no modifications to the Thermostat Proxy in conjunction with O.S. Release 3.2.3.
What’s New in 3.2.2
There were no modifications to the Thermostat Proxy in conjunction with O.S. Release 3.2.2.
What’s New in 3.2.1
There were no modifications to the Thermostat Proxy in conjunction with O.S. Release 3.2.1.
What’s New in 3.2.0
There were no modifications to the Thermostat Proxy in conjunction with O.S. Release 3.2.0.
What was New in 3.1.2
There were no modifications to the Thermostat Proxy in conjunction with O.S. Release 3.1.2.
What was New in 3.1.0
There were no modifications to the Thermostat Proxy in conjunction with O.S. Release 3.1.0.
What was New in O.S.3
There were no modifications to the Thermostat Proxy in conjunction with O.S. Release 3.0.0.
Thermostat Capabilities
THERMOSTAT CAPABILITIES
The following Capabilities are supported with the Thermostat Proxy. Please see the Samples folder delivered in this SDK for additional Thermostat (V2) code examples.
<can_calibrate></can_calibrate>
Indicates if the device is capable of calibrating itself. Enables SET_CALIBRATION
command. Valid values: True/False.
<can_change_scale></can_change_scale>
Boolean to enable/disable Navigator UIs and ComposerPro from being able to change the scale of the hardware. Valid values: True/False. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<can_cool></can_cool>
Indicates if this thermostat supports cooling. Valid values: True/False. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.This is older functionality that indicated to UI's and Programming that the device could execute this functionality. However, their limitation is that they do not take into account if the current HVAC mode supported them. HVAC Modes replaced their functionality, but older drivers still use them and they do work. Control4 recommends the use of HVAC Modes now and that this capability be set to false in the driver's configuration file.
<can_dehumidify></can_dehumidify>
Boolean to enable/disable can_dehumidity
capability, if the device supports this feature, default is True. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification. This is older functionality that indicated to UI's and Programming that the device could execute this functionality. However, their limitation is that they do not take into account if the current HVAC mode supported them. HVAC Modes replaced their functionality, but older drivers still use them and they do work. Control4 recommends the use of HVAC Modes now and that this capability be set to false in the driver's configuration file.
<can_do_auto></can_do_auto>
Indicates if this thermostat can automatically switch from heat to cool. If the device can deadband enforcement, it will be done on the UIs as specified with the deadband capabilities. Valid values: True/False. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification. This is older functionality that indicated to UI's and Programming that the device could execute this functionality. However, their limitation is that they do not take into account if the current HVAC mode supported them. HVAC Modes replaced their functionality, but older drivers still use them and they do work. Control4 recommends the use of HVAC Modes now and that this capability be set to false in the driver's configuration file.
<can_heat></can_heat>
Indicates if this thermostat supports heating. Valid values: True/False. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification. This is older functionality that indicated to UI's and Programming that the device could execute this functionality. However, their limitation is that they do not take into account if the current HVAC mode supported them. HVAC Modes replaced their functionality, but older drivers still use them and they do work. Control4 recommends the use of HVAC Modes now and that this capability be set to false in the driver's configuration file.
<can_humidify></can_humidify>
Boolean to enable/disable can_humidity
capability, if the device supports this feature, default is True. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification. This is older functionality that indicated to UI's and Programming that the device could execute this functionality. However, their limitation is that they do not take into account if the current HVAC mode supported them. HVAC Modes replaced their functionality, but older drivers still use them and they do work. Control4 recommends the use of HVAC Modes now and that this capability be set to false in the driver's configuration file.
<can_inc_dec_setpoints></can_inc_dec_setpoints>
Boolean indicating if the device has internal commands to increment and decrement both heat and cool setpoints independently. If false the proxy will take the current setpoint and +/i 1 (or the resolution) and send a DYNAMIC_CAPABILITIES_CHANGED
command with the new setpoint value, which could potentially send 81 three times if someone did programming of Increment Setpoint and the current setpoint was 80, rather than sending 83 as someone might expect from Composer Programming of 3 increment commands without a sleep between that provides enough time for the hardware to set each increment and return the new setpoint to director before the next Increment occurs.
<can_lock_buttons></can_lock_buttons>
Indicates if the buttons on the TSTAT can be locked out to prevent changes. Valid values: True/False.
<can_preset></can_preset>
Boolean indicating if the device supports the preset functionality including custom_fields
. This does not including scheduling as preset_scheduling
is a feature that is currently not supported. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<can_preset_schedule></can_preset_schedule>
Boolean indicating if the thermostat will support the SET_EVENTS
commands for running presets based on scheduling created in Navigators.
<current_temperature_max_c></current_temperature_max_c>
Double indicating the maximum temperature that the thermostat will report in C. Default is 48.
<current_temperature_min_c></current_temperature_min_c>
Double indicating the minimum temperature that the thermostat will report in C. Default is -40.
<current_temperature_max_f></current_temperature_max_f>
Double indicating the maximum temperature that the thermostat will report in F. Default is 120.
<current_temperature_min_f></current_temperature_min_f>
Double indicating the minimum temperature that the thermostat will report in F. Default is -40.
<current_temperature_resolution_c></current_temperature_resolution_c>
Double indicating the increments that the temperature will follow, such as .1, .5, 1, 2, 5, etc. Default is 1. This capability can be changed through a DYNAMIC_CAPBILITIES_CHANGED
notification.
<current_temperature_resolution_f></current_temperature_resolution_f>
Double indicating the increments that the temperature will follow, such as .2, .5, 1, 2, 5, etc. Default is 1. Note .2 is the lowest F resolution supported. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<fan_modes></fan_modes>
This is a comma delimited list of possible fan modes this thermostat supports. For example: Auto, Low, Medium, High with no spaces after the comma. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<fan_states></fan_states>
This is a comma delimited list of all the possible states that the HVAC system fan supports. For example: Off, On, Low, Med, Circulate with no spaces after the commas. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<has_humidity></has_humidity>
Boolean indicating if the device can report the current humidity. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<has_extras></has_extras>
Boolean indicating if the device has extras commands support. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<has_connection_status></has_connection_status>
Boolean indicating if the device reports online/offline status of the hardware device, this is often forgotten about but very important to implement in new protocol drivers drivers.
<has_outdoor_temperature></has_outdoor_temperature>
Boolean indicating if the device can provide an outdoor temperature. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<has_remote_sensor></has_remote_sensor>
Indicates if this thermostat has a remote sensor. Valid values: True/False.
<has_single_setpoint></has_single_setpoint>
Boolean indicating if the device is single setpoint. can_heat, can_cool
and can_auto
should be set to false if this option is used. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification. This is older functionality that indicated to UI's and Programming that the device could execute this functionality. However, their limitation is that they do not take into account if the current HVAC mode supported them. HVAC Modes replaced their functionality, but older drivers still use them and they do work. Control4 recommends the use of HVAC Modes now and that this capability be set to false in the driver's configuration file.
<has_temperature></has_temperature>
Boolean indicating if the device can provide a temperature of the thermostat/room. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<has_vacation_mode></has_vacation_mode>
Indicates if this thermostat supports vacation mode Valid values: True/False
The capability has_vacation_mode
must be set to true for the vacation commands and notifications to be executed. Preset Scheduling and Vacation Mode are mutually exclusive and drivers should really use Preset Scheduling to accomplish what Vacation Mode has done in the past.
<hold_modes></hold_modes>
This is a comma delimited list of the possible hold modes this thermostat supports. Valid values include: Off, 2 Hours, Until Next, Permanent with no spaces after the commas. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<humidity_modes></humidity_modes>
A comma separated list of all the modes the device supports. For example: "Off,Humidify,Dehumidify,Auto" with no spaces after the commas. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<humidity_states></humidity_states>
A comma separated list of all the modes the device supports. Usually something like "Off,Humidifying,Dehumidifying", with no spaces after the commas.
<hvac_modes></hvac_modes>
A comma separated list of all the modes the device supports. For example: "Off,Heat,Cool", with no spaces after the commas.
<hvac_states></hvac_states>
This is a comma delimited list that represents all of the possible states that the HVAC system supports. For example: Off, Heat, Cool, Heating, Stage 1 Cool, etc with no spaces after the commas
<outdoor_temperature_resolution_c></outdoor_temperature_resolution_c>
Double indicating the increments that the temperature will follow, such as .2, .5, 1, 2, 5, etc. Default is 1. Note that .2 is the lowest C resolution supported. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<outdoor_temperature_resolution_f></outdoor_temperature_resolution_f>
Double indicating the increments that the temperature will follow, such as .2, .5, 1, 2, 5, etc. Default is 1. Note .2 is the lowest F resolution supported. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<preset_fields></preset_fields>
XML of fields for settings that are potentially unique to the protocol driver, yet will be displayed in the UI during the creation or modification of presets for scheduling. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<scheduling></scheduling>
A boolean indicating if the device supports a programmed schedule. If it is true, it should have a schedule_default entry
in its c4z file. Also mutually exclusive to Preset Scheduling and use of this is discouraged.
<schedule_default></schedule_default>
An XML block indicating the default schedule for the device. Mutually exclusive to Preset Scheduling and use of this is discouraged.
<schedule_entry></schedule_entry>
There is one of these entries for each schedule entry during the day. In the example used here, there are six of them. Name indicates the name of the entry that will show up in composer and navigator. Time indicates what time during the day this entry will become active. The time units are minutes since midnight, so 360 means 6:00AM. Enabled indicates whether or not this entry is initially enabled or not. Valid values: True/False. See example to the right.
<schedule_day_info>
<schedule_entry Name="Awake" Time="360" Enabled="True" />
<schedule_entry Name="Leave" Time="480" Enabled="True" />
<schedule_entry Name="Return" Time="1080" Enabled="True"/>
<schedule_entry Name="Sleep" Time="1320" Enabled="True" />
<schedule_entry Name="Custom 1" Time="1380" Enabled="False" />
<schedule_entry Name="Custom 2" Time="1380" Enabled="False" />
</schedule_day_info>
<setpoint_cool_max></setpoint_cool_max>
Integer indicating the highest temperature the cool setpoint can be configured as. Default is 89. If used,_f
and _c
do not need to be set but since this value is Celsius x 10, it will result in a potentially undesired Fahrenheit conversion. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<setpoint_cool_max_c></setpoint_cool_max_c>
Integer indicating the highest temperature the cool setpoint can be configured as. Default is 90. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<setpoint_cool_max_c></setpoint_cool_max_c>
Integer indicating the highest temperature the cool setpoint can be configured as. Default is 89. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<setpoint_cool_min></setpoint_cool_min>
Integer indicating the lowest temperature the cool setpoint can be configured as. Default is 39. If used,_f
and _c
do not need to be set but since this value is Celsius x 10 it will result in a potentially undesired Fahrenheit conversion. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<setpoint_cool_min_c></setpoint_cool_min_c>
Integer indicating the lowest temperature the cool setpoint can be configured as. Default is 42. If used, _f
and _c
do not need to be set but since this value is Celsius x 10 it will result in a potentially undesired Fahrenheit conversion. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<setpoint_cool_min_f></setpoint_cool_min_f>
Integer indicating the lowest temperature the cool setpoint can be configured as. Default is 42. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<setpoint_cool_resolution_c></setpoint_cool_resolution_c>
Double indicating the increments that the setpoint will follow, such as .1, .5, 1, 2, 5, etc. Default is 1. This capability can be changed through a C notification.
<setpoint_cool_resolution_f></setpoint_cool_resolution_f>
Double indicating the increments that the setpoint will follow, such as .1, .5, 1, 2, 5, etc. Default is 1. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<setpoint_heatcool_deadband_c></setpoint_heatcool_deadband_c>
Double indicating the deadband range in Celcius that the hardware requires between heat and cool. Default is 2. Default is 2. Post operating system 2.7.0, UI's will show both heat and cool setpoints moving if in Auto and the movement will be based on this deadband value. If a user tries to move heat above cool or cool below heat, the UI's will only send the setpoint command for the primarily moving setpoint. A protocol driver will need to send two notifies back, one for heat and one for cool if in fact both setpoints were changed on the hardware.
<setpoint_heatcool_deadband_f></setpoint_heatcool_deadband_f>
Double indicating the deadband range in Fahrenheit that the hardware requires between heat and cool. Default is 2. Post operating system 2.7.0, UI's will show both heat and cool setpoints moving if in Auto and the movement will be based on this deadband value. If a user tries to move heat above cool or cool below heat, the UI's will only send the setpoint command for the primarily moving setpoint. A protocol driver will need to send two notifies back, one for heat and one for cool if in fact both setpoints were changed on the hardware.
<setpoint_heat_max></setpoint_heat_max>
Integer indicating the highest temperature the heat setpoint can be configured as. Default is 88. If used, _f
and_c
do not need to be set but since this value is Celsius x 10 it will result in a potentially undesired Fahrenheit conversion. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<setpoint_heat_max_c></setpoint_heat_max_c>
Integer indicating the highest temperature the heat setpoint can be configured as. Default is 31. Best to use _f
and _c
and not the older celsius x 10 capability. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<setpoint_heat_max_f></setpoint_heat_max_f>
Integer indicating the highest temperature the heat setpoint can be configured as. Default is 89. Best to use _f
and _c
and not the older celsius x 10 capability. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<setpoint_heat_min></setpoint_heat_min>
Integer indicating the lowest temperature the heat setpoint can be configured as. Default is 40. If used, _f
and _c
do not need to be set but since this value is Celsius x 10 it will result in a potentially undesired Fahrenheit conversion. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<setpoint_heat_min_c></setpoint_heat_min_c>
Integer indicating the lowest temperature the heat setpoint can be configured as. Default is 4. Best to use _f
and _c
and not the older Celsius x 10 capability. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<setpoint_heat_min_f></setpoint_heat_min_f>
Integer indicating the lowest temperature the heat setpoint can be configured as. Default is 38. Best to use _f
and _c
and not the older celsius x 10 capability.
<setpoint_heat_resolution_c></setpoint_heat_resolution_c>
Double indicating the increments that the setpoint will follow, such as .1, .5, 1, 2, 5, etc. Default is 1. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<setpoint_dehumidify_max></setpoint_dehumidify_max>
Integer indicating the highest dehumidify setpoint, default 100. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<setpoint_dehumidify_min></setpoint_dehumidify_min>
Integer indicating the lowest dehumidify setpoint, default 0. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<setpoint_humidify_min></setpoint_humidify_min>
Integer indicating the lowest humidify setpoint, default 0. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<setpoint_humidify_max></setpoint_humidify_max>
Integer indicating the highest humidify setpoint, default 100. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<setpoint_humidify_resolution></setpoint_humidify_resolution>
Integer indicating the increments that the setpoint will follow, Default is 1. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<setpoint_dehumidify_resolution></setpoint_dehumidify_resolution>
Integer indicating the increments that the setpoint will follow, Default is 1. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<setpoint_single_max_c></setpoint_single_max_c>
Integer indicating the highest temperature the single setpoint can be configured as. Default is 32. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<setpoint_single_max_f></setpoint_single_max_f>
Integer indicating the highest temperature the single setpoint can be configured as. Default is 90. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<setpoint_single_min_c></setpoint_single_min_c>
Integer indicating the lowest temperature the single setpoint can be configured as. Default is 4. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<setpoint_single_min_f></setpoint_single_min_f>
Integer indicating the lowest temperature the single setpoint can be configured as. Default is 38. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
<setpoint_heat_resolution_f></setpoint_heat_resolution_f>
Double indicating the increments that the setpoint will follow, such as .2, .5, 1, 2, 5, etc. Default is 1. Note .2 is the lowest F resolution supported. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
Thermostat Conditionals
THERMOSTAT CONDITIONALS
The following Conditionals are supported with the Thermostat Proxy and can be used in ComposerPro Programming. Please see the Samples folder delivered in this SDK for Thermostat (V2) code examples.
IF_TEMPERATURE
- simple integer test to see if the current temperature is a supplied value. No manipulation is done on the units for the temperature. If the thermostat is configured to be celsius, the value to compare it with should be in Celsius as well.
IF_HEAT_SETPOINT
- simple integer test against the current heat setpoint.
IF_COOL_SETPOINT
- simple integer test against the current cool setpoint.
IF_HVAC_MODE
- simple boolean test to see if the HVAC is in a given mode.
IF_FAN_MODE
- simple boolean test to see if the fan is in a given mode.
IF_HOLD_MODE
- simple boolean test to see if the hold mode is in a given mode.
IF_HVAC_STATE
- simple boolean test to see if the HVAC is in a given state.
IF_FAN_STATE
- simple boolean test to see if the fan is in a given state.
IF_VACATION_MODE
- simple boolean test to see if the vacation mode is on/off.
IF_OUTDOOR_TEMPERATURE
- simple integer test to see if the current temperature is a supplied value. Not manipulation is done on the units for the temperature. If the thermostat is configured to be Celsius, the value to compare it with should be in Celsius as well.
IF_HEAT_SETPOINT
- simple integer test against the current heat setpoint.
IF_COOL_SETPOINT
- simple integer test against the current cool setpoint.
IF_HVAC_MODE
- simple boolean test to see if the HVAC is in a given mode.
IF_FAN_MODE
- simple boolean test to see if the fan is in a given mode.
IF_HOLD_MODE
- simple boolean test to see if the hold mode is in a given mode.
IF_HVAC_STATE
- simple boolean test to see if the HVAC is in a given state.
IF_FAN_STATE
- simple boolean test to see if the fan is in a given state.
IF_VACATION_MODE
- simple boolean test to see if the vacation mode is on/off.
IF_OUTDOOR_TEMPERATURE
- simple integer test to see if the current temperature is a supplied value.
IF_HUMIDITY_MODE
- simple boolean test on a string to see if the humidity mode is in a given mode.
IF_HUMIDITY_STATE
- simple boolean test on a string to see if the humidity state is in a given mode.
IF_HUMIDIFY_SETPOINT
- simple integer test on an int number to see if the current humidify setpoint is a supplied value.
IF_HUMIDITY_MODE
- simple boolean test on a string to see if the humidity mode is in a given mode.
IF_HUMIDITY_STATE
- simple boolean test on a string to see if the humidity state is in a given mode.
IF_HUMIDIFY_SETPOINT
- simple integer test on an int number to see if the current humidify setpoint is a supplied value.
IF_MESSAGE
- simple boolean test to see if the HVAC is in a given mode.
IF_PRESET
- simple boolean test to see if the preset is in a given name.
Thermostat Connections
THERMOSTAT CONNECTION CLASSES
The Thermostat Proxy has three output connections. These include:
- Temperature (Class:
TEMPERATURE_VALUE
) - Used to send temperature received from the proxy driver to other driver(s) - Outdoor Temperature (Class:
TEMPERATURE_VALUE
) - Used to send temperature received from the proxy driver to other driver(s) - Humidity (Class:
HUMIDITY_VALUE
) - Used to send humidity received from the proxy driver to other driver(s)
TEMPERATURE AND OUTDOOR VALUE CONNECTION CLASS COMMANDS
GET_SENSOR_VALUE
Used to require remote temperature sensor data via the control input connection binding. Note that command handling is not implemented in some drivers with a temperature control output connection. Sensor data cannot be be requested from these drivers.
Signature
GET_SENSOR_VALUE ()
| Parameter |
None
VALUE_INITIALIZED
The value has been initialized. OnBindingChanged will cause this command to be sent automatically when the sending device goes Online.
Signature
VALUE_INITIALIZED ()
Parameter | Description |
---|---|
str | STATUS : Default is the status after first loading a driver and the value has never been set. active - Status if the value is active. last_known - The Last value received. The device either went offline or it has not been heard from since a reboot. |
int | TIMESTAMP: Timestamp of when the last value was received. |
VALUE_CHANGED
The value has changed.
Signature
VALUE_CHANGED ()
Parameter | Description |
---|---|
int | CELSIUS - Float - Celsius temperature value. |
int | FAHRENHEIT - Float - Fahrenheit temperature value. |
int | TIMESTAMP - Timestamp When the change occurred. |
VALUE_UNAVAILABLE
The value is possibly no longer accurate. OnBindingChanged, device went Offline, etc
Signature
VALUE_CHANGED ()
Parameter | Description |
---|---|
str | STATUS: offline - Device went offline or was unbound |
HUMIDITY VALUE CONNECTION CLASS COMMANDS
Please see the Samples folder delivered in this SDK for Thermostat (V2) code examples.
VALUE_INITIALIZED
The value has been initialized. OnBindingChanged will cause this command to be sent automatically when the sending device goes Online.
Signature
VALUE_INITIALIZED ()
Parameter | Description |
---|---|
str | STATUS: Default is the status after first loading a driver and the value has never been set. active - Status if the value is active. last_known - The Last value received. The device either went offline or it has not been heard from since a reboot. |
int | TIMESTAMP: Timestamp of when the change occurred. |
VALUE_CHANGED
The value has changed.
Signature
VALUE_CHANGED ()
Parameter | Description |
---|---|
int | VALUE |
int | TIMESTAMP: Timestamp of when the change occurred. |
VALUE_UNAVAILABLE
The value is possibly no longer accurate. OnBindingChanged, device went Offline, etc
Signature
VALUE_UNAVAILABLE ()
Parameter | Description |
---|---|
str | STATUS: offline - Device went offline or was unbound. |
Thermostat Events
THERMOSTAT EVENTS
The Thermostat Proxy fires the following events. If any of the registered variables change value, an event is fired; however those events are generated by the Variable Manager, and the proxy doesn't concern itself with those. Like most old proxies, events could be eliminated by just having programming use the registered variables.
In the past some UI's listened for variables not DataToUI calls. In 2.7.0 all UI's no longer listen to variable changed events, but it's worth noting that old UI's did.
Temperature Change
(Event=100)
Heat Setpoint Changed
(Event=101)
Cool Setpoint Changed
(Event=102)
HVAC Mode Changed
(Event=103)
Fan Mode Changed
(Event=104)
Hold Mode Changed
(Event=105)
HVAC State Changed
(Event=106)
Fan State Changed
(Event=107)
Vacation Mode Changed
(Event=108)
Outdoor Temperature Changed
(Event=109)
Humidity Changed
(Event=110)
Humidity Mode Changed
(Event=111)
Humidity State Changed
(Event=112)
Humidify Setpoint Changed
(Event=113)
Dehumidify Setpoint Changed
(Event=114)
Message Changed
(Event=115)
Preset Changed
(Event=116)
Single Setpoint Changed
(Event=117)
Thermostat Notifications
ALLOWED_FAN_MODES _CHANGED
Changes the value of the variable FAN_MODES_LIST
.
Name
ALLOWED_FAN_MODES_CHANGED ()
Parameter | Type | Description |
---|---|---|
Modes |
LIST. | A comma delimited list of available modes. |
Returns
None
ALLOWED_HUMIDITY_MODES_CHANGED
Changes the value of the variable HUMIDITY_MODES_LIST
Name
ALLOWED_HUMIDITY_MODES_CHANGED ()
Parameter | Type | Description |
---|---|---|
Modes |
LIST | A comma delimited list of available modes. Will do the same thing as humidity_modes capability |
Returns
None
ALLOWED HVAC MODES CHANGED
Changes the value of the variable HVAC_MODES_LIST
Name
ALLOWED_HVAC_MODES_CHANGED ()
Parameter | Type | Description |
---|---|---|
Modes |
LIST | A comma delimited list of available modes. |
BOOL | Option parameters: CAN_HEAT , CAN_COOL , CAN_AUTO . These modify the capabilities: can_heat , can_cool , can_do_auto . |
Returns
None
BUTTONS_LOCK_CHANGED
Used to inform the proxy if the buttons on the device should be locked or not.
Name
ALLOWED_HVAC_MODES_CHNAGED ()
Parameter | Type | Description |
---|---|---|
LOCK | BOOL | If the buttons on the device should be locked or not. |
Returns
None
CAN_COOL
Boolean to enable/disable can_cool
capability. If the device supports this feature, default is False.
Name
CAN_COOL ()
Parameter | Type | Description |
---|---|---|
BOOL | True/False. Supports cooling. |
Returns
None
CAN_HEAT
Boolean to enable/disable can_heat
capability. If the device supports this feature, default is False.
Name
CAN_HEAT ()
Parameter | Type | Description |
---|---|---|
BOOL | True/False. enable/disable can_heat capability. |
Returns
None
CAN_HUMIDIFY
Boolean to enable/disable can_humidify
capability. If the device supports this feature, default is False.
Name
CAN_HUMIDIFY ()
Parameter | Type | Description |
---|---|---|
BOOL | True/False. Enable/disable can_humidify capability |
Returns
None
CAN_DEHUMIDIFY
Boolean to enable/disable can_dehumidify
capability. If the device supports this feature, default is False.
Name
CAN_DEHUMIDIFY ()
Parameter | Type | Description |
---|---|---|
BOOL | True/False. Enable/disable can_dehumidify capability. |
Returns
None
CONNECTION
Boolean to enable/disable can_dehumidify
capability. If the device supports this feature, default is False.
Name
CONNECTION ()
Parameter | Description | Description |
---|---|---|
CONNECTED | BOOL | true/false. |
DataToUI name | If is_connected and is a boolean value. If IS_CONNECTED is false, the UI will show "–" where the temperature would be, indicating the device is off line. Also, sending a false will prevent any of the Control Buttons from appearing on the UI. |
Returns
None
COOL_SETPOINT_CHANGED
Notification that should be sent to the proxy when the cooling setpoint has changed.
Name
COOL_SETPOINT_CHANGED ()
Parameter | Type | Description |
---|---|---|
SETPOINT | NUM | New cooling setpoint temperature. |
SCALE | STR | The values allowed are KELVIN, K, CELSIUS, C, FAHRENHEIT, or F. |
Returns
None
COOL_SETPOINT_RESOLUTION C
Name
COOL_SETPOINT_RESOLUTION_C ()
Parameter | Type | Description |
---|---|---|
SETPOINT | INT | What increment to use (ie 1,3,5,10,etc), will do the same thing as the setpoint_cool_resolution capability, default 1 |
Returns
None
COOL_SETPOINT_RESOLUTION_F
Name
COOL_SETPOINT_RESOLUTION_F ()
Parameter | Type | Description |
---|---|---|
SETPOINT | INT | What increment to use (ie 1,3,5,10,etc), will do the same thing as the setpoint_cool_resolution capability, default 1 |
Returns
None
CUSTOM_FIELDS_CHANGED
Update the template Custom Fields that UI's display for a new Preset Event.
Name
CUSTOM FIELDS CHANGED ()
Parameter | Type | Description |
---|---|---|
XML | Text string of XML matching the Preset Schedule schema. To UI comes through as preset_custom_fields . |
Returns
`None `
Example
<preset_custom_fields>
<field id="TemperatureSensor" type="list" label="Temperature Sensor:" default="Primary: Built-In Sensor, Secondary: None">
<list>
<item text="Primary: Built In Sensor Alias" value="Primary: Built-In Sensor, Secondary: None"/>
<item text="Primary: Wired Remote Sensor Alias, Secondary: None" value="Primary: Wired Remote Sensor, Secondary: None"/>
<item text="Primary: Built In Sensor Alias, Secondary: Wired Remote Sensor Alias" value="Primary: Built-In Sensor, Secondary: Wired Remote Sensor"/<item text="Primary: Wired Remote Sensor Alias, Secondary: Built In Sensor Alias" value="Primary: Wired Remote Sensor, Secondary: Built-In Sensor"/>
</list>
</field>
</preset_custom_fields>
COOL_SETPOINT_MAX_C
Name
COOL_SETPOINT_ MAX_C ()
Parameter | Type | Description |
---|---|---|
Minimum Setpoint | INT | 0-100 that will do the same thing as the setpoint_cool_max capability, default 100 |
Returns
`None `
COOL_SETPOINT_MAX_F
Name
COOL_SETPOINT_ MAX_F ()
Parameter | Type | Description |
---|---|---|
Minimum Setpoint | INT | 0-100 that will do the same thing as the setpoint_cool_max capability, default 100 |
Returns
`None `
COOL_SETPOINT_MIN_C
Name
COOL_SETPOINT_ MIN_C ()
Parameter | Type | Description |
---|---|---|
Minimum Setpoint | INT | 0-100 that will do the same thing as the setpoint_cool_min capability, default 100 |
Returns
None
COOL_SETPOINT_MIN_F
Name
COOL_SETPOINT_ MIN_F ()
Parameter | Type | Description |
---|---|---|
Minimum Setpoint | INT | 0-100 that will do the same thing as the setpoint_cool_min capability, default 100 |
Returns
None
DEHUMIDIFY_SETPOINT_CHANGE
The dehumidify setpoint has changed.
Name
DEHUMIDIFY_SETPOINT_CHANGE ()
Parameter | Description |
---|---|
int | SETPOINT: (0-100). To UI comes through as dehumidify_setpoint |
Returns
None
DEHUMIDIFY_SETPOINT_MIN
The minimum dehumidify setpoint has changed.
Name
DEHUMIDIFY_SETPOINT_MIN ()
Parameter | Description |
---|---|
int | MINIMUM SETPOINT: (0-100). To UI comes through as setpointdehumidifymin ` capability. Defaults to 0. |
`
Returns
None
DEHUMIDIFY_SETPOINT_MAX
The maximun dehumidify setpoint has changed.
Name
DEHUMIDIFY_SETPOINT_MAX ()
Parameter | Description |
---|---|
int | MAXIMUM SETPOINT: (0-100). To UI comes through as setpoint_dehumidify_max capability. Defaults to 100. |
Returns
None
DEHUMIDIFY_SETPOINT _RESOLUTION
The dehumidify setpoint resolution has changed.
Name
DEHUMIDIFY_SETPOINT_RESOLUTION ()
Parameter | Description |
---|---|
int | What increment to use (ie 1,3,5,10,etc), will do the same thing as the setpointdehumidifyresolution \` capability, default 1 |
Returns
None
DYNAMIC_CAPABILITIES_CHANGED TSTAT
Dynamic Capabilities is a way for a protocol driver to send updates about some capabilities that can be changed when settings change on the hardware. An example would be a thermostat that has a humidifier added would need to tell the proxy it can now do humidification as well as what the min, max and resolution of changes are for the setpoint.
Name
DYNAMIC_CAPABILITIES_CHANGED ()
Parameter | Type | Description |
---|---|---|
HAS_OUTDOOR_TEMPERATURE |
BOOL | boolean to enable/disable hasoutdoortemperature capability, if the device supports this feature, default is false. |
CAN_CHANGE_SCALE |
BOOL | boolean to enable/disable Navigators UI's and composer from being able to change the scale of the hardware. |
HAS_HUMIDITY |
BOOL | boolean to enable/disable has_humidity capability, if the device supports this feature, default is false |
HAS_SINGLE_SETPOINT |
BOOL | Boolean used to turn single setpoint mode to on or off. Defaults to false (off). |
HUMIDIFY_SETPOINT_MIN |
INT | Minimum Setpoint, int 0-100 that will do the same thing as the setpoint_humidify_min capability, default 0 |
HUMIDIFY_SETPOINT_MAX |
INT | Minimum Setpoint, int 0-100 that will do the same thing as the setpoint_humidify_max capability, default 100 |
HUMIDIFY_SETPOINT_RESOLUTION |
INT | What increment to use (ie 1,3,5,10,etc), will do the same thing as the setpoint_humidify_resolution capability, default 1 |
HUMIDITY_SETPOINT_DEADBAND |
INT | What the deadband between humidify and dehumidify is, will do the same thing as the setpoint_humidity_deadband capability, default 10 |
DEHUMIDIFY_SETPOINT_MIN : |
INT | Minimum Setpoint, int 0-100 that will do the same thing as the setpoint_dehumidify_min capability, default 0 |
DEHUMIDIFY_SETPOINT_MAX |
INT | Minimum Setpoint, int 0-100 that will do the same thing as the setpoint_dehumidify_max capability, default 100 |
DEHUMIDIFY_SETPOINT_RESOLUTION |
INT | What increment to use (ie 1,3,5,10,etc), will do the same thing as the setpoint_dehumidify_resolution capability, default 1 |
Returns
None
EXTRAS_SETUP_CHANGED
Update the Extras Setup, displayed in the UI
Name
EXTRAS_SETUP_CHANGED ()
Parameter | Description | Description |
---|---|---|
XML | XML | XML text string of XML matching the Preset Schedule schema. Comes through to the UI as extras_setup . Note that as of OS 3, sending only a singular XML string is supported. For example, sending an array of Extras can result in Navigator performance issues. |
Returns
None
EXTRAS_STATE_CHANGED
Update the Extras Setup, displayed in the UI
Name
EXTRAS_STATE_CHANGED ()
Parameter | Type | Description |
---|---|---|
XML | XML | XML text string of XML matching the Preset Schedule schema. To UI comes through as extras_state . |
Returns
None
FAN_MODE_CHANGED
Notification that should be sent to the proxy when Fan mode has changed. Changes the variables: FAN_MODE
, V1 FANMODE,
.
Name
FAN_MODE_CHANGED ()
Parameter | Type | Description |
---|---|---|
MODE | STR | One of the supported modes for example: Auto, On. |
Returns
None
FAN_STATE_CHANGE
Notification that should be sent to the proxy when the fan state has changed.
Name
FAN_STATE_CHANGE ()
Parameter | Type | Description |
---|---|---|
STATE | STR | One of the following Off, On. |
Returns
None
HAS_EXTRAS
Boolean to enable/disable has_extras capability
. If the device supports this feature, default is false
Updates the XML that will be consumed by the Navigator UI’s.
Name
HAS_EXTRAS ()
Parameter | Type | Description |
---|---|---|
XML | STR | Text string of XML that matches the Preset Schedule A. |
Returns
None
HAS_EXTRAS - boolean to enable/disable has_extras capability, if the device supports this feature, default is false Updates the XML that will be consumed by the Navigator UI's
Parameters XML text string of XML that matches the Preset Schedule API.
HAS_HEAT_PUMP
Boolean to enable/disable has_heat_pump
. If the device supports this feature, default is false.
Name
HAS_HEAT_PUMP ()
Parameter | Description | Description |
---|---|---|
BOOL | True/False. enable/disable has_heat_pump |
Returns
None
HAS_HUMIDITY
Boolean to enable/disable has_humidity
capability. If the device supports this feature, default is false
Name
HAS_ HUMIDITY ()
Parameter | Type | Description |
---|---|---|
BOOL | True/False. enable/disable has_humidity capability. |
Returns
None
HAS_OUTDOOR_TEMPERATURE
Boolean to enable/disable has_outdoor_temperature
capability, if the device supports this feature, default is false
Name
HAS_OUTDOOR_TEMPERATURE ()
Parameter | Type | Description |
---|---|---|
BOOL | True/False. enable/disable has_outdoor_temperature capability. |
Returns
None
HEAT_SETPOINT
Fires event: Heat_Setpoint_Changed
.
Name
HEAT_SETPOINT ()
Parameters
None
Returns
None
HEAT_SETPOINT_CHANGED
Notification that should be sent to the proxy when the heating setpoint has changed.
Name
HEAT_SETPOINT_CHANGED ()
Parameter | Type | Description |
---|---|---|
SETPOINT | NUM | New heating setpoint temperature. |
SCALE | STR | The scale being used for the setpoint. The values allowed are KELVIN, K, CELSIUS, C, FAHRENHEIT, or F. |
Returns
None
HEATCOOL_SETPOINTS_DEADBAND_C
Minimum Setpoint difference between heat and will do the same thing as setpoint_heatcool_deadband
.
Name
HEATCOOL_SETPOINTS_DEADBAND_C
Parameter | Description |
---|---|
num | Default 2 |
Returns
None
HEATCOOL_SETPOINTS_DEADBAND_F
Minimum Setpoint difference between heat and will do the same thing as setpoint_heatcool_deadband
.
Name
HEATCOOL_SETPOINTS_DEADBAND_F
Parameter | Description |
---|---|
num | Default 2 |
Returns
None
HEAT_SETPOINT_RESOLUTION_C
What increment to use (ie 1,3,5,10,etc), will do the same thing as the setpoint_heat_resolution
capability.
Name
HEAT_SETPOINT_RESOLUTION_C ()
Parameter | Description |
---|---|
num | Default 1 |
Returns
None
HEAT_SETPOINT_RESOLUTION_F
What increment to use (ie 1,3,5,10,etc), will do the same thing as the setpoint_heat_resolution
capability.
Name
HEAT_SETPOINT_RESOLUTION_F ()
Parameter | Description |
---|---|
num | Default 1 |
Returns
None
HEAT_SETPOINT_MAX_C
Maximum Setpoint, int 0-100 that will do the same thing as the setpoint_heat_max
capability.
Name
HEAT_SETPOINT_MAX_C ()
Parameter | Description |
---|---|
int | Default 100 |
Returns
None
HEAT_SETPOINT_MAX_F
Maximum Setpoint, int 0-100 that will do the same thing as the setpoint_heat_max
capability.
Name
HEAT_SETPOINT_MAX_F ()
Parameter | Description |
---|---|
int | Default 100 |
Returns
None
HEAT_SETPOINT_MIN_C
Minimum Setpoint, int 0-100 that will do the same thing as the setpoint_heat_min
capability.
Name
HEAT_SETPOINT_MIN_C ()
Parameter | Description |
---|---|
int | Default 100 |
Returns
None
HEAT_SETPOINT_MIN_F
Minimum Setpoint, int 0-100 that will do the same thing as the setpoint_heat_min
capability.
Name
HEAT_SETPOINT_MIN_F ()
Parameter | Description |
---|---|
int | Default 100 |
Returns
None
HOLD_MODE_CHANGED
Notification that should be sent to the proxy when hold mode has changed. Changes the variables HOLD_MODE
, ANA_HOLDMODE
. Fires event HOLD_MODE_CHANGED
.
Name
HOLD_MODE_CHANGED ()
Parameter | Type | Description |
---|---|---|
MODE | STR | One of the supported hold modes for example: Off, 2 Hours, Permanent. Required parameter options if Hold Mode is "Hold Until" : YEAR - integer 2000+, MONTH - integer 0-11, DAY - integer 0-31, HOUR - integer 0-23, MINUTE - integer 0-60. |
Returns
None
HUMIDITY_CHANGED
The actual humidity percent (integer 0-100) value detected by the thermostat has changed. To UI comes through as humidity
.
Name
HUMIDITY_CHANGED ()
Parameter | Description | Description |
---|---|---|
HUMIDITY | INT | HUMIDITY: (0-100) |
Returns
None
HUMIDITY_MODE_CHANGED
MODE, typically: humidify, humidifyAuto (aggressiveness), dehumidify or auto). To UI comes through as humidity_mode
Name
HUMIDITY_MODE_CHANGED ()
Parameter | Type | Description |
---|---|---|
MODE | STR | Typically: humidify, humidifyAuto (aggressiveness), dehumidify or auto). |
Returns
None
HUMIDIFY_SETPOINT_CHANGED
The humidity setpoint has changed. To UI comes through as humidify_setpoint
Name
HUMIDIFY_SETPOINT_CHANGED ()
Parameter | Type | Description |
---|---|---|
SETPOINT | NUM | (0-100) |
Returns
None
HUMIDITY_SETPOINT_DEADBAND
What the deadband between humidify and dehumidify is, will do the same thing as the setpoint_humidity_deadband
capability.
Name
HUMIDITY_SETPOINT_DEADBAND ()
Parameter | Description |
---|---|
num | Default 10 |
Returns
None
HUMIDITY_SETPOINT_MAX
Minimum Setpoint, int 0-100 that will do the same thing as the setpoint_humidify_max
capability,
Name
HUMIDITY_SETPOINT_MAX ()
Parameter | Description |
---|---|
num | Default 100 |
Returns
None
HUMIDITY_SETPOINT_MIN
Minimum Setpoint, int 0-100 that will do the same thing as the setpoint_humidify_min
capability,
Name
HUMIDITY_SETPOINT_MIN ()
Parameter | Description |
---|---|
num | Default 0 |
Returns
None
HUMIDITY_SETPOINT_RESOLUTION
What increment to use (ie 1,3,5,10,etc), will do the same thing as the setpoint_humidify_resolution
capability.
Name
HUMIDITY_SETPOINT_RESOLUTION ()
Parameter | Description |
---|---|
num | Default 1 |
Returns
None
HUMIDITY_STATE_CHANGED
State has changed on the thermostat. To UI comes through as humidity_state
.
Name
HUMIDITY_STATE_CHANGED ()
Parameter | Type | Description |
---|---|---|
STATE | STR | Typically: humidify, humidifyAuto (aggressiveness), dehumidify or auto |
Returns
None
HVAC_MODE_CHANGED
Notification sent when the mode of the HVAC system has changed. Changes the variable HVAC_MODE
.
Name
HVAC_MODE_CHANGED ()
Parameter | Type | Description |
---|---|---|
MODE | STR | One of the supported modes for example: Off, Heat,Cool, Auto, Emergency |
Returns
None
HVAC_STATE_CHANGED
Notification that should be sent to the proxy when the HVAC state has changed. Changes the variable HVAC_STATE
.
Name
HVAC_STATE_CHANGED ()
Parameter | Type | Description |
---|---|---|
STATE: | STR | One of the supported HVAC states for example: Off, Heat, Cool |
Returns
None
MESSAGE_CHANGED
Update the text message displayed in the UI. Multiple lines can be specified by using \n to separate lines, although UI's will display each line in its own way. Could be a paragraph, ticker scrolling, cycling, etc. To UI comes through as message
.
Name
MESSAGE_CHANGED ()
Parameter | Type | Description |
---|---|---|
MESSAGE | STR | Text string, max length of the string is not set, though driver developers need to keep in mind that this information shows up in Navigators in a ticker or similar scrolling text display and should not be cluttered but kept to key things like HVAC system errors, and CRITICAL information. |
Returns
None
Usage Note
This string may or may not have multiple message segments. If it does, the message segments are delimited by a \n (newlines). Some protocol drivers such as the c4-therm support up to 4 lines of messages. Most UI's scroll these \n delimited messages right to left in a marquee style.
PRESET_CHANGED
Updates the current Preset State displayed in the UI. Sent to the UI as preset
.
Name
PRESET_CHANGED ()
Parameter | Description |
---|---|
str | Name of Preset. |
Returns
None
PRESET_FIELDS_CHANGED
Updates the Preset FIELDS TEMPLATE that UIs display for a Preset Event. To UI comes through as preset_fields
. If this is modified, it is possible that existing presets will have data that is not in compliance. However, a protocol driver can modify this to have new preset_fields
which are compatible. Do not delete this as Events are erased when presets are deleted.
Name
PRESET_FIELDS_CHANGED ()
Parameter | Type | Description |
---|---|---|
XML | XML | XML text string of XML matching the Preset Schedule schema |
Returns
None
SCALE_CHANGED
Changes the scale the proxy tracks for the temperature. This is primarily important for Composer Pro when programming as it will use this scale for setting temperatures. Navigators also use this scale.
Name
SCALE_CHANGED ()
Parameter | Type | Description |
---|---|---|
SCALE | STR | CELSIUS, FAHRENHEIT, C, c, F, f |
Returns
None
SCHEDULE_ENTRY_CHANGED
Notification that should be sent to the proxy when a change is made to the HVAC schedules. Every entry that is changed will send one protocol notification.
Name
SCHEDULE_ENTRY_CHANGED ()
Parameter | Type | Description |
---|---|---|
DayIndex | NUM | Number representing day of week: 0= Sunday, 1=Monday |
EntryIndex | NUM | 0 to the number of entries the day can support. 0 = the first entry, 1 = the second entry. |
TimeMinutes | NUM | Number of minutes past midnight for the entry change. For example 360= 6:00AM. |
EnabledFlag | BOOL | Enables or disables a schedule. By default, the first four schedules are enabled. |
HeatSetpoint | NUM | Temperature designated to start the heating system. |
CoolSetpoint: | NUM | Temperature designated to start the cooling system. |
Units | STR | F or C – Fahrenheit or Celsius. |
Returns
None
SINGLE_SETPOINT_CHANGED
Used to inform the proxy that the single setpoint has changed. This notification changes variables SINGLE_SETPOINT_F
and SINGLE_SETPOINT_C
. It fires the event Single Setpoint Changed
.
Name
SINGLE_SETPOINT_CHANGED ()
Parameter | Type | Description |
---|---|---|
SETPOINT | INT | The new temperature setpoint value. |
SCALE | STR | The scale being used for the setpoint. The values allowed are CELSIUS, C, FAHRENHEIT, or F |
Returns
None
SINGLE_SETPOINT_MAX_C
Maximum Setpoint. Will do the same thing as the setpoint_single_max
capability.
Name
SINGLE_SETPOINT_MAX_C ()
Parameter | Type | Description |
---|---|---|
SETPOINT | INT | 0-100 default 100 |
Returns
None
SINGLE_SETPOINT_MAX_ F
Maximum Setpoint. Will do the same thing as the setpoint_single_max
capability.
Name
SINGLE_SETPOINT_MAX_F ()
Parameter | Type | Description |
---|---|---|
SETPOINT | INT | 0-100 default 100 |
Returns
None
SINGLE_SETPOINT_MIN_ C
Minimum Setpoint. Will do the same thing as the setpoint_single_min
capability.
Name
SINGLE_SETPOINT_MIN_C ()
Parameter | Type | Description |
---|---|---|
SETPOINT: | INT | 0-100 default 0 |
Returns
None
SINGLE_SETPOINT_MIN_C
Minimum Setpoint. Will do the same thing as the setpoint_single_min
capability.
Name
SINGLE_SETPOINT_MIN_F ()
Parameter | Type | Description |
---|---|---|
SETPOINT: | INT | 0-100 default 0 |
Returns
None
SINGLE_SETPOINT_RESOLUTION_C
What increment to use (ie 1,3,5,10,etc), will do the same thing as the setpoint_single_resolution
capability.
Name
SINGLE_SETPOINT_RESOLUTION_C ()
Parameter | Description |
---|---|
num | Default 1 |
Returns
None
SINGLE_SETPOINT_RESOLUTION_F
Indicates the increments that the setpoint will follow, such as .2, .5, 1, 2, 5, etc. Note that .2 is the lowest F resolution supported.
Name
SINGLE_SETPOINT_RESOLUTION_F ()
Parameter | Description |
---|---|
num | Default 1 |
Returns
None
TEMPERATURE_CHANGED
Notification that should be sent to the proxy when the temperature has changed.
Name
TEMPERATURE_CHANGED ()
Parameter | Type | Description |
---|---|---|
TEMPERATURE | NUM | New temperature value. |
SCALE: | STR | The scale being used for the temperature. The values allowed are KELVIN, K, CELSIUS, C, FAHRENHEIT, or F. |
Returns
None
TEMPERATURE_RESOLUTION
What increment to use (ie .1,.5,1,3,5,10,etc), will do the same thing as the temperature_resolution
capability, default 1
Name
TEMPERATURE_RESOLUTION ()
Parameter | Description |
---|---|
int | Default 1. |
Returns
None
VACATION_MODE
Notification that should be sent to the proxy when vacation mode is turned on or off.
Name
VACATION_MODE ()
Parameter | Type | Description |
---|---|---|
ON VACATION | STR | True or False |
Returns
None
Usage Note
The capability has_vacation_mode
must be set to true for the vacation commands and notifications to be executed. Not to be used with Preset Scheduling.
VACATION_SETPOINTS
Notification that should be sent to the proxy when setpoints have been changed for vacation mode. This Notification is not to be used with Preset Scheduling. The capability has_vacation_mode
must be set to true for the vacation commands and notifications to be executed.
Name
VACATION_ SETPOINTS ()
Parameter | Type | Description |
---|---|---|
VAC HEAT SETPOINT | NUM | New temperature for the heating setpoint while in vacation mode. |
VAC COOL SETPOINT: | NUM | New temperature for the cooling setpoint while in vacation mode. |
UNITS | STR | F or C – Fahrenheit or Celsius. |
Returns
None
OUTDOOR_TEMPERATURE_CHANGED
Used to inform the proxy that the outdoor temperature has changed.
Name
OUTDOOR_TEMPERATURE_CHANGED ()
Parameter | Description |
---|---|
int | Default 1. |
Returns
None
OUTDOOR_TEMPERATURE_RESOLUTION
What increment to use (ie .1, .5, 1, 3, 5, 10, etc), will do the same thing as the outdoor_temperature_resolution
capability.
Name
OUTDOOR_TEMPERATURE_RESOLUTION ()
Parameter | Description |
---|---|
int | Default 1. |
Returns
None
Thermostat Proxy Commands
DEC_SETPOINT_COOL
Used to decrease the cool set point by 1. This command is handled by the proxy, and ends up creating a SET_SETPOINT_COOL
command to send to the protocol driver, unless the capability can_inc_dec_setpoints
is set to true.
Name
DEC_SETPOINT_COOL ()
Parameter
None
Returns
None
SET_PRESET
Runs a Preset regardless if there is an event scheduled for it.
Name
SET_PRESET ()
Parameter | Type | Description |
---|---|---|
NAME | STR | Preset Name |
Returns
None
DEC_SETPOINT_HEAT
Used to decrease the heat set point by 1. This command is handled by the proxy, and ends up creating a SET_SETPOINT_HEAT
command to send to the protocol driver, unless the capability can_inc_dec_setpoints
is set to true
Name
DEC_SETPOINT_HEAT ()
Parameter
None
Returns
None
INC_SETPOINT_COOL
Used to increase the cool set point by 1. This command is handled by the proxy, and ends up creating a SET_SETPOINT_COOL
command to send to the protocol driver, unless the capability can_inc_dec_setpoints
is set to true.
Name
INC_SETPOINT_COOL ()
Parameter
None
Returns
None
INC_SETPOINT_HEAT
Used to increase the heat set point by 1. This command is handled by the proxy, and ends up creating a SET_SETPOINT_HEAT
command to send to the protocol driver, unless the capability can_inc_dec_setpoints
is set to true.
Name
INC_SETPOINT_HEAT ()
Parameter
None
Returns
None
PRESET_ADD
Adds a new Preset Schedule Preset (If protocol driver has the can_preset_schedule
capability)
Name
PRESET_ADD ()
Parameter | Type | Description |
---|---|---|
NAME | STR | Preset Name. Required. |
PRESET FIELDS | XML | If a UI or Driver sends a bound call with a string that has invalid XML syntax, this field will be set to <preset_field/> and an error message will be logged to director.log when this occurs. Note that only a driver OR UI should specify the _f or c. For example: heat_setpoint_f , cool_setpoint_f , heat_setpoint_c , cool_setpoint_c but not both. The proxy will auto insert the missing _f or _c based on the scales resolution if it detects one side is not supplied. This makes it so UI's and drivers do not need to calculate the correct value for the scale. However, if a driver or UI does want to calculate it, the proxy will leave the value alone. In the same manner the proxy will not correct or anything if the _f and _c do not resolve to the equivalent temperature. |
Returns
None
Example
<preset_fields>
<field id="heat_setpoint_f" value="65">
<field id="cool_setpoint_f" value="75">
<field id="humidify_setpoint" value="50">
<field id="fan_mode" value="On">
</preset_fields>
PRESET_DELETE
Adds a new Preset Schedule Preset (If protocol driver has the can_preset_schedule
capability)
Name
PRESET_DELETE ()
Parameter | Type | Description |
---|---|---|
NAME | STR | Preset Name. Required. |
PRESET FIELDS | XML | If a UI or Driver sends a bound call with a string that has invalid XML syntax, this field will be set to <preset_field/> and an error message will be logged to director.log when this occurs. Note that only a driver OR UI should specify the _f or c. For example: heat_setpoint_f , cool_setpoint_f , heat_setpoint_c , cool_setpoint_c but not both. The proxy will auto insert the missing _f or _c based on the scales resolution if it detects one side is not supplied. This makes it so UI's and drivers do not need to calculate the correct value for the scale. However, if a driver or UI does want to calculate it, the proxy will leave the value alone. In the same manner the proxy will not correct or anything if the _f and _c do not resolve to the equivalent temperature. |
Returns
None
PRESET_EVENT_ADD
Adds a Preset Schedule Preset Event to be run at the specified day/time (If protocol driver has the can_preset_schedule
capability.
Name
PRESET_EVENT_ADD ()
Parameter | Description | Description |
---|---|---|
NAME | STR | Event Name |
WEEKDAY | INT | 0-6 with Sunday being 0 |
HOUR | INT | 0-23 |
MINUTE | INT | 0-60 |
Returns
None
Usage Note
Adding an event at the same time as a different preset event will result in the different preset event being deleted and the new one being put in at that time.
PRESET_EVENT_DELETE
Deletes a Preset Schedule Preset if the protocol driver has the can_preset_schedule
capability.
Name
PRESET_EVENT_DELETE ()
Parameter | Type | Description |
---|---|---|
NAME | STR | Using "" (an empty string) will match all presets to make deleting all events of a given preset name easier. |
WEEKDAY | INT | 0-6 with Sunday being 0. Using -1 will match any weekday. |
HOUR | INT | 0-23 Using -1 Will match any Hour. |
MINUTE | INT | 0-60 Using -1 will match any Minute. |
Returns
None
Usage Note
Usage Note:
Using ""
for the Preset or -1 for the weekday, hour or minute might be useful for UI's, Agents or Protocol Drivers as when a matching parameter is used you can delete multiple events at once AND only one Notify of the changes that were made are sent rather than causing a notify for each and every modification if they were done one at a time.
PRESET_EVENT_MODIFY
Modifies an existing Preset Schedule Event (If protocol driver has the can_preset_schedule
capability)
Name
PRESET_EVENT_MODIFY ()
Parameter | Type | Description |
---|---|---|
NAME | STR | Event Name |
WEEKDAY: | INT | 0-6 with Sunday being 0. |
HOUR | INT | 0-23 |
MINUTE | INT | 0-60 |
NEW WEEKDAY | INT | 0-6 with Sunday being 0 |
NEW HOUR | INT | 0-23 |
NEW MINUTE | INT | 0-60 |
Returns
None
Usage Note
Modifying an event to the same time as a different preset event will result in the different preset event being deleted and the new one being put in at that time.
PRESET_MODIFY
Modifies an existing Preset Schedule Event (If protocol driver has the can_preset_schedule
capability)
Name
PRESET_MODIFY ()
Parameter | Type | Description |
---|---|---|
NAME | STR | Preset Name |
PRESET FIELDS | XML | XML DATA |
NEW NAME | STR | New Preset Name |
Returns
None
Example
<preset_fields>
<field id="heat_setpoint_f" value="65">
<field id="cool_setpoint_f" value="75">
<field id="humidify_setpoint" value="50">
<field id="fan_mode" value="On">
</preset_fields>
QUERY_SCHEDULE
Used for the old .ccz and a few older thermostats for scheduling purposes.
Name
QUERY_SCHEDULE ()
QUERY_SCHEDULE_EVENTS
Used for the old .ccz and a few older thermostats for scheduling purposes.
Name
QUERY_SCHEDULE_EVENTS ()
SET_BUTTONS_LOCK
Used to indicate if the buttons on the thermostat should be locked out from controlling the temperature.
Name
SET_BUTTONS_LOCK ()
Parameter | Type | Description |
---|---|---|
LOCK | BOOL | 1 or 0 indicating if the buttons should be locked out or not. |
Thermostat Unhandled Commands
Unhandled Commands
This section includes Commands supported by many protocol drivers but are not directly handled by the Thermostat proxy:
DEC_SETPOINT_HUMIDIFY
Used to Decrement the Setpoint by one step.
DEC_SETPOINT_DEHUMIDIFY
Used to Decrement the Setpoint by one step.
INC_SETPOINT_DEHUMIDIFY
Used to increment the Setpoint by one step.
INC_SETPOINT_HUMIDIFY
Used to increment the Setpoint by one step.
SET_CALIBRATION
Used to set the calibration value.
SET_EVENT
Occurs when the scheduler determines it's time for a new event to be run for Preset Scheduling
SET_EVENTS
XML that is provided from the proxy in the case that a protocol driver wants to push the Preset Schedule to hardware
SET_REMOTE_SENSOR
Used to indicate if the remote sensor on the thermostat is in use.
SET_SCALE
Used to set the temperature scale the thermostat should use.
SET_MODE_FAN
Used to set the current fan mode of the thermostat.
SET_MODE_HOLD
Used to set the current hold mode of the thermostat.
SET_MODE_HUMIDITY
Used to set the humidification mode in a protocol driver.
SET_MODE_HVAC
Used to set the HVAC mode in a protocol driver.
SET_OUTDOOR_TEMPERATURE
Set the outdoor temperature which is used by some thermostats for the purpose of humidity balancing, fresh air venting, air quality venting, and other HVAC functionality.
SET_PRESET
Occurs when someone selects to run a preset OUTSIDE of its regular schedule.
SET_PRESETS
XML that the Proxy sends down to a protocol driver that contains information about presets. If preset scheduling is a capability of the protocol driver.
SET_SETPOINT_DEHUMIDIFY
Used to set the dehumidify setpoint.
SET_SETPOINT_COOL
Used to set the cool setpoint.
SET_SETPOINT_HEAT
Used to set the heat setpoint.
SET_SETPOINT_HUMIDIFY
Used to set the humidify setpoint.
SET_SETPOINT_SINGLE
Used to set the single setpoint value.
SET_VAC_SETPOINT_COOL
Used to set the cool setpoint when it vacation mode
SET_VAC_SETPOINT_HEAT
Used to set the heat setpoint when it vacation mode
SET_VACATION_MODE
Used to indicate if the thermostat is in vacation mode or not
Thermostat Proxy Variables
THERMOSTAT PROXY VARIABLES
Thermostats that use this proxy have the following registered variables that can be manipulated:
Note: Temperature Units are stored and processed in the proxy as Current Units, Kelvin * 10
, or Celsius * 10
depending on V1, V2 and programming.
CALIBRATION
(ID=1129) - int - Set to the value given with the Notify CALIBRATION_CHANGED
CoolSetPoint_C
(ID=1135) - Read only - Double representing the cool setpoint. Replaces CoolSetpoint
CoolSetPoint_F
(ID=1134) - Read only - Double representing the cool setpoint. Replaces CoolSetpoint
PRESET
(ID=1144) - Read Only - Name of the currently Active Preset in Preset Scheduling.
DEHUMIDIFY_SETPOINT
(ID=1143) - Read Only - Percent 0-100. (Note: The range and resolutions are set via capabilities)
FAN_MODE
(ID=1105) - string - Current Fan Mode
HEATCOOL_SETPOINTS_DEADBAND_C
(ID=1147) - Read Only - string - Setpoint different between heat and cool
HEATCOOL_SETPOINTS_DEADBAND_F
(ID=1146) - Read Only - string - Setpoint different between heat and cool
HeatSetPoint_F
(ID=1132) - Read only - Double representing the heat setpoint. Replaces HeatSetpoint
HeatSetPoint_C
(ID=1133) - Read only - Double representing the heat setpoint. Replaces HeatSetpoint
HEATPUMP
(ID=1124) - bool - Whether or not a heat pump exists.
HOLD_MODE
(ID=1106) - string - Current Hold Mode
HOLD_MODES_LIST
(ID=1122) - string - comma separated list of hold modes that can be selected for the thermostat.
HEATCOOL_SETPOINTS_DEADBAND_C
(ID=1147) - Read Only - string - Setpoint different between heat and cool
HUMIDITY_STATE
(ID=1141) - Read Only - Currently state. Typically Humidify, Humidify Auto or Dehumidify.
HVAC_MODES_LIST
(ID=1120) - string - comma separated list of hvac modes that can be selected for the thermostat.
HVAC STATE
(ID=1107) - string - Current HVAC State (Could be Heat, Heating, Cool, Cooling, 1st Stage Heat, or any other phrase passed in by the protocol driver for the HVAC_STATE
notify.
HVAC_MODE
(ID=1104) - string - Current HVAC Mode
IS_CONNECTED
(ID=1112) - bool - Indicator if the hardware is online/available. This will be set to 'true' on startup UNLESS a protocol driver has the has_connection_status
capability set to true. If this value is false, UI's will display "–" for temperature when the device is offline.
MESSAGE
(ID=1145) - Read Only - Status message that a protocol driver can send to the UI
REVERSING_VALVE
(ID=1128) - string - Name of reversing valve.
SINGLE_SETPOINT_F
(ID=1149) - Read only - Double representing the single setpoint.
SINGLE_SETPOINT_F
(ID=1149) - Read only - Double representing the single setpoint.
OUTDOOR_TEMPERATURE_C
(ID=1137) - Can be read and written. Read is for providing info to UI/Navigator or other thermostats and write is for allowing programming and other devices to set this value, which can be read by some devices (Including the C4 AAT Thermostat) so they do not have to be hard wired to outside to perform some calculations.
OUTDOOR_TEMPERATURE_F
(ID=1136) - Can be read and written. Read is for providing info to UI/Navigator or other thermostats and write is for allowing programming and other devices to set this value, which can be read by some devices (Including the C4 AAT Thermostat) so they do not have to be hard wired to outside to perform some calculations.
SCALE
(ID=1100) - String - the current scale that was passed in on the SCALE_CHANGED
notify.
SCHEDULE
(ID=1113) - string - XML of the entire schedule
TEMPERATURE_C
(ID=1131) - Read only - Double representing the temperature. Replaces TEMPERATURE
TEMPERATURE_F
(ID=1130) - Read only - Double representing the temperature. Replaces TEMPERATURE
VACATION_MODE
(ID=1109) - bool - Will be set to the value passed in for the VACATION_MODE's
ON_VACATION
parameter.
This variable will be deprecated when the traditional scheduling model is deprecated. No date has been set at this time for this deprecation.