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 2022 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
Proxies (Commands)
A proxy driver is an interface to the Control4 system for a set of devices that share common functionality. For instance, most DVD disc changers have common controls such as PLAY, STOP, PAUSE and FAST FORWARD. The disc changer proxy allows for a common user interface to control all disc changers. 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.3.0
Light Proxy Color Enhancements
This release of the 3.3.0 beta Proxy and Protocol Guide has been delivered to support the Light Proxy’s new color management functionality. This includes:
Light V2 Proxy Capabilities
color_correlated_temperature_max
color_correlated_temperature_min
supports_color_correlated_temperature
Light V2 Proxy Commands
Light V2 Proxy Conversion Commands
This section lists the Commands used for converting to/from hue, saturation and lightness (HSV) and red, blue and green (RGB).
Light V2 Proxy Conditionals
Light v2 Protocol Notifications
Light V2 Proxy Events
Light V2 Proxy Variables
Light V2 Proxy Extras
New supporting documentation.
Advanced Lighting Scene Agent
New supporting documentation.
Light Driver Development Best Practices
A new section has been added to the Light V2 proxy content including best practice recommendations for light driver developers.
Audio Video Switch Display Adjustable Bindings
O.S. releases 3.3.0 provides the ability to hide AV Switch Bindings that are not being used. This feature has been provided to better manage the UI display within ComposerPro.
What’s New in 3.2.3
Audio Equalization available on Navigators
The Amplifier and AV Switch Proxies have been enhanced to support the ability to display audio EQ functions on devices running Navigator. The enhancement includes a set of new Proxy Commands, Notifications and Capabilities to support this functionality.
Dynamic Transport Controls on Navigators
Audio Video drivers now have the ability to define which transport controls are displayed on Navigators. This includes which buttons appear on the Button Bar as well as the Media Dashboard. This enhancement allows for the appropriate transport controls being displayed for each AV device.
What’s New in 3.2.2
There were no changes to this content for Operating System 3.2.2.
What’s New in 3.2.1
There were no changes to this content for Operating System 3.2.1.
What’s New in 3.2.0
Proxies that were Modified**
Security Proxy The REQUEST_DEFAULT_USER_CODE partition notification was added as a mechanism for the protocol driver to initiate the communication to get that default user code upon driver update.
The following Security Protocol Notifications were deprecated from the SDK: ALARM, ALARM_CLEAR, AWAY, DISARM, HOME, TROUBLE. Please see the Security Panel Notification and Security Partition Notification areas for the latest list of Notifies.
What was New in 3.1.2
Proxies that were Deprecated**
The following Proxies were deprecated from the Proxy and Protocol Guide:
- iPod
- Load Controller
What was New in 3.1.0
Proxies that were Modified**
Light V2 Proxy light sample.c4i - A sample driver has been included to assist with better understanding the basic flow of commands from the Light Proxy as well as receiving protocol notifications. The driver can be found in the Samples directory under the root level of the DriverWorks SDK.zip file
Media Service Proxy Detail Screen Type - Information regarding the implementation of the Detail Type Screen has been added to the documentation.
What was New in O.S.3
Proxies that were Modified**
KeyPad Proxy
New Button Linking functionality has been added to the Proxy. Button Linking supports the ability of a driver interacting with a second driver using Button State and Button LED State.
Light (V2) Proxy LightV2 Proxy has been significantly enhanced in this release. It is recommended that Light Driver writers thoroughly review the Proxy content in this release. The changes included not only impact drivers written against OS 3. Previously delivered Light Proxy elements have been modified or in some cases deprecated.
In OS 3, the proxy has been conceptually split into two components. The first being a Wall Control/Keypad portion and the second is a redesigned Light portion.The Light portion has been developed as a Bulb Library. The ultimate goal of the Bulb Library is to support ,more versatility for drivers to interrogate, group, control and manage individual drivers and bulbs. Bulb color, target level, minimum and maximum levels, cold start timing and other features are implemented in the Bulb Library. Dynamic Capabilities have also been added to the Light Portion. Note that all changes maintain backwards compatibility for driver side interaction. However, Navigators will have functionality deprecated due to performance reasons or improved ways of communicating with the driver.
Media Service Proxy Favoriting: In conjunction with the ability to "Favorite" Navigator UI screens in OS 3, drivers written using the Media Service Proxy can now provide the ability for end users to designate favorite media delivered through an Media Service Proxy driver such as Playlists, Albums, Tracks, Stations, Movies, TV Shows, etc.
DashboardChanged Event: The DashboardChanged event now includes content on the use of custom icons and actions.
Driver Notification Context Example: New code examples on have been added to the Media Service Proxy Driver Notification Prototype section in the Appendix.
Best Practices A new section called Best Practices has been added to the Proxy and Protocol Guide. This section contains information regarding the use cases that fall outside of the typical Proxy/Protocol driver implementation. This release contains Best Practice content on the following:
Using the new Proxy-less command UPDATE PROPERTY. This is a non proxy-specific function that can be called from any device to change a property of any other device.
OS 3 Navigator UI and Volume Control - Managing Volume Commands in conjunction with the use of OS 3's new volume control slider on the Control4 UI.
Amplifier Protocol Notifications
AUDIO PARAMETER CHANGED
Audio parameter has changed
Signature
AUDIO_PARAMETER_CHANGED ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
BALANCE LEVEL CHANGED
Selected balance level has changed.
Signature
BALANCE_LEVEL_CHANGED ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
BASS LEVEL CHANGED
Selected bass level has changed
Signature
BASS_LEVEL_CHANGED ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
INPUT OUTPUT CHANGED
Selected inputs & outputs have changed.
Signature
INPUT_OUTPUT_CHANGED ()
Parameter | Description |
---|---|
int | INput Binding ID |
int | Output Binding ID |
Returns
None
LOUDNESS CHANGED
Loudness state (On/Off) has changed.
Signature
LOUDNESS_CHANGED ()
Parameter | Description |
---|---|
bool | True/False |
int | Output Binding ID |
Returns
None
MUTE CHANGED
MUTE state (On/Off) has changed.
Signature
MUTE_CHANGED ()
Parameter | Description |
---|---|
bool | True/False |
int | Output Binding ID |
Returns
None
OFF
Device has turned off.
Signature
OFF ()
Parameter
None
Returns
None
ON
Device has turned on.
Signature
ON ()
Parameter
None
Returns
None
TREBLE LEVEL CHANGED
Selected treble level has changed.
Signature
TREBLE_LEVEL_CHANGED ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
VOLUME LEVEL CHANGED
Selected volume level has changed.
Signature
VOLUME_LEVEL_CHANGED ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
Amplifier Proxy Capabilities
audio consumer count
Count of number of audio consumers (inputs) of the device. This value must match the number of connections in the driver.
Signature
<audio_consumer_count></audio_consumer_count>
Parameter | Description |
---|---|
int | Number of audio consumers. |
Example
<capabilities>
<audio_consumer_count>8</audio_consumer_count>
</capabilities>
audio provider count
Count of number of audio providers (outputs) of the device. This value must match the number of connections in the driver.
Signature
<audio_provider_count></audio_provider_count>
Parameter | Description |
---|---|
int | Number of audio providers. |
Example
<capabilities>
<audio_provider_count>8</audio_provider_count>
</capabilities>
can downclass
Specifies if the device switch can down convert. For example: S-Video -> Composite
Signature
<can_downclass></can_downclass>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<can_downclass>true</can_downclass>
</capabilities>
can switch separately
Device specific capability that must be set to True to in order for a device’s Composer Pro interface reflecting independent audio and video signal switching.
Signature
<can_switch_separately></can_switch_separately>
Parameter | Description |
---|---|
bool | True/False |
Usage Note
This capability is not related with the requires separate switching capability. A setting of True or False will have no impact on requires separate switching.
Example
<capabilities>
<can_switch_separately>true</can_switch_separately>
</capabilities>
can upclass
Specifies if the device switch can up convert. For example: Composite -> S-Video
Signature
<can_upclass></can_upclass>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<can_upclass>true</can_upclass>
</capabilities>
has audio signal sense
Specifies device switching is capable of sensing audio on an input. This is useful in triggering programming in ComposerPro based on the this setting.
Signature
<has_audio_signal_sense></has_audio_signal_sense>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_audio_signal_sense>true</has_audio_signal_sense>
</capabilities>
has discrete balance control
Capable of directly specifying a balance setting.
Signature
<has_discrete_balance_control></has_discrete_balance_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_balance_control>true</has_discrete_balance_control>
</capabilities>
has discrete bass control
Capable of directly specifying a bass setting.
Signature
<has_discrete_bass_control></has_discrete_bass_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_bass_control>true</has_discrete_bass_control>
</capabilities>
has discrete loudness control
Capable of directly specifying a loudness setting.
Signature
<has_discrete_loudness_control></has_discrete_loudness_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_loudness_control>true</has_discrete_loudness_control>
</capabilities>
has discrete mute control
Capable of directly specifying mute ON or OFF setting.
Signature
<has_discrete_ mute_control></has_discrete_ mute_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_mute_control>true</has_discrete_mute_control>
</capabilities>
has discrete treble control
Capable of directly specifying a treble setting.
Signature
<has_discrete_treble_control></has_discrete_treble_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_treble_control>true</has_discrete_treble_control>
</capabilities>
has discrete volume control
Capable of directly specifying a volume setting.
Signature
<has_discrete_volume_control></has_discrete_volume_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_volume_control>true</has_discrete_volume_control>
</capabilities>
has discrete loudness control
Capable of handling ON/OFF loudness control.
Signature
<has_discrete_loudness_control></has_discrete_loudness_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_loudness_control>true</has_discrete_loudness_control>
</capabilities>
has toggle mute control
Capable of handling ON/OFF mute control.
Signature
<has_toggle_mute_control></has_toggle_mute_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_toggle_mute_control>true</has_toggle_mute_control>
</capabilities>
has up down balance control
Capable of directly specifying a balance setting.
Signature
<has_up_down_balance_control></has_up_down_balance_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_up_down_balance_control>true</has_up_down_balance_control>
</capabilities>
has up down bass control
Capable of directly specifying a bass setting.
Signature
<has_up_down_bass_control></has_up_down_bass_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_up_down_bass_control>true</has_up_down_bass_control>
</capabilities>
has up down treble control
Capable of directly specifying a treble setting.
Signature
<has_up_down_treble_control></has_up_down_treble_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_up_down_treble_control>true</has_up_down_treble_control>
</capabilities>
has up down volume control
Has capability of handling volume UP and DOWN adjustments.
Signature
<has_up_down_volume_control></has_up_down_volume_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_up_down_volume_control>true</has_up_down_volume_control>
</capabilities>
has video signal sense
Specifies if the device switching is capable of sensing video on an input. This is useful in triggering programming in ComposerPro based on the this setting.
Signature
<has_video_signal_sense></has_video_signal_sense>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_video_signal_sense>true</has_video_signal_sense>
</capabilities>
requires separate switching
Device specific capability that when set to True notifies Director of the existence of individual audio and video paths. This capability has no impact on Composer Pro user interface. For that reason, when set to True it is recommended that the capability can switch separately be set to True as well.
Signature
<requires_separate_switching></requires_separate_switching>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<requires_separate_switching>true</requires_separate_switching>
</capabilities>
video consumer count
Count of number of video consumers (inputs) of the device. This value must match the number of connections in the driver.
Signature
<video_consumer_count></video_consumer_count>
Parameter | Description |
---|---|
int | Number of video consumers. |
Example
<capabilities>
<video_consumer_count>8</video_consumer_count>
</capabilities>
video provider count
Count of number of video providers (outputs) of the device. This value must match the number of connections in the driver.
Signature
<video_provider_count></video_provider_count>
Parameter | Description |
---|---|
int | Number of audio providers. |
Example
<capabilities>
<video_provider_count>8</video_provider_count>
</capabilities>
Amplifier Navigator EQ
Introduction
The ability to display audio equalization controls on devices running Navigator was added in conjunction with Operating System 3.2.3. Currently, the only Proxies that support Navigator EQ controls are the Amplifier and AV Switch Proxies.
The majority of the of the commands, notifications and capabilities defined here must be implemented in your driver to display EQ controls. Several commands are optional including SET_AUDIOMODE_BYPASS, SET_AUDIOMODE_EQ and SET_AUDIOMODE_TONECONTROL as these have been included to suspect legacy Audio Matrix Switches.
Note that this functionality is disabled by default. The HIDE EQ FROM NAVS CHANGED notification must be sent with a value of False to enable the EQ functionality in Navigator.
Navigator EQ Proxy Commands
LOUDNESS OFF
Navigator EQ command called to set the loudness off for indicated output. The driver should notify proxy with the LOUDNESS_CHANGED notification of the new value.
Signature
LOUDNESS_OFF
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
Returns
None
LOUDNESS ON
Navigator EQ command called to set the loudness on for indicated output. The driver should notify proxy with the LOUDNESS_CHANGED notification of the new value.
Signature
LOUDNESS_ON
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
Returns
None
SET AUDIOMODE BYPASS
Navigator EQ command called to change the output's mode to BYPASS. This is an optional command and should be used only if your device needs to switch modes.
Signature
SET_AUDIOMODE_BYPASS
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
Returns
None
SET AUDIOMODE EQ
Navigator EQ command called to change the output's mode to EQUALIZER. This is an optional command and should be used only if your device needs to switch modes.
Signature
SET_AUDIOMODE_EQ
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
Returns
None
SET AUDIOMODE TONECONTROL
Navigator EQ command called to change the output's mode to TONE_CONTROL. This is an optional command and should be used only if your device needs to switch modes.
Signature
SET_AUDIOMODE_TONECONTROL
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
Returns
None
SAVE EQ TO CUSTOM PRESET
Navigator EQ command called to save the current EQ values to a custom preset with a name. The driver should notify proxy with the EQ_NAMES_CHANGED notification with the updated name.
Signature
SAVE_EQ_TO_CUSTOM_PRESET
Parameter | Description |
---|---|
int | INDEX: Zero based custom preset index value used to save the custom preset. The index range is from 0 to the number of custom presets defined in the <eq_preset_nav_count> capability, minus one due to the range being zero-based. |
str | NAME: Name for the new custom index. Base64 encoded. |
int | OUTPUT: OutputBindingID |
Returns
None
SET BASS LEVEL
Navigator EQ command called to set the bass level for tone control. The driver should notify proxy with the BASS_LEVEL_CHANGED notification of the new value.
Signature
SET_BASS_LEVEL
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
int | LEVEL: Bass level. range is -12 to 12 |
Returns
None
SET EQPRESET
Navigator EQ command called to change the selected preset for an output.
Signature
SET_EQPRESET
Parameter | Description |
---|---|
int | INDEX: Index for the selected preset. |
int | OUTPUT: OutputBindingID |
Returns
None
SET EQ GAIN VALUES
Navigator EQ command called to set the current equalizer’s gain values.
Signature
SET_EQ_GAIN_VALUES
Parameter | Description |
---|---|
str | VALUES: Comma delimited string of updated numeric gain values, one value per band. |
Returns
None
SET TREBLE LEVEL
Navigator EQ command called to set the treble level for tone control. The driver should notify the proxy with TREBLE_LEVEL_CHANGED notification of the new value.
Signature
SET_TREBLE_LEVEL
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
int | LEVEL: Treble level. Range is -12 to 12. |
Returns
None
Navigator EQ Protocol Notifications
AUDIOMODE CHANGED
Navigator EQ notification that the output's audio mode has changed to either Tone Control or Equalizer for the output. This is an optional notification and should be used only if your device has audio modes.
Signature
AUDIOMODE_CHANGED
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
int | AUDIOMODE: 1 = TONE_CONTROL: This is sent sent when a Tone Control value is changed. 2 = EQUALIZER: This is sent when a EQ value is changed such as Treble or Bass. |
Returns
None
BALANCE LEVEL CHANGED
Navigator EQ notification that the balance has changed.
Signature
BALANCE_LEVEL_CHANGED
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
int | LEVEL: New balance level. Range is 0 to 100. |
Returns
None
Example
-- Notify Balance level is set to 'Full Left' for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "BALANCE_LEVEL_CHANGED", { OUTPUT = "4002", LEVEL = 0 }, "NOTIFY")
-- Notify Balance level is set to 'Center' for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "BALANCE_LEVEL_CHANGED", { OUTPUT = "4002", LEVEL = 50 }, "NOTIFY")
-- Notify Balance level is set to 'Full Right' for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "BALANCE_LEVEL_CHANGED", { OUTPUT = "4002", LEVEL = 100 }, "NOTIFY")
BASS LEVEL CHANGED
Navigator EQ notification that the bass has changed.
Signature
BASS_LEVEL_CHANGED
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
int | LEVEL: New bass level. Range is -12 to 12. |
Returns
None
Example
-- Notify Bass Level is at -6 for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "BASS_LEVEL_CHANGED", { OUTPUT = "4002", LEVEL = -6 }, "NOTIFY")
-- Notify Bass Level is at +6 for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "BASS_LEVEL_CHANGED", { OUTPUT = "4002", LEVEL = 6 }, "NOTIFY")
EQ DISPLAY ORDER CHANGED
Navigator EQ notification of the order that the names from EQ_NAMES_CHANGED should be presented to the user.
Signature
EQ_DISPLAY_ORDER_CHANGED
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
table | Table of indexes that represents display order of the names. Note that any programming for selecting a preset will be INDEX based, not name based. Hence the names can be changed but the programming will be tied to the index at time of creation. |
Returns
None
Example
C4:SendToProxy(5001, "EQ_DISPLAY_ORDER_CHANGED", { [1] = 1, [2] = 2, [3] = 3, [4] = 4, [5] = 5, OUTPUT = "4002" }, "NOTIFY")
C4:SendToProxy(5001, "EQ_DISPLAY_ORDER_CHANGED", { 1, 2, 3, 4, 5, OUTPUT = "4002" }, "NOTIFY")
EQ NAMES CHANGED
Navigator EQ notification of the current names for the equalizer presets.
Signature
EQ_NAMES_CHANGED
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
table | Table of names. |
Returns
None
Example
C4:SendToProxy(5001, "EQ_NAMES_CHANGED", { [1] = "FLAT", [2] = "CLASSICAL", [3] = "JAZZ", [4] = "POP", [5] = "ROCK", OUTPUT = "4002" }, "NOTIFY")
C4:SendToProxy(5001, "EQ_NAMES_CHANGED", {"FLAT", "CLASSICAL", "JAZZ", "POP", "ROCK", OUTPUT = 4002}, "NOTIFY")
EQ FREQS CHANGED
Navigator EQ notification that the frequencies of a equalizer have been modified.
Signature
EQFREQS_CHANGED
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
num | VALUES: Comma delimited list of current equalizer frequencies. |
Returns
None
Example
-- Notify Gains and Frequencies for EQ Bands for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "EQGAINS_CHANGED", { OUTPUT = "4002", VALUES = "7.5,3.8,5.4,4.59,7.8,7.4" }, "NOTIFY")_
C4:SendToProxy(5001, "EQFREQS_CHANGED", { OUTPUT = "4002", VALUES = "33,125,750,3000,8000,16000" }, "NOTIFY")
EQ GAINS CHANGED
Navigator EQ notification that the gains of an equalizer have been modified.
Signature
EQGAINS_CHANGED
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
num | VALUES: Comma delimited list of current equalizer values. |
Returns
None
Example
-- Notify Gains and Frequencies for EQ Bands for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "EQGAINS_CHANGED", { OUTPUT = "4002", VALUES = "7.5,3.8,5.4,4.59,7.8,7.4" }, "NOTIFY")_
C4:SendToProxy(5001, "EQFREQS_CHANGED", { OUTPUT = "4002", VALUES = "33,125,750,3000,8000,16000" }, "NOTIFY")
EQ PRESET CHANGED
Navigator EQ notification used when a different preset is selected for an output. Should be called after SET_EQPRESET is sent or if the preset is changed from a different event.
Signature
EQPRESET_CHANGED
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
int | EQPRESET: Newly selected equalizer index. Range is 0 to maximum number defined in the <eq_preset_nav_count> capability. |
Returns
None
Example
-- Notify change of current EQ Preset for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "EQPRESET_CHANGED", { OUTPUT = "4002", EQPRESET = 2 }, "NOTIFY")
HIDE EQ FROM NAVS CHANGED
Navigator EQ notification that the equalizer should be shown or hidden from Navigator. This must be sent with a value of False to enable the EQ functionality in Navigator.
Signature
HIDEEQFROMNAVS_CHANGED
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
bool | ENABLED: True to hide this output from Navigators. False to allow output eq controls to be shown. Default is True. |
Returns
None
Example
-- Notify Hide (or show) Navigator EQ for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "HIDEEQFROMNAVS_CHANGED", { OUTPUT = "4002", ENABLED = false }, "NOTIFY")
LOUDNESS CHANGED
Navigator EQ notification that the loudness has changed.
Signature
LOUDNESS_CHANGED
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
bool | ENABLED: LOUDNESS: True for loudness on, False for loudness off. |
Returns
None
TREBLE LEVEL CHANGED
Navigator EQ notification that the treble level has changed.
Signature
TREBLE_LEVEL_CHANGED
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
int | LEVEL: LOUDNESS: New treble level. Range is -12 to 12. |
Returns
None
Example
-- Notify Treble Level is at -6 for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "TREBLE_LEVEL_CHANGED", { OUTPUT = "4002", LEVEL = -6 }, "NOTIFY")
-- Notify Treble Level is at +6 for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "TREBLE_LEVEL_CHANGED", { OUTPUT = "4002", LEVEL = 6 }, "NOTIFY")
Navigator EQ Capabilities
<has_eq_preset_control></has_eq_preset_control>: Boolean capability where True indicates this device supports the navigator equalizer interface and should allow navigators to interact with equalizers.
<eq_preset_nav_count></eq_preset_nav_count>: Capability that requires a count (integer) of the number of presets to be presented to the Navigators.
<eq_band_nav_count></<eq_band_nav_count>: Capability that requires a count (integer) of the number of adjustable bands for equalizer control.
<use_tone_max_value></use_tone_max_value>: Capability that requires the max value (integer) for tone controls.
<use_tone_min_value></use_tone_min_value>: Capability that requires the minimum value (integer) for tone controls.
Audio Output Bindings and Proxy Events
Note: Audio Output binding ID values defined in drivers written in conjunction with this Proxy must start with a binding value of 4000. The acceptable range for Audio Outputs is 4000 - 4999. However, if the first output binding ID value is not 4000, issues with Proxy Events firing correctly can be encountered.
For a list of valid Binding ID values please see the Connections section of the DriverWorks Fundamentals Guide.
Amplifier Proxy Commands
BACK
Pulse Back button
Signature
BACK ()
Parameters
None
Returns
None
BINDING CHANGE ACTION
Command sent when a bound binding changes. Performs any actions needed to the protocol.
Signature
BINDING_CHANGE_ACTION ()
Parameter | Description |
---|---|
str | BindingID of the changed binding. |
Returns
None
CANCEL
Pulse Cancel button
Signature
CANCEL ()
Parameters
None
Returns
None
DASH
Pulses the ‘-’ button.
Signature
DASH ()
Parameter
None
Returns
None
DISCONNECT OUTPUT
Disconnect (turn off) selected output on device
Signature
DISCONNECT_OUTPUT ()
Parameter | Description |
---|---|
Int | Output BindingID |
Returns
None
EMIT CODE
Emit IR/Serial code. This is used by the AVGen IR/Serial Proxy.
Signature
EMIT_CODE ()
Parameter | Description |
---|---|
Int | ID OF IR Code |
Returns
None
EMIT MACRO
Emit IR/Serial code macro (used by AVGen IR/Serial Proxy)
Signature
EMIT_MACRO ()
Parameter | Description |
---|---|
str | MacroCodeName |
Returns
None
GET AUDIO INPUTS
Command sent to the protocol during the proxy initialization. Returns available audio inputs from the protocol device.
Signature
GET_AUDIO_INPUTS ()
Parameters
None
Returns
None
HYPHEN
Pulse ‘-’ button
Signature
HYPHEN ()
Parameters
None
Returns
None
INFO
Pulse Info button
Signature
INFO ()
Parameters
None
Returns
None
LOUDNESS OFF
Turn loudness off.
Signature
LOUDNESS_OFF ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
LOUDNESS ON
Turn loudness on.
Signature
LOUDNESS_ON ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
LOUDNESS TOGGLE
Toggle loudness on/off.
Signature
LOUDNESS_TOGGLE ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
MUTE OFF
Turning muting off.
Signature
MUTE_OFF ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
MUTE ON
Turn muting on.
Signature
MUTE_ON ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
MUTE TOGGLE
Toggle muting on/off.
Signature
MUTE_TOGGLE ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
NUMBER 0
Pulse ‘0’ button
Signature
Number_0 ()
Parameters
None
Returns
None
NUMBER 1
Pulse ‘1’ button
Signature
Number_1 ()
Parameters
None
Returns
None
NUMBER 2
Pulse ‘2’ button
Signature
Number_2 ()
Parameters
None
Returns
None
NUMBER 3
Pulse ‘3’ button
Signature
Number_3 ()
Parameters
None
Returns
None
NUMBER 4
Pulse ‘4’ button
Signature
Number_4 ()
Parameters
None
Returns
None
NUMBER 5
Pulse ‘5’ button
Signature
Number_5 ()
Parameters
None
Returns
None
NUMBER 6
Pulse ‘6’ button
Signature
Number_6 ()
Parameters
None
Returns
None
NUMBER 7
Pulse ‘7’ button
Signature
Number_7 ()
Parameters
None
Returns
None
NUMBER 8
Pulse ‘8’ button
Signature
Number_8 ()
Parameters
None
Returns
None
NUMBER 9
Pulse ‘9’ button
Signature
Number_9 ()
Parameters
None
Returns
None
OFF
Turn device Off.
Signature
OFF ()
Parameters
None
Returns
None
Usage Note
The ON and OFF proxy commands have the ability to send proxy notifications to display a device power state in Composer and Navigator Devices only. Any desired commands or notifications based off the device ON/OFF state must be handled by your DriverWorks driver.
ON
Turn device On.
Signature
ON ()
Parameters
None
Returns
None
Usage Note
The ON and OFF proxy commands have the ability to send proxy notifications to display a device power state in Composer and Navigator Devices only. Any desired commands or notifications based off the device ON/OFF state must be handled by your DriverWorks driver.
POUND
Pulse ‘#’ button
Signature
POUND ()
Parameters
None
Returns
None
PULSE BALANCE DOWN
Pulse balance down (Left)
Signature
PULSE_BALNCE_DOWN ()
Parameters
None
PULSE BALANCE UP
Pulse balance up (Right)
Signature
PULSE_BALNCE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE BASS DOWN
Pulse bass down (Left)
Signature
PULSE_BASS_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE BASS UP
Pulse bass up (Right)
Signature
PULSE_BASS_UP ()
Parameters
None
Returns
None
PULSE INPUT
Toggle (cycle through) input selection on device.
Signature
PULSE_INPUT
Parameters
None
Returns
None
PULSE SUR UP
Toggle (cycle through) surround mode presets on device.
Signature
PULSE_SUR_UP
Parameter | Description |
---|---|
int | Output Binding ID |
PULSE VOL DOWN
Pulse volume level down.
Signature
PULSE_VOL_DOWN
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE VOL UP
Pulse volume level up.
Signature
PULSE_VOL_UP
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE TREBLE DOWN
Pulse treble down.
Signature
PULSE_TREBLE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE TREBLE UP
Pulse treble up.
Signature
PULSE_TREBLE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
RECALL
Pulse Recall button
Signature
RECALL ()
Parameters
None
Returns
None
STAR
Pulse *
button
Signature
STAR ()
Parameters
None
Returns
None
START BALANCE DOWN
Start ramping balance down (left).
Signature
START_BALANCE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START BASS DOWN
Start ramping bass down.
Signature
START_BASS_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START BASS UP
Start ramping bass up.
Signature
START_BASS_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START TREBLE DOWN
Start ramping treble down.
Signature
START_TREBLE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START TREBLE UP
Start ramping treble up.
Signature
START_TREBLE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START VOL DOWN
Start ramping volume down.
Signature
START_VOL_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START VOL UP
Start ramping volume up.
Signature
START_VOL_UP ()
Parameter | Description |
---|---|
int | Volume Level |
int | Output Binding ID |
Returns
None
SET ALL EQ SETTINGS
Set balance to a specified position.
Signature
SET_ALL_EQ_SETTINGS ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
SET BALANCE
Set balance to a specified position.
Signature
SET_BALANCE ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
SET BALANCE UP
Set balance to a specified position.
Signature
SET_BALANCE_UP ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
SET BASS LEVEL
Set bass to a specified level.
Signature
SET_BASS_LEVEL
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
SET DIGI OFF
Used with the v.3 amp to turn digital inputs off.
Signature
SET_DIGI_OFF ()
Parameters
None
Returns
None
SET DIGI ON
Used with the v.3 amp to turn digital inputs on.
Signature
SET_DIGI_ON ()
Parameters
None
Returns
None
SET INPUT
Specify input selection of device.
Signature
SET_INPUT ()
Parameter | Description |
---|---|
int | Input Binding ID - should be in the BindingID range below. |
int | Optional. Output Binding ID - should be in the BindingID range below. |
Returns
None
Usage Note
- Control Bindings = 1 -> 999
- Video Inputs = 1000 -> 1099
- Video Outputs = 2000 -> 2999
- Audio Inputs = 3000 -> 3099
- Audio Outputs = 4000 -> 4999
- Proxy Bindings = 5000 -> 5999
- Network Bindings = 6000 -> 6999
- Room Bindings = 7000 -> 7999
- Power Manager = 8000 -> 8999
SET LOUDNESS
Turn loudness on.
Signature
SET_LOUDNESS ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
SET MAX VOLUME
Set maximum allowable volume level
Signature
SET_MAX_VOLUME ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
SET OUTPUT INPUT
Specify input and output selection of device.
Signature
SET_OUTPUT_INPUT ()
Parameter | Description |
---|---|
int | Input Binding ID |
int | Output Binding ID |
Returns
None
SET SURROUND MODE
Select specified surround mode preset on device.
Signature
SET_SURROUND_MODE ()
Parameter | Description |
---|---|
int | Surround Mode |
int | Output Binding ID |
Returns
None
SET TREBLE LEVEL
Set treble to a specified level.
Signature
SET_TREBLE_LEVEL ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
SET UP DOWN SWAP
Swap page UP/DOWN buttons (used by AVGen)
Signature
SET_UP_DOWN_SWAP ()
Parameter | Description |
---|---|
bool | True/False |
Returns
None
STOP VOL DOWN
Stop ramping volume down.
Signature
SET_VOL_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
SET VOLUME LEVEL
Set volume to a specified level.
Signature
SET_VOLUME_LEVEL ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
STOP BALANCE DOWN
Start ramping balance.
Signature
STOP_BALANCE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP BASS DOWN
Stop ramping bass
Signature
STOP_BALANCE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP BASS DOWN
Stop ramping bass down.
Signature
STOP_BASS_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP BASS UP
Stop ramping bass up
Signature
STOP_BASS_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP TREBLE DOWN
Stop ramping the treble down
Signature
STOP_TREBLE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP TREBLE UP
Stop ramping the treble up.
Signature
STOP_TREBLE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP VOL DOWN
Stop ramping the volume down.
Signature
STOP_VOL_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP VOL UP
Stop ramping the volume up.
Signature
STOP_VOL_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
Audio Switch Proxy Commands
BACK
Pulse Back button
Signature
BACK ()
Parameters
None
Returns
None
CANCEL
Pulse Cancel button
Signature
CANCEL ()
Parameters
None
Returns
None
DASH
Pulses the ‘-’ button.
Signature
DASH ()
Parameter
None
Returns
None
DISCONNECT OUTPUT
Disconnect (turn off) selected output on device
Signature
DISCONNECT_OUTPUT ()
Parameter | Description |
---|---|
Int | Output BindingID |
Returns
None
SET LOUDNESS
Turn loudness on.
Signature
SET_LOUDNESS ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
Audio Video Switch Capabilities
audio consumer count
Count of number of audio consumers (inputs) of the device. This value must match the number of connections in the driver.
Signature
<audio_consumer_count></audio_consumer_count>
Parameter | Description |
---|---|
int | Number of audio consumers. |
Example
<capabilities>
<audio_consumer_count>8</audio_consumer_count>
</capabilities>
audio provider count
Count of number of audio providers (outputs) of the device. This value must match the number of connections in the driver.
Signature
<audio_provider_count></audio_provider_count>
Parameter | Description |
---|---|
int | Number of audio providers. |
Example
<capabilities>
<audio_provider_count>8</audio_provider_count>
</capabilities>
can downclass
Specifies if the A/V switch can down convert. For example: S-Video -> Composite
Signature
<can_downclass></can_downclass>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<can_downclass>true</can_downclass>
</capabilities>
can switch separately
Device specific capability that must be set to True to in order for an AV Switch’s Composer Pro interface reflecting independent audio and video signal switching.
Signature
<can_switch_separately></can_switch_separately>
Parameter | Description |
---|---|
bool | True/False |
Usage Note
This capability is not related with the requires separate switching capability. A setting of True or False will have no impact on requires separate switching.
Example
<capabilities>
<can_switch_separately>true</can_switch_separately>
</capabilities>
can upclass
Specifies if the A/V switch can up convert. For example: Composite -> S-Video
Signature
<can_upclass></can_upclass>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<can_upclass>true</can_upclass>
</capabilities>
has audio signal sense
Specifies AV switching is capable of sensing audio on an input. This is useful in triggering programming in ComposerPro based on the this setting.
Signature
<has_audio_signal_sense></has_audio_signal_sense>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_audio_signal_sense>true</has_audio_signal_sense>
</capabilities>
has discrete balance control
Capable of directly specifying a balance setting.
Signature
<has_discrete_balance_control></has_discrete_balance_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_balance_control>true</has_discrete_balance_control>
</capabilities>
has discrete bass control
Capable of directly specifying a bass setting.
Signature
<has_discrete_bass_control></has_discrete_bass_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_bass_control>true</has_discrete_bass_control>
</capabilities>
has discrete loudness control
Capable of directly specifying a loudness setting.
Signature
<has_discrete_loudness_control></has_discrete_loudness_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_loudness_control>true</has_discrete_loudness_control>
</capabilities>
has discrete mute control
Capable of directly specifying mute ON or OFF setting.
Signature
<has_discrete_ mute_control></has_discrete_ mute_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_mute_control>true</has_discrete_mute_control>
</capabilities>
has discrete treble control
Capable of directly specifying a treble setting.
Signature
<has_discrete_treble_control></has_discrete_treble_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_treble_control>true</has_discrete_treble_control>
</capabilities>
has discrete volume control
Capable of directly specifying a volume setting.
Signature
<has_discrete_volume_control></has_discrete_volume_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_volume_control>true</has_discrete_volume_control>
</capabilities>
has discrete loudness control
Capable of handling ON/OFF loudness control.
Signature
<has_discrete_loudness_control></has_discrete_loudness_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_loudness_control>true</has_discrete_loudness_control>
</capabilities>
has toggle mute control
Capable of handling ON/OFF mute control.
Signature
<has_toggle_mute_control></has_toggle_mute_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_toggle_mute_control>true</has_toggle_mute_control>
</capabilities>
has up down balance control
Capable of directly specifying a balance setting.
Signature
<has_up_down_balance_control></has_up_down_balance_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_up_down_balance_control>true</has_up_down_balance_control>
</capabilities>
has up down bass control
Capable of directly specifying a bass setting.
Signature
<has_up_down_bass_control></has_up_down_bass_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_up_down_bass_control>true</has_up_down_bass_control>
</capabilities>
has up down treble control
Capable of directly specifying a treble setting.
Signature
<has_up_down_treble_control></has_up_down_treble_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_up_down_treble_control>true</has_up_down_treble_control>
</capabilities>
has up down volume control
Has capability of handling volume UP and DOWN adjustments.
Signature
<has_up_down_volume_control></has_up_down_volume_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_up_down_volume_control>true</has_up_down_volume_control>
</capabilities>
has video signal sense
Specifies AV switching is capable of sensing video on an input. This is useful in triggering programming in ComposerPro based on the this setting.
Signature
<has_video_signal_sense></has_video_signal_sense>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_video_signal_sense>true</has_video_signal_sense>
</capabilities>
requires separate switching
Device specific capability that when set to True notifies Director of the existence of individual audio and video paths. This capability has no impact on Composer Pro user interface. For that reason, when set to True it is recommended that the capability can switch separately be set to True as well.
Signature
<requires_separate_switching></requires_separate_switching>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<requires_separate_switching>true</requires_separate_switching>
</capabilities>
video consumer count
Count of number of video consumers (inputs) of the device. This value must match the number of connections in the driver.
Signature
<video_consumer_count></video_consumer_count>
Parameter | Description |
---|---|
int | Number of video consumers. |
Example
<capabilities>
<video_consumer_count>8</video_consumer_count>
</capabilities>
video provider count
Count of number of video providers (outputs) of the device. This value must match the number of connections in the driver.
Signature
<video_provider_count></video_provider_count>
Parameter | Description |
---|---|
int | Number of audio providers. |
Example
<capabilities>
<video_provider_count>8</video_provider_count>
</capabilities>
Audio Video Switch Protocol Notifications
AUDIO PARAMETER CHANGED
Audio parameter has changed
Signature
AUDIO_PARAMETER_CHANGED ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
BALANCE LEVEL CHANGED
Selected balance level has changed.
Signature
BALANCE_LEVEL_CHANGED ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
BASS LEVEL CHANGED
Selected bass level has changed
Signature
BASS_LEVEL_CHANGED ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
INPUT OUTPUT CHANGED
Selected inputs & outputs have changed.
Signature
INPUT_OUTPUT_CHANGED ()
Parameter | Description |
---|---|
int | INput Binding ID |
int | Output Binding ID |
Returns
None
LOUDNESS CHANGED
Loudness state (On/Off) has changed.
Signature
LOUDNESS_CHANGED ()
Parameter | Description |
---|---|
bool | True/False |
int | Output Binding ID |
Returns
None
MUTE CHANGED
MUTE state (On/Off) has changed.
Signature
MUTE_CHANGED ()
Parameter | Description |
---|---|
bool | True/False |
int | Output Binding ID |
Returns
None
OFF
Device has turned off.
Signature
OFF ()
Parameter
None
Returns
None
ON
Device has turned on.
Signature
ON ()
Parameter
None
Returns
None
TREBLE LEVEL CHANGED
Selected treble level has changed.
Signature
TREBLE_LEVEL_CHANGED ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
VOLUME LEVEL CHANGED
Selected volume level has changed.
Signature
VOLUME_LEVEL_CHANGED ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
Audio Video Switch Navigator EQ
Introduction
The ability to display audio equalization controls on devices running Navigator was added in conjunction with Operating System 3.2.3. Currently, the only Proxies that support Navigator EQ controls are the Amplifier and AV Switch Proxies.
The majority of the of the commands, notifications and capabilities defined here must be implemented in your driver to display EQ controls. Several commands are optional including SET_AUDIOMODE_BYPASS, SET_AUDIOMODE_EQ and SET_AUDIOMODE_TONECONTROL as these have been included to suspect legacy Audio Matrix Switches.
Note that this functionality is disabled by default. The HIDE EQ FROM NAVS CHANGED notification must be sent with a value of False to enable the EQ functionality in Navigator.
Navigator EQ Proxy Commands
LOUDNESS OFF
Navigator EQ command called to set the loudness off for indicated output. The driver should notify proxy with the LOUDNESS_CHANGED notification of the new value.
Signature
LOUDNESS_OFF
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
Returns
None
LOUDNESS ON
Navigator EQ command called to set the loudness on for indicated output. The driver should notify proxy with the LOUDNESS_CHANGED notification of the new value.
Signature
LOUDNESS_ON
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
Returns
None
SET AUDIOMODE BYPASS
Navigator EQ command called to change the output's mode to BYPASS. This is an optional command and should be used only if your device needs to switch modes.
Signature
SET_AUDIOMODE_BYPASS
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
Returns
None
SET AUDIOMODE EQ
Navigator EQ command called to change the output's mode to EQUALIZER. This is an optional command and should be used only if your device needs to switch modes.
Signature
SET_AUDIOMODE_EQ
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
Returns
None
SET AUDIOMODE TONECONTROL
Navigator EQ command called to change the output's mode to TONE_CONTROL. This is an optional command and should be used only if your device needs to switch modes.
Signature
SET_AUDIOMODE_TONECONTROL
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
Returns
None
SAVE EQ TO CUSTOM PRESET
Navigator EQ command called to save the current EQ values to a custom preset with a name. The driver should notify proxy with the EQ_NAMES_CHANGED notification with the updated name.
Signature
SAVE_EQ_TO_CUSTOM_PRESET
Parameter | Description |
---|---|
int | INDEX: Zero based custom preset index value used to save the custom preset. The index range is from 0 to the number of custom presets defined in the <eq_preset_nav_count> capability, minus one due to the range being zero-based. |
str | NAME: Name for the new custom index. Base64 encoded. |
int | OUTPUT: OutputBindingID |
Returns
None
SET BASS LEVEL
Navigator EQ command called to set the bass level for tone control. The driver should notify proxy with the BASS_LEVEL_CHANGED notification of the new value.
Signature
SET_BASS_LEVEL
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
int | LEVEL: Bass level. range is -12 to 12 |
Returns
None
SET EQPRESET
Navigator EQ command called to change the selected preset for an output.
Signature
SET_EQPRESET
Parameter | Description |
---|---|
int | INDEX: Index for the selected preset. |
int | OUTPUT: OutputBindingID |
Returns
None
SET EQ GAIN VALUES
Navigator EQ command called to set the current equalizer’s gain values.
Signature
SET_EQ_GAIN_VALUES
Parameter | Description |
---|---|
str | VALUES: Comma delimited string of updated numeric gain values, one value per band. |
Returns
None
SET TREBLE LEVEL
Navigator EQ command called to set the treble level for tone control. The driver should notify the proxy with TREBLE_LEVEL_CHANGED notification of the new value.
Signature
SET_TREBLE_LEVEL
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
int | LEVEL: Treble level. Range is -12 to 12. |
Returns
None
Navigator EQ Protocol Notifications
AUDIOMODE CHANGED
Navigator EQ notification that the output's audio mode has changed to either Tone Control or Equalizer for the output. This is an optional notification and should be used only if your device has audio modes.
Signature
AUDIOMODE_CHANGED
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
int | AUDIOMODE: 1 = TONE_CONTROL: This is sent sent when a Tone Control value is changed. 2 = EQUALIZER: This is sent when a EQ value is changed such as Treble or Bass. |
Returns
None
BALANCE LEVEL CHANGED
Navigator EQ notification that the balance has changed.
Signature
BALANCE_LEVEL_CHANGED
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
int | LEVEL: New balance level. Range is 0 to 100. |
Returns
None
Example
-- Notify Balance level is set to 'Full Left' for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "BALANCE_LEVEL_CHANGED", { OUTPUT = "4002", LEVEL = 0 }, "NOTIFY")
-- Notify Balance level is set to 'Center' for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "BALANCE_LEVEL_CHANGED", { OUTPUT = "4002", LEVEL = 50 }, "NOTIFY")
-- Notify Balance level is set to 'Full Right' for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "BALANCE_LEVEL_CHANGED", { OUTPUT = "4002", LEVEL = 100 }, "NOTIFY")
BASS LEVEL CHANGED
Navigator EQ notification that the bass has changed.
Signature
BASS_LEVEL_CHANGED
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
int | LEVEL: New bass level. Range is -12 to 12. |
Returns
None
Example
-- Notify Bass Level is at -6 for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "BASS_LEVEL_CHANGED", { OUTPUT = "4002", LEVEL = -6 }, "NOTIFY")
-- Notify Bass Level is at +6 for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "BASS_LEVEL_CHANGED", { OUTPUT = "4002", LEVEL = 6 }, "NOTIFY")
EQ DISPLAY ORDER CHANGED
Navigator EQ notification of the order that the names from EQ_NAMES_CHANGED should be presented to the user.
Signature
EQ_DISPLAY_ORDER_CHANGED
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
table | Table of indexes that represents display order of the names. Note that any programming for selecting a preset will be INDEX based, not name based. Hence the names can be changed but the programming will be tied to the index at time of creation. |
Returns
None
Example
C4:SendToProxy(5001, "EQ_DISPLAY_ORDER_CHANGED", { [1] = 1, [2] = 2, [3] = 3, [4] = 4, [5] = 5, OUTPUT = "4002" }, "NOTIFY")
C4:SendToProxy(5001, "EQ_DISPLAY_ORDER_CHANGED", { 1, 2, 3, 4, 5, OUTPUT = "4002" }, "NOTIFY")
EQ NAMES CHANGED
Navigator EQ notification of the current names for the equalizer presets.
Signature
EQ_NAMES_CHANGED
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
table | Table of names. |
Returns
None
Example
C4:SendToProxy(5001, "EQ_NAMES_CHANGED", { [1] = "FLAT", [2] = "CLASSICAL", [3] = "JAZZ", [4] = "POP", [5] = "ROCK", OUTPUT = "4002" }, "NOTIFY")
C4:SendToProxy(5001, "EQ_NAMES_CHANGED", {"FLAT", "CLASSICAL", "JAZZ", "POP", "ROCK", OUTPUT = 4002}, "NOTIFY")
EQ FREQS CHANGED
Navigator EQ notification that the frequencies of a equalizer have been modified.
Signature
EQFREQS_CHANGED
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
num | VALUES: Comma delimited list of current equalizer frequencies. |
Returns
None
Example
-- Notify Gains and Frequencies for EQ Bands for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "EQGAINS_CHANGED", { OUTPUT = "4002", VALUES = "7.5,3.8,5.4,4.59,7.8,7.4" }, "NOTIFY")_
C4:SendToProxy(5001, "EQFREQS_CHANGED", { OUTPUT = "4002", VALUES = "33,125,750,3000,8000,16000" }, "NOTIFY")
EQ GAINS CHANGED
Navigator EQ notification that the gains of an equalizer have been modified.
Signature
EQGAINS_CHANGED
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
num | VALUES: Comma delimited list of current equalizer values. |
Returns
None
Example
-- Notify Gains and Frequencies for EQ Bands for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "EQGAINS_CHANGED", { OUTPUT = "4002", VALUES = "7.5,3.8,5.4,4.59,7.8,7.4" }, "NOTIFY")_
C4:SendToProxy(5001, "EQFREQS_CHANGED", { OUTPUT = "4002", VALUES = "33,125,750,3000,8000,16000" }, "NOTIFY")
EQ PRESET CHANGED
Navigator EQ notification used when a different preset is selected for an output. Should be called after SET_EQPRESET is sent or if the preset is changed from a different event.
Signature
EQPRESET_CHANGED
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
int | EQPRESET: Newly selected equalizer index. Range is 0 to maximum number defined in the <eq_preset_nav_count> capability. |
Returns
None
Example
-- Notify change of current EQ Preset for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "EQPRESET_CHANGED", { OUTPUT = "4002", EQPRESET = 2 }, "NOTIFY")
HIDE EQ FROM NAVS CHANGED
Navigator EQ notification that the equalizer should be shown or hidden from Navigator. This must be sent with a value of False to enable the EQ functionality in Navigator.
Signature
HIDEEQFROMNAVS_CHANGED
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
bool | ENABLED: True to hide this output from Navigators. False to allow output eq controls to be shown. Default is True. |
Returns
None
Example
-- Notify Hide (or show) Navigator EQ for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "HIDEEQFROMNAVS_CHANGED", { OUTPUT = "4002", ENABLED = false }, "NOTIFY")
LOUDNESS CHANGED
Navigator EQ notification that the loudness has changed.
Signature
LOUDNESS_CHANGED
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
bool | ENABLED: LOUDNESS: True for loudness on, False for loudness off. |
Returns
None
TREBLE LEVEL CHANGED
Navigator EQ notification that the treble level has changed.
Signature
TREBLE_LEVEL_CHANGED
Parameter | Description |
---|---|
int | OUTPUT: OutputBindingID |
int | LEVEL: LOUDNESS: New treble level. Range is -12 to 12. |
Returns
None
Example
-- Notify Treble Level is at -6 for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "TREBLE_LEVEL_CHANGED", { OUTPUT = "4002", LEVEL = -6 }, "NOTIFY")
-- Notify Treble Level is at +6 for Output 3 (Binding ID 4002)
C4:SendToProxy(5001, "TREBLE_LEVEL_CHANGED", { OUTPUT = "4002", LEVEL = 6 }, "NOTIFY")
Navigator EQ Capabilities
<has_eq_preset_control></has_eq_preset_control>: Boolean capability where True indicates this device supports the navigator equalizer interface and should allow navigators to interact with equalizers.
<eq_preset_nav_count></eq_preset_nav_count>: Capability that requires a count (integer) of the number of presets to be presented to the Navigators.
<eq_band_nav_count></<eq_band_nav_count>: Capability that requires a count (integer) of the number of adjustable bands for equalizer control.
<use_tone_max_value></use_tone_max_value>: Capability that requires the max value (integer) for tone controls.
<use_tone_min_value></use_tone_min_value>: Capability that requires the minimum value (integer) for tone controls.
Audio Output Bindings and Proxy Events
Note: Audio Output binding ID values defined in drivers written in conjunction with this Proxy must start with a binding value of 4000. The acceptable range for Audio Outputs is 4000 - 4999. However, if the first output binding ID value is not 4000, issues with Proxy Events firing correctly can be encountered.
For a list of valid Binding ID values please see the Connections section of the DriverWorks Fundamentals Guide.
Display Adjustable AV Switch Bindings
O.S. releases 3.3.0 and later provides the ability to hide AV Switch Bindings that are not in use. This feature has been provided to better manage the UI display in ComposerPro. This is especially useful for AV Switch devices that have a large number of bindings. Displaying all of the bindings for these devices can make the use of UI cumbersome.
Assumptions:
- All applicable bindings are correctly defined in the driver’s XML.
- Driver developers already have the ability to create control bindings using C4:AddDynamicBinding()
- The driver file specifies bindings to be hidden by the proxy through the use of a new XML element delivered in O.S. 3.3.0:
<ExtraInfo>D2</ExtraInfo>
See below for more information. - Resizing of the bindings list is possible only if a new capability delivered in O.S. 3.3.0 is set to true:
<allow_dynamic_resize>
See below for more information.
AV Switch Proxy Functionality Using Display Adjustable Bindings
- Bindings that are bound and then unbound in ComposerPro will only be hidden after a Director restart.
- The Proxy will increase the amount of displayed bindings based on the last unhidden, bound binding. For example, bindings 1 through 10 are all bound and unhidden. ComposerPro will display all of those bindings and in addition, binding 11 through 13 assuming they are also unhidden.
- The largest Binding amount will be shown ACROSS ALL SECTIONS at the same time. For example, RX, TX, Audio, Video will all be expanded to the largest bound set of any of the section. If RX has 10 bound connections that means Audio will also display 10, regardless of binding status.
- The driver developer is responsible for handling the configuration use case of virtual director or when the device is not available and ensuring that the solution is documented and appropriate for these scenarios.
Driver XML to Support Hidden Bindings
To allow the AV Switch Proxy to auto hide/unhide a binding, the driver needs to have a new XML tag included in the each connection in the driver’s XML: <ExtraInfo>D2</ExtraInfo>
.
The ExtraInfo tag must include the value of D2
as the parameter for each connection. For example, see the XML for connection 3096 to the right.
<connection>
<id>3096</id>
<type>6</type>
<ExtraInfo>D2</ExtraInfo>
<connectionname>TX 96</connectionname>
<consumer>True</consumer>
</connection>
Capability to Support Hidden Bindings
allow_dynamic_resize
Capability that allows for AV Switch bindings to be hidden in ComposerPro. Defaults to false.
Signature
<allow_dynamic_resize>false</allow_dynamic_resize>
Additional Information and Expected Limitations
- The driver developer is responsible for persisting and recreating any non-binding connections when director starts up.
- The driver developer must recreate the bindings in the proper order before director loads and creates the connection. This is done by the driver developer by persisting the binding information and creating the bindings on execution of the main driver code.
- The driver must handle the "virtual" or device not available case appropriately based on the expected use case for configuring the device. If the connections aren't defined in xml, and the device isn't available, the installer may have a limited experience. The driver developer needs to take this into consideration.
Audio Video Switch Proxy Commands
BACK
Pulse Back button.
Signature
BACK ()
Parameters
None
Returns
None
CANCEL
Pulse Cancel button
Signature
CANCEL ()
Parameters
None
Returns
None
CONNECT OUTPUT
Numerical value of the output. Switch the output to passed ID.
Signature
CONNECT OUTPUT ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
Usage Note
Preface band width tuner capability must be used in the driver for the CONNECT OUTPUT command to be set.
DASH
Pulses the ‘-’ button.
Signature
DASH ()
Parameter
None
Returns
None
DISCONNECT OUTPUT
Disconnect (turn off) selected output on device.
Signature
DISCONNECT_OUTPUT ()
Parameter | Description |
---|---|
Int | Output BindingID |
Returns
None
EMIT CODE
Emit IR/Serial code (used by AVGen IR/Serial Proxy).
Signature
EMIT_CODE ()
Parameter | Description |
---|---|
Int | ID OF IR Code |
Returns
None
EMIT MACRO
Emit IR/Serial code macro (used by AVGen IR/Serial Proxy)
Signature
EMIT_MACRO ()
Parameter | Description |
---|---|
str | MacroCodeName |
Returns
None
GET AUDIO INPUTS
Command sent to the protocol during the proxy initialization. Returns available audio inputs from the protocol device.
Signature
GET_AUDIO_INPUTS ()
Parameters
None
Returns
None
HYPHEN
Pulse ‘-’ button
Signature
HYPHEN ()
Parameters
None
Returns
None
INFO
Pulse Info button
Signature
INFO ()
Parameters
None
Returns
None
LOUDNESS OFF
Turn loudness off.
Signature
LOUDNESS_OFF ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
LOUDNESS ON
Turn loudness on.
Signature
LOUDNESS_ON ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
LOUDNESS TOGGLE
Toggle loudness on/off.
Signature
LOUDNESS_TOGGLE ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
MUTE OFF
Turn muting off.
Signature
MUTE_OFF ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
MUTE ON
Turn muting on.
Signature
MUTE_ON ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
MUTE TOGGLE
Toggle muting on/off.
Signature
MUTE_TOGGLE ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
NUMBER 0
Pulse ‘0’ button
Signature
Number_0 ()
Parameters
None
Returns
None
NUMBER 1
Pulse ‘1’ button
Signature
Number_1 ()
Parameters
None
Returns
None
NUMBER 2
Pulse ‘2’ button
Signature
Number_2 ()
Parameters
None
Returns
None
NUMBER 3
Pulse ‘3’ button
Signature
Number_3 ()
Parameters
None
Returns
None
NUMBER 4
Pulse ‘4’ button
Signature
Number_4 ()
Parameters
None
Returns
None
NUMBER 5
Pulse ‘5’ button
Signature
Number_5 ()
Parameters
None
Returns
None
NUMBER 6
Pulse ‘6’ button
Signature
Number_6 ()
Parameters
None
Returns
None
NUMBER 7
Pulse ‘7’ button
Signature
Number_7 ()
Parameters
None
Returns
None
NUMBER 8
Pulse ‘8’ button
Signature
Number_8 ()
Parameters
None
Returns
None
NUMBER 9
Pulse ‘9’ button
Signature
Number_9 ()
Parameters
None
Returns
None
OFF
Turn device Off.
Signature
OFF ()
Parameters
None
Usage Note
The ON and OFF proxy commands have the ability to send proxy notifications to display a device power state in Composer and Navigator Devices only. Any desired commands or notifications based off the device ON/OFF state must be handled by your DriverWorks driver.
ON
Turn device On.
Signature
ON ()
Parameters
None
Usage Note
The ON and OFF proxy commands have the ability to send proxy notifications to display a device power state in Composer and Navigator Devices only. Any desired commands or notifications based off the device ON/OFF state must be handled by your DriverWorks driver.
POUND
Pulse ‘#’ button
Signature
POUND ()
Parameters
None
Returns
None
PULSE BALANCE DOWN
Pulse balance down (Left)
Signature
PULSE_BALNCE_DOWN ()
Parameters
None
Returns
None
PULSE BALANCE UP
Pulse balance up (Right)
Signature
PULSE_BALNCE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE BASS DOWN
Pulse bass down (Left)
Signature
PULSE_BASS_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE BASS UP
Pulse bass up (Right)
Signature
PULSE_BASS_UP ()
Parameters
None
Returns
None
PULSE INPUT
Toggle (cycle through) input selection on device.
Signature
PULSE_INPUT
Parameters
None
Returns
None
PULSE SUR UP
Toggle (cycle through) surround mode presets on device.
Signature
PULSE_SUR_UP
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE VOL DOWN
Pulse volume level down.
Signature
PULSE_VOL_DOWN
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE VOL UP
Pulse volume level up.
Signature
PULSE_VOL_UP
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE TREBLE DOWN
Pulse treble down.
Signature
PULSE_TREBLE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE TREBLE UP
Pulse treble up.
Signature
PULSE_TREBLE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
RECALL
Pulse Recall button
Signature
RECALL ()
Parameters
None
Returns
None
SET BALANCE
Set balance to a specified position.
Signature
SET_BALANCE ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
SET BALANCE UP
Set balance to a specified position.
Signature
SET_BALANCE_UP ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
SET BASS LEVEL
Set bass to a specified level.
Signature
SET_BASS_LEVEL
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
SET DIGI OFF
Used with the v.3 amp to turn digital inputs off.
Signature
SET_DIGI_OFF ()
Parameters
None
Returns
None
SET DIGI ON
Used with the v.3 amp to turn digital inputs on.
Signature
SET_DIGI_ON ()
Parameters
None
Returns
None
SET INPUT
Specify input selection of device.
Signature
SET_INPUT ()
Parameter | Description |
---|---|
int | Input Binding ID - should be in the BindingID range below. |
int | Optional. Output Binding ID - should be in the BindingID range below. |
Returns
None
Usage Note
- Control Bindings = 1 -> 999
- Video Inputs = 1000 -> 1099
- Video Outputs = 2000 -> 2999
- Audio Inputs = 3000 -> 3099
- Audio Outputs = 4000 -> 4999
- Proxy Bindings = 5000 -> 5999
- Network Bindings = 6000 -> 6999
- Room Bindings = 7000 -> 7999
- Power Manager = 8000 -> 8999
SET LOUDNESS
Turn loudness on.
Signature
SET_LOUDNESS ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
SET OUTPUT INPUT
Specify input and output selection of device.
Signature
SET_OUTPUT_INPUT ()
Parameter | Description |
---|---|
int | Input Binding ID |
int | Output Binding ID |
Returns
None
SET SURROUND MODE
Select specified surround mode preset on device.
Signature
SET_SURROUND_MODE ()
Parameter | Description |
---|---|
int | Surround Mode |
int | Output Binding ID |
Returns
None
SET TREBLE LEVEL
Set treble to a specified level.
Signature
SET_TREBLE_LEVEL ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
SET UP DOWN SWAP
Swap page UP/DOWN buttons (used by AVGen)
Signature
SET_UP_DOWN_SWAP ()
Parameter | Description |
---|---|
bool | True/False |
Returns
None
STOP VOL DOWN
Stop ramping volume down.
Signature
SET_VOL_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
SET VOLUME LEVEL
Set volume to a specified level.
Signature
SET_VOLUME_LEVEL ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
STAR
Pulse *
button
Signature
STAR ()
Parameters
None
Returns
None
START BALANCE DOWN
Start ramping balance down (left).
Signature
START_BALANCE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START BASS DOWN
Start ramping bass down.
Signature
START_BASS_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START BASS UP
Start ramping bass up.
Signature
START_BASS_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START TREBLE DOWN
Start ramping treble down.
Signature
START_TREBLE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START TREBLE UP
Start ramping treble up.
Signature
START_TREBLE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START VOL DOWN
Start ramping volume down.
Signature
START_TREBLE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START VOL UP
Start ramping volume up.
Signature
START_VOL_UP ()
Parameter | Description |
---|---|
int | Volume Level |
int | Output Binding ID |
Returns
None
STOP BALANCE DOWN
Start ramping balance.
Signature
STOP_BALANCE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP BASS DOWN
Stop ramping bass
Signature
STOP_BALANCE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP BASS DOWN
Stop ramping bass
Signature
STOP_BASS_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP BASS UP
Stop ramping bass
Signature
STOP_BASS_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP TREBLE DOWN
Stop ramping the treble down
Signature
STOP_TREBLE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP TREBLE UP
Stop ramping the treble up.
Signature
STOP_TREBLE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP VOL DOWN
Stop ramping the volume down
Signature
STOP_VOL_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
CD Player Capabilities
media count
Number of discs available within the changer
Signature
<media_count></media_count>
Parameter | Description |
---|---|
int | Number of discs. |
Example
<capabilities>
<media_count>12</media_count>
</capabilities>
media type
Media that the device is capable of playing. Bitmask values include:
- CD = 0X01
- Audio Files (mp3) = 0X2
- Video = 0X4
- Broadcast = 0X8
Signature
<media_type></media_type>
Parameter | Description |
---|---|
int | Number of discs. |
Example
<capabilities>
<media_type>0X2</media_type>
</capabilities>
CD Player Protocol Notifications
DISC CHANGED
Selected disc has changed.
Signature
DISC_CHANGED ()
Parameter | Description |
---|---|
int | Disc Number |
Returns
None
OFF
Device has turned Off.
Signature
OFF ()
Parameter
None
Returns
None
ON
Device has turned On.
Signature
ON ()
Parameter
None
Returns
None
PAUSE
Device is paused.
Signature
PAUSE ()
Parameter
None
Returns
None
PLAY
Device has entered a playback state.
Signature
PLAY ()
Parameter
None
Returns
None
STOP
Device has entered a stopped state.
Signature
STOP ()
Parameter
None
Returns
None
TRACK CHANGED
Selected track has changed.
Signature
TRACK_CHANGED ()
Parameter | Description |
---|---|
int | Track Number |
Returns
None
Audio Output Bindings and Proxy Events
Note: Audio Output binding ID values defined in drivers written in conjunction with this Proxy must start with a binding value of 4000. The acceptable range for Audio Outputs is 4000 - 4999. However, if the first output binding ID value is not 4000, issues with Proxy Events firing correctly can be encountered.
For a list of valid Binding ID values please see the Connections section of the DriverWorks Fundamentals Guide.
CD Player Proxy Commands
BACK
Pulse Back button
Signature
BACK ()
Parameters
None
Returns
None
CANCEL
Pulse Cancel button
Signature
CANCEL ()
Parameters
None
Returns
None
DASH
Pulses the ‘-’ button.
Signature
DASH ()
Parameters
None
Returns
None
DOWN
Pulse down navigation.
Signature
DOWN ()
Parameters
None
Returns
None
EJECT
Eject disc.
Signature
EJECT ()
Parameters
None
Returns
None
EMIT CODE
Emit IR/Serial code (used by AVGen IR/Serial Proxy).
Signature
EMIT_CODE ()
Parameter | Description |
---|---|
Int | ID of IR Code |
Returns
None
EMIT MACRO
Emit IR/Serial code macro.
Signature
EMIT_MACRO ()
Parameter | Description |
---|---|
str | MacroCodeName |
Returns
None
ENTER
Navigate Enter key
Signature
Enter ()
Parameters
None
Returns
None
GO TO DISC
Select specified disc.
Signature
GO_TO_DISC ()
Parameter | Description |
---|---|
int | Disc Number |
Returns
None
GO TO DISC TRACK
Select specified disc and track.
Signature
GO_TO_DISC_TRACK ()
Parameter | Description |
---|---|
int | Disc Number |
int | Track Number |
Returns
None
GO TO TRACK
Select specified track.
Signature
GO_TO_TRACK ()
Parameter | Description |
---|---|
int | Track Number |
Returns
None
HYPHEN
Pulse ‘-’ button
Signature
HYPHEN ()
Parameters
None
Returns
None
INFO
Pulse Info button
Signature
INFO ()
Parameters
None
Returns
None
LEFT
Pulse left navigation.
Signature
LEFT ()
Parameters
None
Returns
None
MENU
Navigate menu.
Signature
MENU ()
Parameters
None
Returns
None
NUMBER 0
Pulse ‘0’ button
Signature
Number_0 ()
Parameters
None
Returns
None
NUMBER 1
Pulse ‘1’ button
Signature
Number_1 ()
Parameters
None
Returns
None
NUMBER 2
Pulse ‘2’ button
Signature
Number_2 ()
Parameters
None
Returns
None
NUMBER 3
Pulse ‘3’ button
Signature
Number_3 ()
Parameters
None
Returns
None
NUMBER 4
Pulse ‘4’ button
Signature
Number_4 ()
Parameters
None
Returns
None
NUMBER 5
Pulse ‘5’ button
Signature
Number_5 ()
Parameters
None
Returns
None
NUMBER 6
Pulse ‘6’ button
Signature
Number_6 ()
Parameters
None
Returns
None
NUMBER 7
Pulse ‘7’ button
Signature
Number_7 ()
Parameters
None
Returns
None
NUMBER 8
Pulse ‘8’ button
Signature
Number_8 ()
Parameters
None
Returns
None
NUMBER 9
Pulse ‘9’ button
Signature
Number_9 ()
Parameters
None
Returns
None
OFF
Turn device Off.
Signature
OFF ()
Parameters
None
Returns
None
Usage Note
The ON and OFF proxy commands have the ability to send proxy notifications to display a device power state in Composer and Navigator Devices only. Any desired commands or notifications based off the device ON/OFF state must be handled by your DriverWorks driver.
ON
Turn device On.
Signature
ON ()
Parameters
None
Returns
`None `
Usage Note
The ON and OFF proxy commands have the ability to send proxy notifications to display a device power state in Composer and Navigator Devices only. Any desired commands or notifications based off the device ON/OFF state must be handled by your DriverWorks driver.
OPEN CLOSE
Open/close disc tray.
Signature
OPEN_CLOSE ()
Parameters
None
Returns
`None `
PAGE DOWN
Pulse menu Page down.
Signature
PAGE_DOWN ()
Parameters
None
Returns
`None `
PAGE UP
Pulse menu Page up.
Signature
PAGE_UP ()
Parameters
None
Returns
`None `
PLAY
Place device in a playback state.
Signature
PLAY ()
Parameters
None
Returns
`None `
PAUSE
Place device in stop state.
Signature
PAUSE ()
Parameters
None
Returns
`None `
POUND
Pulse # button.
Signature
POUND ()
Parameters
None
Returns
`None `
RECALL
Pulse the recall button.
Signature
RECALL ()
Parameters
None
Returns
`None `
RIGHT
Pulse right navigation button.
Signature
RIGHT ()
Parameters
None
Returns
`None `
SCAN FWD
Pulse/scan forward within track/chapter.
Signature
SCAN_FWD ()
Parameters
None
Returns
`None `
SCAN REV
Pulse scan reverse within track/chapter.
Signature
SCAN_REV ()
Parameters
None
Returns
`None `
SET UP DOWN SWAP
Swap page UP/DOWN buttons.
Signature
POUND ()
Parameter | Description |
---|---|
bool | True/False |
Returns
`None `
SKIP FWD
Advance to next track/chapter.
Signature
SKIP_FWD ()
Parameters
None
Returns
`None `
SKIP REV
Seek to previous track/chapter.
Signature
SKIP_REV ()
Parameters
None
Returns
`None `
STAR
Pulse *
button.
Signature
STAR ()
Parameters
None
Returns
`None `
START DOWN
Initiate down arrow navigation.
Signature
START_DOWN ()
Parameters
None
Returns
`None `
START LEFT
Pulse left navigation.
Signature
START_LEFT ()
Parameters
None
Returns
`None `
START PAGE DOWN
Start menu Page down.
Signature
START_PAGE_DOWN ()
Parameters
None
Returns
`None `
START PAGE UP
Start menu Page up.
Signature
START_PAGE_UP ()
Parameters
None
Returns
`None `
START PAGE RIGHT
Initiate right-arrow navigation.
Signature
START_RIGHT ()
Parameters
None
Returns
`None `
START SCAN FWD
Initiate scan forward within track/chapter.
Signature
START_SCAN_FWD ()
Parameters
None
Returns
`None `
START SCAN REV
Initiate scan forward within track/chapter.
Signature
START_SCAN_REV ()
Parameters
None
Returns
`None `
START UP
Initiate up-arrow navigation.
Signature
START_UP ()
Parameters
None
Returns
`None `
STOP
Place device in stop state.
Signature
STOP ()
Parameters
None
Returns
`None `
STOP SCAN FWD
Terminate scan forward within track/chapter.
Signature
STOP_SCAN_FWD ()
Parameters
None
Returns
`None `
STOP SCAN REV
Terminate reverse scan within track/chapter.
Signature
STOP_SCAN_REV ()
Parameters
None
Returns
`None `
STOP PAGE DOWN
Stop menu page down.
Signature
STOP_PAGE_DOWN ()
Parameters
None
Returns
`None `
STOP DOWN
Terminate down-arrow navigation.
Signature
STOP_DOWN ()
Parameters
None
Returns
`None `
STOP UP
Stop menu Page down.
Signature
STOP_UP ()
Parameters
None
Returns
`None `
STOP LEFT
Terminate left navigation.
Signature
STOP_LEFT ()
Parameters
None
Returns
`None `
STOP PAGE UP
Stop menu page up.
Signature
STOP_PAGE_UP ()
Parameters
None
Returns
`None `
STOP RIGHT
Terminate RIGHT navigation.
Signature
STOP_RIGHT ()
Parameters
None
Returns
`None `
TV VIDEO
Toggle TV/video input.
Signature
TV_VIDEO ()
Parameters
None
Returns
`None `
UP
Pulse up navigation.
Signature
UP ()
Parameters
None
Returns
`None
Disc Changer Capabilities
can play cd
Disc Changer is capable of playing CD audio formats.
Signature
<can_play_cd></can_play_cd>
Parameter | Description |
---|---|
bool | True/False |
Returns
None
Example
<capabilities>
<can_play_cd>true</can_play_cd>
</capabilities>
can scan media
Disc Changer is capable of scanning media and returning disc information via the driver.
Signature
<can_scan_media></can_scan_media>
Parameter | Description |
---|---|
bool | True/False |
Returns
None
Example
<capabilities>
<can_scan_media>true</can_scan_media>
</capabilities>
has discreet disc button
Capable of seeking directly to a specified disc.
Signature
<has_discrete_disc_button></has_discrete_disc_button>
Parameter | Description |
---|---|
bool | True/False |
Returns
None
Example
<capabilities>
<has_discreet_disc_button>true</has_discreet_disc_button>
</capabilities>
has discreet disc access
Capable of seeking directly to a specified disc (and specified track on that disc).
Signature
<has_discrete_disc_access></has_discrete_disc_access>
Parameter | Description |
---|---|
bool | True/False |
Returns
None
Example
<capabilities>
<has_discreet_disc_access>true</has_discreet_disc_access>
</capabilities>
has discreet input selection
Capable of directly selecting specified input.
Signature
<has_discrete_input_selection></has_discrete_input_selection>
Parameter | Description |
---|---|
bool | True/False |
Returns
None
Example
<capabilities>
<has_discreet_disc_button>true</has_discreet_disc_button>
</capabilities>
media count
Number of discs available within the changer.
Signature
<media_count></media_count>
Parameter | Description |
---|---|
int | nMediaCount |
Returns
None
Example
<capabilities>
<media_count>true</media_count>
</capabilities>
media type
Media that the device is capable of playing. Bitmask of:
- CD = 0X01
- Audio Files (mp3) = 0X2
- Video = 0X4
- Broadcast = 0X8
Signature
<media_type></media_type>
Parameter | Description |
---|---|
int | nMediaTypeBitmask |
Returns
None
Example
<capabilities>
<media_type>true</media_type>
</capabilities>
selection delay
Delay time in milliseconds before new tuner selection is online.
Signature
<selection_delay></selection_delay>
Parameter | Description |
---|---|
bool | True/False |
Returns
None
Example
<capabilities>
<selection_delay>true</selection_delay>
</capabilities>
Disc Changer Protocol Notifications
DISC CHANGED
Selected disc has changed.
Signature
DISC_CHANGED ()
Parameter | Description |
---|---|
int | Disc Number |
Returns
None
OFF
Device has turned Off.
Signature
OFF ()
Parameter
None
Returns
None
ON
Device has turned On.
Signature
ON ()
Parameter
None
Returns
None
PAUSE
Device is paused.
Signature
PAUSE ()
Parameter
None
Returns
None
PLAY
Device has entered a playback state.
Signature
PLAY ()
Parameter
None
Returns
None
STOP
Device has entered a stopped state.
Signature
STOP ()
Parameter
None
Returns
None
TOC
Issued when scanning the table of contents for a particular disc or cd. Director will use this information to lookup and populate the database with the disc information if the lookup succeeds. This command can also be used to indicate a slot now is empty and contains no disc.
Signature
TOC ()
Parameter
Parameter | Description |
---|---|
int | Index of the disc being scanned |
str | ‘cd’ for CD or ‘dvd’ for DVD |
data | table of contents |
Returns
None
TRACK CHANGED
Selected track has changed.
Signature
TRACK_CHANGED ()
Parameter | Description |
---|---|
int | Track Number |
Returns
None
Audio Output Bindings and Proxy Events
Note: Audio Output binding ID values defined in drivers written in conjunction with this Proxy must start with a binding value of 4000. The acceptable range for Audio Outputs is 4000 - 4999. However, if the first output binding ID value is not 4000, issues with Proxy Events firing correctly can be encountered.
For a list of valid Binding ID values please see the Connections section of the DriverWorks Fundamentals Guide.
Disc Changer Proxy Commands
BACK
Pulse Back button
Signature
BACK ()
Parameters
None
Returns
None
CANCEL
Pulse Cancel button
Signature
CANCEL ()
Parameters
None
Returns
None
DASH
Pulses the ‘-’ button.
Signature
DASH ()
Parameter
None
Returns
None
DOWN
Pulse down navigation.
Signature
DOWN ()
Parameters
None
Returns
None
EJECT
Eject disc/tape.
Signature
EJECT ()
Parameters
None
Returns
None
EMIT CODE
Emit IR/Serial code (used by AVGen IR/Serial Proxy).
Signature
EMIT_CODE ()
Parameter | Description |
---|---|
Int | ID OF IR Code |
Returns
None
EMIT MACRO
Emit IR/Serial code macro (used by AVGen IR/Serial Proxy)
Signature
EMIT_MACRO ()
Parameter | Description |
---|---|
str | MacroCodeName |
Returns
None
ENTER
Navigate Enter key
Signature
Enter ()
Parameters
None
Returns
None
GO TO DISC TRACK
Select specified disc and track.
Signature
GO_TO_DISC_TRACK ()
Parameter | Description |
---|---|
int | Disc Number |
int | Track Number |
Returns
None
GO TO TRACK
Select specified track.
Signature
GO_TO_TRACK ()
Parameter | Description |
---|---|
int | Track Number |
Returns
None
HYPHEN
Pulse ‘-’ button
Signature
HYPHEN ()
Parameters
None
Returns
None
INFO
Pulse Info button
Signature
INFO ()
Parameters
None
Returns
None
LEFT
Pulse left navigation.
Signature
LEFT ()
Parameters
None
Returns
None
MENU
Navigate menu.
Signature
MENU ()
Parameters
None
Returns
None
NUMBER 0
Pulse ‘0’ button
Signature
Number_0 ()
Parameters
None
Returns
None
NUMBER 1
Pulse ‘1’ button
Signature
Number_1 ()
Parameters
None
Returns
None
NUMBER 2
Pulse ‘2’ button
Signature
Number_2 ()
Parameters
None
Returns
None
NUMBER 3
Pulse ‘3’ button
Signature
Number_3 ()
Parameters
None
Returns
None
NUMBER 4
Pulse ‘4’ button
Signature
Number_4 ()
Parameters
None
Returns
None
NUMBER 5
Pulse ‘5’ button
Signature
Number_5 ()
Parameters
None
Returns
None
NUMBER 6
Pulse ‘6’ button
Signature
Number_6 ()
Parameters
None
Returns
None
NUMBER 7
Pulse ‘7’ button
Signature
Number_7 ()
Parameters
None
Returns
None
NUMBER 8
Pulse ‘8’ button
Signature
Number_8 ()
Parameters
None
Returns
None
NUMBER 9
Pulse ‘9’ button
Signature
Number_9 ()
Parameters
None
Returns
None
OFF
Turn device Off.
Signature
OFF ()
Parameters
None
Returns
None
Usage Note
The ON and OFF proxy commands have the ability to send proxy notifications to display a device power state in Composer and Navigator Devices only. Any desired commands or notifications based off the device ON/OFF state must be handled by your DriverWorks driver.
ON
Turn device On.
Signature
ON ()
Parameters
None
Returns
None
Usage Note
The ON and OFF proxy commands have the ability to send proxy notifications to display a device power state in Composer and Navigator Devices only. Any desired commands or notifications based off the device ON/OFF state must be handled by your DriverWorks driver.
OPEN CLOSE
Open/close disc tray.
Signature
OPEN_CLOSE ()
Parameters
None
Returns
None
PAUSE
Place device in stop state.
Signature
PAUSE ()
Parameters
None
Returns
None
PAGE DOWN
Pulse menu Page down.
Signature
PAGE_DOWN ()
Parameters
None
Returns
`None `
PAGE UP
Pulse menu Page up.
Signature
PAGE_UP ()
Parameters
None
Returns
`None `
PLAY
Place device in a playback state.
Signature
PLAY ()
Parameters
None
Returns
`None `
POUND
Pulse # button.
Signature
POUND ()
Parameters
None
Returns
`None `
Pulse Aspect Ratio
Toggle (cycle though) aspect ratio.
Signature
PULSE_ASPECT_RATIO ()
Parameters
None
Returns
`None
RECALL
Pulse Recall button.
Signature
RECALL ()
Parameters
None
Returns
None
RIGHT
Pulse Right Navigation button.
Signature
RIGHT ()
Parameters
None
Returns
None
SCAN FWD
Pulse/scan forward within track/chapter.
Signature
SCAN_FWD ()
Parameters
None
Returns
None
SCAN REV
Pulse scan reverse within track/chapter.
Signature
SCAN_REV ()
Parameters
None
Returns
None
SKIP FWD
Advance to next track/chapter.
Signature
CSKIP_FWD ()
Parameters
None
Returns
None
SKIP REV
Seek to previous track/chapter.
Signature
SKIP_REV ()
Parameters
None
Returns
None
SET UP DOWN SWAP
Swap page UP/DOWN buttons.
Signature
SET_UP_DOWN_SWAP ()
Parameter | Description |
---|---|
bool | True/False |
Returns
None
STAR
Pulse *
button.
Signature
STAR ()
Parameters
None
Returns
None
START DOWN
Initiate down arrow navigation.
Signature
START_DOWN ()
Parameters
None
Returns
None
START LEFT
Pulse left navigation.
Signature
START_LEFT ()
Parameters
None
Returns
None
START PAGE DOWN
Start menu Page down.
Signature
START_PAGE_DOWN ()
Parameters
None
Returns
None
START PAGE UP
Start menu Page up.
Signature
START_PAGE_UP ()
Parameters
None
Returns
None
START PAGE RIGHT
Initiate right-arrow navigation.
Signature
START_RIGHT ()
Parameters
None
Returns
None
START SCAN FWD
Initiate scan forward within track/chapter.
Signature
START_SCAN_FWD ()
Parameters
None
Returns
None
START SCAN REV
Initiate scan backwards within track/chapter.
Signature
START_SCAN_REV ()
Parameters
None
Returns
None
START UP
Initiate up-arrow navigation.
Signature
START_UP ()
Parameters
None
Returns
None
STOP
Place device in stop state.
Signature
STOP ()
Parameters
None
Returns
None
STOP LEFT
Terminate left navigation.
Signature
STOP_LEFT ()
Parameters
None
Returns
None
STOP PAGE DOWN
Stop menu page down.
Signature
STOP_PAGE_DOWN ()
Parameters
None
Returns
None
STOP DOWN
Terminate down-arrow navigation.
Signature
STOP_DOWN ()
Parameters
None
Returns
None
STOP PAGE DOWN
Stop menu page up.
Signature
STOP_PAGE_UP ()
Parameters
None
Returns
None
STOP RIGHT
Terminate RIGHT navigation.
Signature
STOP_RIGHT ()
Parameters
None
Returns
None
STOP SCAN FWD
Terminate scan forward within track/chapter.
Signature
STOP_SCAN_FWD ()
Parameters
None
Returns
None
STOP SCAN REV
Terminate reverse scan within track/chapter.
Signature
STOP_SCAN_REV ()
Parameters
None
Returns
None
STOP UP
Stop menu Page down.
Signature
STOP_UP ()
Parameters
None
Returns
None
TV VIDEO
Toggle TV/video input.
Signature
TV_VIDEO ()
Parameters
None
Returns
None
UP
Pulse up navigation.
Signature
CUP ()
Parameters
None
Returns
None
UPDATE PROGRESS SCAN MEDIA
Notification of the progress of the current media scan
Signature
UPDATE_PROGRESS_SCAN_MEDIA ()
Parameter | Description |
---|---|
num | total number of discs to be scanned |
num | CURRENT INDEX - how many currently have been scanned |
Returns
None
GO TO DISC
Select specified disc.
Signature
GO_TO_DISC ()
Parameter | Description |
---|---|
int | Disc Number |
Returns
None
DVD Player Protocol Notifications
DISC CHANGED
Selected disc has changed.
Signature
DISC_CHANGED ()
Parameter | Description |
---|---|
int | Disc Number |
Returns
None
OFF
Device has turned Off.
Signature
OFF ()
Parameter
None
Returns
None
ON
Device has turned On.
Signature
ON ()
Parameter
None
Returns
None
PAUSE
Device is paused.
Signature
PAUSE ()
Parameter
None
Returns
None
PLAY
Device has entered a playback state.
Signature
PLAY ()
Parameter
None
Returns
None
STOP
Device has entered a stopped state.
Signature
STOP ()
Parameter
None
Returns
None
TOC
Issued when scanning the table of contents for a particular disc or cd. Director will use this information to lookup and populate the database with the disc information if the lookup succeeds. This command can also be used to indicate a slot now is empty and contains no disc.
Signature
TOC ()
Parameter
Parameter | Description |
---|---|
int | Index of the disc being scanned |
str | ‘cd’ for CD or ‘dvd’ for DVD |
data | table of contents |
Returns
None
TRACK CHANGED
Selected track has changed.
Signature
TRACK_CHANGED ()
Parameter | Description |
---|---|
int | Track Number |
Returns
None
Generic Media Player Protocol Notifications
Using the List Parameter
There are two ways to handle sending a list of media information. The first involves the protocol driver manually creating the .xml for the list and then passing that list to the proxy. The format of the list can be seen to the right.
<list>
<clear>true</clear>
<top>false</top>
<alpha>true</alpha>
<title>Smashing Pumpkins</title>
<total_items>80</total_items>
<num_items>21</num_items>
<first>0</first>
<items>
<item>
<id>1</id>
<text>Siamese Dream</text>
<type>1</type>
</item>
<item>
<id>2</id>
<text>Greatest Hits</text>
<type>1</type>
</item>
</items>
</list>
The second method involves adding new list data to an existing list and passing the updated list along. This prevents the protocol driver from having to recreate a list every time new data is passed. The commands below need to reside inside the protocol driver’s Lua code:
NEW LIST
Creates a new media data list.
Signature
NEW_LIST ()
Parameter | Description |
---|---|
title | text string of the list title. |
total_items | Numerical value of the total number of items in the list. |
num_items | Numerical value of the new items added to the list. |
first | First item in the return list. |
clear | True or False. Indicates whether or not the cache for the previously returned items should be cleared, or not. |
ADD LIST ITEM
Adds an item to a media data list.
Signature
ADD_LIST_ITEM ()
Parameter | Description |
---|---|
id | Id of the item being added to the list. |
type | Type of items being added to the list; playable, selectable. |
text | Display text for the new item. |
last | True or False. This parameter is passed last and triggers the list to be sent to the UI (if True) |
When the protocol is ready to send a new list it should send a NEW_LIST command followed by ADD_LIST_ITEM for each item to be added to the list.
ADD MENU ITEM
Adds an item to a media data menu.
Signature
ADD_MENU_ITEM ()
Parameter | Description |
---|---|
id | Id of the item being added to the menu. |
type | Type of items being added to the list; playable, selectable |
text | Display text for the new menu item. |
last | True or False. This parameter is passed last and triggers the menu to be sent to the UI (if True). |
NEW_MENU
Creates a new menu of media data.
Signature
NEW_MENU ()
Parameter | Description |
---|---|
title | Text string of the menu title. |
num_items | Numerical value of the new items added to the list. |
When the protocol is ready to send a new menu it should send a NEW_MENU command followed by ADD_MENU_ITEM for each item to be added to the menu. See the example to the right._
-- MENU_LIST
<menu_list>
<title>Main Menu</title>
<total_items>4</total_items>
<num_items>4</num_items>
<first>0</first>
<items>
<item>
<id>0</id>
<type>4</type>
<text>Playlists</text>
</item>
<item>
<id>1</id>
<type>4</type>
<text>Artists</text>
</item>
<item>
<id>2</id>
<type>4</type>
<text>Albums</text>
</item>
<item>
<id>4</id>
<type>4</type>
<text>Songs</text>
</item>
</items>
</menu_list>
LIST TYPE CHANGED
Signature
LIST_TYPE_CHANGED ()
Parameter | Description |
---|---|
list type | Watch or Listen |
MEDIA INFO CHANGED
Signature
MEDIA_INFO_CHNAGED ()
Parameter | Description |
---|---|
media_info_1 | |
media_info_2 | |
media_info_3 |
MEDIA LABELS CHANGED
Signature
MEDIA_LABELS_CHNAGED ()
Parameter | Description |
---|---|
repeat_modes |
ONLINE STATUS CHANGED
Signature
ONLINE_STATUS_CHNAGED ()
Parameter | Description |
---|---|
online_status |
PLAY STATUS CHANGED
Signature
PLAY_STATUS_CHNAGED ()
Parameter | Description |
---|---|
play_status |
QUEUE PROGRESS CHANGED
Signature
QUEUE_PROGRESSS_CHNAGED ()
Parameter | Description |
---|---|
play | |
total |
REPEAT CHANGED
Signature
REPEAT_CHNAGED ()
Parameter | Description |
---|---|
repeat_modes |
REPEAT MODES CHANGED
Signature
REPEAT_MODES_CHNAGED ()
Parameter | Description |
---|---|
repeat_modes |
SET REPEAT MODES
Signature
SET_REPEAT_MODES ()
Parameter | Description |
---|---|
repeat_modes |
SET SHUFFLE MODES
Signature
SET_SHUFFLE_MODES ()
Parameter | Description |
---|---|
shuffle_modes |
SHUFFLE CHANGED
Signature
SHUFFLE_CHANGED ()
Parameter | Description |
---|---|
shuffle_mode |
SHUFFLE MODES CHANGED
Signature
SHUFFLE_MODES_CHANGED ()
Parameter | Description |
---|---|
shuffle_modes |
Generic Media Player Commands
GET ALPHA LOOKUP
Command that returns the index of the first item in the list that begins with the specified character.
Signature
GET_ALPHA_LOOKUP ()
Parameter | Description |
---|---|
String | Letter |
SendToProxy
<alpha_lookup>
GET LIST
Command to obtain the current list.
Signature
GET_LIST ()
Parameters
None
SendToProxy
<list>
GET NEXT
Command that returns the index of the first item in the list that begins with the specified character.
Signature
GET_NEXT ()
Parameter | Description |
---|---|
FIRST | The index of the first item to be returned. |
NUM | The number of items to return. |
SendToProxy
<list>
GET MENU
Command to obtain the list of items in the menu.
Signature
GET_MENU ()
Parameters
None
SendToProxy
<menu_list>
GET REPEAT MODES
Command to obtain supported repeat modes.
Signature
GET_REPEAT_MODES ()
Parameters
None
SendToProxy
<rtepeat_modes>
GET SHUFFLE MODES
Command to obtain supported repeat modes.
Signature
GET_SHUGGLE_MODES ()
Parameters
None
SendToProxy
<shuffle_modes>
LIST BACK
Command to return to the previous list.
Signature
LIST_BACK ()
Parameters
None
SendToProxy
<list>
LIST SELECT
Command to select an item from a list of media on the GenericMediaPlayer. If the item has a child list, that list is sent to the UI. If the item is playable, playback should be started.
Signature
LIST_SELECT ()
Parameter | Description |
---|---|
ITEM | The id of the item selected |
TYPE | The item type returned in the list. |
TITLE | The name of the item. |
SendToProxy
<list>
MENU SELECT
Command to select an item from the list of menu items returned with GET_MENU.
Signature
MENU_SELECT ()
Parameter | Description |
---|---|
ITEM | The id of the item selected |
TYPE | The item type returned in the list. |
TITLE | The name of the item. |
SendToProxy
None
PAUSE
Command to pause media playback on the GenericMediaPlayer.
Signature
PAUSE ()
Parameters
None
SendToProxy
None
PLAY
Command to start media playback.
Signature
PLAY ()
Parameters
None
SendToProxy
None
PLAYPAUSE
Command to start media playback if currently paused or pause media playback if currently playing.
Signature
PLAYPAUSE ()
Parameters
None
SendToProxy
None
RESET
Command to reset the GenericMediaPlayer. This command is used to switch between different media types. A new list and menu should be sent to the UI when this command is sent.
Signature
RESET ()
Parameter | Description |
---|---|
TYPE | The new media type tp be shown |
SendToProxy
None
SCAN FWD
Command to scan forward through current media.
Signature
SCAN_FWD ()
Parameters
None
SendToProxy
None
SCAN REV
Command to scan backwards through current media.
Signature
SCAN_REV ()
Parameters
None
SendToProxy
None
SEARCH
Command to filter items based on the search string.
Signature
SEARCH ()
Parameter | Description |
---|---|
SEARCHSTRING | The string used to filter results. |
SendToProxy
None
SELECT PLAY
Command to select the specified item for playback. If an album, this will playback all tracks.
Signature
SELECT_PLAY ()
Parameter | Description |
---|---|
ITEM | The index of the item to be played. |
SendToProxy
None
SET REPEAT
Command to set the repeat mode on the GenericMediaPlayer.
Signature
SELECT_REPEAT ()
Parameter | Description |
---|---|
MODE | One of the modes returned with the <repeat_modes> tag |
SendToProxy
None
SET SHUFFLE
Command to obtain the shuffle mode for the GenericMediaPlayer.
Signature
SELECT_SHUFFLE ()
Parameter | Description |
---|---|
MODE | One of the modes returned with the <shuffle_modes> tag |
SendToProxy
None
SKIP FWD
Command that starts playback of the next media item.
Signature
SKIP_FWD ()
Parameters
None
SendToProxy
None
SKIP REV
Command that starts playback of the previous media item.
Signature
SKIP_REV ()
Parameters
None
SendToProxy
None
START SCAN FWD
Command to start scan forward or fast forward through the current playing media item.
Signature
START_SCAN_FWD ()
Parameters
None
SendToProxy
None
START SCAN REV
Command to start scan backwards or rewind through the currently playing media item.
Signature
START_SCAN_REV ()
Parameters
None
SendToProxy
None
STOP
Command to stop media playback.
Signature
STOP ()
Parameters
None
SendToProxy
None
STOP SCAN FWD
Command to stop scanning forward through the current media.
Signature
STOP_SCAN_FWD ()
Parameters
None
SendToProxy
None
STOP SCAN REV
Command to stop scanning backward through the current media.
Signature
STOP_SCAN_REV ()
Parameters
None
SendToProxy
None
Generic Media Player and Coverart
Media cover art can be displayed on the UI in two ways. The first process involves the coverart image being sent directly to the UI using the device protocol. The image is converted to a .jpg file and stored in the following location on the device:
/media/images/mediaplayer/<device_id>/coverart.jpg
In the path above, <device_id> is the id of the media player. See the NEW_COVER_ART notify below.
The second way to display cover art is to send a URL which represents the image location from the device proxy directly to the UI. See the COVERART_PATH_CHANGED notify below.
Also, the proxy supports receiving three cover art image formats:
- RGB565
- RGB888
- JPEG files
Note that these images must be BASE64 encoded before reaching the proxy. The image is received by the proxy in one of the encoded formats from the media player using the SendToProxy: (“COVERART”) notification. Image information is sent with this notification along with the encoded image, including image width, height and format.
COVERART PATH CHANGED
Send the new cover art path for the current playing media.
Signature
COVERART_PATH_CHANGED ()
Parameter | Description |
---|---|
image_path | Path to the new image. |
width | Image width |
height | Image height |
GET COVERART
Command that comes into Received from Proxy.
Signature
GET_COVERART ()
Example
function GetCoverArt()
if (g_ShowCoverArt == true) then
QueueDockCmd(CMD["GET_COVERART_RAW"], 0, 1, g_imageindex-1, 0, "")
End
end
NEW COVERART
Send the data information to the UI. This information includes image height, width, format, size (if the image is in .jpg format) and the image path, which is where the image file was written.
Signature
NEW_COVERART ()
Parameter | Description |
---|---|
cover_art | Base64 encoded image. |
width | Image width |
height | Image height |
size | Size of the image in bytes - (needed for JPEG format only) |
format | Image format |
new CoverArt
SendDataToUI(newCoverArt)
Signature
NEW_COVERART ()
Parameter | Description |
---|---|
width | Image width |
height | Image height |
path | Location of image |
Example
AutoNode newCoverArt(C4XML::CreateXmlNode("NEW_COVER_ART"));
newCoverArt->AddChild("image_path", m_ImagePath);
newCoverArt->AddChild("width", m_ImageWidth);
newCoverArt->AddChild("height", m_ImageHeight);
SendDataToUI( *newCoverArt );
Audio Output Bindings and Proxy Events
Note: Audio Output binding ID values defined in drivers written in conjunction with this Proxy must start with a binding value of 4000. The acceptable range for Audio Outputs is 4000 - 4999. However, if the first output binding ID value is not 4000, issues with Proxy Events firing correctly can be encountered.
For a list of valid Binding ID values please see the Connections section of the DriverWorks Fundamentals Guide.
Generic Media Player Capabilities
has http playback
This capability instructs media manager to exclude/include movies with http based locations.
Signature
<has_http_playback></has_http_playback>
Parameter | Description |
---|---|
bool | true/false |
Returns
None
Example
<capabilities>
<has_http_playback>true</has_http_playback>
</capabilities>
has menu
This capability instructs media manager to exclude/include movies with http based locations.
Signature
<has_menu></has_menu>
Parameter | Description |
---|---|
bool | true/false |
Returns
None
Example
<capabilities>
<has_menu>true</has_menu>
</capabilities>
has repeat
Media Player supports repeating current media.
Signature
<has_repeat></has_repeat>
Parameter | Description |
---|---|
bool | true/false |
Returns
None
Example
<capabilities>
<has_repeat>true</has_repeat>
</capabilities>
has search
Media Player supports searching.
Signature
<has_search></has_search>
Parameter | Description |
---|---|
bool | true/false |
Returns
None
Example
<capabilities>
<has_search>true</has_search>
</capabilities>
has shuffle
Media Player supports shuffling.
Signature
<has_shuffle></has_shuffle>
Parameter | Description |
---|---|
bool | true/false |
Returns
None
Example
<capabilities>
<has_shuffle>true</has_shuffle>
</capabilities>
has scan fwd
Media Player supports forward scanning of media.
Signature
<has_scan_fwd></has_scan_fwd>
Parameter | Description |
---|---|
bool | true/false |
Returns
None
Example
<capabilities>
<has_scan_fwd>true</has_scan_fwd>
</capabilities>
has scan rev
Media Player supports reverse scanning of media.
Signature
<has_scan_rev></has_scan_rev>
Parameter | Description |
---|---|
bool | true/false |
Returns
None
Example
<capabilities>
<has_scan_rev>true</has_scan_rev>
</capabilities>
has skip fwd
Media Player supports forward skipping through media.
Signature
<has_skip_fwd></has_skip_fwd>
Parameter | Description |
---|---|
bool | true/false |
Returns
None
Example
<capabilities>
<has_skip_fwd>true</has_skip_fwd>
</capabilities>
has skip rev
Media Player supports reverse skipping through media.
Signature
<has_skip_rev></has_skip_rev>
Parameter | Description |
---|---|
bool | true/false |
Returns
None
Example
<capabilities>
<has_skip_rev>true</has_skip_rev>
</capabilities>
has pause
Media Player supports pausing media.
Signature
<has_pause></has_pause>
Parameter | Description |
---|---|
bool | true/false |
Returns
None
Example
<capabilities>
<has_pause>true</has_pause>
</capabilities>
media labels
Media Player supports multiple ways to label media. This is a dynamic capability and can be defined on a device-by-device basis.
Signature
<media_labels></media_labels>
Parameter | Description |
---|---|
bool | true/false |
Returns
None
Example
<capabilities>
<media_labels>true</media_labels>
</capabilities>
repeat modes
Media Player supports multiple media repeat types. This is a dynamic capability and can be defined on a device-by-device basis.
Signature
<repeat_modes></repeat_modes>
Parameter | Description |
---|---|
bool | true/false |
Returns
None
Example
<capabilities>
<repeat_modes>true</repeat_modes>
</capabilities>
shuffle modes
Media Player supports multiple media shuffling types. This is a dynamic capability and can be defined on a device-by-device basis.
Signature
<shuffle_modes></shuffle_modes>
Parameter | Description |
---|---|
bool | true/false |
Returns
None
Example
<capabilities>
<shuffle_modes>true</shuffle_modes>
</capabilities>
Audio Output Bindings and Proxy Events
Note: Audio Output binding ID values defined in drivers written in conjunction with this Proxy must start with a binding value of 4000. The acceptable range for Audio Outputs is 4000 - 4999. However, if the first output binding ID value is not 4000, issues with Proxy Events firing correctly can be encountered.
For a list of valid Binding ID values please see the Connections section of the DriverWorks Fundamentals Guide.
DVD Player Proxy Commands
BACK
Pulse Back button
Signature
BACK ()
Parameters
None
Returns
None
CANCEL
Pulse Cancel button
Signature
CANCEL ()
Parameters
None
Returns
None
DASH
Pulses the ‘-’ button.
Signature
DASH ()
Parameter
None
Returns
None
DOWN
Pulse down navigation.
Signature
DOWN ()
Parameters
None
Returns
None
EJECT
Eject disc/tape.
Signature
EJECT ()
Parameters
None
Returns
None
EMIT CODE
Emit IR/Serial code (used by AVGen IR/Serial Proxy).
Signature
EMIT_CODE ()
Parameter | Description |
---|---|
Int | ID OF IR Code |
Returns
None
EMIT MACRO
Emit IR/Serial code macro.
Signature
EMIT_MACRO ()
Parameter | Description |
---|---|
str | MacroCodeName |
Returns
None
ENTER
Navigate Enter key
Signature
Enter ()
Parameters
None
Returns
None
GO TO DISC
Select specified disc.
Signature
GO_TO_DISC ()
Parameter | Description |
---|---|
int | Disc Number |
Returns
None
GO TO DISC TRACK
Select specified disc and track.
Signature
GO_TO_DISC_TRACK ()
Parameter | Description |
---|---|
int | Disc Number |
int | Track Number |
Returns
None
GO TO TRACK
Select specified track.
Signature
GO_TO_TRACK ()
Parameter | Description |
---|---|
int | Track Number |
Returns
None
GUIDE
Navigate Guide key.
Signature
GUIDE ()
Parameters
None
Returns
None
HYPHEN
Pulse ‘-’ button
Signature
HYPHEN ()
Parameters
None
Returns
None
INFO
Pulse Info button
Signature
INFO ()
Parameters
None
Returns
None
LEFT
Pulse left navigation.
Signature
LEFT ()
Parameters
None
Returns
None
MENU
Navigate menu.
Signature
MENU ()
Parameters
None
Returns
None
NUMBER 0
Pulse ‘0’ button
Signature
Number_0 ()
Parameters
None
Returns
None
NUMBER 1
Pulse ‘1’ button
Signature
Number_1 ()
Parameters
None
Returns
None
NUMBER 2
Pulse ‘2’ button
Signature
Number_2 ()
Parameters
None
Returns
None
NUMBER 3
Pulse ‘3’ button
Signature
Number_3 ()
Parameters
None
Returns
None
NUMBER 4
Pulse ‘4’ button
Signature
Number_4 ()
Parameters
None
Returns
None
NUMBER 5
Pulse ‘5’ button
Signature
Number_5 ()
Parameters
None
Returns
None
NUMBER 6
Pulse ‘6’ button
Signature
Number_6 ()
Parameters
None
Returns
None
NUMBER 7
Pulse ‘7’ button
Signature
Number_7 ()
Parameters
None
Returns
None
NUMBER 8
Pulse ‘8’ button
Signature
Number_8 ()
Parameters
None
Returns
None
NUMBER 9
Pulse ‘9’ button
Signature
Number_9 ()
Parameters
None
Returns
None
OFF
Turn device Off.
Signature
OFF ()
Parameters
None
Returns
`None `
Usage Note
The ON and OFF proxy commands have the ability to send proxy notifications to display a device power state in Composer and Navigator Devices only. Any desired commands or notifications based off the device ON/OFF state must be handled by your DriverWorks driver.
ON
Turn device On.
Signature
ON ()
Parameters
None
Returns
`None `
Usage Note
The ON and OFF proxy commands have the ability to send proxy notifications to display a device power state in Composer and Navigator Devices only. Any desired commands or notifications based off the device ON/OFF state must be handled by your DriverWorks driver.
OPEN CLOSE
Open/close disc tray.
Signature
OPEN_CLOSE ()
Parameters
None
Returns
`None `
PAGE DOWN
Pulse menu Page down.
Signature
PAGE_DOWN ()
Parameters
None
Returns
`None `
PAGE UP
Pulse menu Page up.
Signature
PAGE_UP ()
Parameters
None
Returns
`None `
PAUSE
Place device in stop state.
Signature
PAUSE ()
Parameters
None
Returns
`None `
PLAY
Place device in a playback state.
Signature
PLAY ()
Parameters
None
Returns
`None `
POUND
Pulse # button.
Signature
POUND ()
Parameters
None
Returns
`None `
PULSE ASPECT RATIO
Toggle (cycle though) aspect ratio.
Signature
PULSE_ASPECT_RATIO ()
Parameters
None
Returns
`None `
PVR
Pulse PVR button.
Signature
PVR ()
Parameters
None
Returns
None
RECALL
Pulse Recall button.
Signature
RECALL ()
Parameters
None
Returns
`None `
RIGHT
Pulse right navigation button.
Signature
RIGHT ()
Parameters
None
Returns
`None `
SCAN FWD
Pulse/scan forward within track/chapter.
Signature
SCAN_FWD ()
Parameters
None
Returns
`None `
SCAN REV
Pulse scan reverse within track/chapter.
Signature
SCAN_REV ()
Parameters
None
Returns
`None `
SET UP DOWN SWAP
Swap page UP/DOWN buttons (used by AVGen)
Signature
SET_UP_DOWN_SWAP ()
Parameter | Description |
---|---|
bool | True/False |
Returns
`None `
SKIP FWD
Advance to next track/chapter.
Signature
SKIP_FWD ()
Parameters
None
Returns
None
SKIP REV
Seek to previous track/chapter.
Signature
SKIP_REV ()
Parameters
None
Returns
None
STAR
Pulse *
button.
Signature
STAR ()
Parameters
None
Returns
None
START DOWN
Initiate down arrow navigation.
Signature
START_DOWN ()
Parameters
None
Returns
None
START LEFT
Pulse left navigation.
Signature
START_LEFT ()
Parameters
None
Returns
None
START PAGE DOWN
Start menu Page down.
Signature
START_PAGE_DOWN ()
Parameters
None
Returns
None
START PAGE UP
Start menu Page up.
Signature
START_PAGE_UP ()
Parameters
None
Returns
None
START PAGE RIGHT
Initiate right-arrow navigation.
Signature
START_RIGHT ()
Parameters
None
Returns
None
START SCAN FWD
Initiate scan forward within track/chapter.
Signature
START_SCAN_FWD ()
Parameters
None
Returns
None
START SCAN REV
Initiate scan forward within track/chapter.
Signature
START_SCAN_REV ()
Parameters
None
Returns
None
START UP
Initiate up-arrow navigation.
Signature
START_UP ()
Parameters
None
Returns
None
STOP
Place device in stop state.
Signature
STOP ()
Parameters
None
Returns
None
STOP DOWN
Terminate down-arrow navigation.
Signature
STOP_DOWN ()
Parameters
None
Returns
None
STOP LEFT
Terminate left navigation.
Signature
STOP_LEFT ()
Parameters
None
Returns
None
STOP PAGE DOWN
Stop menu page down.
Signature
STOP_PAGE_DOWN ()
Parameters
None
Returns
None
STOP PAGE UP
Stop menu page up.
Signature
STOP_PAGE_UP ()
Parameters
None
Returns
None
STOP RIGHT
Terminate RIGHT navigation.
Signature
STOP_RIGHT ()
Parameters
None
Returns
None
STOP SCAN FWD
Terminate scan forward within track/chapter.
Signature
STOP_SCAN_FWD ()
Parameters
None
Returns
None
STOP SCAN REV
Terminate reverse scan within track/chapter.
Signature
STOP_SCAN_REV ()
Parameters
None
Returns
None
STOP UP
Stop menu Page up.
Signature
STOP_UP ()
Parameters
None
Returns
None
TV VIDEO
Toggle TV/video input.
Signature
TV_VIDEO ()
Parameters
None
Returns
None
UP
Pulse up navigation.
Signature
UP ()
Parameters
None
Returns
None
Projector Protocol Notifications
AUDIO PARAMETER CHANGED
Audio parameter has changed
Signature
AUDIO_PARAMETER_CHANGED ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
BALANCE LEVEL CHANGED
Selected balance level has changed.
Signature
BALANCE_LEVEL_CHANGED ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
BASS LEVEL CHANGED
Selected bass level has changed
Signature
BASS_LEVEL_CHANGED ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
CHANNEL CHANGED
Selected channel has changed
Signature
CHANNEL_CHANGED ()
Parameter | Description |
---|---|
int | Channel Number |
int | Output Binding ID |
Returns
None
Usage Note
If the BANDTYPE is not supplied, as in older drivers, the INPUT binding # will be used to determine which band the tuner is on. All DriverWorks drivers need to use the BANDTYPE parameter if they want the band to propagate up to Navigator to display the channel properly. If the DriverWorks driver does not know the current channel and the “has feedback” capability is not set to “True”, none of this matters and everything will keep working as it previously has.
A CHANNEL CHANGED
must be issued immediately after the INPUT_CHANGED
in order for the UI to update.
Example
C4:SendToproxy(5002,'INPUTCHANGED' {INPUT=3009,BANDTYPE='FMBand',MINCHANNEL=8750,MAXCHANNEL=10790,CHANNELSPACING=20})
C4:SendToProxy(5002,'CHANNELCHANGED',CHANNEL=10290)
Note that in the example to the right, 5002 is the ProxyBindingID for the Tuner. INPUT 3009 is the ID for the FM Antenna on the 5002 Tuner.
Navigator determines AM/FM/XM with the following rule:
- ID 3000 and 3001 are AM
- ID 3002 and 3003 are FM
INPUT CHANGED
Selected input has changed.
Signature
INPUT_CHANGED ()
Parameter | Description |
---|---|
int | Binding ID of RF cloud |
str | One of the following case sensitive values: “AMBand” “FMBand” |
int | Lowest tune-able channel e.g. 8750 for FM, 530 for AM |
int | Highest tunable channel e.g. 10790 for FM, 1760 for AM |
int | Channel increment e.g. 20 for FM in U.S., 10 for AM in U.S. |
Returns
None
Usage Note
If the BANDTYPE is not supplied, as in older drivers, the INPUT binding # will be used to determine which band the tuner is on. All DriverWorks drivers need to use the BANDTYPE parameter if they want the band to propagate up to Navigator to display the channel properly. If the DriverWorks driver does not know the current channel and the “hasfeedback” capability is not set to “True”, none of this matters and everything will keep working as it previously has.
A CHANNEL_CHANGED
must be issued immediately after the INPUT_CHANGED
in order for the UI to update.
Example
C4:SendToproxy(5002,'INPUTCHANGED' {INPUT=3009,BANDTYPE='FMBand',MINCHANNEL=8750,MAXCHANNEL=10790,CHANNELSPACING=20})
C4:SendToProxy(5002,'CHANNELCHANGED',CHANNEL=10290)
Note that in the example to the right, 5002 is the ProxyBindingID for the Tuner. INPUT 3009 is the ID for the FM Antenna on the 5002 Tuner.
Navigator determines AM/FM/XM with the following rule: ID 3000 and 3001 are AM ID 3002 and 3003 are FM
LOUDNESS CHANGED
Loudness state (On/Off) has changed.
Signature
LOUDNESS_CHANGED ()
Parameter | Description |
---|---|
bool | True/False |
int | Output Binding ID |
Returns
None
MUTE CHANGED
MUTE state (On/Off) has changed.
Signature
MUTE_CHANGED ()
Parameter | Description |
---|---|
bool | True/False |
int | Output Binding ID |
Returns
None
OFF
Device has turned off.
Signature
OFF ()
Parameter
None
Returns
None
ON
Device has turned on.
Signature
ON ()
Parameter
None
Returns
None
TREBLE LEVEL CHANGED
Selected treble level has changed.
Signature
TREBLE_LEVEL_CHANGED ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
VOLUME LEVEL CHANGED
Selected volume level has changed.
Signature
VOLUME_LEVEL_CHANGED ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
Projector Proxy Commands
BACK
Pulse Back button
Signature
BACK ()
Parameters
None
Returns
None
CANCEL
Pulse Cancel button
Signature
CANCEL ()
Parameters
None
Returns
None
DASH
Pulses the ‘-’ button.
Signature
DASH ()
Parameter
None
Returns
None
DISCONNECT OUTPUT
Disconnect (turn off) selected output on device.
Signature
DISCONNECT_OUTPUT ()
Parameter | Description |
---|---|
Int | Output BindingID |
Returns
None
EMIT CODE
Emit IR/Serial code (used by AVGen IR/Serial Proxy).
Signature
EMIT_CODE ()
Parameter | Description |
---|---|
Int | ID OF IR Code |
Returns
None
EMIT MACRO
Emit IR/Serial code macro (used by AVGen IR/Serial Proxy)
Signature
EMIT_MACRO ()
Parameter | Description |
---|---|
str | MacroCodeName |
Returns
None
GET DEFAULT INPUT
Command sent to the protocol during the proxy initialization. Returns the input designated as the default from the protocol device.
Signature
GET_DEFAULT_INPUT ()
Parameters
None
Returns
None
HYPHEN
Pulse ‘-’ button
Signature
HYPHEN ()
Parameters
None
Returns
None
INFO
Pulse Info button
Signature
INFO ()
Parameters
None
Returns
None
LOUDNESS OFF
Turn loudness off.
Signature
LOUDNESS_OFF ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
LOUDNESS ON
Turn loudness on.
Signature
LOUDNESS_ON ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
LOUDNESS TOGGLE
Toggle loudness on/off.
Signature
LOUDNESS_TOGGLE ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
MUTE OFF
Turn muting off.
Signature
MUTE_OFF ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
MUTE ON
Turn muting on.
Signature
MUTE_ON ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
MUTE ON
Toggle muting on/off.
Signature
MUTE_TOGGLE ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
NUMBER 0
Pulse ‘0’ button
Signature
Number_0 ()
Parameters
None
Returns
None
NUMBER 1
Pulse ‘1’ button
Signature
Number_1 ()
Parameters
None
Returns
None
NUMBER 2
Pulse ‘2’ button
Signature
Number_2 ()
Parameters
None
Returns
None
NUMBER 3
Pulse ‘3’ button
Signature
Number_3 ()
Parameters
None
Returns
None
NUMBER 4
Pulse ‘4’ button
Signature
Number_4 ()
Parameters
None
Returns
None
NUMBER 5
Pulse ‘5’ button
Signature
Number_5 ()
Parameters
None
Returns
None
NUMBER 6
Pulse ‘6’ button
Signature
Number_6 ()
Parameters
None
Returns
None
NUMBER 7
Pulse ‘7’ button
Signature
Number_7 ()
Parameters
None
Returns
None
NUMBER 8
Pulse ‘8’ button
Signature
Number_8 ()
Parameters
None
Returns
None
NUMBER 9
Pulse ‘9’ button
Signature
Number_9 ()
Parameters
None
Returns
None
OFF
Turn device Off.
Signature
OFF ()
Parameters
None
Returns
None
Usage Note
The ON and OFF proxy commands have the ability to send proxy notifications to display a device power state in Composer and Navigator Devices only. Any desired commands or notifications based off the device ON/OFF state must be handled by your DriverWorks driver.
ON
Turn device On.
Signature
ON ()
Parameters
None
Returns
None
Usage Note
The ON and OFF proxy commands have the ability to send proxy notifications to display a device power state in Composer and Navigator Devices only. Any desired commands or notifications based off the device ON/OFF state must be handled by your DriverWorks driver.
PAGE DOWN
Pulse menu Page down.
Signature
PAGE_DOWN ()
Parameters
None
Returns
None
PAGE UP
Pulse menu Page up.
Signature
PAGE_UP ()
Parameters
None
Returns
None
PIP
Pulse menu PIP button..
Signature
PIP ()
Parameter | Description |
---|---|
str | MacroCodeName |
Returns
`None `
POUND
Pulse # button.
Signature
POUND ()
Parameters
None
Returns
None
PRESET DOWN
Toggle (cycle down) tuning preset.
Signature
PRESET_DOWN ()
Parameters
None
Returns
None
PRESET UP
Toggle (cycle UP) tuning preset.
Signature
PRESET_UP ()
Parameters
None
Returns
None
Pulse Aspect Ratio
Toggle (cycle though) aspect ratio.
Signature
PULSE_ASPECT_RATIO ()
Parameters
None
Returns
None
PULSE BALANCE DOWN
Pulse balance down (Left)
Signature
PULSE_BALNCE_DOWN ()
Parameters
None
Returns
None
PULSE BALANCE UP
Pulse balance up.
Signature
PULSE_BALNCE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE BASS DOWN
Pulse bass down (Left)
Signature
PULSE_BASS_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE BASS UP
Pulse bass up (Right)
Signature
PULSE_BASS_UP ()
Parameters
None
Returns
None
PULSE CHANNEL DOWN
Pulse channel value down.
Signature
PULSE_CHANNEL_DOWN ()
Parameters
None
Returns
None
PULSE CHANNEL UP
Pulse channel value up.
Signature
PULSE_CHANNEL_UP ()
Parameters
None
Returns
None
PULSE INPUT
Toggle (cycle through) input selection on device.
Signature
PULSE_INPUT
Parameters
None
Returns
None
PULSE TREBLE DOWN
Pulse treble down.
Signature
PULSE_TREBLE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE TREBLE UP
Pulse treble up.
Signature
PULSE_TREBLE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE VOL DOWN
Pulse volume level down.
Signature
PULSE_VOL_DOWN
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE VOL UP
Pulse volume level up.
Signature
PULSE_VOL_UP
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PVR
Pulse PVR button.
Signature
PVR ()
Parameters
None
Returns
None
RECALL
Pulse Recall button.
Signature
RECALL ()
Parameters
None
Returns
None
SEARCH DOWN
Pulse tuning search down
Signature
SEARCH_DOWN ()
Parameters
None
Returns
None
SEARCH UP
Pulse tuning search UP
Signature
SEARCH_UP ()
Parameters
None
Returns
None
SET BALANCE
Set balance to a specified position.
Signature
SET_BALANCE ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
SET BALANCE UP
Set balance to a specified position.
Signature
SET_BALANCE_UP ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
SET BASS LEVEL
Set bass to a specified level.
Signature
SET_BASS_LEVEL
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
SET DEFAULT INPUT
Specify the default input selection of device.
Signature
SET_DEAFULT_INPUT ()
Parameter | Description |
---|---|
int | Input Binding ID - should be in the BindingID range. |
int | Optional. Output Binding ID - should be in the BindingID range. |
Returns
`None `
Usage Note
- Control Bindings = 1 -> 999
- Video Inputs = 1000 -> 1099
- Video Outputs = 2000 -> 2999
- Audio Inputs = 3000 -> 3099
- Audio Outputs = 4000 -> 4999
- Proxy Bindings = 5000 -> 5999
- Network Bindings = 6000 -> 6999
- Room Bindings = 7000 -> 7999
- Power Manager = 8000 -> 8999
SET INPUT
Specify the input selection of device.
Signature
SET_INPUT ()
Parameter | Description |
---|---|
int | Input Binding ID - should be in the BindingID range. |
int | Optional. Output Binding ID - should be in the BindingID range. |
Returns
None
Usage Note
- Control Bindings = 1 -> 999
- Video Inputs = 1000 -> 1099
- Video Outputs = 2000 -> 2999
- Audio Inputs = 3000 -> 3099
- Audio Outputs = 4000 -> 4999
- Proxy Bindings = 5000 -> 5999
- Network Bindings = 6000 -> 6999
- Room Bindings = 7000 -> 7999
- Power Manager = 8000 -> 8999
SET LOUDNESS
Turn loudness on.
Signature
SET_LOUDNESS ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
SET PRESET
Select specified tuning preset.
Signature
SET_PRESET ()
Parameter | Description |
---|---|
int | Preset Number |
Returns
None
SET TREBLE LEVEL
Set treble to a specified level.
Signature
SET_TREBLE_LEVEL ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
SET UP DOWN SWAP
Swap page UP/DOWN buttons.
Signature
POUND ()
Parameter | Description |
---|---|
bool | True/False |
Returns
None
SET VOLUME LEVEL
Set volume to a specified level.
Signature
SET_VOLUME_LEVEL ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
SET VOL UP
Begin ramping volume up.
Signature
SET_VOL_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STAR
Pulse *
button.
Signature
STAR ()
Parameters
None
Returns
None
START BALANCE DOWN
Start ramping balance down (left).
Signature
START_BALANCE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START BALANCE UP
Start ramping balance UP (right).
Signature
START_BALANCE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START BASS UP
Start ramping bass up.
Signature
START_BASS_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START CH DOWN
Start ramping channel down.
Signature
START_CH_DOWN ()
Parameters
None
Returns
None
START PAGE DOWN
Start menu Page down.
Signature
START_PAGE_DOWN ()
Parameters
None
Returns
None
START PAGE UP
Start menu Page up.
Signature
START_PAGE_UP ()
Parameters
None
Returns
None
START SEARCH DOWN
Begin tuning search down.
Signature
START_SEARCH_DOWN ()
Parameters
None
Returns
None
START SEARCH UP
Begin tuning search UP.
Signature
START_SEARCH_UP ()
Parameters
None
Returns
None
START VOL DOWN
Start ramping volume down.
Signature
START_VOL_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START PAGE RIGHT
Initiate right-arrow navigation.
Signature
START_RIGHT ()
Parameters
None
Returns
None
START SCAN FWD
Initiate scan forward within track/chapter.
Signature
START_SCAN_FWD ()
Parameters
None
Returns
None
START SCAN REV
Initiate scan backwards within track/chapter.
Signature
START_SCAN_REV ()
Parameters
None
Returns
None
START UP
Initiate up-arrow navigation.
Signature
START_UP ()
Parameters
None
Returns
None
STOP BALANCE DOWN
Start ramping balance.
Signature
STOP_BALANCE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP BALANCE UP
Stop ramping balance up.
Signature
STOP_BALANCE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP BASS DOWN
Stop ramping bass
Signature
STOP_BASS_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP PAGE DOWN
Stop menu page down.
Signature
STOP_PAGE_DOWN ()
Parameters
None
Returns
None
STOP PAGE UP
Stop menu page up.
Signature
STOP_PAGE_UP ()
Parameters
None
Returns
None
TV VIDEO
Toggle TV/video input.
Signature
TV_VIDEO ()
Parameters
None
Returns
None
Receiver Capabilities
audio consumer count
Count of number of audio consumers (inputs) of the device. This value must match the number of connections in the driver.
Signature
<audio_consumer_count></audio_consumer_count>
Parameter | Description |
---|---|
int | Number of audio consumers. |
Example
<capabilities>
<audio_consumer_count>8</audio_consumer_count>
</capabilities>
audio provider count
Count of number of audio providers (outputs) of the device. This value must match the number of connections in the driver.
Signature
<audio_provider_count></audio_provider_count>
Parameter | Description |
---|---|
int | Number of audio providers. |
Example
<capabilities>
<audio_provider_count>8</audio_provider_count>
</capabilities>
can downclass
Specifies if the A/V switch can down convert. For example: S-Video -> Composite
Signature
<can_downclass></can_downclass>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<can_downclass>true</can_downclass>
</capabilities>
can switch
Device specific capability that when set to True designates switching capability on the receiver.
Signature
<can_switch></can_switch>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<can_switch>true</can_switch>
</capabilities>
can switch separately
Device specific capability that must be set to True to in order for an AV Switch’s Composer Pro interface reflecting independent audio and video signal switching.
Signature
<can_switch_separately></can_switch_separately>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<can_switch_separately>true</can_switch_separately>
</capabilities>
Usage Note
This capability is not related with the requires separate switching capability. A setting of True or False will have no impact on requires separate switching.
can upclass
Specifies if the A/V switch can up convert. For example: Composite -> S-Video
Signature
<can_upclass></can_upclass>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<can_upclass>true</can_upclass>
</capabilities>
has audio signal sense
Specifies AV switching is capable of sensing audio on an input. This is useful in triggering programming in ComposerPro based on the this setting.
Signature
<has_audio_signal_sense></has_audio_signal_sense>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_audio_signal_sense>true</has_audio_signal_sense>
</capabilities>
has discrete balance control
Capable of directly specifying a balance setting.
Signature
<has_discrete_balance_control></has_discrete_balance_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_balance_control>true</has_discrete_balance_control>
</capabilities>
has discrete bass control
Capable of directly specifying a bass setting.
Signature
<has_discrete_bass_control></has_discrete_bass_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_bass_control>true</has_discrete_bass_control>
</capabilities>
has discrete loudness control
Capable of directly specifying a loudness setting.
Signature
<has_discrete_loudness_control></has_discrete_loudness_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_loudness_control>true</has_discrete_loudness_control>
</capabilities>
has discrete mute control
Capable of directly specifying mute ON or OFF setting.
Signature
<has_discrete_ mute_control></has_discrete_ mute_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_mute_control>true</has_discrete_mute_control>
</capabilities>
has discrete treble control
Capable of directly specifying a treble setting.
Signature
<has_discrete_treble_control></has_discrete_treble_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_treble_control>true</has_discrete_treble_control>
</capabilities>
has discrete volume control
Capable of directly specifying a volume setting.
Signature
<has_discrete_volume_control></has_discrete_volume_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_volume_control>true</has_discrete_volume_control>
</capabilities>
has discrete loudness control
Capable of handling ON/OFF loudness control.
Signature
<has_discrete_loudness_control></has_discrete_loudness_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_loudness_control>true</has_discrete_loudness_control>
</capabilities>
has toggle mute control
Capable of handling ON/OFF mute control.
Signature
<has_toggle_mute_control></has_toggle_mute_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_toggle_mute_control>true</has_toggle_mute_control>
</capabilities>
has up down balance control
Capable of directly specifying a balance setting.
Signature
<has_up_down_balance_control></has_up_down_balance_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_up_down_balance_control>true</has_up_down_balance_control>
</capabilities>
has up down bass control
Capable of directly specifying a bass setting.
Signature
<has_up_down_bass_control></has_up_down_bass_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_up_down_bass_control>true</has_up_down_bass_control>
</capabilities>
has up down treble control
Capable of directly specifying a treble setting.
Signature
<has_up_down_treble_control></has_up_down_treble_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_up_down_treble_control>true</has_up_down_treble_control>
</capabilities>
has up down volume control
Has capability of handling volume UP and DOWN adjustments.
Signature
<has_up_down_volume_control></has_up_down_volume_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_up_down_volume_control>true</has_up_down_volume_control>
</capabilities>
has video signal sense
Specifies AV switching is capable of sensing video on an input. This is useful in triggering programming in ComposerPro based on the this setting.
Signature
<has_video_signal_sense></has_video_signal_sense>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_video_signal_sense>true</has_video_signal_sense>
</capabilities>
video consumer count
Count of number of video consumers (inputs) of the device. This value must match the number of connections in the driver.
Signature
<video_consumer_count></video_consumer_count>
Parameter | Description |
---|---|
int | Number of video consumers. |
Example
<capabilities>
<video_consumer_count>8</video_consumer_count>
</capabilities>
video provider count
Count of number of video providers (outputs) of the device. This value must match the number of connections in the driver.
Signature
<video_provider_count></video_provider_count>
Parameter | Description |
---|---|
int | Number of audio providers. |
Example
<capabilities>
<video_provider_count>8</video_provider_count>
</capabilities>
Receiver Protocol Notifications
AUDIO PARAMETER CHANGED
Audio parameter has changed
Signature
AUDIO_PARAMETER_CHANGED ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
BALANCE LEVEL CHANGED
Selected balance level has changed.
Signature
BALANCE_LEVEL_CHANGED ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
BASS LEVEL CHANGED
Selected bass level has changed
Signature
BASS_LEVEL_CHANGED ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
INPUT OUTPUT CHANGED
Selected inputs & outputs have changed.
Signature
INPUT_OUTPUT_CHANGED ()
Parameter | Description |
---|---|
int | INput Binding ID |
int | Output Binding ID |
Returns
None
LOUDNESS CHANGED
Loudness state (On/Off) has changed.
Signature
LOUDNESS_CHANGED ()
Parameter | Description |
---|---|
bool | True/False |
int | Output Binding ID |
Returns
None
MUTE CHANGED
MUTE state (On/Off) has changed.
Signature
MUTE_CHANGED ()
Parameter | Description |
---|---|
bool | True/False |
int | Output Binding ID |
Returns
None
OFF
Device has turned off.
Signature
OFF ()
Parameter
None
Returns
None
ON
Device has turned on.
Signature
ON ()
Parameter
None
Returns
None
TREBLE LEVEL CHANGED
Selected treble level has changed.
Signature
TREBLE_LEVEL_CHANGED ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
VOLUME LEVEL CHANGED
Selected volume level has changed.
Signature
VOLUME_LEVEL_CHANGED ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
## SURROUND MODE CHANGED
Surround mode setting has changed.
Signature
SURROUND_MODE_CHANGED ()
Parameter | Description |
---|---|
int | Output Binding ID |
int | Surround Mode ID value |
Returns
None
Audio Output Bindings and Proxy Events
Note: Audio Output binding ID values defined in drivers written in conjunction with this Proxy must start with a binding value of 4000. The acceptable range for Audio Outputs is 4000 - 4999. However, if the first output binding ID value is not 4000, issues with Proxy Events firing correctly can be encountered.
For a list of valid Binding ID values please see the Connections section of the DriverWorks Fundamentals Guide.
Receiver Proxy Commands
BACK
Pulse Back button
Signature
BACK ()
Parameters
None
Returns
None
CANCEL
Pulse Cancel button
Signature
CANCEL ()
Parameters
None
Returns
None
CONNECT OUTPUT
Numerical value of the output. Switch the output to passed ID.
Signature
CONNECT OUTPUT ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
Usage Note
Preface band width tuner capability must be used in the driver for the CONNECT OUTPUT command to be set.
DASH
Pulses the ‘-’ button.
Signature
DASH ()
Parameter
None
Returns
None
DISCONNECT OUTPUT
Disconnect (turn off) selected output on device.
Signature
DISCONNECT_OUTPUT ()
Parameter | Description |
---|---|
Int | Output BindingID |
Returns
None
HYPHEN
Pulse ‘-’ button
Signature
HYPHEN ()
Parameters
None
Returns
None
INFO
Pulse Info button
Signature
INFO ()
Parameters
None
Returns
None
LOUDNESS OFF
Turn loudness off.
Signature
LOUDNESS_OFF ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
LOUDNESS ON
Turn loudness on.
Signature
LOUDNESS_ON ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
LOUDNESS ON
Toggle loudness on/off.
Signature
LOUDNESS_TOGGLE ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
MUTE OFF
Toggle loudness on/off.
Signature
MUTE_OFF ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
MUTE ON
Turn muting on.
Signature
MUTE_ON ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
MUTE ON
Toggle muting on/off.
Signature
MUTE_TOGGLE ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
NUMBER 0
Pulse ‘0’ button
Signature
Number_0 ()
Parameters
None
Returns
None
NUMBER 1
Pulse ‘1’ button
Signature
Number_1 ()
Parameters
None
Returns
None
NUMBER 2
Pulse ‘2’ button
Signature
Number_2 ()
Parameters
None
Returns
None
NUMBER 3
Pulse ‘3’ button
Signature
Number_3 ()
Parameters
None
Returns
None
NUMBER 4
Pulse ‘4’ button
Signature
Number_4 ()
Parameters
None
Returns
None
NUMBER 5
Pulse ‘5’ button
Signature
Number_5 ()
Parameters
None
Returns
None
NUMBER 6
Pulse ‘6’ button
Signature
Number_6 ()
Parameters
None
Returns
None
NUMBER 7
Pulse ‘7’ button
Signature
Number_7 ()
Parameters
None
Returns
None
NUMBER 8
Pulse ‘8’ button
Signature
Number_8 ()
Parameters
None
Returns
None
NUMBER 9
Pulse ‘9’ button
Signature
Number_9 ()
Parameters
None
Returns
None
OFF
Turn device Off.
Signature
OFF ()
Parameters
None
Usage Note
The ON and OFF proxy commands have the ability to send proxy notifications to display a device power state in Composer and Navigator Devices only. Any desired commands or notifications based off the device ON/OFF state must be handled by your DriverWorks driver.
ON
Turn device On.
Signature
ON ()
Parameters
None
Usage Note
The ON and OFF proxy commands have the ability to send proxy notifications to display a device power state in Composer and Navigator Devices only. Any desired commands or notifications based off the device ON/OFF state must be handled by your DriverWorks driver.
PAGE DOWN
Pulse menu Page down.
Signature
PAGE_DOWN ()
Parameters
None
Returns
None
PAGE UP
Pulse menu Page up.
Signature
PAGE_UP ()
Parameters
None
Returns
`None `
POUND
Pulse ‘#’ button
Signature
POUND ()
Parameters
None
Returns
None
PULSE BALANCE DOWN
Pulse balance down.
Signature
PULSE_BALNCE_DOWN ()
Parameters
None
Returns
None
PULSE BALANCE UP
Pulse balance up
Signature
PULSE_BALNCE_RIGHT ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE BASS DOWN
Pulse bass down.
Signature
PULSE_BASS_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE BASS UP
Pulse bass up.
Signature
PULSE_BASS_UP ()
Parameters
None
Returns
None
PULSE INPUT
Toggle (cycle through) input selection on device.
Signature
PULSE_INPUT
Parameters
None
Returns
None
PULSE SUR UP
Toggle (cycle through) surround mode presets on device.
Signature
PULSE_SUR_UP
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE VOL DOWN
Pulse volume level down.
Signature
PULSE_VOL_DOWN
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE VOL UP
Pulse volume level up.
Signature
PULSE_VOL_UP
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE TREBLE DOWN
Pulse treble down.
Signature
PULSE_TREBLE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE TREBLE UP
Pulse treble up.
Signature
PULSE_TREBLE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
RECALL
Pulse Recall button
Signature
RECALL ()
Parameters
None
Returns
None
RIGHT
Pulse RIGHT Navigation.
Signature
RIGHT ()
Parameters
None
Returns
None
SET BALANCE
Set balance to a specified position.
Signature
SET_BALANCE ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
SET BASS LEVEL
Set bass to a specified level.
Signature
SET_BASS_LEVEL
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
SET INPUT
Specify input selection of device.
Signature
SET_INPUT ()
Parameter | Description |
---|---|
int | Input Binding ID - should be in the BindingID range below. |
int | Optional. Output Binding ID - should be in the BindingID range below. |
Returns
None
Usage Note
- Control Bindings = 1 -> 999
- Video Inputs = 1000 -> 1099
- Video Outputs = 2000 -> 2999
- Audio Inputs = 3000 -> 3099
- Audio Outputs = 4000 -> 4999
- Proxy Bindings = 5000 -> 5999
- Network Bindings = 6000 -> 6999
- Room Bindings = 7000 -> 7999
- Power Manager = 8000 -> 8999
SET OUTPUT INPUT
Specify input and output selection of device.
Signature
SET_OUTPUT_INPUT ()
Parameter | Description |
---|---|
int | Input Binding ID |
int | Output Binding ID |
Returns
None
SET SURROUND MODE
Select specified surround mode preset on device.
Signature
SET_SURROUND_MODE ()
Parameter | Description |
---|---|
int | Surround Mode |
int | Output Binding ID |
Returns
None
SET TREBLE LEVEL
Set treble to a specified level.
Signature
SET_TREBLE_LEVEL ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
STOP VOL DOWN
Start ramping volume up.
Signature
SET_VOL_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
SET VOLUME LEVEL
Set volume to a specified level.
Signature
SET_VOLUME_LEVEL ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
STAR
Pulse *
button
Signature
STAR ()
Parameters
None
Returns
None
START BALANCE DOWN
Start ramping balance down (left).
Signature
START_BALANCE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START BALANCE UP
Start ramping balance up (right).
Signature
START_BALANCE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START BASS DOWN
Start ramping bass down.
Signature
START_BASS_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START BASS UP
Start ramping bass up.
Signature
START_BASS_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START CH DOWN
Start ramping channel down.
Signature
START_CH_DOWN ()
Parameter
None
Returns
None
START CH UP
Start ramping channel up.
Signature
START_CH_UP ()
Parameter
None
Returns
None
START LEFT
Pulse left navigation.
Signature
START_LEFT ()
Parameters
None
Returns
None
START PAGE DOWN
Start menu Page down.
Signature
START_PAGE_DOWN ()
Parameters
None
Returns
`None `
START PAGE UP
Start menu Page up.
Signature
START_PAGE_UP ()
Parameters
None
Returns
`None `
START RIGHT
Initiate right arrow navigation.
Signature
START_RIGHT ()
Parameters
None
Returns
None
START TREBLE DOWN
Start ramping treble down.
Signature
START_TREBLE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START TREBLE UP
Start ramping treble up.
Signature
START_TREBLE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START VOL DOWN
Start ramping volume down.
Signature
START_VOL_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START VOL UP
Start ramping volume up.
Signature
START_VOL_UP ()
Parameter | Description |
---|---|
int | Volume Level |
int | Output Binding ID |
Returns
None
STOP BALANCE DOWN
Start ramping balance.
Signature
STOP_BALANCE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP BASS DOWN
Stop ramping bass
Signature
STOP_BALANCE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP BASS DOWN
Stop ramping bass
Signature
STOP_BASS_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP BASS UP
Stop ramping bass
Signature
STOP_BASS_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP CH UP
StOP ramping channel up.
Signature
STOP_CH_UP ()
Parameter
None
Returns
None
STOP CH DOWN
Stop ramping channel down.
Signature
STOP_CH_DOWN ()
Parameter
None
Returns
None
STOP LEFT
Stop left navigation.
Signature
STOP_LEFT ()
Parameters
None
Returns
None
STOP RIGHT
Stop right arrow navigation.
Signature
STOP_RIGHT ()
Parameters
None
Returns
None
STOP PAGE DOWN
Stop menu page down.
Signature
STOP_PAGE_DOWN ()
Parameters
None
Returns
None
STOP PAGE DOWN
Stop menu page up.
Signature
STOP_PAGE_UP ()
Parameters
None
Returns
None
STOP TREBLE DOWN
Stop ramping the treble down
Signature
STOP_TREBLE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP TREBLE UP
Stop ramping the treble up.
Signature
STOP_TREBLE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP VOL DOWN
Stop ramping the volume down
Signature
STOP_VOL_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP VOL UP
Stop ramping the volume up.
Signature
STOP_VOL_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
@ _6-DOWN
DOWN
PULSE DOWN NAVIGATION
Signature
DOWN ()
Parameter
None
Returns
None
Satellite Receiver Capabilities
audio consumer count
Count of number of audio consumers (inputs) of the device. This value must match the number of connections in the driver.
Signature
<audio_consumer_count></audio_consumer_count>
Parameter | Description |
---|---|
int | Number of audio consumers. |
Example
<capabilities>
<audio_consumer_count>8</audio_consumer_count>
</capabilities>
audio provider count
Count of number of audio providers (outputs) of the device. This value must match the number of connections in the driver.
Signature
<audio_provider_count></audio_provider_count>
Parameter | Description |
---|---|
int | Number of audio providers. |
Example
<capabilities>
<audio_provider_count>8</audio_provider_count>
</capabilities>
can downclass
Specifies if the A/V switch can down convert. For example: S-Video -> Composite
Signature
<can_downclass></can_downclass>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<can_downclass>true</can_downclass>
</capabilities>
can switch separately
Device specific capability that must be set to True to in order for an AV Switch’s Composer Pro interface reflecting independent audio and video signal switching.
Signature
<can_switch_separately></can_switch_separately>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<can_switch_separately>true</can_switch_separately>
</capabilities>
Usage Note
This capability is not related with the requires separate switching capability. A setting of True or False will have no impact on requires separate switching.
can switch
Device specific capability that when set to True designates switching capability on the receiver.
Signature
<can_switch></can_switch>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<can_switch>true</can_switch>
</capabilities>
can upclass
Specifies if the A/V switch can up convert. For example: Composite -> S-Video
Signature
<can_upclass></can_upclass>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<can_upclass>true</can_upclass>
</capabilities>
has audio signal sense
Specifies AV switching is capable of sensing audio on an input. This is useful in triggering programming in ComposerPro based on the this setting.
Signature
<has_audio_signal_sense></has_audio_signal_sense>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_audio_signal_sense>true</has_audio_signal_sense>
</capabilities>
has discrete balance control
Capable of directly specifying a balance setting.
Signature
<has_discrete_balance_control></has_discrete_balance_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_balance_control>true</has_discrete_balance_control>
</capabilities>
has discrete bass control
Capable of directly specifying a bass setting.
Signature
<has_discrete_bass_control></has_discrete_bass_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_bass_control>true</has_discrete_bass_control>
</capabilities>
has discrete loudness control
Capable of directly specifying a loudness setting.
Signature
<has_discrete_loudness_control></has_discrete_loudness_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_loudness_control>true</has_discrete_loudness_control>
</capabilities>
has discrete mute control
Capable of directly specifying mute ON or OFF setting.
Signature
<has_discrete_ mute_control></has_discrete_ mute_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_mute_control>true</has_discrete_mute_control>
</capabilities>
has discrete treble control
Capable of directly specifying a treble setting.
Signature
<has_discrete_treble_control></has_discrete_treble_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_treble_control>true</has_discrete_treble_control>
</capabilities>
has discrete volume control
Capable of directly specifying a volume setting.
Signature
<has_discrete_volume_control></has_discrete_volume_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_volume_control>true</has_discrete_volume_control>
</capabilities>
has toggle loudness control
Capable of toggling ON/OFF loudness control.
Signature
<has_toggle_loudness_control></has_toggle_loudness_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_toggle_loudness_control>true</has_toggle_loudness_control>
</capabilities>
has toggle mute control
Capable of handling ON/OFF mute control.
Signature
<has_toggle_mute_control></has_toggle_mute_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_toggle_mute_control>true</has_toggle_mute_control>
</capabilities>
has up down balance control
Capable of directly specifying a balance setting.
Signature
<has_up_down_balance_control></has_up_down_balance_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_up_down_balance_control>true</has_up_down_balance_control>
</capabilities>
has up down bass control
Capable of directly specifying a bass setting.
Signature
<has_up_down_bass_control></has_up_down_bass_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_up_down_bass_control>true</has_up_down_bass_control>
</capabilities>
has up down treble control
Capable of directly specifying a treble setting.
Signature
<has_up_down_treble_control></has_up_down_treble_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_up_down_treble_control>true</has_up_down_treble_control>
</capabilities>
has up down volume control
Has capability of handling volume UP and DOWN adjustments.
Signature
<has_up_down_volume_control></has_up_down_volume_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_up_down_volume_control>true</has_up_down_volume_control>
</capabilities>
has video signal sense
Specifies AV switching is capable of sensing video on an input. This is useful in triggering programming in ComposerPro based on the this setting.
Signature
<has_video_signal_sense></has_video_signal_sense>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_video_signal_sense>true</has_video_signal_sense>
</capabilities>
video consumer count
Count of number of vidoe consumers (inputs) of the device. This value must match the number of connections in the driver.
Signature
<video_consumer_count></video_consumer_count>
Parameter | Description |
---|---|
int | Number of video consumers. |
Example
<capabilities>
<video_consumer_count>8</video_consumer_count>
</capabilities>
video provider count
Count of number of video providers (outputs) of the device. This value must match the number of connections in the driver.
Signature
<video_provider_count></video_provider_count>
Parameter | Description |
---|---|
int | Number of audio providers. |
Example
<capabilities>
<video_provider_count>8</video_provider_count>
</capabilities>
Satellite Receiver Protocol Notifications
AUDIO PARAMETER CHANGED
Audio parameter has changed
Signature
AUDIO_PARAMETER_CHANGED ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
BALANCE LEVEL CHANGED
Selected balance level has changed.
Signature
BALANCE_LEVEL_CHANGED ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
BASS LEVEL CHANGED
Selected bass level has changed
Signature
BASS_LEVEL_CHANGED ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
INPUT OUTPUT CHANGED
Selected inputs & outputs have changed.
Signature
INPUT_OUTPUT_CHANGED ()
Parameter | Description |
---|---|
int | INput Binding ID |
int | Output Binding ID |
Returns
None
LOUDNESS CHANGED
Loudness state (On/Off) has changed.
Signature
LOUDNESS_CHANGED ()
Parameter | Description |
---|---|
bool | True/False |
int | Output Binding ID |
Returns
None
MUTE CHANGED
MUTE state (On/Off) has changed.
Signature
MUTE_CHANGED ()
Parameter | Description |
---|---|
bool | True/False |
int | Output Binding ID |
Returns
None
OFF
Device has turned off.
Signature
OFF ()
Parameter
None
Returns
None
ON
Device has turned on.
Signature
ON ()
Parameter
None
Returns
None
TREBLE LEVEL CHANGED
Selected treble level has changed.
Signature
TREBLE_LEVEL_CHANGED ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
VOLUME LEVEL CHANGED
Selected volume level has changed.
Signature
VOLUME_LEVEL_CHANGED ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
SURROUND MODE CHANGED
Surround mode setting has changed.
Signature
SURROUND_MODE_CHANGED ()
Parameter | Description |
---|---|
int | Output Binding ID |
int | Surround Mode ID value |
Returns
None
Satellite Receiver Proxy Commands
BACK
Pulse Back button
Signature
BACK ()
Parameters
None
Returns
None
CANCEL
Pulse Cancel button
Signature
CANCEL ()
Parameters
None
Returns
None
DASH
Pulses the ‘-’ button.
Signature
DASH ()
Parameter
None
Returns
None
DISCONNECT OUTPUT
Disconnect (turn off) selected output on device.
Signature
DISCONNECT_OUTPUT ()
Parameter | Description |
---|---|
Int | Output BindingID |
Returns
None
DOWN
PULSE DOWN NAVIGATION
Signature
DOWN ()
Parameter
None
Returns
None
EMIT CODE
Emit IR/Serial code.
Signature
EMIT_CODE ()
Parameter | Description |
---|---|
Int | ID of the IR Code |
Returns
None
EMIT MACRO
Emit IR/Serial code macro (used by AVGen IR/Serial Proxy)
Signature
EMIT_MACRO ()
Parameter | Description |
---|---|
str | MacroCodeName |
Returns
None
ENTER
Navigate Enter key
Signature
Enter ()
Parameters
None
Returns
None
GUIDE
Pulse info button.
Signature
GUIDE ()
Parameters
None
Returns
None
HYPHEN
Pulse ‘-’ button
Signature
HYPHEN ()
Parameters
None
Returns
None
INFO
Pulse Info button
Signature
INFO ()
Parameters
None
Returns
None
LEFT
Pulse left navigation button.
Signature
LEFT ()
Parameters
None
Returns
None
LOUDNESS OFF
Turn loudness off.
Signature
LOUDNESS_OFF ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
LOUDNESS ON
Turn loudness on.
Signature
LOUDNESS_ON ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
LOUDNESS TOGGLE
Toggle loudness on/off.
Signature
LOUDNESS_TOGGLE ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
MUTE OFF
Turn muting off.
Signature
MUTE_OFF ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
MUTE ON
Turn muting on.
Signature
MUTE_ON ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
MUTE TOGGLE
Toggle muting on/off.
Signature
MUTE_TOGGLE ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
NUMBER 0
Pulse ‘0’ button
Signature
Number_0 ()
Parameters
None
Returns
None
NUMBER 1
Pulse ‘1’ button
Signature
Number_1 ()
Parameters
None
Returns
None
NUMBER 2
Pulse ‘2’ button
Signature
Number_2 ()
Parameters
None
Returns
None
NUMBER 3
Pulse ‘3’ button
Signature
Number_3 ()
Parameters
None
Returns
None
NUMBER 4
Pulse ‘4’ button
Signature
Number_4 ()
Parameters
None
Returns
None
NUMBER 5
Pulse ‘5’ button
Signature
Number_5 ()
Parameters
None
Returns
None
NUMBER 6
Pulse ‘6’ button
Signature
Number_6 ()
Parameters
None
Returns
None
NUMBER 7
Pulse ‘7’ button
Signature
Number_7 ()
Parameters
None
Returns
None
NUMBER 8
Pulse ‘8’ button
Signature
Number_8 ()
Parameters
None
Returns
None
NUMBER 9
Pulse ‘9’ button
Signature
Number_9 ()
Parameters
None
Returns
None
OFF
Turn device Off.
Signature
OFF ()
Parameters
None
Usage Note
The ON and OFF proxy commands have the ability to send proxy notifications to display a device power state in Composer and Navigator Devices only. Any desired commands or notifications based off the device ON/OFF state must be handled by your DriverWorks driver.
ON
Turn device On.
Signature
ON ()
Parameters
None
Usage Note
The ON and OFF proxy commands have the ability to send proxy notifications to display a device power state in Composer and Navigator Devices only. Any desired commands or notifications based off the device ON/OFF state must be handled by your DriverWorks driver.
OPEN CLOSE
Open/Close disc tray.
Signature
OPEN_CLOSE ()
Parameters
None
PAGE DOWN
Pulse menu Page down.
Signature
PAGE_DOWN ()
Parameters
None
Returns
None
PAGE UP
Pulse menu Page up.
Signature
PAGE_UP ()
Parameters
None
Returns
`None `
Pause
Place device in pause state.
Signature
PAUSE ()
Parameters
None
Returns
None
PIP
Pulse menu PIP button.
Signature
PIP ()
Parameter | Description |
---|---|
str | MacroCodeName |
Returns
None
PLAY
Place device in a playback state.
Signature
PLAY ()
Parameters
None
Returns
None
POUND
Pulse ‘#’ button
Signature
POUND ()
Parameters
None
Returns
None
PRESET DOWN
Toggle (cycle down) tuning preset
Signature
PRESET_DOWN ()
Parameters
None
Returns
None
PRESET UP
Toggle (cycle up) tuning preset
Signature
PRESET_UP ()
Parameters
None
Returns
None
PULSE ASPECT RATIO
Toggle (cycle though) aspect ratio.
Signature
PULSE_ASPECT_RATIO ()
Parameters
None
Returns
None
PULSE BALANCE DOWN
Pulse balance down (Left)
Signature
PULSE_BALNCE_DOWN ()
Parameters
None
Returns
None
PULSE BALANCE UP
Pulse balance up (Right)
Signature
PULSE_BALNCE_RIGHT ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE BASS DOWN
Pulse bass down (Left)
Signature
PULSE_BASS_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE BASS UP
Pulse bass up (Right)
Signature
PULSE_BASS_UP ()
Parameters
None
Returns
None
PULSE CHANNEL DOWN
Pulse channel value down.
Signature
PULSE_CHANNEL_DOWN ()
Parameters
None
Returns
None
PULSE CHANNEL UP
Pulse channel value up.
Signature
PULSE_CHANNEL_UP ()
Parameters
None
Returns
None
PULSE INPUT
Toggle (cycle through) input selection on device.
Signature
PULSE_INPUT
Parameters
None
Returns
None
PULSE TREBLE DOWN
Pulse treble down.
Signature
PULSE_TREBLE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE TREBLE UP
Pulse treble up.
Signature
PULSE_TREBLE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE VOL DOWN
Pulse volume level down.
Signature
PULSE_VOL_DOWN
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PVR
Pulse PVR button.
Signature
PVR ()
Parameters
None
Returns
None
PULSE VOL UP
Pulse volume level up.
Signature
PULSE_VOL_UP
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
RECALL
Pulse Recall button
Signature
RECALL ()
Parameters
None
Returns
None
RIGHT
Pulse RIGHT NAVIGATION
Signature
RIGHT ()
Parameters
None
Returns
None
SCAN FWD
Pulse/scan forward within track/chapter.
Signature
SCAN_FWD ()
Parameters
None
Returns
None
SCAN REV
Pulse scan reverse within track/chapter.
Signature
SCAN_REV ()
Parameters
None
Returns
None
SEARCH DOWN
Pulse tuning search down
Signature
SEARCH_DOWN ()
Parameters
None
Returns
None
SEARCH UP
Pulse tuning search UP
Signature
SEARCH_UP ()
Parameters
None
Returns
None
SET BALANCE
Set balance to a specified position.
Signature
SET_BALANCE ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
SET BALANCE UP
Set balance to a specified position.
Signature
SET_BALANCE ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
SET BASS LEVEL
Set bass to a specified level.
Signature
SET_BASS_LEVEL
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
SET CHANNEL
Tune device to the specified channel.
Signature
SET_CHANNEL ()
Parameter | Description |
---|---|
str | Channel value in string format. |
Returns
None
Example
The examples to the right detail the table of information that is received from the proxy when a channel is selected:
FM:
ReceivedFromProxy: SET_CHANNEL
BindingID 5002
CHANNEL 96.3
INPUT 3028
OUTPUT 0
AM:
ReceivedFromProxy: SET_CHANNEL
INPUT 3027
BindingID 5002
CHANNEL 1100
INPUT 3027
OUTPUT 0
In the FM example, channel 96.3 has been selected in the tuner protocol. The 96.3 value is passed into the data table as a string.
It is important to note that if the bandwidth type (AM, FM) is not provided (and the proxy in question is not TV) a manner in which to identify the bandwidth type will need to be developed. An example of this code follows:
if tParams['BANDTYPE'] == nil then
if (string.find(tParams['CHANNEL'],"%p") ~= nil) then
tParams['BANDTYPE'] = 'FM'
local ChannelLen = string.len(tParams['CHANNEL'] )
local ChannelFix = string.sub(tParams['CHANNEL'],1,ChannelLen-2) .. '.' .. string.sub(tParams['CHANNEL'],ChannelLen-1,ChannelLen-1)
tParams ['CHANNEL'] = ChannelFix
else
tParams['BANDTYPE'] = 'AM'
end
end
SET LOUDNESS
Turn loudness on.
Signature
SET_LOUDNESS ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
SET OUTPUT INPUT
Specify input and output selection of device.
Signature
SET_OUTPUT_INPUT ()
Parameter | Description |
---|---|
int | Input Binding ID |
int | Output Binding ID |
Returns
None
SET UP DOWN SWAP
Swap page UP/DOWN buttons (used by AVGen)
Signature
POUND ()
Parameter | Description |
---|---|
bool | True/False |
Returns
None
SET VOLUME LEVEL
Set volume to a specified level.
Signature
SET_VOLUME_LEVEL ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
SET PRESET
Set specified tuning preset
Signature
SET_PRESET ()
Parameter | Description |
---|---|
int | Preset Number |
Returns
None
SET TREBLE LEVEL
Set treble to a specified level.
Signature
SET_TREBLE_LEVEL ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
SKIP FWD
Advance to next track/chapter.
Signature
SKIP_FWD ()
Parameters
None
Returns
None
STAR
Pulse *
button
Signature
STAR ()
Parameters
None
Returns
None
START BALANCE DOWN
Start ramping balance down (left).
Signature
START_BALANCE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START BALANCE UP
Start ramping balance up (right).
Signature
START_BALANCE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START BASS DOWN
Start ramping bass down.
Signature
START_BASS_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START BASS UP
Start ramping bass up.
Signature
START_BASS_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START CHANNEL UP
Start ramping channel up.
Signature
START_CHANNEL_UP ()
Parameter
None
Returns
None
START DOWN
Start down NAVIGATION.
Signature
START_DOWN ()
Parameters
None
Returns
None
START LEFT
Pulse left navigation.
Signature
START_LEFT ()
Parameters
None
Returns
None
START PAGE DOWN
Start menu Page down.
Signature
START_PAGE_DOWN ()
Parameters
None
Returns
None
START PAGE UP
Start menu Page up.
Signature
START_PAGE_UP ()
Parameters
None
Returns
None
START RIGHT
Initiate right arrow navigation.
Signature
START_RIGHT ()
Parameters
None
Returns
None
START SCAN FWD
Initiate scan forward within track/chapter.
Signature
START_SCAN_FWD ()
Parameters
None
Returns
None
START SCAN REV
Initiate scan backward within track/chapter.
Signature
START_SCAN_REV ()
Parameters
None
Returns
None
START SEARCH DOWN
Initiate tuning search down
Signature
START_SEARCH_DOWN ()
Parameters
None
Returns
None
START SEARCH UP
Initiate tuning search up.
Signature
START_SEARCH_UP ()
Parameters
None
Returns
None
START TREBLE DOWN
Start ramping treble down.
Signature
START_TREBLE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START TREBLE UP
Start ramping treble up.
Signature
START_TREBLE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START VOL DOWN
Start ramping volume down.
Signature
START_TREBLE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP SCAN REV
Stop scan forward within track/chapter.
Signature
STOP_SCAN_REV ()
Parameters
None
Returns
None
START UP
Initiate up arrow navigation.
Signature
START_UP ()
Parameters
None
Returns
None
STOP BALANCE DOWN
Start ramping balance down.
Signature
STOP_BALANCE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP BASS DOWN
Stop ramping bass down
Signature
STOP_BASS_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP BALANCE UP
Stop ramping balance up.
Signature
STOP_BALANCE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP BASS UP
Stop ramping bass up.
Signature
STOP_BASS_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP CHANNEL UP
Stop ramping channel up.
Signature
STOP_CHANNEL_UP ()
Parameter
None
Returns
None
STOP LEFT
Stop left navigation.
Signature
STOP_LEFT ()
Parameters
None
Returns
None
STOP RIGHT
Stop right arrow navigation.
Signature
STOP_RIGHT ()
Parameters
None
Returns
None
STOP SCAN FWD
Stop scan forward within track/chapter.
Signature
STOP_SCAN_FWD ()
Parameters
None
Returns
None
STOP SEARCH DOWN
Stop tuning search down
Signature
STOP_SEARCH_DOWN ()
Parameters
None
Returns
None
STOP SEARCH UP
Stop tuning search UP
Signature
STOP_SEARCH_UP ()
Parameters
None
Returns
None
STOP PAGE DOWN
Stop menu page down.
Signature
STOP_PAGE_DOWN ()
Parameters
None
Returns
None
STOP PAGE DOWN
Stop menu page up.
Signature
STOP_PAGE_UP ()
Parameters
None
Returns
None
STOP TREBLE DOWN
Stop ramping the treble down
Signature
STOP_TREBLE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP TREBLE UP
Stop ramping the treble up.
Signature
STOP_TREBLE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP UP
Stop up arrow navigation.
Signature
STOP_UP ()
Parameters
None
Returns
None
STOP VOL DOWN
Stop ramping the volume down
Signature
STOP_VOL_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP VOL UP
Stop ramping the volume up.
Signature
STOP_VOL_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
TV VIDEO
Toggle TV/video input.
Signature
TV_VIDEO ()
Parameters
None
Returns
None
TUNE DOWN
Toggle (cycle down) frequency or channel
Signature
TUNE_DOWN ()
Parameters
None
Returns
None
TUNE UP
Toggle (cycle UP) frequency or channel
Signature
TUNE_UP ()
Parameters
None
Returns
None
STAR
Pulse up button.
Signature
UP ()
Parameters
None
Returns
None
Tuner Capabilities
audio consumer count
Count of number of audio consumers (inputs) of the device. This value must match the number of connections in the driver.
Signature
<audio_consumer_count></audio_consumer_count>
Parameter | Description |
---|---|
int | Number of audio consumers. |
Example
<capabilities>
<audio_consumer_count>8</audio_consumer_count>
</capabilities>
audio provider count
Count of number of audio providers (outputs) of the device. This value must match the number of connections in the driver.
Signature
<audio_provider_count></audio_provider_count>
Parameter | Description |
---|---|
int | Number of audio providers. |
Example
<capabilities>
<audio_provider_count>8</audio_provider_count>
</capabilities>
has channel up down
Tuner can cycling up or down for valid channels
Signature
<has_channel_up_down></has_channel_up_down>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_channel_up_down>true</has_channel_up_down>
</capabilities>
has discrete channel select
Capability of directly selecting specified channel.
Signature
<has_discrete_channel_select></has_ discrete_channel_select>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_channel_select>true</has_discrete_channel_select>
</capabilities>
has discrete input select
Capability of directly selecting specified input.
Signature
<has_discrete_input_select></has_ discrete_input_select>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_input_select>true</has_discrete_input_select>
</capabilities>
has discrete preset
Capable of directly selecting from a preset list.
Signature
<has_discrete_preset></has_discrete_preset>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_preset>true</has_discrete_preset>
</capabilities>
has feedback
Device has the ability to report back the tuner channel. Required so the Tuner channel can be displayed through navigator.
Signature
<has_feedback></has_feedback>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_feedback>true</has_feedback>
</capabilities>
has provider count
Count of number of video providers (outputs) of the device.
Signature
<has_provider_count></has_provider_count>
Parameter | Description |
---|---|
int | Number of video providers. |
Example
<capabilities>
<has_provider_count>8</has_provider_count>
</capabilities>
has preset up down
Tuner can cycle up or down through a preset list.
Signature
<has_preset_up_down></has_preset_up_down>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_preset_up_down>true</has_preset_up_down>
</capabilities>
has toad input select
Capability of toggling through inputs
Signature
<has_toad_input_select></has_toad_input_select>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_toad_input_select>true</has_toad_input_select>
</capabilities>
has tune up down
Tuner can cycle up or down through tuning frequencies or channels
Signature
<has_tune_up_down></has_tune_up_down>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_tune_up_down>true</has_tune_up_down>
</capabilities>
preset count
Number of Tuner presets available.
Signature
<preset_count></preset_count>
Parameter | Description |
---|---|
int | Number of Presets |
Example
<capabilities>
<preset_count>6</preset_count>
</capabilities>
selection delay
Delay time in milliseconds before new tuner selection is online.
Signature
<selection_delay></selection_delay>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<selection_delay>true</selection_delay>
</capabilities>
video consumer count
Count of number of video consumers (inputs) of the device. This value must match the number of connections in the driver.
Signature
<video_consumer_count></video_consumer_count>
Parameter | Description |
---|---|
int | Number of video consumers. |
Example
<capabilities>
<video_consumer_count>8</video_consumer_count>
</capabilities>
preface band with tuner capability
Specifies if the device can switch to the Tuner input (AM, FM..) and then send the
SET_CHANNEL
command.
Signature
<preface_bandwith_tuner_capability></preface_bandwith_tuner_capability>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<preface_bandwith_tuner_capability>true</preface_bandwith_tuner_capability>
</capabilities>
Tuner Protocol Notifications
CHANNEL CHANGED
Selected disc has changed.
Signature
CHANNEL_CHANGED ()
Parameter | Description |
---|---|
int | CHANNEL Number |
Returns
None
Usage Note
Usage Note:If the BANDTYPE is not supplied, as in older drivers, the INPUT binding # will be used to determine which band the tuner is on. All DriverWorks drivers need to use the BANDTYPE parameter if they want the band to propagate up to Navigator to display the channel properly. If the DriverWorks driver does not know the current channel and the “has feedback” capability is not set to “True”, none of this matters and everything will keep working as it previously has.
A CHANNEL CHANGED must be issued immediately after the INPUT CHANGED in order for the UI to update.
Example
C4:SendToProxy(5002, "INPUT_CHANGED", {INPUT=3014,BANDTYPE='FMBand',MINCHANNEL=8750,MAXCHANNEL=10450,CHANNELSPACING=10})
C4:SendToProxy(5002, "CHANNEL_CHANGED", {CHANNEL=8780})
Note that in the example to the right, 5002 is the ProxyBindingID for the Tuner. INPUT 3014 is the ID for the FM Antenna on the 5002 Tuner.
Navigator determines AM/FM/XM with the following rule:
- ID 3000 and 3001 are AM
- ID 3002 and 3003 are FM
INPUT CHANGED
Selected input has changed.
Signature
INPUT_CHANGED ()
Parameter | Description |
---|---|
int | Binding ID of RF cloud |
str | One of the following case sensitive values: “AMBand” “FMBand” |
int | Lowest tune-able channel e.g. 8750 for FM, 530 for AM |
int | Highest tunable channel e.g. 10790 for FM, 1760 for AM |
int | Channel increment e.g. 20 for FM in U.S., 10 for AM in U.S. |
Returns
None
Usage Note
If the BANDTYPE is not supplied, as in older drivers, the INPUT binding # will be used to determine which band the tuner is on. All DriverWorks drivers need to use the BANDTYPE parameter if they want the band to propagate up to Navigator to display the channel properly. If the DriverWorks driver does not know the current channel and the “hasfeedback” capability is not set to “True”, none of this matters and everything will keep working as it previously has.
A CHANNEL_CHANGED
must be issued immediately after the INPUT_CHANGED
in order for the UI to update.
Example
C4:SendToproxy(5002,'INPUTCHANGED',{INPUT=3009,BANDTYPE='FMBand',MINCHANNEL=8750,
MAXCHANNEL=10790,CHANNELSPACING=20})
C4:SendToProxy(5002,'CHANNELCHANGED',CHANNEL=10290)
Note that in the example to the right, 5002 is the ProxyBindingID for the Tuner. INPUT 3009 is the ID for the FM Antenna on the 5002 Tuner.
Navigator determines AM/FM/XM with the following rule:
- ID 3000 and 3001 are AM
- ID 3002 and 3003 are FM
OFF
Device has turned Off.
Signature
OFF ()
Parameter
None
Returns
None
ON
Device has turned On.
Signature
ON ()
Parameter
None
Returns
None
RADIO TEXT CHANGED
Text from RDS has changed.
Signature
RADIO_TEXT_CHANGED ()
Parameter | Description |
---|---|
str | Radio information/text from RDS. Currently playing title. |
Usage Note
MaxImum 64 characters is two free form text strings.
Returns
None
PSN CHANGED
Text from PSN has changed.
Signature
PSN_CHANGED ()
Parameter | Description |
---|---|
str | Radio information/text from the station ID. Periodically updated from the station. |
Usage Note
MaxImum 64 characters is two free form text strings.
Returns
None
Audio Output Bindings and Proxy Events
Note: Audio Output binding ID values defined in drivers written in conjunction with this Proxy must start with a binding value of 4000. The acceptable range for Audio Outputs is 4000 - 4999. However, if the first output binding ID value is not 4000, issues with Proxy Events firing correctly can be encountered.
For a list of valid Binding ID values please see the Connections section of the DriverWorks Fundamentals Guide.
Tuner Proxy Commands
BACK
Pulse Back button
Signature
BACK ()
Parameters
None
Returns
None
CANCEL
Pulse Cancel button
Signature
CANCEL ()
Parameters
None
Returns
None
DASH
Pulses the ‘-’ button.
Signature
DASH ()
Parameter
None
Returns
None
HYPHEN
Pulse ‘-’ button
Signature
HYPHEN ()
Parameters
None
Returns
None
INFO
Pulse Info button
Signature
INFO ()
Parameters
None
Returns
None
NUMBER 0
Pulse ‘0’ button
Signature
Number_0 ()
Parameters
None
Returns
None
NUMBER 1
Pulse ‘1’ button
Signature
Number_1 ()
Parameters
None
Returns
None
NUMBER 2
Pulse ‘2’ button
Signature
Number_2 ()
Parameters
None
Returns
None
NUMBER 3
Pulse ‘3’ button
Signature
Number_3 ()
Parameters
None
Returns
None
NUMBER 4
Pulse ‘4’ button
Signature
Number_4 ()
Parameters
None
Returns
None
NUMBER 5
Pulse ‘5’ button
Signature
Number_5 ()
Parameters
None
Returns
None
NUMBER 6
Pulse ‘6’ button
Signature
Number_6 ()
Parameters
None
Returns
None
NUMBER 7
Pulse ‘7’ button
Signature
Number_7 ()
Parameters
None
Returns
None
NUMBER 8
Pulse ‘8’ button
Signature
Number_8 ()
Parameters
None
Returns
None
NUMBER 9
Pulse ‘9’ button
Signature
Number_9 ()
Parameters
None
Returns
None
OFF
Turn device Off.
Signature
OFF ()
Parameters
None
Returns
None
Usage Note
The ON and OFF proxy commands have the ability to send proxy notifications to display a device power state in Composer and Navigator Devices only. Any desired commands or notifications based off the device ON/OFF state must be handled by your DriverWorks driver.
ON
Turn device On.
Signature
ON ()
Parameters
None
Returns
None
Usage Note
The ON and OFF proxy commands have the ability to send proxy notifications to display a device power state in Composer and Navigator Devices only. Any desired commands or notifications based off the device ON/OFF state must be handled by your DriverWorks driver.
PAGE DOWN
Pulse menu Page down.
Signature
PAGE_DOWN ()
Parameters
None
Returns
None
PAGE UP
Pulse menu Page up.
Signature
PAGE_UP ()
Parameters
None
Returns
None
POUND
Pulse # button.
Signature
POUND ()
Parameters
None
Returns
None
PRESET DOWN
Toggle (cycle down) tuning preset.
Signature
PRESET_DOWN ()
Parameters
None
Returns
None
PRESET UP
Toggle (cycle UP) tuning preset.
Signature
PRESET_UP ()
Parameters
None
Returns
None
PULSE CHANNEL DOWN
Pulse channel value down.
Signature
PULSE_CHANNEL_DOWN ()
Parameters
None
Returns
None
PULSE CHANNEL UP
Pulse channel value up.
Signature
PULSE_CHANNEL_UP ()
Parameters
None
Returns
None
RECALL
Pulse Recall button.
Signature
RECALL ()
Parameters
None
Returns
None
SEARCH DOWN
Pulse tuning search down
Signature
SEARCH_DOWN ()
Parameters
None
Returns
None
SEARCH UP
Pulse tuning search UP
Signature
SEARCH_UP ()
Parameters
None
Returns
None
SET PRESET
Select specified tuning preset.
Signature
SET_PRESET ()
Parameter | Description |
---|---|
int | Preset Number |
Returns
None
STAR
Pulse *
button.
Signature
STAR ()
Parameters
None
Returns
None
START CH DOWN
Start ramping channel down.
Signature
START_CH_DOWN ()
Parameters
None
Returns
None
START CH UP
Start ramping channel UP.
Signature
START_CH_UP ()
Parameters
None
Returns
None
STOP CH UP
StOP ramping channel UP.
Signature
STOP_CH_UP ()
Parameters
None
Returns
None
START PAGE DOWN
Start menu Page down.
Signature
START_PAGE_DOWN ()
Parameters
None
Returns
None
START PAGE UP
Start menu Page up.
Signature
START_PAGE_UP ()
Parameters
None
Returns
None
START SEARCH DOWN
Begin tuning search down.
Signature
START_SEARCH_DOWN ()
Parameters
None
Returns
None
START SEARCH UP
Begin tuning search UP.
Signature
START_SEARCH_UP ()
Parameters
None
Returns
None
STOP CH DOWN
Stop ramping channel down.
Signature
STOP_CH_DOWN ()
Parameters
None
Returns
None
STOP PAGE DOWN
Stop menu page down.
Signature
STOP_PAGE_DOWN ()
Parameters
None
Returns
None
STOP PAGE UP
Stop menu page up.
Signature
STOP_PAGE_UP ()
Parameters
None
Returns
None
STOP SEARCH UP
Stop tuning search up.
Signature
STOP_SEARCH_UP ()
Parameters
None
Returns
None
STOP SEARCH DOWN
Stop tuning search down.
Signature
STOP_SEARCH_DOWN ()
Parameters
None
Returns
None
TUNE DOWN
Toggle (cycle down) frequency or channel
Signature
TUNE_DOWN ()
Parameters
None
Returns
None
TUNE UP
Toggle (cycle up) frequency or channel
Signature
TUNE_UP ()
Parameters
None
Returns
None
TV Proxy Commands
BACK
Pulse Back button
Signature
BACK ()
Parameters
None
Returns
None
CANCEL
Pulse Cancel button
Signature
CANCEL ()
Parameters
None
Returns
None
DASH
Pulses the ‘-’ button.
Signature
DASH ()
Parameter
None
Returns
None
DISCONNECT OUTPUT
Disconnect (turn off) selected output on device.
Signature
DISCONNECT_OUTPUT ()
Parameter | Description |
---|---|
Int | Output BindingID |
Returns
None
EMIT CODE
Emit IR/Serial code.
Signature
EMIT_CODE ()
Parameter | Description |
---|---|
Int | ID of the IR Code |
Returns
None
EMIT MACRO
Emit IR/Serial code macro.
Signature
EMIT_MACRO ()
Parameter | Description |
---|---|
str | MacroCodeName |
Returns
None
GET DEFAULT INPUT
Command sent to the protocol during the proxy initialization. Returns the input designated as the default from the protocol device.
Signature
GET_DEFAULT_INPUT ()
Parameters
None
Returns
None
HYPHEN
Pulse ‘-’ button
Signature
HYPHEN ()
Parameters
None
Returns
None
INFO
Pulse Info button
Signature
INFO ()
Parameters
None
Returns
None
LOUDNESS OFF
Turn loudness off.
Signature
LOUDNESS_OFF ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
LOUDNESS ON
Turn loudness on.
Signature
LOUDNESS_ON ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
LOUDNESS TOGGLE
Toggle loudness on/off.
Signature
LOUDNESS_TOGGLE ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
MUTE OFF
Turn muting off.
Signature
MUTE_OFF ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
MUTE ON
Turn muting on.
Signature
MUTE_ON ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
MUTE TOGGLE
Toggle muting on/off.
Signature
MUTE_TOGGLE ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
NUMBER 0
Pulse ‘0’ button
Signature
Number_0 ()
Parameters
None
Returns
None
NUMBER 1
Pulse ‘1’ button
Signature
Number_1 ()
Parameters
None
Returns
None
NUMBER 2
Pulse ‘2’ button
Signature
Number_2 ()
Parameters
None
Returns
None
NUMBER 3
Pulse ‘3’ button
Signature
Number_3 ()
Parameters
None
Returns
None
NUMBER 4
Pulse ‘4’ button
Signature
Number_4 ()
Parameters
None
Returns
None
NUMBER 5
Pulse ‘5’ button
Signature
Number_5 ()
Parameters
None
Returns
None
NUMBER 6
Pulse ‘6’ button
Signature
Number_6 ()
Parameters
None
Returns
None
NUMBER 7
Pulse ‘7’ button
Signature
Number_7 ()
Parameters
None
Returns
None
NUMBER 8
Pulse ‘8’ button
Signature
Number_8 ()
Parameters
None
Returns
None
NUMBER 9
Pulse ‘9’ button
Signature
Number_9 ()
Parameters
None
Returns
None
OFF
Turn device Off.
Signature
OFF ()
Parameters
None
Returns
None
Usage Note
The ON and OFF proxy commands have the ability to send proxy notifications to display a device power state in Composer and Navigator Devices only. Any desired commands or notifications based off the device ON/OFF state must be handled by your DriverWorks driver.
ON
Turn device On.
Signature
ON ()
Parameters
None
Returns
None
Usage Note
The ON and OFF proxy commands have the ability to send proxy notifications to display a device power state in Composer and Navigator Devices only. Any desired commands or notifications based off the device ON/OFF state must be handled by your DriverWorks driver.
PAGE DOWN
Pulse menu Page down.
Signature
PAGE_DOWN ()
Parameters
None
Returns
None
PAGE UP
Pulse menu Page up.
Signature
PAGE_UP ()
Parameters
None
Returns
None
PIP
Pulse menu PIP button..
Signature
PIP ()
Parameter | Description |
---|---|
str | MacroCodeName |
Returns
None
POUND
Pulse # button.
Signature
POUND ()
Parameters
None
Returns
None
PRESET DOWN
Toggle (cycle down) tuning preset.
Signature
PRESET_DOWN ()
Parameters
None
Returns
None
PRESET UP
Toggle (cycle UP) tuning preset.
Signature
PRESET_UP ()
Parameters
None
Returns
None
Pulse Aspect Ratio
Toggle (cycle though) aspect ratio.
Signature
PULSE_ASPECT_RATIO ()
Parameters
None
Returns
None
PULSE BALANCE DOWN
Pulse balance down (Left)
Signature
PULSE_BALNCE_DOWN ()
Parameters
None
Returns
None
PULSE BALANCE UP
Pulse balance up (Right)
Signature
PULSE_BALNCE_RIGHT ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE BASS DOWN
Pulse bass down (Left)
Signature
PULSE_BASS_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE BASS UP
Pulse bass up (Right)
Signature
PULSE_BASS_UP ()
Parameters
None
Returns
None
PULSE CHANNEL DOWN
Pulse channel value down.
Signature
PULSE_CHANNEL_DOWN ()
Parameters
None
Returns
None
PULSE CHANNEL UP
Pulse channel value up.
Signature
PULSE_CHANNEL_UP ()
Parameters
None
Returns
None
PULSE INPUT
Toggle (cycle through) input selection on device.
Signature
PULSE_INPUT
Parameters
None
Returns
None
PULSE TREBLE DOWN
Pulse treble down.
Signature
PULSE_TREBLE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE TREBLE UP
Pulse treble up.
Signature
PULSE_TREBLE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE VOL DOWN
Pulse volume level down.
Signature
PULSE_VOL_DOWN
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PULSE VOL UP
Pulse volume level up.
Signature
PULSE_VOL_UP
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
PVR
Pulse PVR button.
Signature
PVR ()
Parameters
None
Returns
None
RECALL
Pulse Recall button.
Signature
RECALL ()
Parameters
None
Returns
None
SEARCH DOWN
Pulse tuning search down
Signature
SEARCH_DOWN ()
Parameters
None
Returns
None
SEARCH UP
Pulse tuning search UP
Signature
SEARCH_UP ()
Parameters
None
Returns
None
SET BALANCE
Set balance to a specified position.
Signature
SET_BALANCE ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
SET BALANCE UP
Set balance to a specified position.
Signature
SET_BALANCE_UP ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
SET BASS LEVEL
Set bass to a specified level.
Signature
SET_BASS_LEVEL
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
SET CHANNEL
Tune device to the specified channel.
Signature
SET_CHANNEL ()
Parameter | Description |
---|---|
str | Channel value in string format. |
Returns
None
SET DEFAULT INPUT
Specify the default input selection of device.
Signature
SET_DEAFULT_INPUT ()
Parameter | Description |
---|---|
int | Input Binding ID - should be in the BindingID range. |
int | Optional. Output Binding ID - should be in the BindingID range. |
Returns
None
Usage Note
- Control Bindings = 1 -> 999
- Video Inputs = 1000 -> 1099
- Video Outputs = 2000 -> 2999
- Audio Inputs = 3000 -> 3099
- Audio Outputs = 4000 -> 4999
- Proxy Bindings = 5000 -> 5999
- Network Bindings = 6000 -> 6999
- Room Bindings = 7000 -> 7999
- Power Manager = 8000 -> 8999
SET INPUT
Specify the input selection of device.
Signature
SET_INPUT ()
Parameter | Description |
---|---|
int | Input Binding ID - should be in the BindingID range. |
int | Optional. Output Binding ID - should be in the BindingID range. |
Returns
None
Usage Note
- Control Bindings = 1 -> 999
- Video Inputs = 1000 -> 1099
- Video Outputs = 2000 -> 2999
- Audio Inputs = 3000 -> 3099
- Audio Outputs = 4000 -> 4999
- Proxy Bindings = 5000 -> 5999
- Network Bindings = 6000 -> 6999
- Room Bindings = 7000 -> 7999
- Power Manager = 8000 -> 8999
SET LOUDNESS
Turn loudness on.
Signature
SET_LOUDNESS ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
SET PRESET
Select specified tuning preset.
Signature
SET_PRESET ()
Parameter | Description |
---|---|
int | Preset Number |
Returns
None
SET TREBLE LEVEL
Set treble to a specified level.
Signature
SET_TREBLE_LEVEL ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
SET UP DOWN SWAP
Swap page UP/DOWN buttons.
Signature
SET_UP_DOWN_SWAP ()
Parameter | Description |
---|---|
bool | True/False |
Returns
None
SET VOLUME LEVEL
Set volume to a specified level.
Signature
SET_VOLUME_LEVEL ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
SET VOL UP
Begin ramping volume up.
Signature
SET_VOL_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STAR
Pulse *
button.
Signature
STAR ()
Parameters
None
Returns
None
START BALANCE DOWN
Start ramping balance down (left).
Signature
START_BALANCE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START BALANCE UP
Start ramping balance UP (right).
Signature
START_BALANCE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START BASS DOWN
Start ramping bass down.
Signature
START_BASS_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START BASS UP
Start ramping bass up.
Signature
START_BASS_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START CH DOWN
Start ramping channel down.
Signature
START_CH_DOWN ()
Parameters
None
Returns
None
START CH UP
Start ramping channel up.
Signature
START_CH_UP ()
Parameters
None
Returns
None
START DOWN
Initiate down-arrow navigation.
Signature
START_DOWN ()
Parameters
None
Returns
None
START LEFT
Initiate left-arrow navigation.
Signature
START_LEFT ()
Parameters
None
Returns
None
START PAGE DOWN
Start menu Page down.
Signature
START_PAGE_DOWN ()
Parameters
None
Returns
None
START PAGE UP
Start menu Page up.
Signature
START_PAGE_UP ()
Parameters
None
Returns
None
START PAGE RIGHT
Initiate right-arrow navigation.
Signature
START_RIGHT ()
Parameters
None
Returns
None
START SEARCH DOWN
Begin tuning search down.
Signature
START_SEARCH_DOWN ()
Parameters
None
Returns
None
START SEARCH UP
Begin tuning search UP.
Signature
START_SEARCH_UP ()
Parameters
None
Returns
None
START TREBLE UP
Start ramping treble up.
Signature
START_TREBLE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START TREBLE DOWN
Start ramping treble down.
Signature
START_TREBLE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START UP
Initiate up-arrow navigation.
Signature
START_UP ()
Parameters
None
Returns
None
START VOL DOWN
Start ramping volume down.
Signature
START_VOL_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
START VOL UP
Start ramping volume up.
Signature
START_VOL_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP BALANCE DOWN
Start ramping balance.
Signature
STOP_BALANCE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP BALANCE UP
Stop ramping bass
Signature
STOP_BALANCE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP BASS DOWN
Stop ramping bass down.
Signature
STOP_BASS_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP BASS UP
Stop ramping bass up.
Signature
STOP_BASS_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP CH DOWN
Stop ramping channel down.
Signature
STOP_CH_DOWN ()
Parameters
None
Returns
None
STOP CH UP
Stop ramping channel up.
Signature
STOP_CH_UP ()
Parameters
None
Returns
None
STOP DOWN
Stop down-arrow navigation.
Signature
STOP_DOWN ()
Parameters
None
Returns
None
START LEFT
Stop left-arrow navigation.
Signature
STOP_LEFT ()
Parameters
None
Returns
None
STOP PAGE DOWN
Stop menu page down.
Signature
STOP_PAGE_DOWN ()
Parameters
None
Returns
None
STOP PAGE DOWN
Stop menu page up.
Signature
STOP_PAGE_UP ()
Parameters
None
Returns
None
STOP PAGE RIGHT
Stop right-arrow navigation.
Signature
STOP_RIGHT ()
Parameters
None
Returns
None
STOP SEARCH DOWN
Stop tuning search down.
Signature
STOP_SEARCH_DOWN ()
Parameters
None
Returns
None
STOP SEARCH UP
Stop tuning search UP.
Signature
STOP_SEARCH_UP ()
Parameters
None
Returns
None
STOP TREBLE DOWN
Stop ramping treble down.
Signature
STOP_TREBLE_DOWN ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP TREBLE UP
Stop ramping treble up.
Signature
STOP_TREBLE_UP ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
STOP UP
Initiate up-arrow navigation.
Signature
STOP_UP ()
Parameters
None
Returns
None
TUNE DOWN
Toggle (cycle down) frequency or channel.
Signature
TUNE_DOWN ()
Parameters
None
Returns
None
TUNE UP
Toggle (cycle down) frequency or channel.
Signature
TUNE_UP ()
Parameters
None
Returns
None
TV VIDEO
Toggle TV/video input.
Signature
TV_VIDEO ()
Parameters
None
Returns
None
TV Protocol Notifications
AUDIO PARAMETER CHANGED
Audio parameter has changed
Signature
AUDIO_PARAMETER_CHANGED ()
Parameter | Description |
---|---|
int | Output Binding ID |
Returns
None
BALANCE LEVEL CHANGED
Selected balance level has changed.
Signature
BALANCE_LEVEL_CHANGED ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
BASS LEVEL CHANGED
Selected bass level has changed
Signature
BASS_LEVEL_CHANGED ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
CHANNEL CHANGED
Selected channel has changed
Signature
CHANNEL_CHANGED ()
Parameter | Description |
---|---|
int | Channel Number |
Returns
None
INPUT CHANGED
Selected Input has changed.
Signature
INPUT_CHANGED ()
Parameter | Description |
---|---|
int | Input Binding ID |
Returns
None
LOUDNESS CHANGED
Loudness state (On/Off) has changed.
Signature
LOUDNESS_CHANGED ()
Parameter | Description |
---|---|
bool | True/False |
int | Output Binding ID |
Returns
None
MUTE CHANGED
MUTE state (On/Off) has changed.
Signature
MUTE_CHANGED ()
Parameter | Description |
---|---|
bool | True/False |
int | Output Binding ID |
Returns
None
OFF
Device has turned off.
Signature
OFF ()
Parameter
None
Returns
None
ON
Device has turned on.
Signature
ON ()
Parameter
None
Returns
None
TREBLE LEVEL CHANGED
Selected treble level has changed.
Signature
TREBLE_LEVEL_CHANGED ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
VOLUME LEVEL CHANGED
Selected volume level has changed.
Signature
VOLUME_LEVEL_CHANGED ()
Parameter | Description |
---|---|
int | Level |
int | Output Binding ID |
Returns
None
XM Tuner Protocol Notifications
AVAILABLE CHANNEL MAP
Displays current artist.
Signature
AVAILBLE_CHANNEL_MAP ()
Parameter | Description |
---|---|
num | MAP HALF: 1 is used for channels 0-127. 0 is used for channels 128 - 255. |
str | MAP STRING: 32 character (hex values) string representing the binary (1 = available or 0 = not) state of each of the channels in all possible combinations. Each hex digit covers all the possible available combinations of 4 channels. |
Example
00000000000000000000000000000001 indicates that channel 0 (or 128) is the only channel available.
00000000000000000000000000000002 indicates that channel 1 (or 129) is the only channel available.
00000000000000000000000000000003 indicates that channels 0 & 1 (or 128 & 129) are the only channels available.
00000000000000000000000000000004 indicates that channel 2 (or 130) is the only channel available.
00000000000000000000000000000005 indicates that channels 0 & 2 (or 128 & 130) are the only channels available.
00000000000000000000000000000006 indicates that channels 1 & 2 (or 129 & 130) are the only channels available.
00000000000000000000000000000007 indicates that channels 0, 1 & 2 (or 128, 129 & 130) are the only channels available.
00000000000000000000000000000008 indicates that channel 3 (or 131) is the only channel available.
00000000000000000000000000000009 indicates that channels 0 & 3 (or 128 & 131) are the only channels available.
0000000000000000000000000000000A indicates that channels 1 & 3 (or 129 & 131) are the only channels available.
0000000000000000000000000000000B indicates that channels 0, 1 & 3 (or 128, 129 & 131) are the only channels available.
0000000000000000000000000000000C indicates that channels 2 & 3 (or 130 & 131) are the only channels available.
0000000000000000000000000000000D indicates that channels 0, 2 & 3 (or 128, 130 & 131) are the only channels available.
0000000000000000000000000000000E indicates that channels 1, 2 & 3 (or 129, 130 & 131) are the only channels available.
0000000000000000000000000000000F indicates that channels 0, 1, 2 & 3 (or 128, 129, 130 & 131) are the only channels available.
SIGNAL STRENGTH
Displays strength of signal.
Signature
SIGNAL_STRENGTH ()
Parameter | Description |
---|---|
int | 0 = “None”, 1 = “Weak”, 2 = “Fair”, 3 = “Good” |
Returns
None
SONG INFO CHANGED
Displays current song information.
Signature
SONG_INFO_CHANGED ()
Parameter | Description |
---|---|
str | ARTIST, TITLE, CATEGORY, CHANNEL, NAME |
Returns
None
XMARDS ID
Satellite Digital Audio Radio Service
Signature
XMARDS_ID ()
Parameter | Description |
---|---|
str | Value representing the XM SDARS value of the satellite device. |
Returns
None
XM CATEGORY NAME CHANGE
Displays current station name.
Signature
XM_CATEGORY_NAME_CHANGE ()
Parameter | Description |
---|---|
num | Channel |
str | Channel name |
Returns
None
XM GET AVAILABLE CHANNELS
Displays available XM channels.
Signature
XM_GET_AVAILABLE_CHANNELS ()
Parameter | Description |
---|---|
num | MAP HALF: 1 is used for channels 0-127. 0 is used for channels 128 - 255. |
Returns
None
Example
00000000000000000000000000000001 indicates that channel 0 (or 128) is the only channel available. 00000000000000000000000000000002 indicates that channel 1 (or 129) is the only channel available. 00000000000000000000000000000003 indicates that channels 0 & 1 (or 128 & 129) are the only channels available. 00000000000000000000000000000004 indicates that channel 2 (or 130) is the only channel available. 00000000000000000000000000000005 indicates that channels 0 & 2 (or 128 & 130) are the only channels available. 00000000000000000000000000000006 indicates that channels 1 & 2 (or 129 & 130) are the only channels available. 00000000000000000000000000000007 indicates that channels 0, 1 & 2 (or 128, 129 & 130) are the only channels available. 00000000000000000000000000000008 indicates that channel 3 (or 131) is the only channel available. 00000000000000000000000000000009 indicates that channels 0 & 3 (or 128 & 131) are the only channels available. 0000000000000000000000000000000A indicates that channels 1 & 3 (or 129 & 131) are the only channels available. 0000000000000000000000000000000B indicates that channels 0, 1 & 3 (or 128, 129 & 131) are the only channels available. 0000000000000000000000000000000C indicates that channels 2 & 3 (or 130 & 131) are the only channels available. 0000000000000000000000000000000D indicates that channels 0, 2 & 3 (or 128, 130 & 131) are the only channels available. 0000000000000000000000000000000E indicates that channels 1, 2 & 3 (or 129, 130 & 131) are the only channels available. 0000000000000000000000000000000F indicates that channels 0, 1, 2 & 3 (or 128, 129, 130 & 131) are the only channels available.
XM GET CHANNEL DETAILS CHANGED
Displays current channel details.
Signature
XM_GET_CHANNEL_DETAILS_CHANGED ()
Parameter | Description |
---|---|
num | Channel |
str | Channel name |
Returns
None
Audio Output Bindings and Proxy Events
Note: Audio Output binding ID values defined in drivers written in conjunction with this Proxy must start with a binding value of 4000. The acceptable range for Audio Outputs is 4000 - 4999. However, if the first output binding ID value is not 4000, issues with Proxy Events firing correctly can be encountered.
For a list of valid Binding ID values please see the Connections section of the DriverWorks Fundamentals Guide.
TV Capabilities
has audio
Television is capable of producing audio.
Signature
<has_audio></has_audio>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_audio>true</has_audio>
</capabilities>
has discrete balance control
Capable of directly specifying a balance setting.
Signature
<has_discrete_balance_control></has_discrete_balance_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_balance_control>true</has_discrete_balance_control>
</capabilities>
has discrete bass control
Capable of directly specifying a bass setting.
Signature
<has_discrete_bass_control></has_discrete_bass_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_bass_control>true</has_discrete_bass_control>
</capabilities>
has discrete channel select
Capability of direcretly selecting specified channel.
Signature
<has_discrete_channel_select></has_discrete_ channel_select>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_channel_select>true</has_discrete_channel_select>
</capabilities>
has discrete input select
Capability of directly selecting specified input.
Signature
<has_discrete_input_select></has_discrete_input_select>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_input_select>true</has_discrete_input_select>
</capabilities>
has discrete loudness control
Capable of directly specifying a loudness setting.
Signature
<has_discrete_loudness_control></has_discrete_loudness_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_loudness_control>true</has_discrete_loudness_control>
</capabilities>
has discrete mute control
Capable of directly specifying mute ON or OFF setting.
Signature
<has_discrete_ mute_control></has_discrete_ mute_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_mute_control>true</has_discrete_mute_control>
</capabilities>
has discrete treble control
Capable of directly specifying a treble setting.
Signature
<has_discrete_treble_control></has_discrete_treble_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_treble_control>true</has_discrete_treble_control>
</capabilities>
has discrete volume control
Capable of directly specifying a volume setting.
Signature
<has_discrete_volume_control></has_discrete_volume_control>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_discrete_volume_control>true</has_discrete_volume_control>
</capabilities>
requires channel after input
When set to True, the TV proxy will first switch the input and then select the channel. It is recommended that this capability be set to True.
Signature
<requires_channel_after_input></requires_channel_after_input>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<requires_channel_after_input>true</requires_channel_after_input>
</capabilities>
Dynamic Transport Controls in Navigator
Introduction
Beginning with O.S. 3.2.3, AV drivers have the ability to define which transport controls are displayed on Navigators. This includes which buttons appear on the Button Bar as well as the Media Dashboard.
This enhancement allows for the appropriate transport controls being displayed for each AV device. This is accomplished using the driver’s Capabilities, Variables and several Proxy Commands.
Transport Controls and Driver XML
To designate which transport controls appear on Navigators, the driver’s capabilities XML needs to contain a new<transports></transports>
section. Within the transports XML is a <supported></supported
tag. The supported tag lists the default supported transports for the driver. Note that there is a fixed set of "transports" that can be included in the supported tag. These include:
- PLAY
- PAUSE
- STOP
- SCAN_FWD
- SCAN_REV
- SKIP_FWD
- SKIP_REV
- RECORD
- PG_UP
- PG_DOWN
- PRG_BTNS
- KEYPAD
- CH_UP_DN
- DPAD
The transport controls XML in the example to the right contains the full set of possible transports. A driver can support all of these or a subset of these transports.
<capabilities>
<transports>
<supported>
PLAY, PAUSE, STOP, SCAN_FWD, SCAN_REV, SKIP_FWD, SKIP_REV,
RECORD, PG_UP, PG_DOWN, PRG_BTNS, KEYPAD, CH_UP_DN, DPAD
</supported>
</transports>
</capabilities>
Button Bar and Driver XML
To designate which transport control buttons appear on the Button Bar, the transports capabilities XML needs to include a <button_bar></button_bar
tag.
Within the button bar XML is a <buttons></buttons>
tag. This tag contains the buttons that will display in the button bar. Each button is defined further in the XML with a <button></button>
tag that includes an id, name, command, type.
Element | Description |
---|---|
id | Identification used for the button. For example: PLAY. This id value is important as it used by a corresponding Proxy Variable to identify this button. |
name | Name used for the button. For example: Play. This text will be displayed in the button if no alternative icon is defined. |
command | The command that is sent to the Room or Proxy. For example: PLAY. |
type | Whether the command is sent to the Room or the Proxy. Values include ROOM or PROXY. |
`<capabilities>
` <transports>
` <button_bar>
` <buttons>
` <button>
` <id>PLAY</id>
` <name>Play</name>
` <command>PLAY</command>
` <type>PROXY</type>
` </button>
` ...
` </buttons>
` <default_buttons>GUIDE, MENU, CANCEL, INFO></default_buttons>
` <button_bar>
` ...
` </transports>
` ...
`</capabilities>
Note the <default_buttons></default_buttons>
XML in the example to the right. This tag can contain up to eight default buttons in a comma separated list.
Example image of the Controls in the Button Bar:
Media Dashboard and Driver XML
The ability to define what transport controls display on the Media Dashboard is supported. The Media Dashboard is shown when Navigators are displaying a single line "dashboard" view of transport controls. This requires the addition of a <dashboard></dashboard>
tag to the transports XML section. Note that Media Dashboard buttons are always shown using an icon. See below for more information.
<capabilities>
<transports>
<dashboard>
<buttons>
<button>
<id>PLAY</id>
<icon>http://sampleiconURL.com</icon>
<name>Play</name>
<command>PLAY</command>
<type>PROXY</type>
</button>
...
</buttons>
<default_large>SCAN_REV, PLAY, PAUSE, SSCAN_FWD</default_large>
<default_small>SCAN_REV, PLAY, PAUSE, SCAN_FWD</default_small>
</dashboard>
...
</transports>
...
</capabilities>
Note the use of the default_large and default_small XML tags in the example to the right:
<default_large>
- A comma separated list of ID values which match those defined in the button XML section. A maximum of 7 IDs are allowed. default_large is meant for large user interfaces such as tablets.
<default_small>
- A comma separated list of ID values which match those defined in the button XML section. A maximum of 5 IDs are allowed. default_small is meant for smaller user interfaces such as phones.
Referencing Built In Icons for the Media Dashboard
Media Dashboard button icons are typically accessed using the <icon></icon>
tag containing a URL. In addition to this, a small set of built in icons can be referenced by using the following “ID”s and omitting the "icon" tag from the definition:
Icon ID | Icon |
---|---|
PLAY | |
PAUSE | |
STOP | |
CH_UP | |
CH_DOWN | |
SCAN_FWD | |
SCAN_REV | |
SKIP_REV | |
SKIP_FWD | |
RECORD |
For example, to use the built in icon for PLAY, see the example to the right.
<buttons>
<button>
<id>PLAY</id>
<name>Play</name>
<command>PLAY</command>
<type>PROXY</type>
</button>
...
</buttons>
Example image of the Icons in the Media Dashboard:
Proxy Interface
The Proxy Interface is used to update the Variables defined in the next section.
A driver can update the currently enabled buttons and transports by making SendToProxy calls. SendToProxy does not necessarily need to be called unless the driver wants to change the buttons. If no changes from the provided default values in the Variables are needed; the Capability XML can simply be added to the driver and no other calls need to be made.
The SendToProxy call supports the use of the following parameters:
Parameter | Description |
---|---|
replace | Replaces the entire list with the given list which is a comma separated list of button IDs. |
add | Add a single button. A position is required for this parameter. |
remove | Remove a single button. |
Example
To update the large dashboard to show just buttons with the IDs of PLAY and PAUSE:
C4:SendToProxy(PROXY_BINDING, "UPDATE_TRANSPORTS_DASHBOARD_LARGE", {replace = "PLAY,PAUSE"})
Example
To update the small dashboard:
C4:SendToProxy(PROXY_BINDING, "UPDATE_TRANSPORTS_DASHBOARD_SMALL", {replace = "PLAY,PAUSE"})
Example
To update supported transport controls:
C4:SendToProxy(PROXY_BINDING, "UPDATE_TRANSPORTS_SUPPORTED", {replace = "PLAY,PAUSE"})
Example
To update button bar buttons:
C4:SendToProxy(PROXY_BINDING, "UPDATE_TRANSPORTS_BUTTONS", {replace = "PLAY,PAUSE"})
Example
To use the add parameter, a position must also be specified to add the button. This is a zero-based index. For example, to add PLAY at index 5:
C4:SendToProxy(PROXY_BINDING, "UPDATE_TRANSPORTS_DASHBOARD_LARGE", {add = "PLAY", position = 5})
Example
To remove the button with the ID of PLAY from the large dashboard:
C4:SendToProxy(PROXY_BINDING, "UPDATE_TRANSPORTS_DASHBOARD_LARGE", {remove = "PLAY"})
Proxy Variables
The following Variables are used by Navigators. These Variables, with the exception of TRANSPORTS_DEFINITION, are set by using the SendToProxy commands defined in the previous section. This causes the Proxy to set the Variable value. Navigators then read that Variable value which results in the correct transport elements being displayed on the Navigator interface.
Note that It is not necessary for your driver to write Variable values.
TRANSPORTS_DEFINITION
Allows Navigators to get new button definitions without a Navigator refresh call. This cannot be updated by using SendToProxy. It is updated through the driver’s Capabilities at initialization or a driver update.
Parameter | Description |
---|---|
XML | <transports></transports> xml from the driver capabilities. Defaults to the full <transports>..</transports> from the driver’s capabilities. Must be updated when the driver is updated. |
TRANSPORTS_BUTTONS
Parameter | Description |
---|---|
str | Comma separated list of button IDs referencing the buttons in the <button_bar > section of the capabilities. The UIs would show the buttons in the order specified here. For example: "GUIDE, MENU, CANCEL, INFO”. Defaults to the data set specified in <default_buttons></default_buttons> XML. |
TRANSPORTS_SUPPORTED
Parameter | Description |
---|---|
str | Comma separated list of transports. The UIs would show the buttons in the order specified here. Defaults to the data set specified in <supported></supported> XML. This can be updated to include different sets on the fly such as hiding play and showing pause or vice versa when play/pause state changes. |
TRANSPORTS_DASHBOARD_SMALL
Dashboard to use on smaller devices. The UIs would show the buttons in the order specified here.
Parameter | Description |
---|---|
str | Comma separated list of IDs. IDs reference button definitions in the media_dashboard capability. This should be 5 buttons or less. Defaults to the "default_small" set of transports in the media_dashboard: "SCAN_REV, PLAY, PAUSE, SCAN_FWD”. Defaults to the data set specified in <default_small></default_small> XML. |
TRANSPORTS_DASHBOARD_LARGE
Dashboard to use on larger devices.
Parameter | Description |
---|---|
str | Comma separated list of IDs. The IDs reference button definitions in the media_dashboard capability. This should be 7 buttons or less. Defaults to the "default_large" set of transports in the media_dashboard: "SKIP_REV, SCAN_REV, PLAY, PAUSE, SCAN_FWD, SKIP_FWD, RECORD”. Defaults to the data set specified in <default_large></default_large> XML. |
Blind Proxy Commands
SET LEVEL TARGET
Requests a blind to go to a different position.
Signature
SET_LEVEL_TARGET ()
Parameter | Description |
---|---|
Int | LEVEL TARGET - Integer of level that includes or is between level closed and level open (or level open + level closed secondary if level closed secondary is used). |
str | Level Target Name - String of the level value, such as Open, Closed, Secondary Closed |
Returns
None
SET MOVEMENT
Signature
SET_MOVEMENT ()
Parameter | Description |
---|---|
num | Enumeration of the blind movement. |
Returns
None
SET TYPE
Sets the blind type for the proxy.
Signature
SET_TYPE ()
Parameter | Description |
---|---|
INT | Enumeration of the blind type. |
Blind Types:
- 0 - Shade (Default as all coverings are considered to be Shades in the industry)
- 1 - Group
- 2 - Blind (Since a blind has slates/louvers that often move, a blind can be bound to a louver movement for association)
- 3 - Louver
- 4 - Curtain
- 5 - Shutter
- 6 - Blackout
- 7 - Opaque Glass
- 8 - Awning
- 9 - Door
- 10 - Screen
If set to -1 then a dealer can select a choice from a pulldown in the proxy property control. This Notification sends DataToUI of blind setup xml.
Returns
None
Blind Protocol Notifications
SET CAN STOP
Configuration Notification used by the protocol to inform the proxy if the blind supports stopping or not.
Signature
SET_CAN_STOP ()
Parameter | Description |
---|---|
bool | A boolean indicating if the blind control supports stop. |
Returns
None
Usage Note
The blind level will be sent to the UI using a DataToUI as set can_stop_click = boolean
. This Notification sends DataToUI of: blind_setup xml
.
SET HAS LEVEL
Configuration Notification used by the protocol to inform the proxy that the driver does or does not support level control.
Signature
SET_HAS_LEVEL ()
Parameter | Description |
---|---|
bool | HAS LEVEL - Boolean indicating if level support is available |
int | LEVEL OPEN - Open value. Blinds without feedback, regardless of stop support, should use 0. |
int | LEVEL CLOSED - Closed value. Blinds without feedback and without a stop function should use 1. Blinds without feedback but with stop function should use 2 as the value of 1 is to indicate an unknown state in the case that someone pressed up or down and then pressed stop before the blind was able to get to the target open/close state. |
bool | HAS LEVEL CLOSED SECONDARY - Boolean indicating if the blind is using a secondary closed level |
int | LEVEL CLOSED SECONDARY - Secondary closed value for blinds that can go both directions from an Open state. |
bool | LEVEL DISCRETE CONTROL - Boolean indicating if the blind control has discrete level input. If false a UI will only send the specific level_closed and level_open values to the proxy/driver but a driver can still notify of various levels interpolated based on movement duration/time in each direction or using another formula. If true, the driver should support all level values in the range. This could be discrete percentages or even include using level values of 1,2,3,... to execute presets but the driver should always be developed for close (level_close ) and open (level_open ) levels respectively. |
Returns
None
Usage Note
All parameters are optional. This Notification sends DataToUI of: blind_setup xml
.
SET MOVEMENT
Configuration Notification used by the protocol to inform the proxy that the driver is a particular blind movement function. If this is used, the proxy will disable the pull-down from being select-able by a dealer.
Signature
SET_MOVEMENT ()
Parameter | Description |
---|---|
int | Enumeration of the blind movement type. |
Movement Types:
- 0 - Open/Close (Open/Close)
- 1 - Up to Down (Up is open, Down is closed)
- 2 - Down to Up (Down is open, Up is Closed)
- 3 - Out to In (Out is Open, In is Open)
- 4 - Left to Right (Left is Open, Right is Closed)
- 5 - Right to Left (Right is Open, Left is Closed)
If set to -1 then a dealer can again select a choice from a pull-down in the proxy property control.
Returns
None
Usage Note
This Notification sends DataToUI of: blind_setup xml
.
SET TYPE
Configuration Notification used by the protocol to inform the proxy that the driver is a particular blind type. If this is used, the proxy will disable the pulldown from being selectable by a dealer.
Signature
SET_TYPE ()
Parameter | Description |
---|---|
int | Enumeration of the blind type. |
Movement Types:
- 0 - Shade (Default as all coverings are considered to be Shades in the industry)
- 1 - Group
- 2 - Blind (Since a blind has slates/louvers that often move, a blind can be bound to a louver movement for association)
- 3 - Louver
- 4 - Curtain
- 5 - Shutter
- 6 - Blackout
- 7 - Opaque Glass
- 8 - Awning
- 9 - Door
- 10 - Screen
If set to -1 then a dealer can select a choice from a pulldown in the proxy property control.
Returns
None
Usage Note
This Notification sends DataToUI of: blind_setup xml
.
STOPPED
State Notification used by the protocol to inform the proxy the blinds have stopped moving. A Stop notification that uses the optional LEVEL parameter should be used if a blind is moving and changes direction.
Signature
STOPPED ()
Parameter | Description |
---|---|
INT | LEVEL - Where the blinds stopped at. This will also set the general level as well to this value. |
Returns
None
Usage Note
This Notification Fires Director Event: Stop
level_final
is also updated to the value passed in through the level parameter.
Sends DataToUI "Stopped" including: level
- The level it stopped at.
MOVING
State Notification Used by the protocol to inform the proxy the blinds have started to move.
Signature
MOVING ()
Parameter | Description |
---|---|
int | LEVEL TARGET - Integer of the target level that the blinds are currently expected to stop at. |
num | RAMP RATE - Number of milliseconds it is expected to take to get to the level_target . |
int | LEVEL (optional) - Integer of the level the blind started moving from. If not specified, the proxy assumes the last level sent by a STOPPED Notification. This optional parameter should be sent in the case the blind was moving to a level but is interrupted/commanded to go to a different level. Without specifying this parameter in an interruption case, Toggle on UIs and UI display of blind movement and direction will be inaccurate. Drivers might need to do a STOP or GET for hardware position before the blind direction is commanded to go to the new position in order to obtain an accurate LEVEL for this value of where the blind was before the new movement began. |
Returns
None
Usage Note
This Notification Fires Director Event: Moving. Sends DataToUI: "Moving" including:
level
- Where the blind is starting from.level_target
- Where the blind is going to.ramp_rate
- The number of milliseconds it will take the blind to reach this position.
Blind Capabilities
can stop
Capability to stop movement of blinds
Signature
<can_stop></can_stop>
Parameter | Description |
---|---|
bool | True/False |
Usage Note
This capability was delivered pre-2.9.0. It is still supported by the latest version of the proxy for drivers that do not have the has_level capbility
defined.
Example
<capabilities>
<can_stop>true</can_stop>
</capabilities>
driver handles toggle
Capability to stop movement of blinds
Signature
<driver_handles_toggle></driver_handles_toggle>
Parameter | Description |
---|---|
bool | True/False |
Usage Note
This capability defaults to false. If false, the proxy will handle the toggle commands (which sends SET_LEVEL_TARGET
commands to the driver) or if true will send a LEVEL_TOGGLE
command to the driver so the driver can handle toggle as it desires.
We strongly recommend driver developers do not set this to true unless they absolutely must. Inconsistencies will occur if there are a mix of different driver types in a blind group. This will cause blinds to move differently when that group is commanded to toggle.
The blind proxy has logic that treats toggle the same as lights in Control4. If a blind is not moving but open any amount and someone presses toggle, the proxy will always send a SET_LEVEL_TARGET
of the closed value. This is due to the high possibility of someone entering a room and not knowing what direction the blind previously moved. However, if a blind is currently in motion and someone presses toggle, the proxy will send SET_LEVEL_TARGET
of the opposite direction that the blind is moving. This has the most natural use of toggle for real-world scenarios.
Example
<capabilities>
<driver_handles_toggle>true</driver_handles_toggle>
</capabilities>
has level
A boolean capability indicating if the blind can support reporting of discrete level values through Notifications. Default to False in order for older drivers to work.
Signature
<has_level></has_level>
Parameter | Description |
---|---|
bool | True/False |
Usage Note
If stop is not supported 0 is closed and 1 is open.
If stop is supported 0 is closed and 1 is somewhere in the middle depending when stop is pressed and 2 for open.
If a blind supports closed, 4 distinct middle levels, and open then 0 is closed, 1-4 would be the distinct levels, and 5 would be open.
Reporting discrete values is possible even if accepting discrete commands is not. Presets, timers, or other formulas can be used to report discrete values.
Example
<capabilities>
<has_level>true</has_level>
</capabilities>
level closed
Integer indicating the closed level of the control surface. Default to 0. This capability is only needed if has_level
is set and the value is other than 0. The value passed in this capability should be less than the value for level_open
.
Signature
<level_closed></level_closed>
Example
<capabilities\>
<level_closed>true</level_closed>
</capabilities>
level open
Integer indicating the open level of the control surface. Defaults to 1 and must be a higher integer than level_closed
. This capability is only needed if has_level
is set and the value is other than 1. For example, if the blind control supports adjustments every 5%, use 20.)
Signature
<level_open></level_open>
Example
<capabilities>
<level_open>1</level_open>
</capabilities>
level unknown
Integer indicating the level value that is to be specified as "unknown blind position". This is often, but not always, a value outside of the range of valid level values. This allows a driver that is initializing (not yet communicating with the blind), lost communication or for any other reason does not know the exact location of the blind to notify Director that the current level is unknown.
Signature
<level_unknown></level_unknown>
Example
<capabilities\>
<level_unknown>11</level_unknown>
</capabilities>
level discrete control
Boolean indicating if a control surface can be set by a COMMAND to something other than the level for closed and the level for open.
If false, a UI will only send level_closed and level_open integer values to the proxy/driver. However, a driver could still notify various levels interpolated based on movement and or duration/time in each direction or using another formula.
If true, the driver should support all level values in the level range. This could be discrete percentages or even include using level values of 1,2,3,... to execute presets. However, the min (0) and max (X) should always be programmed for close and open levels respectively.
Signature
<level_discrete_control</level_discrete_control>
Example
<capabilities>
<level_discrete_control>true</level_discrete_control>
</capabilities>
level closed secondary
Integer indicating how far past open `(levelopen) the blind can go to a second closed state. No default value exists for this capability and drivers should not include level_closed_secondary if a secondary closed position does not exist.
An example case is a full range louver with 11 positions (0% to 100% with 10% resolution) that has:
-
level_closed
of 0 level_open
of 5-
level_close_secondary
of 5
This gives the full close-open-close range of 0 to 10.
It should be noted that a generic "Close" UI or Composer Programming commands will send the level_closed
value for "Close". No default value exists for this capability and drivers should not include level_closed_secondary
if a secondary closed position does not exist.
Signature
<level_closed_secondary></level_closed_secondary>
Example
<capabilities>
<level_closed_secondary>11</level_closed_secondary>
</capabilities>
movement
Integer enumeration of a movement function for the blind. If set in the driver, the pull-down to select this value will be disabled in the proxy. For louvers and other slate type objects, the movement observed is that of the forward/leading (aka nearest to the person viewing the movement) edge of the louver or slate.
An example for a general louver would be where the primary closed position for the leading edge is Down, so Up (Middle) would be Open, and an optional Secondary Closed would be where the front edge is furthest up.
Signature
<movememt></movement>
Parameter | Description |
---|---|
0 | Open/Close (Open/Close) |
1 | Up to Down (Up is open, Down is closed) |
2 | Down to Up (Down is open, Up is Closed) |
3 | Out to In (Out is Open, In is Closed) |
4 | Left to Right (Left is Open, Right is Closed) |
5 | Right to Left (Right is Open, Left is Closed) |
Example
<capabilities>
<movememt>4</movememt>
</capabilities>
type
Integer representing the enumeration of a type of blind. If set in a driver, the pull-down to select this value will be disabled in the proxy
Signature
<type></type>
Parameter | Description |
---|---|
0 | Shade (Default as all coverings are considered to be Shades in the industry) |
1 | Group |
2 | Blind (Since a blind has slates/louvers that often move, a blind can be bound to a louver movement for association) |
3 | Louvre |
4 | Curtain |
5 | Shutter |
6 | Blackout |
7 | Opaque Glass |
8 | Awning |
9 | Door |
10 | Screen |
Example
<capabilities>
<type>6</type>
</capabilities>
Blind Events
The following Events are included with the 2.9.0 and later releases. The events fired by the proxy have to deal with changes in the blind itself. They include:
Open
(ID=1) - Fired when the blinds are opened from a closed state.
Fully Closed
(ID=2) - Fired when the blinds are fully closed from an open state.
Stopped
(ID=3) - Fired when the stop notify arrives at proxy.
Fully Opened
(4) - Fired when the blinds are at their full open state
Moving
(ID=5) - Fired when the moving notify arrives at proxy.
Level_Changed
(ID=6) - Fired when the level changes.
Level_Target_Changed
(ID=7) - Fired when the level end changes.
Opening
(ID=8) - Fired when the blinds begin to open
Closing
(ID=9) - Fired when the blinds begin to close.
Blind Variables
Registered Variables included in post 2.9.0 releases include:
Open
(ID=1000) - A boolean indicating if the control is open. Will be true when level is at level_open
.
Fully Closed
(ID=1001) - A boolean indicating if the control is fully closed. Will be true when level is at level_closed
.
Stopped
(ID=1002) - A boolean indicating if the blind is stopped. On drivers that support stop and extended functionality, drivers must send stopped = false when the hardware starts to move and stopped = true once it has finished moving.
Fully Open
(ID=1003) - A boolean indicating if the control is fully open.
Level
(ID=1004) - An integer indicating the blind level (level range is potentially unique per driver.
Target Level
(ID=1005) - An integer indicating the target blind level when the hardware is to stop. This is used to know if a driver is currently going up or down.
Type
(ID=1006) - A string representation of the enumeration for the type.
Movement
(ID=1007) - A string representation of the enumeration for the movement.
Opening
(ID= 1008) - A boolean indicating if the control is in the process of opening.
Closing
(ID= 1009) - A boolean indicating if the control is in the process of closing.
Camera Proxy Commands
CAMERA OFF
Command to turn camera image capturing off.
Signature
CAMERA_OFF ()
Parameters
None
Returns
None
CAMERA ON
Command to turn camera image capturing on.
Signature
CAMERA_ON ()
Parameters
None
Returns
None
CHECK ADDRESS PORT
Composer Pro command used in the Camera Test/Validation area. Verifies the camera Address and Port ID.
Signature
CHECK_ADDRESS_PORT ()
Parameter | Description |
---|---|
str | Address to verify. |
int | Port ID to verify. |
Returns
None
CHECK URL
Composer Pro command used in the Camera Test/Validation area. Verifies the camera 's URL components.
Signature
CHECK_URL ()
Parameter | Description |
---|---|
str | A Mode: SNAPSHOT, MJPEG OR H264 |
str | Address. The address to verify. |
int | Port ID to verify. |
str | Query. The path/query of the URL. |
Returns
None
GET MJPEG QUERY
Command that is initiated in Composer Pro and immediately returns a block of XML information. It returns the query string needed to create the URL for MJPEG server push request.
Signature
GET_MJPEG_QUERY ()
Parameter | Description |
---|---|
num | The desired resolution x-axis value. |
num | The desired resolution y-axis value. |
num | The delay in milliseconds between pushed frames |
str | Query. The path/query of the URL. |
Returns
XML: <mjpeg_query_string> url-query-string</mjpeg_query_string>
GET PROPERTIES
Command called once by a UI entity to learn how to access a camera. It returns a block of XML reporting the properties of the camera.
Signature
GET_PROPERTIES ()
Returns
<camera_properties>
<address >hostname or internet address</address>
<http_port>port</http_port>
<rtsp_port>port</rtsp_port>
<authentication_required>true or false</authentication_required>
<authentication_type>BASIC</authentication_type>
<username>~username~</username>
<password>password</password>
<publicly_accessible>true or false</publicly_accessible>
</camera_properties>
GET RTSP H264 QUERY STRING
Command that is initiated in Composer Pro and immediately returns a block of XML information. It returns the query string needed to create the URL for RTSP H264 stream request.
Signature
GET_RTSP_H264_QUERY ()
Parameter | Description |
---|---|
num | The desired resolution x-axis value. |
num | The desired resolution y-axis value. |
num | The delay in milliseconds between pushed frames |
str | Query. The path/query of the URL. |
Returns
XML: <rtsp_h264_query_string> url-query-string</rtsp_h264_query_string>
GET SNAPSHOT QUERY STRING
Command that is initiated in Composer Pro and immediately returns a block of XML information. It returns the query string needed to create the URL for HTTP snapshot request.
Signature
GET_SNAPSHOT_QUERY_STRING ()
Parameter | Description |
---|---|
SIZE_X | The desired resolution x-axis value. |
SIZE_Y | The desired resolution y-axis value. |
Returns
XML: <snapshot_query_string>url-query-string</snapshot_query_string>
HOME
Move the camera to its home position.
Signature
HOME ()
Parameters
None
Returns
None
MOVE TO
Have the camera move to location x and y within the specified window.
Signature
MOVE_TO ()
Parameter | Description |
---|---|
int | Width |
int | Height |
int | The desired x-axis value. |
int | The desired y-axis value. |
Returns
None
NIGHT MODE
Enable/disable night mode.
Signature
NIGHT_MODE ()
Parameter | Description |
---|---|
bool | True/False |
Returns
None
PAN LEFT
Pan to the left.
Signature
PAN_LEFT ()
Parameters
None
Returns
None
PAN RIGHT
Pan to the right.
Signature
PAN_RIGHT ()
Parameters
None
Returns
None
PAN SCAN
Have the camera execute a complete scan from left to right.
Signature
PAN_SCAN ()
Parameters
None
Returns
None
PRESET
Set the camera to preset location.
Signature
NIGHT_MODE ()
Parameter | Description |
---|---|
num | Index Unit. Valid values: 1 – n, where n is max preset defined by capabilities |
Returns
None
SET ADDRESS
Set the camera address.
Signature
SET_ADDRESS ()
Parameter | Description |
---|---|
STR | Camera Address |
Returns
None
SET AUTHENTICATION REQUIRED
Composer Pro command to set whether or not authentication is required
Signature
SET_AUTHENTICATION_REQUIRED ()
Parameter | Description |
---|---|
bool | True/False |
Returns
None
Usage Note
See the DriverWorks API documentation for URL Interface API: POST for Authentication information.
SET AUTHENTICATION TYPE
Composer Pro command to set whether or not authentication is required
Signature
SET_AUTHENTICATION_TYPE ()
Parameter | Description |
---|---|
str | BASIC or DIGEST |
Returns
None
Usage Note
Note that as of 2.5.3 only Basic Authentication is supported. See the DriverWorks API documentation for URL Interface API: POST for Authentication information.
SET USERNAME
Composer Pro command to set the Authentication username.
Signature
SET_USERNAME ()
Parameter | Description |
---|---|
str | Username |
Returns
None
Usage Note
See the DriverWorks API documentation for URL Interface API: POST for Authentication information.
SET HTTP PORT
Composer Pro command to set the HTTP Port
Signature
SET_HTTP_PORT ()
Parameter | Description |
---|---|
int | Port ID |
Returns
None
SET RSTP PORT
Composer Pro Command to set the Rapid Spanning Tree Protocol port.
Signature
SET_RSTP_PORT ()
Parameter | Description |
---|---|
int | Port ID |
Returns
None
SET PASSWORD
ComposerPro command to set the Authentication password.
Signature
SET_PASSWORD ()
Parameter | Description |
---|---|
str | Password |
Returns
None
SET PUBLICLY ACCESSIBLE
Composer Pro command to set whether or not the camera can be accessed from public Internet.
Signature
SET_PUBLICLY_ACCESSIBLE ()
Parameter | Description |
---|---|
bool | True/False |
Returns
None
SET SNAPSHOT REFRESH RATE
Sets image refresh rate in seconds.
Signature
SET_SNAPSHOT_REFRESH_RATE ()
Parameter | Description |
---|---|
num | Rate Unit in seconds. |
Returns
None
TILT DOWN
Tilt camera down.
Signature
TILT_DOWN ()
Parameters
None
Returns
None
TILT SCAN
Have the camera execute a complete scan from top to bottom.
Signature
TILT_SCAN ()
Parameters
None
Returns
None
TILT UP
Tilt camera down.
Signature
TILT_UP ()
Parameters
None
Returns
None
USE DEFAULTS
Command to use the camera's factory defaults as defined by the driver capabilities.
Signature
USE_DEFAULTS ()
Parameters
None
Returns
None
ZOOM IN
Zoom canera in.
Signature
ZOOM_IN ()
Parameters
None
Returns
None
ZOOM OUT
Zoom camera out.
Signature
ZOOM_OUT ()
Parameters
None
Returns
None
Camera Protocol Notifications
ADDRESS CHANGED
Notification that the camera's address has a changed. Sent from the API OnNetworkBindingChanged.
Signature
ADDRESS_CHANGED ()
Parameter | Description |
---|---|
str | New address value. |
Returns
None
HTTP PORT CHANGED
Notification that the HTTP port has changed. Used rarely but applicable in instances where the protocol driver sets the HTTP port.
Signature
HTTP_PORT_CHANGED ()
Parameters
None
Returns
None
HTTPS PORT CHANGED
Used to update the HTTPS port that will be used when constructing HTTPS URLs.
Signature
HTTPS_PORT_CHANGED ()
Parameter | Description |
---|---|
int | PORT - The new HTTPS port to be used. |
Returns
None
DYNAMIC CAPABILITY CHANGED
Used to Notify the Proxy that the driver would like to change a capabilities value. This is only applicable to capabilities denoted as "Yes" in the Dynamic Capabilities section of this Proxy’s Capabilities section.
Signature
DYNAMIC_CAPABILITY_CHANGED ()
Parameter | Description |
---|---|
str | Capability - Capability string as defined in the c4i/.c4z. The value of this parameter would be the value as denoted in the .c4i/.c4z as well. |
Returns
None
PROPERTY DEFAULTS
Notification sent from the protocol driver through ON DRIVER LATE INIT containing the camera's default properties
Signature
PROPERTY_DEFAULTS ()
Parameter | Description |
---|---|
num | HTTP Port. Default port is 80. |
num | RTSP Port. Default port is 554. |
bool | AUTHENTICATION_REQUIRED True/False. |
str | AUTHENTICATION_TYPE “BASIC” or “DIGEST”. |
str | Username - deafult_username |
str | Password - deafult_password |
Returns
None
USE HTTPS CHANGED
Used to update the proxy to tell it to generate HTTPS URLs instead of HTTP URLs.
Signature
USE_HTTPS_CHANGED ()
Parameter | Description |
---|---|
boolean | USE_HTTPS - A flag that indicates an HTTPS URL should be generated instead of an HTTP URL. |
Returns
None
Camera Properties
ADDRESS
The camera Hostname or Internet address. Displayed on the Camera Driver's Properties page in Composer Pro.
ASPECT RATIO
Allows for the setting of the desired aspect ratio for camera queries. Navigators use this value when sending a request to a camera. Displayed on the Camera Driver's Properties page in Composer Pro.
Populated by the defined:1 aspect_ratios_capability
.
ASPECT RATIO LIST
Comma-delimited list of possible aspect ratios that the camera supports. The values here are displayed on the Camera Driver's Properties page in Composer Pro.
AUTHENTICATIONREQUIRED
Established whether or not authentication is required. Displayed on the Camera Driver's Properties page in Composer Pro.
AUTHENTICATIONTYPE
The type of authentication: "BASIC" or "DIGEST" Displayed on the Camera Driver's Properties page in Composer Pro. Note that prior to O.S Release 2.5.3 only Basic Authentication was supported.
HTTP PORT
The camera’s HTTP port. Displayed on the Camera Driver's Properties page in Composer Pro.
PASSWORD
The password value displayed on the Camera Driver's Properties page in Composer Pro.
PUBLICLYACCESSIBLE
Can the camera be accessed on public Internet. Displayed on the Camera Driver's Properties page in Composer Pro.
RTSP PORT
The camera’s RTSP port to setup H.264 stream. Displayed on the Camera Driver's Properties page in Composer Pro.
SNAPSHOT REFRESH RATE
The amount of time in seconds for the camera to refresh its image signal. Displayed on the Camera Driver's Properties page in Composer Pro.
USERNAME
The username value. This is displayed on the Camera Driver's Properties page in Composer Pro.
Additional Camera Proxy Information
User Interfaces
The Installer may need to adjust camera configuration based on the performance that they’re seeing at the installation. Here are the Control4 user interfaces that display camera streams:
- T4 Touch Screen
- T3 Touch Screen
- iOS application
- Android application
- On Screen Display (OSD)
Codec
Control4 only supports h.264 over RTSP.
Resolution
1280x720 is supported across all devices currently.
Frame Rate
Frame rate and iFrame intervals will vary based on location and content. If the content is consistently changing, a low iframe interval is recommended as the iframe is updated more often. On Screen Display doesn’t support a high frame rate. It is important to understand that Frame Rate is dependent on both the Control4 system configuration and what the cameras are monitoring. Because of this, exact guidelines are difficult to provide. However, a base line configuration as shown below may provide a good starting point.
Camera Capabilities
address readonly
Defaults to false.
Signature
<address_readonly></address_readonly>
Example
<capabilities>
<address_readonly>false</address_readonly>
</capabilities>
aspect ratio
Comma-delimited list of possible aspect ratios that the camera supports. If this capabilities is not defined in the c4i/c4z file, it will default to ‘16x9,4x3’ for aspect_ratios
.
Signature
<aspect_ratio></aspect_ratio>
Example
<capabilities>
<aspect_ratio>false</aspect_ratio>
</capabilities>
default aspect ratio
The expected ratio that the camera will use at start up. The value in the default_aspect_ratio
capability should be one of the entries in the aspect_ratios
list. If this capabilities is not defined in the c4i/c4z file, it will default to 16x9.
Signature
<deafult_aspect_ratio></default_aspect_ratio>
Example
<capabilities>
<default_aspect_ratio>false</default_aspect_ratio>
</capabilities>
default authentication required
Defaults to false.
Signature
<default_authentication_required></default_authentication_required
Example
<capabilities>
<default_authentication_required>false</default_authentication_required>
</capabilities>
default authentication type
Defaults to BASIC.
Signature
<default_authentication_type></default_authentication_type>
Example
<capabilities>
<default_authentication_type>BASIC</default_authentication_type>
</capabilities>
default http port
Defaults to 80.
Signature
<default_http_port></default_http_port>
Example
<capabilities>
<default_http_port>80</default_http_port>
</capabilities>
default password
Defaults to “password”.
Signature
<default_password></default_password>
Example
<capabilities>
<default_password>80</default_password>
</capabilities>
default rtsp port
Defaults to 554.
Signature
<default_rtsp_port></default_rtsp_port>
Example
<capabilities>
<default_rtsp_port>554</default_rtsp_port>
</capabilities>
default username
Defaults to “username”.
Signature
<default_username></default_username>
Example
<capabilities>
<default_username>username</default_username>
</capabilities>
has pan
True/False. Default is False.
Signature
<has_pan></has_pan>
Example
<capabilities>
<has_pan>false</has_pan>
</capabilities>
has pan scan
True/False. Default is False.
Signature
<has_pan_scan></has_pan_scan>
Example
<capabilities>
<has_pan_scan>false</has_pan_scan>
</capabilities>
has tilt
True/False. Default is False.
Signature
<has_tilt></has_tilt>
Example
<capabilities>
<has_tilt>false</has_tilt>
</capabilities>
has tilt scan
True/False. Default is False.
Signature
<has_tilt_scan></has_tilt_scan>
Example
<capabilities>
<has_tilt_scan>false</has_tilt_scan>
</capabilities>
has zoom
True/False. Default is False.
Signature
<has_zoom></has_zoom>
Example
<capabilities>
<has_zoom>false</has_zoom>
</capabilities>
has home
True/False. Default is False.
Signature
<has_home></has_home>
Example
<capabilities>
<has_home>false</has_home>
</capabilities>
has night mode
True/False. Default is False.
Signature
<has_night_mode></has_night_mode>
Example
<capabilities>
<has_night_mode>false</has_night_mode>
</capabilities>
modes
Signature
<modes></modes>
Parameter | Description |
---|---|
str | SNAPSHOT – HTTP snapshot |
str | MJPEG– HTTP motion jpeg |
str | H264 – RTSP/(UDP)RTP H.264 |
str | H264I – RTSP/(TCP)RTP Interlaced H.264 |
Example
<capabilities>
<modes>MJPEG</modes>
</capabilities>
number presets
Signature
<number_presets></number_preets>
Parameter | Description |
---|---|
num | Number of Presets |
Usage Note
Default is 0. Note that Navigator devices will truncate this value to a number in which they support.
Example
<capabilities>
<number_presets>6</number_presets>
</capabilities>
show test url
Signature
<show_test_url></show_test_url>
Parameter | Description |
---|---|
bool | True/False |
Usage Note
Default is True.
Example
<capabilities>
<show_test_url>true</show_test_url>
</capabilities>
use http for h264
Signature
<use_http_for_h264> </use_http_for_h264>
Parameter | Description |
---|---|
bool | True/False |
Usage Note
Default is False.
Example
<capabilities>
<use_http_for_h264>true</use_http_for_h264>
</capabilities>
Fan Proxy Commands
ON
Turn the fan on to the designated preset level. Another possible behavior would be to turn it back on to the most recent on speed.
Signature
ON ()
Parameters
None
Returns
None
OFF
Turn the fan OFF.
Signature
OFF ()
Parameters
None
Returns
None
TOGGLE
If the fan is on, turn it off. If the fan is off, do the same behavior as the ON command.
Signature
TOGGLE ()
Parameters
None
Returns
None
DESIGNATE PRESET
Specifies which fan preset value should be the default one to go to when an ON or TOGGLE command is sent.
Signature
DESIGNATE_PRESET ()
Parameter | Description |
---|---|
num | PRESET valid values: 1 – N |
Returns
None
SET SPEED
Set the current speed of the fan to the designated level. Setting to 0 will turn the fan off.
Signature
SET_SPEED ()
Parameter | Description |
---|---|
num | SPEED valid values: 0 – N |
Returns
None
CYCLE SPEED UP
Bump the fan up to the next higher speed from its current setting. It would be up to the protocol driver to decide if it wraps or stops when we’re already at the highest speed.
Signature
CYCLE_SPEED_UP ()
Parameters
None
Returns
None
CYCLE SPEED DOWN
Bump the fan down to the next lower speed from its current setting. It would be up to the protocol driver to decide if it wraps or stops when the fan is currently off.
Signature
CYCLE_SPEED_DOWN ()
Parameters
None
Returns
None
SET DIRECTION
Tell the fan which direction to spin. This command would only be valid if the can_reverse
capability is set to true in the driver file.
Signature
SET_DIRECTION ()
Parameter | Description |
---|---|
str | FORWARD/REVERSE |
Returns
None
TOGGLE DIRECTION
Reverse the direction which the fan is currently spinning. This command would only be valid if the can_reverse
capability is set to true in the driver file.
Signature
TOGGLE_DIRECTION ()
Parameters
None
Returns
None
GET CURRENT STATE
Tell the protocol to report its current values. This wouldn’t be available through programming, but generated by the proxy to get its initial settings.
Signature
GET_CURRENT_STATE ()
Parameters
None
Returns
None
GET STATE
Command handled by the proxy driver. Immediately returns a block of XML information to the caller. Reports the current state of the device.
Signature
GET_STATE ()
Parameters
None
Returns
None
Example
<fan_state>
<current_speed>3</current_speed>
<is_reversed>false</is_reversed>
</fan_state>
GET SETUP
Command handled by the proxy driver. Immediately returns a block of XML information to the caller. Usually called just once by a UI entity to know how to setup the UI. This would report such things as how many settings the device has and what the name of those settings are.
Signature
GET_SETUP ()
Parameters
None
Returns
None
Example
<fan_setup>
<speeds_count>4</speeds_count>
<speed_names>Low,Low Medium,Medium High,High</speed_names>
<can_reverse>false</can_reverse>
<can_set_preset>true</can_set_preset>
<preset_speed>3</preset_speed>
</fan_setup>
Fan Protocol Notifications
CURRENT SPEED
Received from the protocol driver when the fan speed changes. This would also happen when the fan turned off because it would be set to speed 0.
Signature
CURRENT_SPEED ()
Parameter | Description |
---|---|
int | SPEED valid values: 0 - N |
Returns
None
DIRECTION
Received from the protocol driver when the fan direction changes.
Signature
DIRECTION ()
Parameter | Description |
---|---|
str | FORWARD/REVERSE |
Returns
None
PRESET SPEED
Received from the proxy when the preset speed changes.
Signature
PRESET_SPEED ()
Parameter | Description |
---|---|
int | SPEED valid values: 1 - N |
Returns
None
ON
Received from the protocol when the power goes from off to on. The proxy would assume that the fan just went to its preset speed. Would not be required, but could be used if the fan only has one speed.
Signature
ON ()
Parameters
None
Returns
None
OFF
Received from the protocol when the power goes from on to off. Would not be required, but could be used if the fan only has one speed.
Signature
OFF ()
Parameters
None
Returns
None
Fan Capabilities
can reverse
Signature
<can_reverse></can_reverse>
Parameter | Description |
---|---|
bool | TRUE/FALSE. Defaults to False. |
Example
<capabilities>
<can_reverse>true</can_reverse>
</capabilities>
can set preset
Signature
<can_set_preset></can_set_preset>
Parameter | Description |
---|---|
bool | TRUE/FALSE. Defaults to False. |
Example
<capabilities>
<can_set_preset>true</an_set_preset>
</capabilities>
discrete levels
Signature
<discrete_levels></discrete_levels>
Parameter | Description |
---|---|
num | 0 to N. Defaults to 1. A count of 0 would mean that the speeds are analog rather than discreet. |
Example
<capabilities>
<discrete_levels>1</discrete_levels>
</capabilities>
preset speed
Signature
<preset_speed></preset_speed>
Parameter | Description |
---|---|
num | 1 to N. Defaults to the highest available speed. |
Example
<capabilities>
<preset_speed>1</preset_speed>
</capabilities>
speed names
Signature
<speed_names></speed_names>
Parameter | Description |
---|---|
num | Default for 1 is “On” |
num | Default for 2 is “Low,High” |
num | Default for 3 is “Low,Medium,High” |
num | Default for 4 is “Low,Medium Low,Medium High,High” |
num | Default for 5 is “Low,Medium Low,Medium,Medium High,High” |
num | Default for >5 is ““Level 1,Level2, … Level N” |
Example
<capabilities>
<speed_names>3</speed_names>
</capabilities>
Fan Conditionals
Is On
Parameters
None
Returns
Returns true if the fan is on at any speed.
Is Off
Parameters
None
Returns
Returns true if the fan is off.
Current Speed Equal/NotEqual
Parameter | Description |
---|---|
num | SPEED value |
Returns
True if the current speed is equal to (or not equal) to the reference number
Is Reversed
Parameters
None
Returns
Return true if the fan is spinning in reverse. This would only be available if the can_reverse
capability is set to true in the driver file.
Fan Events
Fan Events
The following Events are supported by the Fan Proxy. The events fired by the proxy have to deal with changes in the fan itself. They include:
turned_on
- Fired when the power goes from off to on.
turned_off
- Fired when the power goes from on to off.
speed_changed
- Fired when the speed number changes. Since turning on or off also involves a change of speed this would also fire when the fan turns on or off.
direction_changed
- Fired when the fan spin direction changes. This would only be available if the can_reverse
capability is set to true in the driver file.
Fan Variables
Fan Variables
The following Variables are supported by the Fan Proxy. They include:
Is On - Boolean: Read/Write
Current Selected Speed - Unsigned Long: Read/Write
Is Reversed - Boolean: Read/Write
Current Preset- Unsigned Long: Read/Write
Intercom Proxy Best Practices
OVERVIEW
Overview The Intercom Proxy interface is defined in terms of Commands, Requests and Notifications, each of which are described in this section of the proxy and Protocol Guide.
Intercom Proxy Commands are issued by a proxy consumer and may or may not result in an asynchronous notification in response. Commands typically change state of the Intercom Proxy, or other components of the intercom architecture.
Intercom Proxy Requests are issued from a proxy consumer with the expectation of getting a response from the protocol. Requests do not change state of the intercom proxy or any other component of the architecture. Notifications are sent from the intercom proxy to the intercom consumer asynchronously, and indicate a state change in the intercom proxy or one of its related architecture components.
All communication through the proxy interface is asynchronous. Even request responses, such as getting a list of known intercom devices, are returned asynchronously with respect to the request for that data.
Storing Session IDs
Many intercom API commands and requests require sessionId as an input parameter. The value for this parameter is provided by the intercom proxy in response to issuing a START_CALL
command, and is included in the resulting OUTGOING_CALL
and INCOMING_CALL
notifications. The intercom proxy consumer is responsible for storing the sessionId returned with these notifications for use in subsequent commands and requests.
Using the RemoteAor Property
When the “remoteAor” parameter is used in a notification or command, the value is always the address of record of the other intercom device participating in an intercom call. For example, consider that intercom device A has address of record of “sip-user-A@192.168.1.123” and intercom device B has an address of record of “sip-user-B@192.168.1.123”. Intercom device A initiates a call with intercom device B, which results in an INCOMING_CALL
notification on intercom device B. When intercom device B issues the ACCEPT_CALL
command, which takes remoteAor as a parameter, intercom device B should use “sip-user-A@192.168.1.123” (the address of record of intercom device A, or the initiator) as the value of this parameter. Likewise, when intercom device A receives the CALL_ACCEPTED
notification, it will contain a remoteAor property that has the value of the address of record of intercom device B, or “sip-user-B@192.168.1.123”.
Intercom Proxy Settings
Exclude from Navigator
This setting is used to control whether or not an intercom endpoint is displayed on the Navigator Landing Page. It can be used to hide endpoints from the user interface so that they can only be accessed from programming.
Do Not Disturb
This setting is used to control whether or not an intercom endpoint can receive incoming calls; it has no effect on the endpoint’s ability to make an outgoing call.
Auto Answer
This setting is used to control whether or not an intercom endpoint automatically answers incoming calls.
Send Video
This setting is used to control whether or not an intercom endpoint automatically sends video when it starts or receives a call; if the has_camera
capability is false, this setting has no effect.
Monitor Mode
This setting is used to control whether or not an intercom endpoint is in monitor mode; a monitor mode call works like a baby monitor; it will quietly auto answer the incoming call on the receiver's (monitored) endpoint, the initiator's (monitoring) endpoint is automatically muted so that there is no transmission of sound to the monitored endpoint. The initiator can un-mute the call anytime two way communications are needed. Endpoints with monitor enabled will not receive broadcast calls, even if they are specified in the call group used for the broadcast.
Monitor mode also has a feature that allows the call to be taken over by different endpoint without having to end the original call. This feature is allows the user to continue to monitor a particular endpoint as they move from one room to another.
Ringer Volume
This setting is used to control the ringer volume level of an intercom endpoint.
Speaker Volume
This setting is used to control the speaker volume level of an intercom endpoint.
Microphone Gain
This setting is used to control microphone gain level of an intercom endpoint. Control4 intercom endpoints do not support microphone gain adjustments; this setting is provided for 3rd party use.
Show Main Video
This setting is used to control whether or not an intercom endpoint will display the main video window when the endpoint is in a call. If the has_camera
capability is false, this setting has no effect.
Show Mirror Video
This setting is used to control whether or not an intercom endpoint will display the mirror video window when the endpoint is in a call. If the has_camera
capability is false, this setting has no effect.
Camera Enabled
This setting is used to control whether or not an intercom endpoint’s camera will be used when the endpoint is in a call; if the has_camera
capability is false, this setting has no effect.
AEC Enabled
This setting is used to control whether or not an intercom endpoint will use conservative auto echo cancelation (AEC) when the endpoint is in a call.
If the can_set_aec
capability is false, this setting has no effect.
Play Door Chime
This setting is used to control whether or not an intercom endpoint will use the door chime sound effect when a call is received from a door station. If this setting is disabled the endpoint will ring normally when a door station call is received.
Intercom Call Commands
ACCEPT CALL
This command may be issued by the receiver of a call invitation (i.e. an INCOMING_CALL notification
) and causes the call associated with the given session id to be accepted. This command will result in a CALL_ACCEPTED
notification being sent to both the initiator and the receiver of the call.
Signature
ACCEPT_CALL ()
Parameter | Description |
---|---|
num | DEVICE_ID - The proxy ID of the caller |
num | REMOTE_DEVICE - The proxy ID of the callee |
num | SESSION_ID - The session ID of the call |
num | AUDIO - The requested audio cap for the call. |
num | VIDEO - The requested video cap for the call. |
Returns
None
END CALL
This command can be issued by either the initiator or receiver and causes the indicated session to be ended. This command will result in a CALL_ENDED
notification being sent to both the initiator and the receiver of the call. For broadcast calls, when the caller ends the call the remoteAor should be set to the value “broadcast” (without the quotes)
Signature
END_CALL ()
Parameter | Description |
---|---|
num | DEVICE_ID - The proxy ID of the caller |
num | REMOTE_DEVICE - The proxy ID of the callee |
num | SESSION_ID - The session ID of the call |
Returns
None
MUTE CALL
This command can be issued by either the initiator or receiver; the endpoint of the issuer will be muted or un-muted, depending on the value of the flag
Signature
MUTE_CALL ()
Parameter | Description |
---|---|
bool | muteAudio - A Boolean flag indicating whether to mute or un-mute the indicated session. (0=false, 1=true) |
Returns
None
Example
<MUTE_CALL>
<muteAudio>[0]</muteAudio>
</MUTE_CALL>
PAUSE CALL
This command can be issued by either the initiator or receiver and causes the call associated with the indicated session to be placed on hold (or paused). This command will result in a CALL_PAUSED
notification being sent to both the initiator and the receiver of the call.
Signature
PAUSE_CALL ()
Parameter | Description |
---|---|
num | DEVICE_ID - The proxy ID of the caller |
num | REMOTE_DEVICE - The proxy ID of the callee |
num | SESSION_ID - The session ID of the call |
Returns
None
PLAY DOOR CHIME
This command can be issued by any device to play the currently defined door chime sound effect on that device.
Signature
PLAY_DOOR_CAHIME ()
Parameters
None
Returns
None
REJECT CALL
This command may be issued by the receiver of a call invitation and causes the call associated with the given session id to be rejected (ended). This command will result in a CALL_REJECTED
notification being sent to both the initiator and the receiver of the call.
Signature
REJECT_CALL ()
Parameter | Description |
---|---|
num | DEVICE_ID - The proxy ID of the caller |
num | REMOTE_DEVICE - The proxy ID of the callee |
num | SESSION_ID - The session ID of the call |
Returns
None
RESUME CALL
This command can be issued by an intercom device that has already paused the call associated with the indicated session id. This command will result in a CALL_RESUMED
notification being sent to both the initiator and the receiver of the call.
Signature
RESUME_CALL ()
Parameter | Description |
---|---|
num | DEVICE_ID - The proxy ID of the caller |
num | REMOTE_DEVICE - The proxy ID of the callee |
num | SESSION_ID - The session ID of the call |
Returns
None
START BROADCAST CALL
This command is issued by the initiator of a new broadcast call to a pre-defined group of intercom devices. The command will result in an OUTGOING_CALL
notification to the initiator and an INCOMING_CALL
notification to the receiver.
Signature
START_BROADCAST_CALL ()
Parameter | Description |
---|---|
num | DEVICE_ID - The proxy ID of the caller |
num | AUDIO - The requested audio cap for the call. |
num | VIDEO - The requested video cap for the call. |
num | GROUP_ID - The group ID of the group being called |
Returns
None
START CALL
Handles the start call command.
Signature
START_CALL ()
Parameter | Description |
---|---|
num | DEVICE_ID - The proxy ID of the caller |
num | REMOTE_DEVICE_ID - The proxy ID of the callee |
num | AUDIO - The requested audio cap for the call. |
num | VIDEO - The requested video cap for the call. |
num | RING - The ring parameter for the call |
Returns
None
START CUSTOM CALL
Handles the start monitor call command
Signature
START_CUSTOM_CALL ()
Parameter | Description |
---|---|
num | DEVICE_ID - The proxy ID of the caller |
num | AUDIO - The requested audio cap for the call. |
num | VIDEO - The requested video cap for the call. |
num | DEVICES - The devices in the custom call |
Returns
None
START MONITOR CALL
This command is issued by the initiator of a new monitoring call to a specified receiver. The receiver must be in monitor mode. The command will result in an OUTGOING_CALL
notification to the initiator and an INCOMING_CALL
notification to the receiver
Signature
START_MONITOR_CALL ()
Parameter | Description |
---|---|
num | DEVICE_ID - The proxy ID of the caller |
num | REMOTE_DEVICE_ID - The proxy ID of the callee |
num | AUDIO - The requested audio cap for the call. |
num | VIDEO - The requested video cap for the call. |
num | RING - The ring parameter for the call |
Returns
None
Intercom Call Requests
GET CUSTOM BUTTONS
The Intercom Proxy provides the ability to define two (2) custom buttons for each endpoint. These custom buttons will generate “on pressed” and “on released” events that can be used as programming triggers in Composer. This request is issued to obtain the custom button so that they can be displayed by the user interface. Detection of the “pressed” and “released” states of these buttons is the responsibility of the user interface displaying them, as well as the generation of the “pressed” and “released” notifications.
Signature
GET_CUSTOM_BUTTONS ()
Parameter | Description |
---|---|
num | The Proxy Device ID of the intercom endpoint whose custom button information is to be returned. |
Example
<GET_CUSTOM_BUTTONS>
<idDevice>[22]</idDevice>
</GET_CUSTOM_BUTTONS>
Response Parameters
Parameter | Description |
---|---|
id | The proxy device id of the intercom endpoint to which this request’s response is sent. This value is used to insure that the response is processed by proper device driver (i.e. the "requestor"). It is a number that is greater than or equal to zero (0). |
custom_button |
An xml record describing a single custom button to be displayed on the active session view in the UI. |
index | The serial index of the current custom button. (0 or 1) |
state | The default state of the current custom button. (0=off or 1=on) |
title | The display title (or label) of the current custom button. |
Response Prototype
<custom_buttons id=”[integer value]”>
<custom_button>
<index>[integer value]</index>
<state>[integer value]</state>
<title>[string value]</title>
</custom_button>
<custom_button>
<index>[integer value]</index>
<state>[integer value]</state>
<title>[string value]</title>
</custom_button>
</custom_buttons>
GET DEVICE
This request is issued to obtain the device properties of a specified intercom endpoint.
Signature
GET_DEVICE ()
Parameter | Description |
---|---|
num | The Proxy Device ID of the intercom endpoint whose custom button information is to be returned. |
Example
<GET_DEVICE>
<idDevice>[integer value]</idDevice>
</GET_DEVICE>
Response Parameters
Parameter | Description |
---|---|
proxyid | The proxy device id of the intercom endpoint for which the data was requested. It is a number that is greater than or equal to zero (0) |
protocolid | The protocol device id of the intercom endpoint for which the data was requested. It is a number that is greater than or equal to zero (0). |
hasCamera | A Boolean flag indicating whether or not the indicated intercom device has a camera. (0=false, 1=true) |
hasDisplay | A Boolean flag indicating whether or not the specified intercom endpoint has a display. (0=false, 1=true) |
isDoorStation | A Boolean flag indicating whether or not the indicated intercom device is a door station. (0=false, 1=true) |
displayName | The display name to be used when referring to the specified intercom endpoint in the system’s user interface (UI). |
sipUserName | The SIP user name for the specified intercom endpoint. |
sipAOR | The SIP address of record for the specified intercom endpoint. This takes the form of “sip user name@sip server IP address”. |
Response Prototype
<device_props id=”[integer value]”>
<proxyId>[integer value]</proxyId>
<protocolId>[integer value]</protocolId>
<hasCamera>[integer value]</hasCamera>
<hasDisplay>[integer value]</hasDisplay>
<hasButtons>[integer value]</hasButtons>
<isDoorStation>[integer value]</isDoorStation>
<displayName>[string value]</displayName>
<sipUserName>[string value]</sipUserName>
<sipAOR>[string value]</sipAOR>
</device_props>
GET DEVICE LIST
This request is issued to obtain the device properties of all of the intercom endpoints in the project.
Signature
GET_DEVICE_LIST ()
Parameters
None
Response Parameters
Parameter | Description |
---|---|
device_list |
A container for the collection of device property records. |
device_props |
A device_props record for each intercom endpoint in the project. See the response format for the GET_DEVICE . |
Response Prototype
<device_list>
<device_props id=”Id1”>
[see the GET_DEVICE response format]
</device_props>
<device_props id=”Id2”>
[see the GET_DEVICE response format]
</device_props>
<device_props id=”IdN”>
[see the GET_DEVICE response format]
</device_props>
</device_list>
GET SESSION
This request is issued to obtain the active session information for the requesting device.
Signature
GET_SESSION ()
Parameters
None
Response Parameters
Parameter | Description |
---|---|
ID | The proxy device id of the intercom endpoint to which this request’s response is sent. This value is used to insure that the response is processed by proper device driver (i.e. the "requestor"). It is a number that is greater than or equal to zero (0). |
sessionId | Numeric value indicating the session id for the active session. |
videoMode | Numeric value indicating video mode being used for this session by the specified endpoint. (0=transmit/receive, 1=transmit only, 2=receive only, 3=no video) |
audioMode | Numeric value indicating audio mode being used for this session by the specified endpoint. (0=transmit/receive, 1=transmit only, 2=receive only, 3=no audio) |
callerName | The device name of the intercom endpoint which initiated the call. |
callerDevId | The proxy device id of the intercom endpoint which initiated the call. |
calleeDevId | The proxy device id of the intercom endpoint which received the call. |
calleName | The device name of the intercom endpoint which received the call. |
Response Prototype
<device_session id=”[integer value]”>
<sessionId>[integer value]</sessionId>
<videoMode>[integer value]</videoMode>
<audioMode>[integer value]</audioMode>
<callerDevId>[integer value]</callerDevId>
<callerName>[string value]</callerName>
<calleeDevId>[integer value]</calleeDevId>
<calleeName>[string value]</calleeName>
</device_session>
GET SESSION LIST
This request is issued to obtain the session information of all of sessions on this endpoint.
Signature
GET_SESSION_LIST ()
Parameters
None
Response Parameters
Parameter | Description |
---|---|
session_list |
A container for the collection of session information records. |
device_session |
A device_props record for each intercom endpoint in the project. See the response format for the GET_SESSION . |
Response Prototype
<session_list>
<device_session id=”Id1”>
[see the GET_SESSION response format]
</device_session>
<device_session id=”Id2”>
[see the GET_SESSION response format]
</device_session>
<device_session id=”IdN”>
[see the GET_SESSION response format]
</device_session>
</session_list>
GET DEVICE
This request is issued to obtain the current timeout setting for manually answering a call. If the timeout duration expires before a call is answered, the call is automatically ended. This value is configured in the Video Intercom Agent in Composer.
Signature
GET_TIMEOUT ()
Parameter
None
Response Parameters
Parameter | Description |
---|---|
num | The duration (in seconds) for how long a new call should wait without being answered before the call is ended (number from 10 to 120). |
Response Prototype
<timeout>
<value>[integer value]</value>
</timeout>
Intercom Call Notifications
CALL ACCEPTED
This notification is issued when a call is accepted, it is sent to the initiator and the receiver involved in accepting the specified session.
Signature
CALL_ACCEPTED ()
Parameter | Description |
---|---|
num | The Device ID of the Proxy. |
num | The Session ID of the SIP session. |
num | value of the audio cap |
num | value of the video cap |
CALL ENDED
This notification is issued when a session is ended, it is sent to the initiator and all receiver(s) involved in the specified session.
Signature
CALL_ENDED ()
Parameter | Description |
---|---|
num | The Device ID of the Proxy. |
num | The Session ID of the SIP session. |
num | hang up type (how the call was ended |
CALL ENABLED CHANGE
Notification sent to the proxy when the camera enabled value of the intercom has changed
Signature
CALL_ENABLED_CHANGE ()
Parameter | Description |
---|---|
str | The new enabled value (true/false) of the intercom |
CALL PAUSED
This notification is issued when a session is paused, it is sent to the initiator and all receiver(s) involved in the specified session.
Signature
CALL_PAUSED ()
Parameter | Description |
---|---|
num | The Device ID of the Proxy. |
num | The Session ID of the SIP session. |
CALL REJECTED
This notification is issued when a call is rejected, it is sent to the initiator and the receiver involved in rejecting the specified session.
Signature
CALL_REJECTED ()
Parameter | Description |
---|---|
num | The Device ID of the Proxy. |
num | The Session ID of the SIP session. |
num | hang up type (how the call was ended |
CALL RESUMED
This notification is issued when a session is resumed, it is sent to the initiator and all receiver(s) involved in the specified session.
Signature
CALL_ RESUMED ()
Parameter | Description |
---|---|
num | The Device ID of the Proxy. |
num | The Session ID of the SIP session. |
INCOMING CALL
This notification is issued when a call invite is received; it is only sent to the receiver involved in the specified session.
Signature
INCOMING_CALL ()
Parameter | Description |
---|---|
num | The Device ID of the Proxy. |
num | The Session ID of the SIP session. |
num | Call type. |
num | remote_device_id = the proxy ID of the remote endpoint |
num | value of the audio cap |
num | value of the video cap |
OUTGOING CALL
This notification is issued when a call invite is SENT; it is only sent to the initiator involved in the specified session.
Signature
OUTGOING_CALL ()
Parameter | Description |
---|---|
num | The Device ID of the Proxy. |
num | The Session ID of the SIP session. |
num | Call type. |
num | remote_device_id = the proxy ID of the remote endpoint |
num | value of the audio cap |
num | value of the video cap |
Intercom State Commands
SET AUTO ANSWER
This command is issued to toggle the “Do Not Disturb” setting of the intercom. This command will result in an AUTO_ANSWER_CHANGED
notification to the indicated proxy consumer.
Signature
SET_AUTO_ANSWER ()
Parameter | Description |
---|---|
int | Boolean flag indicating the new state for this setting. (0=false, 1=true) |
Returns
None
Example
<SET_AUTO_ANSWER>
<autoAnswer>[0]</autoAnswer>
</SET_AUTO_ANSWER>
SET AEC ENABLE
This command is issued to enable or disable automatic echo cancellation on intercom devices that support this capability.
Signature
SET_AEC_ENABLE ()
Parameter | Description |
---|---|
int | A Boolean flag indicating whether enable or disable auto-echo cancellation. Enabled = 1, true, yes or on. Disabled = 0, false, no or off. |
Returns
None
Example
<SET_AEC_ENABLED>
<aecEnabled>[0]</aecEnabled>
</SET_AEC_ENABLED>
SET CAMERA ENABLE
This command is issued to enable or disable the camera on an intercom device.
Signature
SET_CAMERA_ENABLE ()
Parameter | Description |
---|---|
bool | Boolean flag indicating whether enable or disable the camera on an intercom device. Enabled = 1, true, yes or on. Disabled = 0, false, no or off. |
Returns
None
Example
<SET_CAMERA_ENABLED>
<cameraEnable>[true]</cameraEnabled>
</SET_CAMERA_ENABLED>
SET DND
This command is issued to toggle the “Do Not Disturb” setting of the intercom.
Signature
SET_DND ()
Parameter | Description |
---|---|
bool | Boolean flag indicating the new state for this setting. (0=false, 1=true) |
Returns
None
Example
<SET_DND>
<dndSettingd>[true]</dndSetting>
</SET_DND>
SET EXCLUDE FROM NAVIGATOR
This command is issued to toggle the visibility of the intercom endpoint in a proxy user interface. This command will result in an EXCLUDE_FROM_NAVIGATOR_CHANGED
notification to the proxy.
Signature
SET_EXCLUDE_FROM_NAVIGATOR ()
Parameter | Description |
---|---|
bool | Boolean flag indicating the new state for this setting. (0=false, 1=true) |
Returns
None
Example
<SET_EXCLUDE_FROM_NAV>
<excludeFromNav>[1]</excludeFromNav>
</SET_EXCLUDE_FROM_NAV>
SET SEND VIDEO
This command is issued by a proxy consumer to cause the state of the send video setting to change. This command will result in a SEND_VIDEO_CHANGED
Signature
SET_SEND_VIDEO ()
Parameter | Description |
---|---|
bool | Boolean flag indicating the new state for this setting. (0=false, 1=true) |
Returns
None
Example
<SET_SEND_VIDEO>
<sendVideo>[1]</sendVideo>
</SET_SEND_VIDEO>
SET MICROPHONE GAIN
This command is issued by a proxy consumer to cause the microphone gain for the indicated intercom device to change. This command will result in a MICROPHONE_GAIN_CHANGED
notification to the indicated device.
Signature
SET_MICROPHONE_GAIN ()
Parameter | Description |
---|---|
bool | Boolean flag indicating the new state for this setting. (0=false, 1=true) |
Returns
None
Example
<SET_MICROPHONE_GAIN>
<microphoneGain>[0]</microphoneGain>
</SET_MICROPHONE_GAIN>
SET MONITOR MODE
This command will result in a MONITOR_MODE_CHANGED
notification to the proxy consumer for the indicated intercom device.
Signature
SET_ MONITOR_MODE ()
Parameter | Description |
---|---|
bool | Boolean flag indicating the new state for this setting. (0=false, 1=true) |
Returns
None
Example
<SET_MONITOR_MODE>
<monitorMode>[0]</monitorMode>
</SET_MONITOR_MODE>
SET RINGER VOLUME
This command is issued to cause the ringer volume setting to be changed for the indicated intercom device. This command will result in a RINGER_VOLUME_CHANGED
notification to the proxy consumer for the indicated intercom device.
Signature
SET_RINGER_VOLUME E ()
Parameter | Description |
---|---|
NUM | A numeric value 0 - 100 indicating the new value for the ringer volume setting |
Returns
None
Example
<SET_RINGER_VOLUME>
<ringerVol>[1]</ringerVol>
</SET_RINGER_VOLUME>
SET SHOW MAIN VIDEO
This command is issued to cause the ringer volume setting to be changed for the indicated intercom device. This command will result in a RINGER_VOLUME_CHANGED
notification to the proxy consumer for the indicated intercom device.
Signature
SET_SHOW_MAIN_VIDEO ()
Parameter | Description |
---|---|
bool | Boolean flag indicating the new value for this setting. (0=false, 1=true) |
Returns
None
Example
<SET_SHOW_MAIN_VIDEO>
<showMainVideo>[0]</showMainVideo>
</SET_SHOW_MAIN_VIDEO
SET SIP PROXY IP
This command established the IP Address of the SIP Proxy.
Signature
SET_SIP_PROXY_IP ()
Parameter | Description |
---|---|
str | A string representing the IP address of the SIP server, such as “192.168.1.13” (without the quotes) |
Returns
None
Example
<SET_SIP_PROXY_IP>
<sipproxyip>[192.168.1.13]</sipproxyip>
</SET_SIP_PROXY_IP>
SET SPEAKER VOLUME
This command is issued by a proxy consumer to cause the current speaker volume setting to be changed. This command will result in a SPEAKER_VOLUME_CHANGED
notification to the proxy consumer for the indicated intercom device.
Signature
SET_SPEAKER_VOLUME ()
Parameter | Description |
---|---|
num | A numeric value 0-100 that indicates the new speaker volume setting |
Returns
None
Example
<SET_SPEAKER_VOLUME>
<speakerVol>[50]</speakerVol>
</SET_SPEAKER_VOLUME>
Intercom State Requests
GET CURRENT STATE
This request is issued to obtain the current device state of the intercom endpoint making the request.
Signature
GET_CURRENT_STATE ()
Request Parameters
None
Response Parameters
Parameter | Description |
---|---|
id | The proxy device id of the intercom endpoint to which this request’s response is sent. This value is used to insure that the response is processed by proper device driver (i.e. the requestor). It is a number that is greater than or equal to zero (0). |
num | Numeric value indicating the current state of the device. (0=not ready, 1=idle, 2=busy, 3=max calls) |
Response Prototype
<device_state proxyid=”[10]”>
<currentState>[2]</currentState>
</device_state>
GET STATE
This request is issued to obtain the device state of a specified intercom endpoint.
Signature
GET_STATE ()
Request Parameter | Description |
---|---|
idDevice | This request is issued to obtain the device state of a specified intercom endpoint. |
Request Prototype
See example to the right.
<GET_STATE>
<idDevice>[17]</idDevice>
</GET_STATE>
Response Parameters
Parameter | Description |
---|---|
id | The proxy device id of the intercom endpoint to which this request’s response is sent. This value is used to insure that the response is processed by proper device driver (i.e. the requestor). It is a number that is greater than or equal to zero (0). |
excludeFromNav | Boolean flag indicating the current state for this setting. (0=false, 1=true) |
playDoorChime | Boolean flag indicating the current value of this setting. (0=false, 1=true) |
dndSetting | Boolean flag indicating the current value of this setting. (0=false, 1=true) |
autoAnswer | Boolean flag indicating the current value of this setting. (0=false, 1=true) |
currrentState | Numeric value indicating the current state of the device. (0=not ready, 1=idle, 2=busy, 3=max calls) |
sendVideo | Boolean flag indicating the current value of this setting. (0=false, 1=true) |
monitorMode | Boolean flag indicating the current value of this setting. (0=false, 1=true) |
ringerVol | Numeric value indicating the current value of this setting. (0 to 100) |
speakerVol | Numeric value indicating the current value of this setting. (0 to 100) |
microphoneGain | Numeric value indicating the current value of this setting. (0 to 100) |
showMainVideo | Boolean flag indicating the current value of this setting. (0=false, 1=true) |
showMirrorVideo | Boolean flag indicating the current value of this setting. (0=false, 1=true) |
cameraEnabled | Boolean flag indicating the current value of this setting. (0=false, 1=true) |
aecEnabled | Boolean flag indicating the current value of this setting. (0=false, 1=true) |
Response Prototype
<device_state proxyid=”[integer value]”>
<excludeFromNav>[integer value]</excludeFromNav>
<playDoorChime>[integer value]</playDoorChime>
<dndSetting>[integer value]</dndSetting>
<autoAnswer>[integer value]</autoAnswer>
<currentState>[integer value]</currentState>
<sendVideo>[integer value]</sendVideo>
<monitorMode>[integer value]</monitorMode>
<ringerVol>[integer value]</ringerVol>
<speakerVol>[integer value]</speakerVol>
<microphoneGain>[integer value]</microphoneGain>
<showMainVideo>[integer value]</showMainVideo >
<showMirrorVideo>[integer value]</showMirrorVideo >
<cameraEnabled>[integer value]</cameraEnabled >
<aecEnabled>[integer value]</aecEnabled >
</device_state>
GET STATE LIST
This request is issued to obtain the device state of all of intercom endpoints in the project
Signature
GET_STATE_LIST ()
Request Prototype
See example to the right.
<state_list>
<device_state id=”Id1”>
See GET_STATE response format
</device_state>
<device_state id=”Id2”>
See GET_STATE response format
</device_state>
<device_state id=”IdN”>
See GET_STATE response format
</device_state>
</state_list>
Intercom State Notifications
AUTO ANSWER CHANGED
This notification is issued when a call is accepted, it is sent to the initiator and the receiver involved in accepting the specified session.
Signature
AUTO_ANSWER_CHANGED ()
Parameter | Description |
---|---|
int | The proxy device id of the intercom endpoint whose device state information is being returned |
int | autoAnswer: Boolean flag indicating the current state for this setting. (0=false, 1=true) |
Example
<device_state id=[10]>
<autoAnswer>[1]</autoAnswer>
</device_state>
CAMERA ENABLED CHANGED
This notification is issued by the proxy when the endpoint’s Camera Enabled setting has changed.
Signature
CAMERA_ENABLED_CHANGED ()
Parameter | Description |
---|---|
int | The proxy device id of the intercom endpoint whose device state information is being returned |
int | cameraEnabled: Boolean flag indicating the current state for this setting. (0=false, 1=true) |
Example
<device_state id=[10]>
<cameraEnabled>[1]</cameraEnabled>
</device_state>
CONSERVATIVE AEC CHANGED
Notification sent to the proxy when the conservative aec enabled value of the intercom has changed
Signature
CONSERVATIVE_AEC_CHANGED ()
Parameter | Description |
---|---|
bool | enabled - the new enabled value (true/false) of the intercom |
CURRENT STATE CHANGED
This notification is issued by the proxy when the endpoint’s current state has changed.
Signature
CURRENT_STATE__CHANGED ()
Parameter | Description |
---|---|
num | currentState - Numeric value indicating the current state of the device. (0=not ready, 1=idle, 2=busy, 3=max calls) |
Example
<device_state proxyid =[10]>
<currentState>[2]</currentState>
</device_state>
DEVICE STATE CHANGED
This notification is issued by the proxy when the endpoint’s current state has changed.
Signature
DEVICE_STATE__CHANGED ()
Parameter | Description |
---|---|
excludeFromNav | Boolean flag indicating the current state for this setting. (0=false, 1=true) |
playDoorChime | Boolean flag indicating the current value of this setting. (0=false, 1=true) |
dndSetting | Boolean flag indicating the current value of this setting. (0=false, 1=true) |
autoAnswer | Boolean flag indicating the current value of this setting. (0=false, 1=true) |
currentState | Numeric value indicating the current state of the device. (0=not ready, 1=idle, 2=busy, 3=max calls) |
sendVideo | Boolean flag indicating the current value of this setting. (0=false, 1=true) |
monitorMode | Boolean flag indicating the current value of this setting. (0=false, 1=true) |
ringerVol | Numeric value indicating the current value of this setting. (0 to 100) |
speakerVol | Numeric value indicating the current value of this setting. (0 to 100) |
microphoneGain | Numeric value indicating the current value of this setting. (0 to 100) |
showMainVideo | Boolean flag indicating the current value of this setting. (0=false, 1=true) |
showMirrorVideo | Boolean flag indicating the current value of this setting. (0=false, 1=true) |
cameraEnable | Boolean flag indicating the current value of this setting. (0=false, 1=true) |
aecEnabled | Boolean flag indicating the current value of this setting. (0=false, 1=true) |
Example
<DEVICE_STATE_CHANGED>
<excludeFromNav>[1]</excludeFromNav>
<playDoorChime>[0]</playDoorChime>
<dndSetting>[0]</dndSetting>
<autoAnswer>[0]</autoAnswer>
<sendVideo>[1]</sendVideo>
<currentState>[3]</currentState>
<monitorMode>[1]</monitorMode>
<ringerVol>[50]</ringerVol>
<speakerVol>[70]</speakerVol>
<microphoneGain>[35]</microphoneGain>
<showMainVideo>[1]</showMainVideo>
<showMirrorVideo>[1]</showMirrorVideo>
<cameraEnabled>[0]</cameraEnabled>
<aecEnabled>[1]</aecEnabled>
</DEVICE_STATE_CHANGED
DEVICE STATE CHANGED
This notification is issued by the proxy when the endpoint’s Do Not Disturb setting has changed.
Signature
DND_CHANGED ()
Parameter | Description |
---|---|
int | The proxy device id of the intercom endpoint whose device state information is being returned |
int | dndSetting: Boolean flag indicating the current state for this setting. (0=false, 1=true) |
Example
<device_state proxyid =[10]>
<dndSetting>[1]</dndSetting>
</device_state>
EXCLUDE FROM NAVIGATOR CHANGED
This notification is issued by the proxy when the endpoint’s Exclude from Navigator setting has changed.
Signature
EXCLUDE_FROM_NAVIGATOR_CHANGED ()
Parameter | Description |
---|---|
int | The proxy device id of the intercom endpoint whose device state information is being returned |
int | dndSetting: Boolean flag indicating the current state for this setting. (0=false, 1=true) |
Example
<device_state proxyid =[10]>
<excludeFromNav>[0]</excludeFromNav>
</device_state>
MICROPHONE GAIN CHANGED
This notification is issued by the proxy when the endpoint’s Microphone Gain setting has changed.
Signature
MICROPHONE_GAIN_CHANGED ()
Parameter | Description |
---|---|
int | The proxy device id of the intercom endpoint whose device state information is being returned |
int | microphoneGain: Numeric value indicating the current value of this setting. (0 to 100) |
Example
<device_state proxyid =[10]>
<microphoneGain>[0]</microphoneGain>
</device_state>
MONITOR MODE CHANGED
This notification is issued by the proxy when the endpoint’s Monitor Mode setting has changed.
Signature
MONITOR_MODE_CHANGED ()
Parameter | Description |
---|---|
int | The proxy device id of the intercom endpoint whose device state information is being returned |
monitorMode | Boolean flag indicating the current value of this setting. (0=false, 1=true) |
Example
<device_state proxyid =[10]>
<monitorMode>[0]</monitorMode>
</device_state>
MUTE AUDIO CHANGED
Notification sent to the proxy when the audio muted value of the intercom has changed.
Signature
MUTE_AUDIO_CHANGED ()
Parameter | Description |
---|---|
bool | enabled: = the new enabled value (true/false) of the intercom |
RINGER VOLUME CHANGED
This notification is issued by the proxy when the endpoint’s Monitor Mode setting has changed.
Signature
RINGER_VOLUME_CHANGED ()
Parameter | Description |
---|---|
int | The proxy device id of the intercom endpoint whose device state information is being returned |
ringerVol | Numeric value indicating the current value of this setting. (0 to 100) |
Example
<device_state proxyid =[10]>
<ringerVoL>[0]</ringerVoL>
</device_state>
SIP USERNAME CHANGED
Notification sent to the proxy when the SIP username value of the intercom has changed.
Signature
SIP_USERNAME_CHANGED ()
Parameter | Description |
---|---|
STR | username = the new username value of the intercom |
SEND VIDEO CHANGED
This notification is issued by the proxy when the endpoint’s Monitor Mode setting has changed.
Signature
SEND_VIDEO_CHANGED ()
Parameter | Description |
---|---|
int | The proxy device id of the intercom endpoint whose device state information is being returned |
BOOL | sendVideo: Boolean flag indicating the current state for this setting. (0=false, 1=true) |
Example
<device_state proxyid =[10]>
<sendVideo>[0]</sendVideo>
</device_state>
SPEAKER VOLUME CHANGED
This notification is issued by the proxy when the endpoint’s Speaker Volume setting has changed.
Signature
SPEAKER_VOLUME_CHANGED ()
Parameter | Description |
---|---|
int | The proxy device id of the intercom endpoint whose device state information is being returned |
num | speakerVol: Numeric indicating the current state for this setting. (0=false, 1=true) |
Example
<device_state proxyid =[10]>
<speakerVol>[0]</speakerVol>
</device_state>
USE CAMERA CHANGED
Notification sent to the proxy when the use camera value of the intercom has changed
Signature
USE_CAMERA_CHANGED ()
Parameter | Description |
---|---|
bool | enabled: = the new enabled value (true/false) of the intercom |
Intercom Call Group Commands
ADD DEVICE TO GROUP
This command is issued to add the specified intercom endpoint to the specified call group.
Signature
ADD_DEVICE_TO_GROUP ()
Parameter | Description |
---|---|
str | The name of the call group to which the specified endpoint should be added. |
num | The proxy id of the intercom endpoint that should be added to the call group. |
Returns
None
Example
ADD_DEVICE_TO_GROUP>
<name>[mydevice]</name>
<idDevice>[10]</idDevice>
</ADD_DEVICE_TO_GROUP>
DELETE DEVICE FROM GROUP
This command is issued to remove the specified intercom endpoint from the specified call group. Attempting to delete a device from the “All” group will result in a command failure.
Signature
DELETE_DEVICE_FROM_GROUP ()
Parameter | Description |
---|---|
str | The name of the call group to which the specified endpoint should be added. |
num | The proxy id of the intercom endpoint that should be added to the call group. |
Returns
None
Example
<DELETE_DEVICE_FROM_GROUP>
<name>[mydevice]</name>
<idDevice>[10]</idDevice>
</DELETE_DEVICE_FROM_GROUP>
DELETE GROUP
This command is issued to delete an intercom call group. Note that the “All” group cannot be deleted.
Signature
DELETE_GROUP ()
Parameter | Description |
---|---|
str | The name of the call group to which the specified endpoint should be added. |
Returns
None
Example
<DELETE_GROUP>
<name>[mydevice]</name>
</DELETE_GROUP>
CREATE GROUP
This command is issued to create a new intercom call group. Note that the text “All” is a reserved group name. The command will fail if this call is made with the group name “All”.
Signature
CREATE_GROUP ()
Parameter | Description |
---|---|
str | The name of the call group to which the specified endpoint should be added. |
Returns
None
Example
<CREATE_GROUP>
<name>[mydevice]</name>
</CREATE_GROUP>
EDIT GROUP
This command is issued to rename the specified intercom call group. Note that the name of the “All” group cannot be changed
Signature
EDIT_GROUP ()
Parameter | Description |
---|---|
str | The name of the call group to which the specified endpoint should be added. |
str | newName: The new name for the specified call group. |
Returns
None
Example
<EDIT_GROUP>
<name>[mydevice]</name>
<newName>[mynewdevice]</newName>
</EDIT_GROUP>
Intercom Call Group Requests
GET GROUP LIST
This request is issued to obtain the group list of all of intercom call groups in the project except for the “All” group.
Signature
GET_CUSTOM_BUTTONS ()
Request Parameter | Description |
---|---|
num | The group ID of the call group. |
str | The name of the call group. |
Example
<groups>
<group>
<id>[3]</id>
<name>[group one]</name>
</group>
<group>
<id>[4]</id>
<name>[group two]</name>
</group>
</groups>
Intercom Capabilites
audio codecs supported
This capability specifies the audio codecs supported by this device type. Its value is a comma delimited string. For example: “G711 ULAW, G711 ALAW”
Signature
<audio_codecs_supported></audio_codecs_supported>
Parameter | Description |
---|---|
str | Comma delimited string. (e.g. “G711 ULAW, G711 ALAW”) |
Example
<capabilities>
<audio_codecs_supported>G711 ULAW, G711 ALAW</audio_codecs_supported>
</capabilities>
video codecs supported
This capability specifies the video codecs supported by this device type. Its value is a comma delimited string. For example: “H263, H264”
Signature
<video_codecs_supported></video_codecs_supported>
Parameter | Description |
---|---|
str | Comma delimited string. (e.g. “H263, H264” ) |
Example
<capabilities>
<video_codecs_supported>GH263, H264</video_codecs_supported>
</capabilities>
has camera
This capability specifies whether this device type has a camera. Its value is a Boolean string. For example, “True” or “False”
Signature
<has_camera></has_camera>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_camera>True</has_camera>
</capabilities>
has display
This capability specifies whether this device type has a video display. Its value is a Boolean string. For example: “True” or “False”
Signature
<has_display></has_display>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_display>True</has_display>
</capabilities>
has buttons
This capability specifies whether this device type has custom buttons. Its value is a Boolean string. For example: “True” or “False”
Signature
<has_buttons></has_buttons>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<has_buttons>True</has_buttons>
</capabilities>
can set aec
This capability specifies whether this device type has conservative auto echo cancellation. Its value is a Boolean string. For example: “True” or “False”
Signature
<can_set_aec></can_set_aec>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<can_set_aec>True</can_set_aec>
</capabilities>
is doorstation
This capability specifies whether this device type is a door station. Its value is a Boolean string. For example: “True” or “False”
Signature
<is_doorstation></is_doorstation>
Parameter | Description |
---|---|
bool | True/False |
Example
<capabilities>
<is_doorstation>True</is_doorstation>
</capabilities>
Intercom Events
Intercom Events
The following Events are supported by the Intercom Proxy. They include:
Incoming Call
Fired when there is a new incoming call.
Outgoing Call
Fired when there is a new outgoing intercom call.
Call Setup
Fired when a new call is setup.
Call Accepted
Fired when an incoming call is accepted by the receiver.
Call Rejected
Fired when an incoming call is rejected by the receiver.
Call Started
Fired when there is new call session is started.
Call Ended
Fired when an existing call session is ended
Call Paused
Fired when an existing call session is paused.
Call Resumed
Fired when an existing call session is resumed.
Do Not Disturb Changed
Fired when the “Do Not Disturb” setting is changed.
Auto Answer Changed
Fired when the “Auto Answer” setting is changed.
Monitor Mode Changed
Fired when the “Monitoring” setting is changed.
Send Video Changed
Fired when the “Send Video” setting is changed.
Ringer Volume Changed
Fired when the “Ringer Volume” setting is changed.
Speaker Volume Changed
Fired when the “Speaker Volume” setting is changed.
Microphone Gain Changed
Fired when the “Microphone Gain” setting is changed
Custom Button N Pressed
Fired when the “Custom Button N” is pressed. (where N = 0 or 1)
Custom Button N Released
Fired when the “Custom Button N” is released. (where N = 0 or 1)
Intercom Conditionals
Intercom Conditionals
The following Conditionals are supported by the Intercom Proxy itself. They include:
Remote Name Matched
Returns true if there is an incoming/outgoing call to a specified endpoint.
Do Not Disturb
Returns true if “Do Not Disturb” is enabled on the current endpoint.
Auto Answer
Returns true if “Auto Answer” is enabled on the current endpoint.
Send Video
Returns true if “Send Video” is enabled on the current endpoint.
Monitor Mode
Returns true if “Monitoring” is enabled on the current endpoint.
In A Call
Returns true if there is an active session on the current endpoint.
Keypad Proxy Commands
Overview
This section describes describe the basic functionality of the Keypad Proxy. This proxy was introduced into the system in version 2.5.0, along with the gen3 lighting drivers. It is designed to be fairly generic, but there are a few capabilities that only Control4 keypads use such as track_previous_button
. It should also work for fixed multi-row keypads. Configurable multi-row keypads are not supported with this proxy.
DELETE KEYPAD BUTTON
Used to delete a specific button from the keypad
Signature
DELETE_KEYPAD_BUTTON ()
Parameter | Description |
---|---|
num | ID value of the button to be deleted |
Returns
None
KEYPAD ALL BUTTON COLOR
Used to set the color for all buttons on a keypad.
Signature
KEYPAD_ALL_BUTTON_COLOR ()
Parameter | Description |
---|---|
OFF_COLOR |
ID value of the button to be deleted |
ON_COLOR |
The new on/push color for the keypad |
CURRENT_COLOR |
The color the keypad should immediately go to |
Returns
None
KEYPAD BUTTON ACTION
Used to send remote commands to the keypad to have it act as if a button on the keypad was actually used.
Signature
KEYPAD_BUTTON_ACTION ()
Parameter | Description |
---|---|
ACTION | The action performed on the keypad: 0 = Release, 1 = Push, 2 = Click |
BUTTON ID | The ID of the button where the action is performed. |
Returns
None
KEYPAD BUTTON COLOR
Used to set the color for a specific button on a keypad.
Signature
KEYPAD_BUTTON_COLOR ()
Parameter | Description |
---|---|
OFF_COLOR |
ID value of the button to be deleted |
ON_COLOR |
The new on/push color for the keypad |
CURRENT_COLOR |
The color the keypad should immediately go to |
Returns
None
KEYPAD BUTTON INFO
Used to change the settings on a particular button.
Signature
KEYPAD_BUTTON_INFO ()
Parameter | Description |
---|---|
BUTTON ID | The ID of the button being changed |
NAME | The name of the button (optional) |
ON COLOR (string) | The on/press color for the button (optional) |
OFF COLOR (string) | The off/release color for the button (optional) |
ENGRAVING (string) | The engraved name for the button (optional) |
BUTTON BEHAVIOR (INT) | The behavior for the button (optional) |
LED BEHAVIOR (INT) | The LED behavior for the button (optional) |
STATE (bool) | Used to indicate which color the button should use. A value of true means use the on/push color, a value of false means use the off/release color. |
MATCH LED STATE | Similar to state, but should only be applied if the LED is tracking a bound device. |
Returns
None
FINISH
Used to send a finish value to the proxy. Only used if the custom_finishes
capability is set to true in the protocol driver
Valid values are:
- 0 = White
- 1 = Light Almond
- 2 = Ivory
- 3 = Brown
- 4 = Black
- 5 = Aluminum
- 6 = Snow White
- 7 = Biscuit
- 8 = Midnight Black
Signature
FINISH ()
Returns
None
NEW KEYPAD BUTTON
Used to create a new button on the keypad. This is sent to the protocol by the proxy when the proxy is loaded. Thus the protocol doesn't have to store all its buttons settings, the proxy will do it.
Signature
NEW_KEYPAD_BUTTON ()
Parameter | Description |
---|---|
BUTTON ID | The ID of the button being changed |
NAME | The name of the button (optional) |
ON COLOR (string) | The on/press color for the button (optional) |
OFF COLOR (string) | The off/release color for the button (optional) |
BUTTON BEHAVIOR (INT) | The behavior for the button (optional) |
LED BEHAVIOR (INT) | The LED behavior for the button (optional) |
SLOTS | The number of slots the button takes up on the keypad. |
Returns
None
SET TRACK PREV BUTTON
Indicates whether the keypad should track the previous button being used. This mainly for Control4 Configurable keypad devices (zigbee, wired, combo, etc)
Signature
SET_TRACK_PREV_BUTTON N ()
Parameter | Description |
---|---|
MODE | Boolean value. |
Returns
None
Keypad Protocol Notifications
BEHAVIOR NAME
Used to inform (or update) the proxy of a button behavior name
Signature
BEHAVIOR_NAME ()
Parameter | Description |
---|---|
num | BUTTON ID: The ID of the behavior to send when selected by the user. |
str | NAME: The string to display to the user for the behavior. |
Returns
None
CLICK COUNT
Used to inform the proxy that a button has been clicked multiple times. This is used by the proxy to fire the proper event (single, double, triple click, etc).
Signature
CLICK_COUNT ()
Parameter | Description |
---|---|
num | BUTTON ID: The ID of the button clicked by the user. |
num | COUNT: The number of times the button was clicked |
Returns
None
DELETE KEYPAD BUTTON
Used to inform the proxy that a button is being deleted
Signature
DELETE_KEYPAD_BUTTON ()
Parameter | Description |
---|---|
num | BUTTON ID: The ID of the button to be deleted. |
Returns
None
KEYPAD BUTTON ACTION
Used by the protocol to inform the proxy that some type of action occurred on a button. The proxy will then update colors, send the proper command to the bound device, etc.
Signature
KEYPAD_BUTTON_ACTION ()
Parameter | Description |
---|---|
num | BUTTON ID: The ID of the button to be deleted. |
NUM | ACTION: The action performed on the keypad: 0 = Release, 1 = Push, 2 = Click, 3 = Double Click, 4 = Triple Click |
Returns
None
KEYPAD ALL BUTTON COLOR
Used by the protocol to inform the proxy of a change in color for every button on the keypad.
Signature
KEYPAD_ALL_BUTTON_COLOR ()
Parameter | Description |
---|---|
str | ON COLOR: The new on color for the button in RGB hex string. |
str | OFF COLOR: The new off color for the button in RGB hex string. |
str | CURRENT COLOR: The new current color for the button in RGB hex string. |
str | COLOR: The new on and off color for the button in RGB hex string. |
Returns
None
KEYPAD BUTTON COLOR
This is used by the protocol to inform the proxy that is has been instructed to change the color of a button.
Signature
KEYPAD_BUTTON_COLOR ()
Parameter | Description |
---|---|
num | BUTTON ID: The ID of the button whose color is changing. |
str | ON COLOR: The new on color for the button in RGB hex string. |
str | OFF COLOR: The new off color for the button in RGB hex string. |
str | CURRENT COLOR: The new current color for the button in RGB hex string. |
str | COLOR: The new on and off color for the button in RGB hex string. |
Returns
None
KEYPAD BUTTON INFO
Used by the protocol to inform the proxy of a changed setting for a particular button. It can have multiple parameters, but the only required one is BUTTON_ID
.
Signature
KEYPAD_BUTTON_INFO ()
Parameter | Description |
---|---|
num | BUTTON ID: The ID of the button whose color is changing. |
str | NAME: The name of the button This will cause binding names to be updated. |
str | ENGRAVING: The engraving for the button. |
str | ON COLOR: The new on color for the button in RGB hex string. |
str | OFF COLOR: The new off color for the button in RGB hex string. |
str | CURRENT COLOR: The new current color for the button in RGB hex string. |
str | COLOR: The new on and off color for the button in RGB hex string. |
STATE | The current state of the button, so the proxy knows what color the button is using (state > 0 means on-color) |
LED BEHAVIOR | The assigned behavior of the LED associated with this button. |
BUTTON BEHAVIOR | The assigned behavior for this button. |
Returns
None
LED BEHAVIOR NAME
Used to inform (or update) the proxy of a LED's behavior name
Signature
LED_BEHAVIOR_NAME ()
Parameter | Description |
---|---|
num | BUTTON ID: The ID of the LED behavior to send when selected by the user. |
str | NAME: The name of the button This will cause binding names to be updated. |
Returns
None
NEW KEYPAD BUTTON
Used to inform the proxy about the existence of a new button on the keypad. If the specified button already exists, this notification will do nothing.
Signature
NEW_KEYPAD_BUTTON ()
Parameter | Description |
---|---|
num | BUTTON ID: The ID of the button whose color is changing. |
str | NAME: The name of the button This will cause binding names to be updated. |
str | ON COLOR: The new on color for the button in RGB hex string. |
str | OFF COLOR: The new off color for the button in RGB hex string. |
str | ENGRAVING: The engraving for the button. |
num | SLOTS: The size of the button. |
BUTTON BEHAVIOR | The assigned behavior for this button. |
LED BEHAVIOR | The assigned behavior of the LED associated with this button. |
bool | LOCK COLORS: - Whether the colors for this button should be locked in Composer Pro. TRUE/FALSE Note - The user will not be allowed to change them if True. |
Returns
None
ONLINE CHANGED
Used by the protocol to notify the proxy if the device is online or offline. The payload of the notify message is a boolean indicating true/false
Signature
ONLINE_CHANGED ()
Parameter
None
Returns
None
Advanced Lighting Scene Agent
Capabilities
Capabilities provide a way for protocol driver to tell an agent what functionality the driver and/or hardware has. Capabilities need to be defined in the drivers c4i or c4z configuration file or updated via a Dynamic Capabilities Changed Notify.
Only capacities that are different from the defaults need to be specified.
advanced_scene_support
Whether the device supports the full Advanced Lighting Scenes commands and API's. This capability is primarily useful for drivers that want to support multi-scene elements. Additionally, Zigbee and zWave devices can take advantage of broadcast packets to avoid each driver needing to send a unicast packet, as would be done with reduced_als_support.
If this capability is true, drivers must include full support of the following:
- Parsing and using XML received from the PUSH_SCENE command that is sent, when the device comes online, to know what the scene involvement is for the light.
- Support scenes with multiple elements.
- For performance, only sends one(1) level update Notify when load hardware is at final scene level. -- We highly recommend all existing and new drivers be moved over to the BRIGHTNESS TARGET API design for performance reasons and better UI tracking of level during ramping.
- The following ALS Commands:
- PUSH_SCENE
- ACTIVATE_SCENE
- RAMP_SCENE_UP
- RAMP_SCENE_DOWN
- STOP_SCENE_RAMP Optionally - These commands were used as workarounds for lights in early Advanced Lighting Scene agent times (pre 3.0.0) but are no longer needed, as long as the driver properly handles the PUSH_SCENE command changes.
- SYNC_SCENE
- SYNC_ALL_SCENES
Signature
<advanced_scene_support></advanced_scene_support>
Type
Boolean: defaults to false.
Dynamic Capability
No
Usage Note
If a driver is using the light v1 proxy and doesn't have either of the advanced_scene_support or reduced_als_support capabilities in its c4i file, the agent assumes that reduced_als_support is true. This allows existing 3rd party lights into advanced scenes. The v1 proxy was modified to abstract away the important differences from the protocol drivers. If a 3rd party driver does want full scene support, it must use the Light V2 proxy.
If any lights have full ALS support then only the "New" broadcast MIB is sent, otherwise the older ZCL MIB is sent, as according to logic in ALS "activate" function.
reduced_als_support
If the advanced_scene_support capability is false, a driver can use this reduced_als_support capability for most Advanced Lighting Scene support and inclusion. Most drivers will find this sufficient for ALS support and using this option greatly reduces development time and complexity for driver developers, as less than 1% of Control4 systems have implemented multi-element scenes. Specifying this option will cause ALS to send individual SET_BRIGHTNESS_TARGET and SET_COLOR_TARGET commands to a driver when a scene is activated. This means drivers do not have to implement PUSH_SCENE, ACTIVATE_SCENE, SYNC_SCENE, SCENE_ALL_SCENES, manage XML table lookups, or multi-element scenes that advanced_scene_support=true does require.
The device will be allowed into ALS scenes, but with the following limitations:
- No Multi Element support
- No Flash Support
If this capability is true, drivers must include support for the following:
- SET_BRIGHTNESS_TARGET
- RAMP_SCENE_UP
- RAMP_SCENE_DOWN
- STOP_SCENE_RAMP
- Optional:
- SET_COLOR_TARGET
Signature
<reduced_als_support></reduced_als_support>
Type
Boolean: defaults to false.
Dynamic Capability
No
Usage Note
If a driver is using the light v1 proxy and doesn't have either of the advanced_scene_support or reduced_als_support capabilities in its c4i file, the agent assumes that reduced_als_support is true. This allows existing 3rd party lights into advanced scenes. The v1 proxy was modified to abstract away the important differences from the protocol drivers. If a 3rd party driver does want full scene support, it must use the Light V2 proxy.
If any lights have full ALS support then only the "New" broadcast MIB is sent, otherwise the older ZCL MIB is sent, as according to logic in ALS "activate" function.
supports_broadcast_scenes
Whether the device supports broadcasts. This includes Zigbee, ZWave, UDP. If supports_broadcast_scenes and supports_multicast_scenes are both false, the light V2 proxy will send a SYNC_SCENES command to the Protocol Driver with TIME and STATE parameters, when the device comes online.
If set to true, ALS assumes the device is always a zigbee device.
If set to true, LightV2 Proxy assumes the device is always a zigbee device.
Forces an OnZigbeeDeviceOnline(Offline) to occur when the standard DeviceOnline(Offline) command is called.
Signature
<support_broadcast_scenes></support_broadcast_scenes>
Type
Boolean: defaults to false.
Dynamic Capability
No
supports_multichannel_scenes
Causes the LightV2 proxy to send the "EXECUTE_SCENE" command to the device rather than a set level command. If supports_broadcast_scenes and supports_multicast_scenes are both false, the light V2 proxy will send a SYNC_SCENES command to the Protocol Driver with TIME and STATE parameters, when the device comes online.
Signature
<support_multichannel_scenes></support_ multichannel_scenes>
Type
Boolean: defaults to false.
Dynamic Capability
No
Variables
Note: Advanced Lighting Scene Agent does not currently have any enabled variables.
Events
The following are System Events that are provided and managed by the Proxy. These can be used for Composer Programming or other drivers to monitor the changes of a values reflected in a LightV2 proxy.
Scene Activated
This event is fired when the scene changes from the inactive to the active state.
ID
(sceneID * *5)
Scene DeActivated
This event is fired when the scene changes from the active to the inactive state.
ID
(sceneID * *5) + 1
All Members 100%
This event is fired when all the members are at 100%. This event is not exposed to Composer, so the user can't do programming off it.
ID
(sceneID * 5) + 2
All Members 0%
This event is fired when all the members are at 0%. This event is not exposed to Composer, so the user can't do programming off it.
ID
(sceneID * 5) + 3
Scene Invoked
This event is fired when the agent is told to activate a scene. This will fire even if the scene already active.
ID
(sceneID * 5) + 4
Asynchronous Commands
This section lists the Commands (Bound Call, aka SendToDevice in Lua) that the Proxy supports. These are for use by Navigators, Composer Programming and other services like Voice Control. The thing to remember with Proxies is that many of the commands are passed on to the Protocol and it is the Protocol drivers responsibility to ripple the commands result back up to the Proxy using a 'Notify' command. This allows the Protocol to optionally make slight adjustments to commands for its unique driver or hardware and then inform the Proxy of the change.
RAMP_SCENE_UP
Used to ramp a scene up until it is told to stop.
Parameters
SCENE_ID - Integer. Which scene to ramp up.
RAMP_SCENE_DOWN
Used to ramp a scene down until it is told to stop.
Parameters
SCENE_ID - Integer. Which scene to ramp down.
STOP_RAMP_SCENE
Used to ramp a scene down until it is told to stop.
Parameters
SCENE_ID - Integer. Which scene to stop ramping.
ACTIVATE_SCENE
Activates a scene. This scene will always be run and events fired, even if the scene is already active.
Parameters
SCENE_ID - Integer. ID of the scene to activate.
DEACTIVATE_SCENE
Always activates the scene that is referenced as the Toggle ID, even if the toggle scene is active. Common use case is to set two scenes toggle scenes to each other but it is possible to link multiple scenes to a single "Off" toggle scene or even create loops of multiple scenes that will activate the next scene in the scene loop when "Toggle Scene" is ran.
Parameters
SCENE_ID - Integer. ID of the scene to deactivate.
TOGGLE_SCENE
Will activate the scene ID specified if it is inactive. If the scene ID specified is active then the toggle scene ID will be activated.
Parameters
SCENE_ID - Integer. Integer. ID of the scene that will have its toggle scene activated.
Light Driver Development Best Practices
The purpose of this section is to provide best practice advice for driver developers developing lighting drivers. By following these recommendations, developers will ensure consistent behavior from their driver and other lighting drivers. Additionally, implementing these guidelines will greatly improve driver interaction with other components in the Control4 OS such as Agents, Customer Interfaces, Programming, etc.
Brightness Target API
A Brightness Target API has been released in conjunction with O.S. 3.3.0. The API is disabled by default for non-color capable drivers and can be enabled with the supports_target capability. The API includes the SET_BRIGHTNESS_TARGET proxy command and LIGHT_BRIGHTNESS_CHANGED and LIGHT_BRIGHTNESS_CHANGING proxy notifies.
Brightness target API should be used by all new driver written against the Light V2 Proxy and existing drivers should be updated if possible. The API is required for driver certification in 3.3.0. Dimmer drivers should now only use LIGHT_BRIGHTNESS_CHANGING and LIGHT_BRIGHTNESS_CHANGED notifies. Switch drivers only need to use the BRIGHTNESS_CHANGED notify. Note that the LEVEL_CHANGED notify should not be used.
Using the LIGHT_BRIGHTNESS_CHANGING notify command allows drivers to inform the proxy of brightness transitions. Customer Interfaces monitor LIGHT_BRIGHTNESS_CHANGING events and will display a brightness changing animation depending on the provided current brightness, target brightness and rate. This can be useful for devices that do not send intermediate status notifications when transitioning between brightness levels. It is also recommended to send brightness changing notify command in cases where the final level is unknown, such as holding a button to ramp a light, scene or group up or down. For example, if a customer holds a button to slow-ramp a light on, the driver should notify the proxy that the brightness is changing to 100%. This will in turn show a brightness changing animation on Customer Interfaces. Once the customer releases the button (e.g. at 30%), the driver should send a LIGHT_BRIGHTNESS_CHANGED notify to indicate where the light ramping stopped.
Previously, drivers had to 'emulate' slider movements on Customer Interfaces by sending periodic, incremental light level notifies during brightness transitions (e.g. every 20ms). These updates cause performance issues including:
- Slow performance in proxies, director, customer interfaces and Advanced Lighting Scene agent.
- Potentially inaccurate states for Advanced Lighting Scene tracking.
- Excessive zigbee traffic and often incorrect keypad button LED status.
- Inconsistent slider movement in Customer Interfaces.
- Excessive triggering and potentially incorrect Composer Programming being fired.
Brightness and Color Changing API
OS 3.3.0 also introduced a new Light V2 proxy API that allows protocol drivers to notify the proxy that a light's color (LIGHT_COLOR_CHANGING) or brightness (LIGHT_BRIGHTNESS_CHANGING) is changing. The use of these notify commands are optional. However, it is recommended to notify the proxy of color or brightness transitions whenever possible. Using these notify commands allows other drivers or agents in the system to monitor the state of the light.
Using these notifies also allows additional Programming:
- Events: Brightness Begins to ramp and Color begins to ramp.
- Conditionals and Loops: Is Brightness Target and Is Color Target.
Enforcing min/max Capabilities
Beginning with OS 3.3.0, Advanced Lighting Scenes Agent, Customer Interfaces, Programming and other system components strictly enforce min/max and other capability settings in LightV2 Proxy drivers. It is recommended to verify if these capabilities are correct in your drivers. Existing out-of-range settings (e.g. in Advanced Lighting Scenes agent, Programming, etc.) will not be forcibly changed on upgrades but any new settings will enforce min/max capabilities.
For example, in pre-OS 3.3.0, Composer and the proxy only enforced click_rate_min/max capabilities in a driver's Properties. In the Advanced Lighting Scene Agent and Programming, it was possible to set a rate that was out of the click_rate_min/max range. In OS 3.3.0 and later, it will not be possible to set a rate out of this range. If these capabilities are not correct, partners and customers will not be able to use correct range when specifying ramp rates.
Handling Consecutive Brightness and Color commands
The Light V2 Proxy has independent commands to set color (chromaticity) (SET_COLOR_TARGET) and brightness (SET_BRIGHTNESS_TARGET). It is possible to send these commands to the protocol driver one immediately after the other (e.g, Programming, Customer Interfaces, Agents or other drivers). When these commands come in succession, a desired outcome is that the light transitions to the specified color and brightness, i.e., consecutive commands should not interfere or override each other.
Driver developers must make sure that consecutive color and brightness commands are handled correctly. If the device does not support consecutive commands, a best practice is to have a debouncing (and/or queuing) mechanism in the driver so that commands can be combined.
Default On and Dim Colors
All colored lights have a mandatory Default On Color and Default Dim Color presets. These provide a consistent behavior when turning the light on or off. Furthermore, these presets can be used as 'hooks' for other agents/drivers in the system that might want to change color that the light should turn on to or transition to while turning off.
Default On Color should be set whenever the devices turns on through SET_BRIGHTNESS_TARGET command, Button Click and Hold actions, etc.
Default Dim color should be used while the light is turning off, except in cases when the final level is unknown. For example, color should not be changed while dimming down using button hold since it is not known when the dimming will be stopped. For example, it is not known if the customer is dimming to turn off the light or to only lower the brightness.
Setting Color while the Light is Off
The Light V2 proxy allows sending SET_COLOR_TARGET commands to the protocol driver while the light is off. In Control4 OS. color chromaticity and brightness are independent. Because of this, the protocol driver should not turn on the light when a command to set the color is received while the light is off. Instead, drivers should save the last color that was sent while the light is off and set that color when the light subsequently turns on from the Control4 system.
Warm Dim
Warm Dim technology allows LED lights to dim down to a warmer color temperature. This replicates the effect of incandescent and halogen light bulbs. With color and color temperature support in OS 3.3.0, driver developers can 'emulate' Warm Dim behavior in their drivers. The following section explains how Warm Dimming is implemented for a Philips Hue driver. However, this approach is recommended for other drivers that support this behavior.
Principle of Operation for Philips Hue This feature is only available for lights that support color correlated temperature (CCT) control. Warm Dimming can be enabled or disabled on the Lighting Extras view on the Customer Interfaces or on the driver's Advanced Properties page in Composer. When enabled, a change to the light's brightness level will automatically change the color temperature of the light so that lower brightness results in warmer colors and vise versa.
When Warm Dimming is active, color correlated temperature of the light will follow a linear function of brightness, between the 'Warm Dimming CCT At Min Brightness' and 'Warm Dimming CCT At Max Brightness' Advanced Properties. 'Warm Dimming CCT At Min Brightness' and 'Warm Dimming CCT At Max Brightness' are color correlated temperatures of the light at 1% and 100% brightness, respectively:
cct = WarmDimmingCCTatMinBrightness + (targetBrightness - 1) * (WarmDimmingCCTatMaxBrightness - WarmDimmingCCTatMinBrightness) / 99
Enabling Warm Dimming does not change Default On Color and Default Dim Color settings. The light will turn on at the Default On Brightness and CCT will be the value for Default On Brightness on the warm dimming function.
The Following graph displays a Warm Dimming CCT change as function of brightness for the following settings:
- Warm Dimming CCT At Min Brightness = 2000K
- Warm Dimming CCT At Max Brightness = 6000K
- Default On Brightness = 50%
- With brightness change to 1%, CCT will also be set by the driver to 2000K. At full brightness (100%), CCT will be 6000K. When the light is turned on, CCT will be 3980K (at Default On Brightness of 50%).
Warm Dimming will be active only while changing brightness of the light. Changing the CCT does not affect brightness. Furthermore, if any color is selected (including CCT, e.g. via Customer Interfaces, Advanced Lighting Scenes, Programming) the light will transition to the specified color and will exit the 'emulated warm dimming' mode. To return a light to the emulated warm dimming mode, it must be turned off and then turned back on.
Keypad Button Link Bindings
KEYPAD BUTTON LINK BINDINGS
BUTTON_LINK bindings are a way for drivers to interact with other drivers that either expose a physical or virtual Keypad Button or for drivers that want to integrate with drivers that have a physical or virtual button. Button State and LED State information are the information that can be passed between the drivers. For example, a Control4 Keypad exposes a BUTTON_LINK binding that the Tune-In driver integrates with so a user can select a playlist or change songs via a Control4 Physical Keypad.
BUTTON_LINK was designed and assumes button and led functionality is the same between all keypad button hardware existing in the Control4 project, which causes some drivers to have to sometimes have incomplete or even fake functionality, ie: Button Release or Button Color functionality because some Non-Control4 physical keypads do not have LEDs. Also hardware/drivers do not have an API that allows drivers to interrogate hardware for what is supported. Some new devices also have specific double and triple click support which is newer. Note that older drivers were not updated to support those multi-press calls that go over BUTTON_LINK bindings. There is also no limit to what can be sent over a BUTTON_LINK as it's purely just a passage.
A driver making use of another drivers physical keypad buttons will typically support the following Commands and Notifies and will check the binding ID of the messages of the bound call command to know which button (BUTTON_LINK) the message applies to.
Commands
DO_PUSH
Button was Pushed. Driver can expect to get a CLICK or RELEASE sometime in the future. If a driver does not care if the button is held or clicked, Control4 recommends executing native driver's functionality on Press rather than waiting for the upcoming CLICK or RELEASE.
DO_CLICK
Button was Clicked, not held. Driver can expect to get a CLICK or RELEASE sometime in the future. If a driver does not care if the button is held or clicked, Control4 recommends executing native driver's functionality on Press rather than waiting for the upcoming CLICK or RELEASE
DO_RELEASE
Button was finally released. Note that drivers might tie up Director between a users physical PUSH and RELEASE. For example, a half second push may appear to the driver as many seconds of being held. This could result in causing unwanted results such as "runaway" volume or light ramping. There is no way to detect or work around this at the current time.
REQUEST_BUTTON_COLORS
Causes the driver to respond back with BUTTON_COLORS
and MATCH_LED_STATE
calls to let the other end of the binding know what the colors and state of them are._
SET_BUTTON_COLOR
Used to set the color of a button, this command name can be unique or non-existent for some drivers but this should be followed to make mass setting LED's possible from driver to driver.
Parameter | Description |
---|---|
str | BUTTON ID: String of the button, often used by a driver or proxy to lookup which of its buttons its setting. Sometimes it can be auto determined by which binding it came in on. |
Notifications
BUTTON_COLORS
Parameter | Description |
---|---|
str | ON COLOR: COLOR STR type, value of string such as "ffccbb" |
str | OFF COLOR: COLOR STR type, value of a string such as "000000" |
MATCH_LED_STATE
Parameter | Description |
---|---|
bool | STATE: Boolean if the Off (0/false) or On (1/true) color should be active. |
Light V2 Capabilities
set_level
Configuration API indicating if the device brightness can be set discretely to a number between a min and a max. Defaults to false.
Signature
<set_level></set_level>
Type
Boolean
Dynamic Capability
Yes
Example
<capabilities>
<set_level>false</set_level>
</capabilities>
supports_target
Configuration API indicating if the device and/or driver supports the new API for changes of what the light is actively ramping from, ramping to and the ramp rate. Defaults to false.
Signature
<supports_target></supports_target>
Type
Boolean
Dynamic Capability
Yes
Example
<capabilities>
<supports_target>false</supports_target>
</capabilities>
dimmer
Configuration API indicating if the device can dim. Defaults to false.
Signature
<dimmer></dimmer>
Type
Boolean
Dynamic Capability
Yes
Example
<capabilities>
<dimmer>false</dimmer>
</capabilities>
cold_start
Ramping API indicating if the lighting hardware supports cold start. Defaults to false.
Signature
<cold_start></<cold_start>
Type
Boolean
Dynamic Capability
No
Example
<capabilities>
<cold_start>true</cold_start>
</capabilities>
color_correlated_temperature_max
Maximum CCT (aka Kelvin) degrees supported by the driver.
Signature
<color_correlated_temperature_max></color_correlated_temperature_max>
Type
Integer: Defaults to 20000.
Dynamic Capability
Yes
Example
<capabilities>
<color_correlated_temperature_max>20000</color_correlated_temperature_max>
</capabilities>
color_correlated_temperature_min
Minimum CCT (aka Kelvin) degrees supported by the driver.
Signature
<color_correlated_temperature_min></color_correlated_temperature_min>
Type
Integer: Defaults to 1000.
Dynamic Capability
Yes
Example
<capabilities>
<color_correlated_temperature_min>1000</color_correlated_temperature_min>
</capabilities>
color_rate_behavior
Supported color rate behaviors include:
0 - Unchangeable Rate. 1 - Device only supports one rate for brightness and color. 2 - Device supports ramping brightness and color at two different rates.
Signature
<color_rate_behavior></color_rate_behavior>
Type
Integer: Defaults to 0.
Dynamic Capability
Yes
Example
<capabilities>
<color_rate_behavior>2</color_rate_behavior>
</capabilities>
color_rate_max
The maximum color rate (in milliseconds) supported for transitioning from one color to another. This capability should always be set for any color light driver, even if the transition rate is unchangeable. This capability is not intended use user-defined values. Values are supplied by the driver developer to ensure proper behavior.
These values are consumed by Advanced Lighting Scenes agent and custom programming actions to ensure that the color ramp rate specified is within the bounds set by the driver.
Signature
<color_rate_max></color_rate_max>
Type
Integer: Defaults to 0.
Dynamic Capability
Yes
Example
<capabilities>
<color_rate_max>200</color_rate_max>
</capabilities>
color_rate_min
The minimum color rate (in milliseconds) supported for transitioning from one color to another. This capability should always be set for any color light driver, even if the transition rate is unchangeable. This capability is not intended use user-defined values. Values are supplied by the driver developer to ensure proper behavior.
These values are consumed by Advanced Lighting Scenes agent and custom programming actions to ensure that the color ramp rate specified is within the bounds set by the driver.
Signature
<color_rate_min></color_rate_min>
Type
Integer: Defaults to 0.
Dynamic Capability
Yes
Example
<capabilities>
<color_rate_min>200</color_rate_min>
</capabilities>
has_fixed_ramp_rate
Ramping API indicating if the light has a fixed ramp rate and can not be changed via driver. Defaults to false.
Signature
<has_fixed_ramp_rate></<has_fixed_ramp_rate>
Type
Boolean
Dynamic Capability
Yes
Example
<capabilities>
<has_fixed_ramp_rate>true</has_fixed_ramp_rate>
</capabilities>
fixed_ramp_rate
For devices that have has_fixed_ramp_rate set to true, this is the number of milliseconds it takes the device to ramp from min to max or vice versa. Used only by the Advanced Lighting Scenes Agent. Defaults to 0.
Signature
<fixed_ramp_rate></<fixed_ramp_rate>
Type
Integer
Dynamic Capability
Yes
Example
<capabilities>
<fixed_ramp_rate>false</fixed_ramp_rate>
</capabilities>
click_rates
Ramping API that determines whether properties appear in composer allowing the user to set the click rates. Also enables "Fast On" and "Fast Off" presets.
Signature
<click_rates></<click_rates>
Type
Boolean
Dynamic Capability
No
Example
<capabilities>
<click_rates>false</click_rates>
</capabilities>
click_rate_min
Ramping API that determines the minimum length of time (in milliseconds) that can be set for Click Rate of a keypad button press. This is also used for minimum time of ramp rate range for Composer Programming. Defaults to 0.
Signature
<click_rate_min></<click_rate_min>
Type
Integer
Dynamic Capability
No
Example
<capabilities>
<click_rate_min>0</click_rate_min>
</capabilities>
click_rate_max
Ramping API that determines the maximum length of time (in milliseconds) that can be set for Click Rate of a keypad button press. Defaults to 1.
Signature
<click_rate_max></<click_rate_max>
Type
Integer
Dynamic Capability
No
Example
<capabilities>
<click_rate_max>1</click_rate_max>
</capabilities>
color_trace_tolerance
If converting to RGB or HSV color spaces it is worth noting that these two are not as accurate in resolution as the CIE xy chromaticity color space.
Because of this, there can be a loss of accuracy when converting to them or between them. For example, a Control4 Customer Interface sends the color's Hue and Saturation. If a device operates in RGB color spaces, the reported color might differ because of a rounding issue when converting between the RGB and HSV color space. This capability is used to add a tolerance when the Control4 system compares if two colors are equal.
The LightV2 proxy internally stores color as xy chromaticity. Two colors are treated equal if they are within Euclid distance specified by the color_trace_tolerance capability.
The following are pre-calculated tolerances for some of the mostly used color spaces. If the device uses one of the color spaces listed bellow to set and report color, use its tolerance as the capability:
RGB: 0.006 HSV 0.001
Signature
<color_trace_tolerance></color_trace_tolerance>
Type
Float: Defaults to 0.006
Dynamic Capability
Yes
Example
<capabilities>
<color_trace_tolerance>0.006</color_trace_tolerance>
</capabilities>
has_extras
Boolean indicating if the device has extras commands support. This capability can be changed through a DYNAMIC_CAPABILITIES_CHANGED
notification.
Signature
<has_extras></has_extras>
Type
Boolean. Defaults to false
Dynamic Capability
Yes
Example
<capabilities>
<has_extras>true</has_extras>
</capabilities>
hold_rates
Ramping API that determines whether properties appear in Composer allowing the user to set hold rates. Defaults to false.
Signature
<hold_rates></<hold_rates>
Type
Boolean
Dynamic Capability
No
Example
<capabilities>
<hold_rates>false</hold_rates>
</capabilities>
hold_rate_min
Ramping API that determines Minimum length of time (in milliseconds) that can be set for Hold Rate of a keypad button press. Defaults to 1000.
Signature
<hold_rate_min></<hold_rate_min>
Type
Integer
Dynamic Capability
No
Example
<capabilities>
<hold_rate_min>1000</hold_rate_min>
</capabilities>
hold_rate_max
Ramping API that determines the maximum length of time (in milliseconds) that can be set for Hold Rate of a keypad button press Also used for the maximum time of ramp rate range for Composer Programming. Defaults to 86400000.
Signature
<hold_rate_max></<hold_rate_max>
Type
Integer
Dynamic Capability
No
Example
<capabilities>
<hold_rate_max>86400000</hold_rate_max>
</capabilities>
load_group_support
Load Group capability Indicating if the light can participate in load groups and the driver follows all Load Group API requirements. Defaults to false.
Signature
<load_group_support></load_group_support>
Type
Boolean
Dynamic Capability
No
Example
<capabilities>
<load_group_support>false</load_group_support>
</capabilities>
min_max
Composer capability that determines whether properties appear in Composer, allowing the user to set the min and max on levels (as a percent) for the device. Defaults to false.
Signature
<min_max></min_max>
Type
Boolean
Dynamic Capability
No
Example
<capabilities>
<min_max>false</min_max>
</capabilities>
on_off
Composer capability that determines whether commands to directly turn the light on/off appear in Composer. Defaults to false.
Signature
<on_off></on_off>
Type
Boolean
Dynamic Capability
No
Example
<capabilities>
<on_off>false</on_off>
</capabilities>
hide_proxy_events
Composer capability that determines whether the proxy’s Events (brightness, color changes and buttons events) should appear in Composer Programming. Defaults to false.
Signature
<hide_proxy_events></hide_proxy_events>
Type
Boolean
Dynamic Capability
No
Example
<capabilities>
<hide_proxy_events>false</hide_proxy_events>
</capabilities>
has_button_events
Composer capability that determines whether the driver has button events that should appear in Composer programming. Defaults to false.
Signature
<has_button_events></has_button_events>
Type
Boolean
Dynamic Capability
No
Example
<capabilities>
<has_button_events>false</has_button_events>
</capabilities>
buttons_are_virtual
Keypad capability that determines whether the buttons on the device are real physical buttons or virtual such as Control4 Centralized Lighting Modules. Defaults to false.
Signature
<buttons_are_virtual></buttons_are_virtual>
Type
Boolean
Dynamic Capability
No
Example
<capabilities>
<buttons_are_virtual>false</buttons_are_virtual>
</capabilities>
has_leds
Keypad capability that determines whether the properties appear in Composer to allow the dealer to set LED colors of keypad buttons. Defaults to false.
Signature
<has_leds></has_leds>
Type
Boolean
Dynamic Capability
No
Example
<capabilities>
<has_leds>false</has_leds>
</capabilities>
num_buttons
Keypad capability that indicates the number of buttons the driver supports. The value can be one of the following options:
- 0 = None This disables the field in Composer Programming Commands box.
- 1 = Top
- 2 = Top and Bottom
- 3 = Top, Bottom, and Toggle
Defaults to 0.
Signature
<num_buttons></num_buttons>
Type
Integer
Dynamic Capability
No
Example
<capabilities>
<num_buttons>3</num_buttons>
</capabilities>
supports_color
Whether the device can show a broad range of colors.
Signature
<supports_color></supports_color>
Type
Boolean: Defaults to false.
Dynamic Capability
Yes
Example
<capabilities>
<supports_color>false</supports_color>
</capabilities>
supports_color_correlated_temperature
Whether the device has native support for color correlated temperature reporting in Kelvin. Set this capability to False if the driver can only do predefined color temperatures. If enabled via dynamic capability, it will be necessary to Notify the proxy of the current color immediately after the capability is enabled.
Signature
<supports_color_correlated_temperature></supports_color_correlated_temperature>
Type
Boolean: Defaults to false.
Dynamic Capability
Yes
Example
<capabilities>
<supports_color_correlated_temperature>false<supports_color_correlated_temperature>
</capabilities>
supports_default_on
This feature is for lights that support a default ON brightness in their firmware. When enabled, the Light Proxy sends a SET_PRESET_LEVEL command to drivers when the brightness "On” preset is updated in the proxy through Composer or the PRESET_LEVEL system variable. This enables light switches that respond to local button presses to go to the same default ON level as what the Control4 system uses when a light is turned on or toggled via Navigators, Composer Programming, and keypad buttons.
Signature
<supports_default_on></supports_default_on>
Type
Boolean: Defaults to false.
Dynamic Capability
No
Example
<capabilities>
<supports_default_on>false<supports_default_on>
</capabilities>
ramp_level
Whether the light supports commands being told to ramp to a brightness. Advanced Lighting Scenes also uses this to determine if the light can be dimmed in ALS.
Signature
<ramp_level></ramp_level>
Type
Boolean: Defaults to false.
Dynamic Capability
Yes
Example
<capabilities>
<ramp_level>false</ramp_level>
</capabilities>
advanced_scene_support
Whether the device supports the full Advanced Lighting Scenes driver commands and API's.
Signature
<advanced_scene_support></advanced_scene_support>
Type
Boolean: Defaults to false.
Dynamic Capability
No
Example
<capabilities>
<advanced_scene_support>false</advanced_scene_support>
</capabilities>
reduced_als_support
If the advanced_scene_support capability is false, a driver can use this reduced_als_support capability for Advanced Lighting Scene support. The device will be allowed into a scene, but the device can't participate in scene ramping and can only have either 0 or 1 elements in a scene.
Signature
<reduced_als_support></reduced_als_support>
Type
Boolean: Defaults to false.
Dynamic Capability
No
Example
<capabilities>
<reduced_als_support>false</reduced_als_support>
</capabilities>
supports_broadcast_scenes
Whether the device supports broadcasts. This includes Zigbee, ZWave, UDP.
Signature
<supports_broadcast_scenes></supports_broadcast_scenes>
Type
Boolean: Defaults to false.
Dynamic Capability
No
Example
<capabilities>
<supports_broadcast_scenes>false</supports_broadcast_scenes>
</capabilities>
supports_multichannel_scenes
Causes the LightV2 proxy to send the "EXECUTE_SCENE" command to the device rather than a set level command.
Signature
<supports_multichannel_scenes></supports_multichannel_scenes>
Type
Boolean: Defaults to false.
Dynamic Capability
No
Example
<capabilities>
<supports_multichannel_scenes>false</supports_multichannel_scenes>
</capabilities>
hide_proxy_properties
Whether to show all proxy properties in composer. This is primarily only used for extremely limited hardware that can't ramp or do much else except turn on and off.
Signature
<hide_proxy_properties></hide_proxy_properties>
Type
Boolean: Defaults to false.
Dynamic Capability
No
Example
<capabilities>
<hide_proxy_properties>false</hide_proxy_properties>
</capabilities>
Light V2 Conversion Commands
This section lists the Commands used for converting to/from hue, saturation and lightness (HSV) and red, blue and green (RGB).
Control4 OS 3.3.0 and later releases include native support for Color Chromaticity and Color Correlated Temperature (CCT) functionality. Navigators, the Light V2 Proxy, and the Advanced Lighting Scene (ALS) agent use this new color architecture. This means that Drivers written against the 3.3.0 Light V2 Proxy can now implement native color support.
Color API's between the proxy, ALS agent and drivers are based on the CIE 1931 XY Chromaticity standard for visible color.
Beginning with O.S. 3.3.0, all drivers (including non-color) should implement the new Brightness Target API for communicating brightness to the Light V2 proxy.
Understanding Chromaticity
Currently, no bulb or LED strip can produce all of the colors seen by the human eye. However, the range of colors lighting devices can produce is constantly growing. In addition to this, most lighting devices do not produce the same range of colors as other devices. In order to provide a consistent color experience in a home which could include various brands and models of bulbs or strip lighting; the Control4 color API needs to support all possible visible colors. Also, RGB and Hue/Saturation data values are not universal. The same RGB and Hue/Saturation data value across different lighting devices will often produce different actual visible colors. The use of Chromaticity can solve these issues.
Chromaticity allows for communicating a color using XY coordinates that is universal and can be computationally converted to various other color spaces, formats, and their respective data values. Below is a diagram showing all visible light wavelengths and their reference points according to the CIE 1931 Chromaticity standard. All visible colors can be specified by an XY coordinate.
The Use of Gamuts
Most light driver developers are familiar with Hue and Saturation or RGB values. Hue and Saturation are a data representation of how much of a color something is in relation to how much it can be in total. RGB is similar but also includes how much of its total brightness is used. Neither of these provide a way to verify if two different lighting devices are producing the same viewable color as seen by a home owner.
However, if a devices’ gamut value for the RGB or Hue/Sat value is known, it is possible to compare this device with a different device’s gamut values making it possible to understand how the two device's colors relate. Below are the gamut triangles of three different LED chips, used in a lighting products.
In the image above, you can see that Gamut B (the smaller Red triangle) can produce a far smaller range of colors than the Gamut A (Black) triangle. If we were to send the RGB data of "0,255,0" to two different devices (one device using Gamut A LED chips and another device using Gamut B LED chips) the actual visible green color light produced by both devices would be very different.
For example, consider a home owner wants to set two different light device colors to "White" or the center of each triangle: 255,255,255 for RGB and the device gamut values are not used in their respective drivers. The resulting visual white color that the home owner would see would be very different between the two light devices. In this case, the device using Gamut B LED chips would be a much lower Color Correlated Temperature (CCT). In fact, the difference between the two devices would be over 1000. This could certainly annoy many home owners. This is why it's very useful to know the gamut of your device if it is possible to obtain it
Driver developers that know the gamut of their LED chips also know that there are standard mathematical formulas for transitioning any RGB value to/from the more universal XY Chromaticity color space.
For driver developers who do not know their LED chips gamut or aren't interested in color accuracy the provided RGB↔XY lua conversion function can be used. Be aware that these calls map RGB and Hue/Saturation data values to the generic sRGB gamut and that the color a home owner or dealer selects on UIs may not match the color produced by the LED chips. Below is graphical representation for the sRGB gamut for reference.
Lack Brightness Values
Chromaticity does not include a data value for brightness. Reasons for this include:
Many users prefer to adjust color and brightness individually, such as selecting a color then ramping brightness or picking a brightness and changing colors.
If Color presets included brightness it would result in multiple presets of the same Red color. However, they would be at different brightness levels. This would make color preset navigation and selection for home owners cumbersome.
Programming Event firing and Conditional checks would be very convoluted. For example, White at 50% is not be the same as White at 100%. And ultimately, all the user wanted to check is if the color was "White".
Similar to Programming complexity, Lighting Scene tracking would become unmanageable. Advanced Lighting Scene creation is more configurable and provides better ways for dealers to meet customers needs.
Color Correlated Temperature (CCT)
Many colored lighting devices are designed to fulfill just the CCT implementation of color. Drivers do have the ability to specify if they support CCT, Full Color or both. Different configuration and UI features are available based on capabilities specified by the driver. Most all "full color" lights will inherently support CCT, as the image below shows.
Note that Control4 OS Color APIs also allow specifying if a color is CCT or "Full Color". This helps the device know if the user is trying to control the light in one mode vs another.
ColorCCTtoXY
This function converts a CCT (color temperature in Kelvin) color to the CIE-1931 xy chromaticity.
This function was released in conjunction with O.S. 3.3.0.
Signature
C4:ColorCCTtoXY (k)
Parameters
Parameter | Description |
---|---|
num | Number representing Kelvin temperature. |
Returns
Parameter | Description |
---|---|
num | Number representing x component of the CIE-1931 xy chromaticity. |
num | Number representing y component of the CIE-1931 xy chromaticity. |
ColorHSVtoRGB
This function converts an HSV color to the RGB color space.
This function was released in conjunction with O.S. 3.3.0.
Signature
C4:ColorHSVtoRGB (h, s, v, rgbScale)
Parameters
Parameter | Description |
---|---|
num | Number representing hue component of HSV. |
num | Number representing saturation component of HSV. |
num | Number representing value component of HSV. |
num | (Optional) Number representing RGB scale (1 to 255), default value 255. |
Returns
Parameter | Description |
---|---|
num | Number representing the red component of RGB (in given scale). |
num | Number representing the green component of RGB (in given scale). |
num | Number representing the blue component of RGB (in given scale). |
Example
lua
print(C4:ColorHSVtoRGB(80, 100, 50))
ColorHSVtoXY
This function converts an HSV color to a CIE-1931 xy chromaticity.
This function was released in conjunction with O.S. 3.3.0.
Signature
C4:ColorHSVtoXY (h, s, v)
Parameters
Parameter | Description |
---|---|
num | Number representing hue component of HSV. |
num | Number representing saturation component of HSV. |
num | Number representing value component of HSV. |
Returns
Parameter | Description |
---|---|
num | Number representing the x component of the CIE-1931 xy chromaticity. |
num | Number representing the y component of the CIE-1931 xy chromaticity. |
ColorRGBtoHSV
This function converts an RGB color to the HSV color space.
This function was released in conjunction with O.S. 3.3.0.
Signature
C4:ColorRGBtoHSV (r, g, b, rgbScale)
Parameters
Parameter | Description |
---|---|
num | Number representing the red component of RGB (in given scale). |
num | Number representing the green component of RGB (in given scale). |
num | Number representing the blue component of RGB (in given scale). |
num | (Optional) Number representing RGB scale (1 to 255), default value 255. |
Returns
Parameter | Description |
---|---|
num | Number representing hue component of HSV. |
num | Number representing saturation component of HSV. |
num | Number representing value component of HSV. |
ColorRGBtoXY
This function converts an RGB color to a CIE-1931 xy chromaticity.
This function was released in conjunction with O.S. 3.3.0.
Signature
C4:ColorRGBtoXY (r, g, b, rgbScale)
Parameters
Parameter | Description |
---|---|
num | Number representing the red component of RGB (in given scale). |
num | Number representing the green component of RGB (in given scale). |
num | Number representing the blue component of RGB (in given scale). |
num | (Optional) Number representing RGB scale (1 to 255). The default value is 255. |
Returns
Parameter | Description |
---|---|
num | Number representing the x component of a CIE-1931 xy chromaticity. |
num | Number representing the y component of a CIE-1931 xy chromaticity. |
ColorXYtoCCT
This function converts from a CIE-1931 xy chromaticity to a CCT (color temperature in Kelvin) color.
This function was released in conjunction with O.S. 3.3.0.
Signature
C4:ColorXYtoCCT (x, y)
Parameters
Parameter | Description |
---|---|
num | Number representing the x component of a CIE-1931 xy chromaticity. |
num | Number representing the y component of a CIE-1931 xy chromaticity. |
Returns
Parameter | Description |
---|---|
num | Number representing the CIE-1931 xy chromaticity as a Kelvin temperature. |
Usage Note
This function will return a color temperature for any value provided. This includes color values that fall outside of the usual white/CCT colors.
ColorXYtoHSV
This function converts a CIE-1931 xy chromaticity to the HSV color space.
This function was released in conjunction with O.S. 3.3.0.
Signature
C4:ColorXYtoHSV (x, y)
Parameters
Parameter | Description |
---|---|
num | Number representing the x component of a CIE-1931 xy chromaticity. |
num | Number representing the y component of a CIE-1931 xy chromaticity. |
Returns
Parameter | Description |
---|---|
num | Number representing the hue component of HSV. |
num | Number representing the saturation component of HSV. |
num | Number representing the value component of HSV. |
ColorXYtoRGB
This function converts a CIE-1931 xy chromaticity to the RGB color space.
This function was released in conjunction with O.S. 3.3.0.
Signature
C4:ColorXYtoRGB (x, y, rgbScale)
Parameters
Parameter | Description |
---|---|
num | Number representing the x component of a CIE-1931 xy chromaticity. |
num | Number representing the x component of a CIE-1931 xy chromaticity. |
num | (Optional) Number representing RGB scale (1 to 255). The default value is 255. |
Returns
Parameter | Description |
---|---|
num | Number representing the red component of RGB in given scale. |
num | Number representing the green component of RGB in given scale. |
num | Number representing the blue component of RGB in given scale. |
Light V2 Conditionals
The following Conditionals are used for Composer Programming to perform logic comparisons of Variables. This functionality is managed by the Proxy and Director.
IS_COLOR
Boolean. If the color of the light matches the color.
IS_ON
Boolean. If the light is on at any level.
IS_OFF
Boolean. If the light is at the "Off" preset.
BTN_PRESSED
Boolean. If the button is currently being pressed.
BTN_RELEASED
Boolean. If the button is not currently being pressed.
BTN_COLOR
Boolean. If the buttons led color matches a hex string.
BTN_NOT_COLOR
Boolean. If the buttons led color does not match a hex string.
Light V2 Commands
This section lists the Commands (Bound Call, aka SendToDevice in Lua) that the Light V2 proxy supports. These are for use by Navigators, Composer Programming and other services like Voice Control. The thing to remember with proxies is that many of the commands are passed on to the protocol, and it is the protocol drivers responsibility to ripple the commands result back up to the proxy using a 'Notify' command. This allows the protocol to optionally make slight adjustments to commands for its unique driver or hardware, and then inform the proxy of the change.
BUTTON ACTION
Used to perform a button action on the device via BUTTON_LINK bindings. This is useful if you want to do user dependent hold/release functionality in a driver or hardware. Proxy will create and maintain the consumer binding connections for TOP, BOTTOM and TOGGLE lightV2 buttons and their BUTTON_LINK bindings. When the proxy gets a BUTTON_ACTION command over one of the three binding connections, it will forward the command to the driver. The driver needs to send a BUTTON_ACTION Notify back to the proxy with the same BUTTON_ID and ACTION params and values so the proxy knows the command was successful and that the driver or hardware is tracking that the button is currently in a Pressed state. _
If a driver does not do send the Notify that a button is Pressed to the proxy, an additional (second) Press command will be auto-generated by the proxy and sent to the driver if the proxy receives a Click and has not been notified that the drivers button is in a Pressed state.
Signature
BUTTON_ACTION ()
Parameter | Description |
---|---|
Number | BUTTON_ID. ID for the button: |
0 - Top | |
1 - Bottom | |
2 - Toggle | |
Number | ACTION : |
0 - RELEASE (HOLD) | |
1 - PRESS | |
2 - RELEASE (CLICK) |
Returns
None
SET BRIGHTNESS TARGET
Used to set the target brightness of where the light is being requested to go.
All Lights have the following Presets at minimum and can be used by UI's, Voice Control, Programming, etc so a UI does not have to look up common Presets and/or levels for general control.
"On" - (Static Preset ID 1) This is the Preset that should be used when turning a light on. The level and rate that matches what a Top "Click" press would activate. The Level was imported from the PRESET LEVEL value in previous OS releases.
"Off" - (Static Preset ID 2) This is the Preset that should be used when turning a light off. This presets level and rate matches what the bottom "Click" on a physical device would be.
"Slow On" - (Static Preset ID 3) This is the level and rate that matches what a Top button "Hold" press would be.
"Slow Off" - Static Preset ID 4) This is the level and rate that matches what a Bottom button "Hold" press would be.
Additional presets can be added via the C4TYPE PRESET API. This will allow drivers that have common "20% 40% 60% 80%" presets to define these presets and the LightV2 proxy will automatically take care of creating keypad bindings and managing LED status tracking of those presets and keypad button status.
Signature
SET_BRIGHTNESS_TARGET ()
Parameter | Description |
---|---|
Float | LIGHT_BRIGHTNESS_TARGET_LEVEL. Number between min and max as reported by the device |
Integer | LIGHT_BRIGHTNESS_TARGET_PRESET ID |
Integer | LIGHT_BRIGHTNESS_TARGET_ PERCENT: Percent from 0 to 100 |
Integer | RATE: Milliseconds for the transition. Optional. Will use driver default if parameter is not specified. |
Integer | RATE: Optional. Milliseconds for the transition. Will use driver default if parameter is not specified. Note that passing a -1 value in this parameter results in it being treated as the same as not specifying the parameter at all. |
Returns
None
Usage Note
Control4 is discouraging the use of the following commands as they will be deprecated. The SET BRIGHTNESS TARGET API should be used in their place:
SET LIGHT LEVEL: Use SET BRIGHTNESS TARGET with the param RATE of 0.
RAMP TO LEVEL: Use SET BRIGHTNESS TARGET with RATE in milliseconds.
SET COLD START LEVEL
Used to set the cold start level for the device for drivers that support hardware based Cold Start behavior.
Signature
SET_COLD_START_LEVEL ()
Parameter | Description |
---|---|
Integer | LEVEL: 0 - 100 |
Returns
None
SET COLD START TIME
Used to set the cold start level for the device for drivers that support hardware based Cold Start behavior.
Signature
SET_COLD_START_TIME ()
Parameter | Description |
---|---|
Integer | TIME in milliseconds |
Returns
None
SET MAX ON LEVEL
Used to set the maximum on level for the device
Signature
SET_MIN_ON_LEVEL ()
Parameter | Description |
---|---|
Integer | LEVEL: 0 - 100 |
Returns
None
SET MIN ON LEVEL
Used to set the minimum on level for the device
Signature
SET_MIN_ON_LEVEL ()
Parameter | Description |
---|---|
Integer | LEVEL: 0 - 100 |
Returns
None
SET PRESET LEVEL
Used to set brightness of the "On" Preset that is used when a user clicks the Top button of a light.
Signature
SET_PRESET_LEVEL ()
Parameter | Description |
---|---|
Integer | LEVEL: 0 - 100 |
Returns
None
TOGGLE
Used to toggle the light. If it is a dimmer and it is off, toggling will activate the "On" preset. Should only be used in Composer Programming when the current brightness of the light does not matter nor does the brightness level it will go to matter as delays of brightness reporting to the proxy or network issues will result in unreliable final brightness. If final brightness is important, then the On or Off presets should be specifically referenced in the SET_BRIGHTNESS_TARGET command.
Signature
TOGGLE ()
Parameter
None
Returns
None
SET CLICK RATE DOWN
Used to set the click rate down for the device.
Signature
SET_CLICK_RATE_DOWN ()
Parameter | Description |
---|---|
Integer | RATE in milliseconds |
Returns
None
SET CLICK RATE UP
Used to set the click rate up for the device.
Signature
SET_CLICK_RATE_UP ()
Parameter | Description |
---|---|
Integer | RATE in milliseconds |
Returns
None
SET_COLOR_TARGET
Sent to drivers to control it to change the color. Once drivers begin to change color, they should send a COLOR_CHANGING Notify. Then once the color has finished changing it should send a COLOR_CHANGED Notify.
Signature
SET_COLOR_TARGET()
Parameter | Description |
---|---|
LIGHT_COLOR_TARGET_X = X Coordinate of CIE 1931 Chromaticity Diagram |
|
LIGHT_COLOR_TARGET_Y = Y Coordinate of CIE 1931 Chromaticity Diagram |
|
LIGHT_COLOR_TARGET_MODE = Integer of: 0 full color, 1 color correlated temperature. Default is 0. Most Bulb, LED strip and their drivers can likely ignore this. This is provided in the case that some bulbs or drivers need to track if they are in working in a cct mode or color mode. We recommend all drivers stick to only operating in full_color mode if possible. |
|
RATE | Integer. Optional Parameter of milliseconds to ramp over. Will use driver default if parameter is not used. |
Returns
None
SET HOLD RATE UP
Used to set the hold rate up for the device.
Signature
SET_HOLD_RATE_UP ()
Parameter | Description |
---|---|
Integer | RATE in milliseconds |
Returns
None
SET HOLD RATE DOWN
Used to set the hold rate down for the device.
Signature
SET_HOLD_RATE_DOWN ()
Parameter | Description |
---|---|
Integer | RATE in milliseconds |
Returns
None
SET BUTTON COLOR
Used to set the color for a particular button for when the light is on/off
Signature
SET_BUTTON_COLOR ()
Parameter | Description |
---|---|
Number | BUTTON_ID |
hex string | ON_COLOR Optional. 6 character hex string, representing an RGB value. |
hex string | OFF_COLOR Optional. 6 character hex string, representing an RGB value. |
Returns
None
SET ALL LED
Used to set the LED color of all the buttons on the device to one color (both on/off colors).
Signature
SET_ALL_LED ()
Parameter | Description |
---|---|
hex string | COLOR: 6 character hex string, representing an RGB value. |
Returns
None
JOIN GROUP
Received when the driver is added to a Load Group.
Signature
JOIN_GROUP ()
Parameter | Description |
---|---|
String | GROUP_ID: Device ID of the Load Group driver |
String | KEEP_SYNC: 1 for True and 0 for False |
Returns
None
LEAVE GROUP
Received when Load Group driver pop the light driver from the gropu.
Signature
LEAVE_GROUP
Parameter | Description |
---|---|
String | GROUP_ID Driver ID of the Load Group |
Returns
None
SET GROUP SYNC
Received when Keep loads in sync property is changed. In case of checking the Keep loads in sync, GROUP_SET_LEVEL
will be sent right before SET_GROUP_SYNC
.
Signature
Parameter | Description |
---|---|
String | GROUP_ID Driver ID of the Load Group driver |
String | KEEP_SYNC 0 for False and 1 for True |
Received
None
GROUP RAMP TO LEVEL
Received when group is ramping to level.
Signature
GROUP_RAMP_TO_LEVEL ()
Parameter | Description |
---|---|
String | GROUP_ID Driver ID of the Load Group |
String | LEVEL Level to ramp |
String | TIME Time rate for ramping |
Returns
None
SET GROUP LEVEL
Received when group is setting light level.
Signature
GROUP_SET_LEVEL ()
Parameter | Description |
---|---|
String | GROUP_ID Driver ID of the Load Group |
String | LEVEL Light level to be set on the Light driver |
None
GROUP START RAMP
Received when group start hold ramp operation.
Signature
GROUP_START_RAMP ()
Parameter | Description |
---|---|
String | GROUP_ID Driver ID of the Load Group |
String | RAMP_UP Value 1 |
String | RATE Rate time in ms |
Returns
None
GROUP STOP RAMP
Received when group stop hold ramp.
Signature
GROUP_STOP_RAMP ()
Parameter | Description |
---|---|
String | GROUP_ID Driver ID of the Load Group |
Returns
None
UPDATE_COLOR_PRESET
Having a mandatory On color preset for all colored lights provides dealers a way of configuring various brands and models of lights in a way that a customer can have a consistent 'default on' color behavior. Without this feature, it's almost certain that different brands and models of lights would turn on to different colors or color temperatures.
In addition to the On color preset, having a mandatory Dim color preset for all colored lights provides dealers a way of configuring various brands and models of lights in a way that a customer can have a consistent 'warm dim' color behavior.
The 'On' color preset is the color that a light should generate at its 'Default On Brightness' level.
The 'Dim' color preset is the color that a light should generate at 1% brightness.
For example, consider a lights Default On Brightness is set to 80%. The On preset color is 4000CCT and the Dim preset color is 2000CCT. If the light was then set to a brightness level of 40%, the lights color would be 3000CCT. Also, if the lights brightness is set to 80% or higher, the color would always be 4000CCT. This formula would be used when a light is turned on (from off level) via a SET_BRIGHTNESS_TARGET and if no SET_COLOR_TARGET is additionally used.
Any further time that SET_BRIGHTNESS_TARGET is used, the driver should use the formula to calculate the new color and also set that color when the brightness is changed via SET_BRIGHTNESS_TARGET. If a SET_COLOR_TARGET command is used after the light has been turned on, then the formula for warm-dim functionality should no longer occur and the color should not be auto-adjusted until the light is turned off and back on again.
When all drivers follow this formula there will be consistent On and Warm Dim lighting experiences for customers.
In 3.3.0, the LightV2 Proxy 'Dim' and 'On' color presets can be changed in Composer and Navigator. Composer currently has a checkbox to 'enable' the Dim color, although this checkbox is not an 'enable dim color' feature. It is a 'hide the dim color preset in Composer' feature.
Upon 'disabling' the Dim color Composer is actually setting the Dim preset color to the On preset color. The LightV2 Proxy always has an On and Dim preset defined regardless of the checkbox in Composer being checked or unchecked. There isn't a 100% sure way for a driver to know if this checkbox is 'checked’. However, a driver could consider it potentially checked if the Dim and On preset colors are not the same color.
Signature
UPDATE_COLOR_PRESET()
Parameter | Description |
---|---|
COMMAND | String - This will be one of the following strings: "ADDED", "MODIFIED" "REMOVED" |
ID | Number. Preset ID |
NAME | String. Name of the preset. |
COLOR_X | Double - CIE 1931 Chromaticity Color. |
COLOR\Y | Double - CIE 1931 Chromaticity Color. |
COLOR_MODE | UInt. Color Mode (0 Full Color, 1 CCT) |
Returns
None
SET_CLICK_RATE_UP
Used to set the click rate up for the device. When a driver gets this command, it MUST send a CLICK_RATE_UP notification with the value that the driver accepted.
Signature
SET_CLICK_RATE_UP()
Parameter | Description |
---|---|
RATE | Integer - In milliseconds |
Returns
None
SET_CLICK_RATE_DOWN
Used to set the click rate down for the device. When a driver gets this command, it MUST send a CLICK_RATE_DOWN notification with the value that the driver accepted.
Signature
SET_CLICK_RATE_DOWN()
Parameter | Description |
---|---|
RATE | Integer - In milliseconds |
Returns
None
Light V2 Events
The following are System Events that are provided and managed by the Proxy. These can be used for Composer Programming or other drivers to monitor the changes of a values reflected in a LightV2 proxy.
Light On
Light has turned On. Event ID = 5100.
Light Off
Light has turned Off. Event ID = 5101.
Light Brightness Changed
The brightness of the light has changed. Event ID = 4001.
Light Brightness Changing
The brightness of the light is changing. Event ID = 4000.
Light Color Changed
The color of the light has changed. Event ID = 4003
Light Color Changing
The color of the light is changing. Event ID = 4002
Old Light Level Changed
The light level of the light has changed and is at the final brightness. Event ID = 5000.
0.
Keypad Events
An event is fired when something happens to one of the buttons on the device. The pattern for determining the Event ID is:
5001 + action + (btnID * 5).
The actions are:
- Release = 0
- Push = 1
- Single Click = 2
- Double Click = 3
- Triple Click = 4
The button IDs are determined by the protocol driver, but the standard ordering is:
- Top = 0
- Bottom = 1
- Toggle = 2
Light V2 Protocol Notifications
BUTTON ACTION
Used to inform the proxy that a button state has changed on the device. Note that the Proxy expects a Release if it gets a Push. If it does not receive a Release, subsequent Pushes will not work and state/tracking will be off.
Signature
BUTTON_ACTION ()
Parameter | Description |
---|---|
int | BUTTON_ID: Index of the button being controlled. |
int | ACTION: The Event Type which include: |
0 - Release | |
1 - Push | |
2 - Single Tap | |
3 - Double Tap | |
4 - Triple Tap |
Returns
None
BUTTON INFO
Used to inform the proxy that a status of a button LED has changed. Color strings are in the format of 6 hex characters such as 000000, FFFFFF or 0000FF.
Signature
BUTTON_INFO ()
Parameter | Description |
---|---|
int | BUTTON_ID: Index of the button being controlled. |
str | NAME: Optional. Update the name of the button. |
str | ON_COLOR: Optional. Hex string for the On color. |
str | OFF_COLOR: Optional. Hex string for the Off color. |
str | CURRENT_COLOR: Optional. Hex string for the Current color. |
Returns
None
CLICK COUNT
Used to tell the proxy that a button has been clicked multiple times.
Signature
CLICK_COUNT ()
Parameter | Description |
---|---|
int | BUTTON_ID: Index of the button being controlled. |
int | COUNT: Number of clicks. |
Returns
None
CLICK RATE DOWN
Used to inform the proxy that the hardware click rate for the "Off" Brightness preset changed.
Signature
CLICK_RATE_DOWN ()
Parameter | Description |
---|---|
int | RATE: Number of milliseconds it takes for the light to ramp from all the way on to all the way off. |
Returns
None
CLICK RATE UP
Used to inform the proxy that the hardware click rate for the "On" Brightness preset changed.
Signature
CLICK_RATE_UP ()
Parameter | Description |
---|---|
int | RATE: Number of milliseconds it takes for the light to ramp from all the way off to all the way on. |
Returns
None
COLD START LEVEL
Used to inform the proxy that the hardware Cold Start level has changed. This is useful for hardware such as Control4’s Gen3 lighting where the hardware supports temporarily setting the brightness to this level in order to 'jump start' the capacitors/ballasts on LED and florescent lights. This value changes over time as capacitors and ballasts age.
Signature
COLD_START_LEVEL ()
Parameter | Description |
---|---|
int | BRIGHTNESS: Percent from 0-99 for the Min On brightness to be remapped to. |
Returns
None
COLD START TIME
Used to inform the proxy that the hardware Cold Start level has changed. This is useful for hardware such as Control4’s Gen3 lighting where the hardware supports temporarily setting the brightness to a level for this number of milliseconds in order to 'jump start' the capacitors/ballasts on LED and florescent lights. This value changes over time as capacitors and ballasts age.
Signature
COLD_START_TIME ()
Parameter | Description |
---|---|
int | BRIGHTNESS: Number of milliseconds that the light is turned on to the COLD_START_LEVEL value. |
Returns
None
DYNAMIC CAPABILITIES CHANGED
Used to update capabilities and proxy functionality without requiring a different c4i/c4z file. Also used for drivers that have capabilities that change during runtime. Multiple parameters can be set with a single notify for 'atomic changes' where some functionality may involve mutual exclusion/inclusion.
Signature
DYANAMIC_CAPABILITIES_CHANGED ()
Parameters
If the device supports Zigbee Broadcast Scenes one parameter is required:
Parameter | Description |
---|---|
bool | true/false |
If the device supports dimming, the following parameter can be used to change if a light is a dimmer or switch at any time. This is very useful for having a single driver provide both functionality depending on what hardware is connected or detected. This can also provide a dealer the ability to make a dimmer act as a switch for UI's and system functionality.
Parameter | Description |
---|---|
name | dimmer |
bool | true/false |
An Example for these parameters would be:
Notify("supports_broadcast_scenes=true","dimmer=true"
Returns
None
HOLD RATE DOWN
Used to inform the proxy that the hardware click rate for the "Slow Off" Brightness preset changed.
Signature
HOLD_RATE_DOWN ()
Parameter | Description |
---|---|
int | RATE: Number of milliseconds it takes for the light to ramp from all the way on to all the way off. |
Returns
None
HOLD RATE UP
Used to inform the proxy that the hardware click rate for the "Slow On" Brightness preset changed.
Signature
HOLD_RATE_UP ()
Parameter | Description |
---|---|
int | RATE: Number of milliseconds it takes for the light to ramp from all the way off to all the way on. |
Returns
None
LIGHT BRIGHTNESS CHANGED
Used to notify the proxy that a lights brightness changed. It is not required to send a LIGHT_BRIGHTNESS_CHANGING Notify before sending this, so devices like switches or some dimmers that do not provide status on where they are going can still be implemented with the new API. This notify should always be sent to the proxy when the driver starts and/or when the hardware comes online and the driver knows the actual brightness of the hardware.
Signature
LIGHT_BRIGHTNESS_CHANGED ()
Parameter | Description |
---|---|
value | LIGHT_BRIGHTNESS_CURRENT: Double. Raw value of where the light brightness stopped. |
Returns
None
Usage Note
Dimmer Drivers should only use BRIGHTNESS_CHANGING and BRIGHTNESS_CHANGED notifies and no longer use LEVEL_CHANGE notify.
Switch drivers only need to use the BRIGHTNESS_CHANGED notify.
LIGHT BRIGHTNESS CHANGING
Used to notify the Light proxy that a light’s brightness is changing. The benefit of using this Notify is that drivers can provide data on how the light brightness is changing. Using this Notify greatly improves interaction with the system in numerous ways for components such as Advanced Lighting Scene Agent, Navigators and Composer Programming. A driver should enabled the supports_target capability if using this notify. Note the LIGHT_LEVEL notify should be avoided if a driver uses this API.
Behaviorally, the Light proxy generates percentage scaling for UI's and other system components. However, since a single percent may not be enough light resolution, programming and other system components can set raw values for a device.
In the case where the end of the ramping value is unknown, specifying the end point of where the device will change to (if no further interaction is done) is the best practice. For example, is if someone holds a button to slow-ramp a light On, the driver should Notify the proxy that the end point is 100 if 100 is the max value of the light.
Signature
LIGHT_BRIGHTNESS_CHANGING ()
Parameter | Description |
---|---|
value | LIGHT_BRIGHTNESS_CURRENT: Double. Raw value of the lighting level. Does not need to be 0-100% and can be based on the Min and Max Brightness capabilities such as 0-10, 0-99. 0-256 and even negative if the Brightness Min is defined as a negative number. |
value | LIGHT_BRIGHTNESS_TARGET: Double. Raw value of where the light is going to. |
int | RATE: Number of milliseconds it will take to ramp to the target level. |
Returns
None
Usage Note
Dimmer Drivers should only use BRIGHTNESS_CHANGING and BRIGHTNESS_CHANGED notifies and no longer use LEVEL_CHANGE notify.
Switch drivers only need to use the BRIGHTNESS_CHANGED notify.
LIGHT COLOR CHANGED
Used to inform the proxy that the color has finished changing. It is possible to use this call without the LIGHT_COLOR_CHANGING Notify call being sent first but some Composer Programming paths will not be run.
Signature
LIGHT_COLOR_CHANGED ()
Parameter | Description |
---|---|
LIGHT_COLOR_CURRENT_X |
The CIE 1931 X coordinate for where the color change stopped. |
LIGHT_COLOR_CURRENT_Y |
The CIE 1931 Y coordinate for where the color change stopped. |
LIGHT_COLOR_CURRENT_COLOR_MODE |
Optional. 0 for Full Color, 1 if the XY coordinate is a CCT |
Returns
None
LIGHT COLOR CHANGING
Used to inform the proxy that the color is changing on the light. The optional parameters are useful in case the color changed without the proxy knowing which might be needed by some unreliable lighting hardware.
Signature
LIGHT_COLOR_CHANGING ()
Parameter | Description |
---|---|
LIGHT_COLOR_TARGET_X |
CIE 1931 X coordinate for where the color is going to. |
LIGHT_COLOR_TARGET_Y |
CIE 1931 Y coordinate for where the color is going to. |
LIGHT_COLOR_TARGET_COLOR_MODE |
Optional. 0 for Full Color, 1 if the XY coordinate is a CCT |
RATE |
Integer. Number of milliseconds it will take to ramp to the target level. 0 will be used if this parameter is not provided. |
LIGHT_COLOR_CURRENT_X |
Optional. CIE 1931 X coordinate for where the color is changing from. |
LIGHT_COLOR_CURRENT_Y |
Optional. CIE 1931 Y coordinate for where the color is changing from. |
LIGHT_COLOR_CURRENT_COLOR_MODE |
Optional. 0 for Full Color, 1 if the XY coordinate is a CCT |
Returns
None
LIGHT LEVEL
Used to inform the proxy that the light level has changed.
Signature
LIGHT_LEVEL ()
Parameter | Description |
---|---|
int | LEVEL: Percent from 0-100 of the current light level. |
Returns
None
Usage Note
As of Operating System 3.3.0, drivers should no longer send incremental notifies of light level every 20ms, 500ms, 1000ms, etc, as the lights brightness ramps. Sending excessive incremental level updates caused performance issues including:
- Excessive slowness in Proxies, Director, and Navigators.
- Slow performance and inaccurate states for Advanced Lighting Scene tracking.
- Excessive Zigbee traffic and often incorrect keypad button LED status.
- Inconsistent slider movement in Navigators.
- Excessive triggering and sometimes incorrect Composer programming being fired.
See the LIGHT_BRIGHTNESS_CHANGING notification for additional information.
MAX ON
Used to inform the proxy that the hardware maximum On level has changed. This is useful for hardware such as Control4’s Gen3 lighting where the hardware supports remapping where 100% brightness is at for the actual hardware. This does not change the available brightness percent range from 0-100%.
Signature
MAX_ON ()
Parameter | Description |
---|---|
int | BRIGHTNESS: Percent from 1-100 for the Max On brightness to be remapped to. |
Returns
None
MIN ON
Used to inform the proxy that the hardware minimum On level has changed. This is useful for hardware such as Control4’s Gen3 lighting where the hardware supports remapping where 1% brightness is when the light is on. This does not change the available brightness percent range from 0-100%. Note that with LED lights, the usable minimum on range does change depending on bulb, age of bulb and other factors.
Signature
MIN_ON ()
Parameter | Description |
---|---|
int | BRIGHTNESS: Percent from 0-99 for the Min On brightness to be remapped to. |
Returns
None
ONLINE CHANGED
Used to inform the proxy that the online status of the device has changed. Due to backwards compatibility, the proxy starts 'online' as many old devices did not report online status. UI functionality will be disabled if the light is offline.
Signature
ONLINE_CHANGED ()
Parameter | Description |
---|---|
bool | STATE: True/False. Whether the device is online or not. |
Returns
None
ONLINE CHANGED
Used to inform the proxy that the online status of the device has changed. Due to backwards compatibility the proxy starts 'online' as many old devices did not report online status. UI functionality will be disabled if the light is offline.
Signature
ONLINE_CHANGED ()
Parameter | Description |
---|---|
STATE | Boolean. Whether the device is online or not. |
Returns
None
PRESET LEVEL
This feature is only to be used if the actual hardware supports a physical button and the light can be programmed to turn on to a specific level. Used to set brightness preset of the "On" (ID = 1) Preset that is used when a user clicks the Top button of a light.
Signature
PRESET_LEVEL ()
Parameter | Description |
---|---|
BRIGHTNESS | Integer - Percent value from 1-100. |
Returns
None
Light V2 Extras Interface Library
Overview
Extras are a way for driver developers to expose unique hardware functionality that users can interact with on a UI/Navigator. This functionality bypasses the need for a proxy to know about the unique features and how to handle them. A protocol driver notify is used to pass the Extras XML information from the protocol driver to the proxy, where the proxy caches the xml strings for current setup and state information. The UI uses a UI_REQUEST as needed to get the information if the UI has just rebooted/started/loaded and then the UI will get updates of these xml strings if it is listening for dataToUI's from the device. Extras objects are accessible through the "Extras Tab" located on the main Navigator screen for the Proxy.
Capabilities
The has_extras capability must be set to true to support the use of Extras. The library will automatically (via dynamic capability) set the has_extras capability when a first Section is created. Also, when the last section is removed, the has_extras capability will be disabled. The Extras class does not implement class destructor as it is not supported in Lua 5.1 and Lua JIT. In the case of setting the Extras class instance to nil, the Extras:cleanCapability() method should be called previously.
Protocol Notify and Proxy Messages
There are two notifies a driver must make to the proxy where this information is forwarded immediately to any UI's listening for dataToUI on the proxy and the information is also cached for future UI's to request: EXTRAS_SETUP_CHANGED and EXTRAS_STATE_CHANGED.
Whenever a driver changes values that are reflected in either the setup or state xml, it must make the notify to the proxy with the updated information. This includes if hardware or a feature is added or removed, a value for one of the objects was updated, and so on.
It is also advisable for protocol drivers to send this data either on initialization of the driver if the values are not likely to change when hardware comes online, or perhaps when the hardware comes online and the extras commands will be able to succeed.
In addition, it could be advisable that the state of objects is changed to hidden when hardware and/or disabled features are not available rather than sending new extras_setup notifies as this may cause a UI to redraw the extras page and reset defaults while a user is interacting with the Extras page on a UI.
EXTRAS SETUP CHANGED
Update the Extras Setup, displayed in the UI
Signature
EXTRAS_SETUP_CHANGED ()
Parameter | Description |
---|---|
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
Signature
EXTRAS_STATE_CHANGED ()
Parameter | Description |
---|---|
XML | XML text string of XML matching the Preset Schedule schema. To UI comes through as extras_state . |
Returns
None
How UI's handle Extras objects
UI's will display objects in the order they are read in the EXTRAS_SETUP xml. If an object needs to have a default selection, number or string, the UI looks at the value attribute for the default. If no value is specified in the EXTRAS_SETUP the UI will default to a behavior listed below for each object type.
When a user changes a value on a UI, the UI will immediately send the command associated with that object down to a protocol driver as a command. The UI waits for a response that the protocol driver has handled the command and the protocol driver must send an updated EXTRAS_STATE notify for the object.
The EXTRAS_STATE does not need to include all states of all objects, only the states of the objects it wants to update (or acknowledged) it has received but it could contain more than just one objects updated state. A driver could also respond back with just the <extras_state><extra><object id="1"></extra></extras_state>
if it wanted to acknowledge the command succeeded but not update the value. If a UI that sent the command does not get a response in 10 seconds, it will change the value of the object back to what it was prior to what the user had changed it from.
Extras Class
Overview
This class provides an interface between instances of the ExtrasObjectBasedClass. This class can cover following use cases:
- Add/Remove/Change Extras Section of an Extras Object
- Add/Remove Extras Object
- Get instance of an existing Extras Object
- Make Extras State/Setup XML strings based on objects provided
- Update Extras Object state
ObjectParameters
Structure that contains all fields needed to initialize ExtrasObject instance
Field Name | Field Type |
---|---|
id | string |
command | string |
label | string |
hidden | string_bool |
readonly | string_bool |
extraparams | table<string,string> |
Extras:addObjects
Adds extras object to the container in the section named sectionLabel
New object will be added at the end of the section and will be displayed as the last section element in the CI. In case of object array, Object order in the CI will be in the same order objects were sorted in the input array.
Function Signature:
Extras:addObjects(objects, sectionLabel)
Function Parameters:
Parameter | Type | Description |
---|---|---|
objects | ExtrasObjectBasedClass\ | ExtrasObjectBasedClass: List or individual extras object |
sectionLabel | string |
Returns:
Name | Type | Description |
---|---|---|
cnt | number | Number of objects added |
Extras:getObject
Returns extras object with id no matter the section
Function Signature:
Extras:getObject(id)
Function Parameters:
Parameter | Type | Description |
---|---|---|
id | string | ID of the extras object |
Returns:
Name | Type | Description |
---|---|---|
object | ExtrasObjectBasedClass | nil |
Extras:updateObject
Updates value and hide parameter for the object with objId and sends notification to proxy bound to proxyId
If value or hide is not provided, field value will not change. This methods updates fields and sends Proxy Notification that state has been changed.
Function Signature:
Extras:updateObject(proxyId, objId, newValue, hide)
Function Parameters:
Parameter | Type | Description |
---|---|---|
objId | string | ID of the extras object |
newValue | string | Value to be updated |
hide | string_bool | True or false string |
Extras:removeObject
Removes extras object with id no matter the section.
Function Signature:
Extras:removeObject(id)
Function Parameters:
Parameter | Type | Description |
---|---|---|
id | string | ID of the extras object |
Returns:
Name | Type | Description |
---|---|---|
ret | boolean | Returns true if removal was successful |
Extras:makeSetupXml
This method makes complete XML string to be send as response to GET_EXTRAS_SETUP proxy command.
Function Signature:
Extras:makeSetupXml()
Returns:
Name | Type | Description |
---|---|---|
xml | string |
Extras:makeStateXml
This method makes complete XML string to be send as response to GET_EXTRAS_STATE proxy command or to be sent after extras object update.
Function Signature:
Extras:makeStateXml()
Returns:
Name | Type |
---|---|
xml | string |
Extras:sendSetup
Builds xml and sends proxy notification EXTRAS_SETUP_CHANGED
Function Signature:
Extras:sendSetup(proxyId)
Extras:sendState
Builds xml and sends proxy notification EXTRAS_STATE_CHANGED
Function Signature:
Extras:sendState(proxyId)
Section
Structure that represent a section. Holds section name and ExtrasObject based classes array.
Field Name | Field Type |
---|---|
label | string |
objects | ExtrasObjectBasedClass] |
ExtrasObjectBasedClass
This alias is for all classes that inherits the ExtrasObject class.
Type
Name | Value |
---|---|
ExtrasObjectBasedClass | ExtrasButton, ExtrasCheckbox |
string_bool
Alias for values can be provided as hide argument
Type
Name | Value |
---|---|
string_bool | "true" "false" |
Extras
Container class for the ExtrasObject based instances (Button, Checkbox ...) This class is used to hold ExtrasObject based instances and to handle XML assembling and sending. This class handles sections as well as = inheritsFrom(nil)
Field Name | Field Type |
---|---|
sections | Section |
proxyId | number |
has_extras | boolean |
Function Parameters:
Parameter | Type |
---|---|
proxyId | number |
Extras:addSection
Adds section to the instance
A Section table will be initialized and added in the self.sections field. The object field of the table type Section will bi initialized as empty table. Section order in the CI will be in the same order section were added in the container class instance.
Function Signature:
Extras:addSection(label)
Function Parameters:
Parameter | Type | Description |
---|---|---|
label | string | Name of the section that will be displayed in the CI |
Returns:
Name | Type | Description |
---|---|---|
ret | boolean | Returns true if insertion was successful |
Extras:removeSection
Removes the section with the label sectionLabel from the list
This method will remove the section with label sectionLabel and all objects in the section. Section indexes will be changed to fill the empty space but the order will not change.
Function Signature:
Extras:removeSection(sectionLabel)
Function Parameters:
Parameter | Type | Description |
---|---|---|
sectionLabel | string |
Returns:
Name | Type | Description |
---|---|---|
ret | boolean | Returns true if the operation was successful |
Extras:getSection
Returns section table with the label sectionLabel
Function Signature:
Extras:getSection(sectionLabel)
Function Parameters:
Parameter | Type | Description |
---|---|---|
sectionLabel | string |
Returns:
Name | Type | Description |
---|---|---|
section | Section: nil |
Extras:changeSection
Moves extras object with id in section named newSection
Function Signature:
Extras:changeSection(id, newSection)
Function Parameters:
Parameter | Type | Description |
---|---|---|
id | string | ID of the extras object |
newSection | string | Name of the new section to put the object |
Extras:cleanCapability
This method cleans the has_extras capability.
Function Signature:
Extras:cleanCapability()
Extras:setCapability
This method sets the has_extras capability.
Function Signature:
Extras:setCapability()
Extras Button
Overview
This class represents an abstraction of the Extras Button object. The class interface provides following cations:
- Initialization of an Extras Button object
- Setting Extras Button object parameters (label, button text, etc)
ExtrasButton : ExtrasObject
Class that represent extras button functionality. This class is derived from ExtrasObject. Instance of the class can be created independently but will not be displayed alone, it should be added to the instance of the Extras class.rasButton = inheritsFrom(ExtrasObject)
Field Name | Field Type |
---|---|
TYPE | string |
name | string |
text |
ExtrasButton:construct
ExtrasButton constructor
Function Signature:
ExtrasButton:construct(objParams, text)
Function Parameters:
Parameter | Type | Description |
---|---|---|
objParams | ObjectParameters | For initialization of the base class |
text | string | Button text that will be displayed on the button in the CI |
ExtrasButton:makeSetupXml
Returns XML string that represents the button setup with all extraparameters
Makes XML that should be integrated in the response to GET_EXTRAS_SETUP Proxy message.
Function Signature:
ExtrasButton:makeSetupXml()
Returns:
Name | Type |
---|---|
xml | string |
ExtrasButton:getStateXml
Returns XML string that represents extras object state
This method overrides the method from the base class. This string should be incorporated in response to GET_EXTRAS_STATE command. id and value fields will be escaped and integrated in the string.
The string will be return in the following command:
- \<object id= "\[self.id]" value="\[self.value]" /\>
Function Signature:
ExtrasButton:getStateXml()
Returns:
Name | Type |
---|---|
xml | string |
Extras Checkbox
Overview
This class represents an abstraction of the Extras Checkbox object. The class interface provides following cations:
- Initialization of an Extras Checkbox object
- Setting Extras Checkbox object parameters and value
ExtrasCheckbox : ExtrasObject
Class that represent extras checkbox functionality. This class is derived from ExtrasObject. Instance of the class can be created independently but will not be displayed alone, it should be added to the instance of the Extras class.rasCheckbox = inheritsFrom(ExtrasObject)
Field Name | Field Type |
---|---|
TYPE | string |
name | Methafield |
ExtrasCheckbox:construct
ExtrasCheckbox constructor
Function Signature:
ExtrasCheckbox:construct(objParams, value)
Function Parameters:
Parameter | Type | Description |
---|---|---|
objParams | ObjectParameters | For initialization of the base class |
value | string | Checkbox value (true, false) that will be displayed on the button in the CI |
ExtrasCheckbox:makeSetupXml
Returns XML string that represents the button setup with all extraparameters
Makes XML that should be integrated in the response to GET_EXTRAS_SETUP Proxy message.
Function Signature:
ExtrasCheckbox:makeSetupXml()
Returns:
Name | Type | Description |
---|---|---|
xml | string |
Extras Icon
Overview
This class represents an abstraction of the Extras Icon object. The class interface provides following cations:
- Initialization of an Extras Icon object
- Setting Extras Icon object parameters and value
ExtrasIcon : ExtrasObject
Class that represent extras icon functionality. This class is derived from ExtrasObject. Instance of the class can be created independently but will not be displayed alone, it should be added to the instance of the Extras class.rasIcon = inheritsFrom(ExtrasObject)
Field Name | Field Type |
---|---|
TYPE | string |
name | Methafield |
ExtrasIcon:construct
ExtrasIcon constructor
Function Signature:
ExtrasIcon:construct(objParams, value)
Function Parameters:
Parameter | Type | Description |
---|---|---|
objParams | ObjectParameters: For initialization of the base class | |
value | string | Link or path to the image that will be displayed in the CI |
ExtrasIcon:makeSetupXml
Returns XML string that represents the button setup with all extraparameters
Makes XML that should be integrated in the response to GET_EXTRAS_SETUP Proxy message.
Function Signature:
ExtrasIcon:makeSetupXml()
Returns:
Name | Type | Description |
---|---|---|
xml | string |
Extras List
Overview
This class represents an abstraction of the Extras List object. The class interface provides following cations:
- Initialization of an Extras List object
- Setting Extras Checkbox object parameters and list parameters
- Setting the currently selected item
ExtrasListParameters
Field Name | Field Type |
---|---|
value | string |
maxSelections | Maximal |
minSelections | Minimal |
list | table<string,string> |
ExtrasList : ExtrasObject
Class that represent extras list functionality. This class is derived from ExtrasObject. Instance of the class can be created independently but will not be displayed alone, it should be added to the instance of the Extras class.rasList = inheritsFrom(ExtrasObject)
Field Name | Field Type |
---|---|
TYPE | string |
__name | Methafield |
maxSelections | number |
minSelections | number |
list | table <string,string> |
ExtrasList:construct
ExtrasList constructor
Function Signature:
ExtrasList:construct(objParams, listParams)
Function Parameters:
Parameter | Description |
---|---|
objParams | ObjectParameters: For initialization of the base class |
ExtrasListParameters | Parameters for initialization of the list |
ExtrasList:makeListXml
Returns the xml string needed to for response to the GET_EXTRAS_SETUP proxy message.
Returns complete list tag. This tag should be a child tag of the object tag.
Function Signature:
ExtrasList:makeListXml()
Returns:
Name | Type |
---|---|
mxl | string |
ExtrasList:makeSetupXml
Returns XML string that represents the list setup with all extraparameters
Makes XML that should be integrated in the response to GET_EXTRAS_SETUP Proxy message.
Function Signature:
ExtrasList:makeSetupXml()
Returns:
Name | Type |
---|---|
xml | string |
Extras Number
Overview
This class represents an abstraction of the Extras Number object. The class interface provides following cations:
- Initialization of an Extras Number object
- Setting Extras Number object parameters, number parameters
ExtrasNumber : ExtrasObject
Class that represent extras number functionality. This class is derived from ExtrasObject. Instance of the class can be created independently but will not be displayed alone, it should be added to the instance of the Extras class.rasNumber = inheritsFrom(ExtrasObject)
Field Name | Field Type |
---|---|
TYPE | string |
name | Methafield |
min | number |
max | number |
resolution | number |
ExtrasNumber:construct
ExtrasNumber constructor
Function Signature:
ExtrasNumber:construct(objParams, numberParams)
Function Parameters:
Parameter | Type | Description |
---|---|---|
objParams | ObjectParameters | For initialization of the base class |
numberParams | table<string,number\ | string> |
ExtrasNumber:makeSetupXml
Returns XML string that represents the button setup with all extraparameters
Makes XML that should be integrated in the response to GET_EXTRAS_SETUP Proxy message.
Function Signature:
ExtrasNumber:makeSetupXml()
Returns:
Name | Type | Description |
---|---|---|
xml | string |
Extras Object
ExtrasObject
Base class for classes that represent extras objects (button, checkbox ...) Should not create independent instance from this class This class only purpose is to be base class for extras object classesrasObject = inheritsFrom(nil)
Field Name | Field Type |
---|---|
id | string |
command | string |
label | string |
hidden | string_bool |
readonly | string_bool |
extraparams | table<string,string> |
ExtrasObject:construct
ExtrasObject constructor
Function Signature:
ExtrasObject:construct(objParams)
Function Parameters:
Parameter | Type | Description |
---|---|---|
objParams | ObjectParameters: Table of parameters needed to assemble XML |
ExtrasObject:addExtraparam
Adding extra parameter to the Object instance
If extra parameter is added, tParams argument of the Proxy command will contain value of the extras object with id.
Function Signature:
ExtrasObject:addExtraparam(id, name)
Function Parameters:
Parameter | Type | Description |
---|---|---|
id | string | ID of the extras object that will be connected |
name | string | of the extras object that will be connected |
ExtrasObject:removeExtraparam
Removing extra parameter from the list
This method will remove extra parameter with id and value of that extras object will not be received in proxy command.
Function Signature:
ExtrasObject:removeExtraparam(id)
Function Parameters:
Parameter | Type | Description |
---|---|---|
id | string |
ExtrasObject:getStateXml
Returns XML string that represents extras object state
This string should be incorporated in response to GET_EXTRAS_STATE command. id and value fields will be escaped and integrated in the string. The string will be return in the following command:
`- \<object id= "\[self.id]" value="\
self.value" />
``
Function Signature:
ExtrasObject:getStateXml()
Returns:
Name | Type | Description |
---|---|---|
xml | string |
ExtrasObject:getExtraparamsXml
Returns XML string that represents list of extraparameters
This string should be incorporated in response to GET_EXTRAS_SETUP Key and value of the extraparams field will be escaped end integrated in the message.
Function Signature:
ExtrasObject:getExtraparamsXml()
Returns:
Name | Type | Description |
---|---|---|
xml | string |
ExtrasObject:update
Update extras object individually.
This method should be called when the user wants to udate an object individually. The method from the Extras class will update all objects, this method will update just this on object. Also, this method is inherited by all ExtrasObjectBasedClass instances.
Function Signature:
ExtrasObject:update(value, hidden)
Function Parameters:
Parameter | Type | Description |
---|---|---|
value | string | New value for the extras object |
hidden | string | Hide the object or not |
ExtrasSlider : ExtrasObject
Class that represent extras slider functionality. This class is derived from ExtrasObject. Instance of the class can be created independently but will not be displayed alone, it should be added to the instance of the Extras class.rasSlider = inheritsFrom(ExtrasObject)
Field Name | Field Type |
---|---|
TYPE | string |
__name | Methafield |
min | number\ |
max | number\ |
resolution | number\ |
ExtrasSlider:construct
ExtrasSlider constructor
Function Signature:
ExtrasSlider:construct(objParams, sliderParams)
Function Parameters:
Parameter | Type | Description |
---|---|---|
objParams | ObjectParameters: For initialization of the base class | |
sliderParams | table<string,number\ | string> |
ExtrasSlider:makeSetupXml
Returns XML string that represents the button setup with all extraparameters
Makes XML that should be integrated in the response to GET_EXTRAS_SETUP Proxy message.
Function Signature:
ExtrasSlider:makeSetupXml()
Returns:
Name | Type | Description |
---|---|---|
xml | string |
ExtrasObject
Base class for classes that represent extras objects (button, checkbox ...) Should not create independent instance from this class This class only purpose is to be base class for extras object classesrasObject = inheritsFrom(nil)
Field Name | Field Type |
---|---|
id | string |
command | string |
label | string |
hidden | string_bool |
readonly | string_bool |
extraparams | table<string,string> |
ExtrasObject:construct
ExtrasObject constructor
Function Signature:
ExtrasObject:construct(objParams)
Function Parameters:
Parameter | Type | Description |
---|---|---|
objParams | ObjectParameters: Table of parameters needed to assemble XML |
ExtrasObject:addExtraparam
Adding extra parameter to the Object instance
If extra parameter is added, tParams argument of the Proxy command will contain value of the extras object with id.
Function Signature:
ExtrasObject:addExtraparam(id, name)
Function Parameters:
Parameter | Type | Description |
---|---|---|
id | string | ID of the extras object that will be connected |
name | string | of the extras object that will be connected |
ExtrasObject:removeExtraparam
Removing extra parameter from the list
This method will remove extra parameter with id and value of that extras object will not be received in proxy command.
Function Signature:
ExtrasObject:removeExtraparam(id)
Function Parameters:
Parameter | Type | Description |
---|---|---|
id | string |
ExtrasObject:getStateXml
Returns XML string that represents extras object state
This string should be incorporated in response to GET_EXTRAS_STATE command. id and value fields will be escaped and integrated in the string.The string will be return in the following command:
- \<object id= "\[self.id]" value="\[self.value]" /\>
Function Signature:
ExtrasObject:getStateXml()
Returns:
Name | Type | Description |
---|---|---|
xml | string |
ExtrasObject:getExtraparamsXml
Returns XML string that represents list of extraparameters
This string should be incorporated in response to GET_EXTRAS_SETUP Key and value of the extraparams field will be escaped end integrated in the message.
Function Signature:
ExtrasObject:getExtraparamsXml()
Returns:
Name | Type | Description |
---|---|---|
xml | string |
ExtrasObject:update
Update extras object individually.
This method should be called when the user wants to update an object individually. The method from the Extras class will update all objects, this method will update just this on object. Also, this method is inherited by all ExtrasObjectBasedClass instances.
Function Signature:
ExtrasObject:update(value, hidden)
Function Parameters:
Parameter | Type | Description |
---|---|---|
value | string | New value for the extras object |
hidden | string | Hide the object or not |
Extras Slider
Overview
This class represents an abstraction of the Extras Slider object. The class interface provides following cations:
- Initialization of an Extras Slider object
- Setting Extras Slider object parameters and slider parameters
ExtrasSlider : ExtrasObject
Class that represent extras slider functionality. This class is derived from ExtrasObject. Instance of the class can be created independently but will not be displayed alone, it should be added to the instance of the Extras class.rasSlider = inheritsFrom(ExtrasObject)
Field Name | Field Type |
---|---|
TYPE | string |
name | Methafield |
min | number |
max | number |
resolution | number |
ExtrasSlider:construct
ExtrasSlider constructor
Function Signature:
ExtrasSlider:construct(objParams, sliderParams)
Function Parameters:
Parameter | Type | Description |
---|---|---|
objParams | ObjectParameters | For initialization of the base class |
sliderParams | table<string,number\ | string> |
ExtrasSlider:makeSetupXml
Returns XML string that represents the button setup with all extraparameters
Makes XML that should be integrated in the response to GET_EXTRAS_SETUP Proxy message.
Function Signature:
ExtrasSlider:makeSetupXml()
Returns:
Name | Type | Description |
---|---|---|
xml | string |
Extras Switch
Overview
This class represents apstraction of the Extras Switch object. The class interface provides following cations:
- Initialization of an Extras Switch object
- Setting Extras Switch object parameters and value
ExtrasSwitch : ExtrasObject
Class that represent extras switch functionality. This class is derived from ExtrasObject. Instance of the class can be created independently but will not be displayed alone, it should be added to the instance of the Extras class.rasSwitch = inheritsFrom(ExtrasObject)
Field Name | Field Type |
---|---|
TYPE | string |
__name | Methafield |
ExtrasSwitch:construct
ExtrasSwitch constructor
Function Signature:
ExtrasSwitch:construct(objParams, value)
Function Parameters:
Parameter | Type | Description |
---|---|---|
objParams | ObjectParameters | For initialization of the base class |
value | string | Switch value (true, false) that will be displayed on the button in the CI |
ExtrasSwitch:makeSetupXml
Returns XML string that represents the button setup with all extraparameters
Makes XML that should be integrated in the response to GET_EXTRAS_SETUP Proxy message.
Function Signature:
ExtrasSwitch:makeSetupXml()
Returns:
Name | Type | Description |
---|---|---|
xml | string |
Extras Text
Overview
This class represents an abstraction of the Extras Text object. The class interface provides following cations:
- Initialization of an Extras Text object
- Setting Extras Text object parameters and value
ExtrasText : ExtrasObject
Class that represent extras text functionality. This class is derived from ExtrasObject. Instance of the class can be created independently but will not be displayed alone, it should be added to the instance of the Extras class.rasText = inheritsFrom(ExtrasObject)
Field Name | Field Type |
---|---|
TYPE | string |
name | Methafield |
ExtrasText:construct
ExtrasText constructor
Function Signature:
ExtrasText:construct(objParams, value)
Function Parameters:
Parameter | Type | Description |
---|---|---|
objParams | ObjectParameters | For initialization of the base class |
value | string | Text value that will be displayed on the element in the CI |
ExtrasText:makeSetupXml
Returns XML string that represents the button setup with all extraparameters
Makes XML that should be integrated in the response to GET_EXTRAS_SETUP Proxy message.
Function Signature:
ExtrasText:makeSetupXml()
Returns:
Name | Type | Description |
---|---|---|
xml | string |
Extras Text Field
Overview
This class represents apstraction of the Extras Text Field object. The class interface provides following cations:
- Initialization of an Extras Text Field object
- Setting Extras Text Field object parameters, text field mode and value
TextFieldMode
Type
Name | Value |
---|---|
TextFieldMode | "normal"\ |
ExtrasTextField : ExtrasObject
Class that represent extras checkbox functionality. This class is derived from ExtrasObject. Instance of the class can be created independently but will not be displayed alone, it should be added to the instance of the Extras class.rasTextField = inheritsFrom(ExtrasObject)
Field Name | Field Type |
---|---|
TYPE | string |
__name | Methafield |
mode | TextFieldMode |
ExtrasTextField:construct
ExtrasTextField constructor
Function Signature:
ExtrasTextField:construct(objParams, value, mode)
Function Parameters:
Parameter | Type | Description |
---|---|---|
objParams | ObjectParameters | For initialization of the base class |
value | string | TextField value that will be displayed on the field in the CI |
mode | TextFieldMode | Text field mode: password, numberic ... |
ExtrasTextField:makeSetupXml
Returns XML string that represents the button setup with all extraparameters
Makes XML that should be integrated in the response to GET_EXTRAS_SETUP Proxy message.
Function Signature:
ExtrasTextField:makeSetupXml()
Returns:
Name | Type | Description |
---|---|---|
xml | string |
Extras Library Use Case Examples
Importing the library
To use this library, please move all *.lua
files to the source directory of your driver, then import Extras.lua
file in your driver.lua
file. The Extras.lua
file includes all other library files needed.
This library depends on a driver template. Please, make sure that the driver template files are included in the path. NOTE Make sure paths are setup correctly
How to use the library
Set Up
The code to the right is an example how to setup the extras library:
require "Extas"
function ON_DRIVER_INIT.SetupExtras()
extras = Extras:new(DEFAULT_PROXY_BINDINGID)
extras:addSection("ButtonLabel")
extras:addSection("CheckboxLabel")
local bt1Table = {
id = "Button1ID",
label = "Button 1 Label",
command = "Button1Command",
extraparams = {
Checkbox4ID = "Extr1",
Checkbox3ID = "Extr2",
Button2ID = "Extr3"
}
}
extras:addObjects({ExtrasButton:new(bt1Table, "ButtonText1"),
ExtrasButton:new({id = "Button3ID", label = "Button 3 Label", command = "Button1Command"}, "ButtonText3"),
ExtrasButton:new({id = "Button2ID", label = "Button 2 Label", command = "Button1Command"}, "ButtonText2"),
ExtrasButton:new({id = "Button4ID", label = "Button 4 Label", command = "Button1Command"}, "ButtonText4")},
"ButtonLabel")
extras:addObjects({ExtrasCheckbox:new({id = "Checkbox1ID", label = "Checkbox 1 Label", command = "Checkbox1Command"}, "true"),
ExtrasCheckbox:new({id = "Checkbox2ID", label = "Checkbox 2 Label", command = "Checkbox1Command"}, "true"),
ExtrasCheckbox:new({id = "Checkbox3ID", label = "Checkbox 3 Label", command = "Checkbox1Command"}, "true"),
ExtrasCheckbox:new({id = "Checkbox4ID", label = "Checkbox 4 Label", command = "Checkbox1Command"}, "true")},
"CheckboxLabel")
extras:sendSetup(DEFAULT_PROXY_BINDINGID)
end
- Section order in the CI will be in the same order section were added in the container class instance.
- Object order in the CI will be in the same order objects were added in the section.
- Remember that object could be added as separated elements or as an array of objects.
- This setup can be called in
DriverLateInit()
. Setting extras in theDriverInit()
callback is possible but not recommended.
Handling Proxy Commands
The next code example shows how to write handlers for proxy commands received when extras change:
-- Proxy Command Handlers
PRX_CMD.Button1Command(proxyId, tParams)
C4:SetVariable("Extras_Button1", os.date())
LogDebug(os.date() .. " " .. extras:getObject(tParams.id).label .. " - Extras Button pressed")
end
function PRX_CMD.Checkbox1Command(proxyId, tParams)
C4:SetVariable("Extras_Checkbox1", tParams.value)
LogDebug(os.date() .. " " .. extras:getObject(tParams.id).label .. " - Extras Checkbox switched")
extras:updateObject(proxyId, tParams.id, tParams.value)
end
To handle changes in extras parameters coming from the device side, the updateObject
method can be used. This method updates extras object instance and sends proxy notification that extras status has been changed. Also, each ExtrasObjectBasedClass
class supports the ExtrasObjectBasedClass:update(value, hidden)
method that enables extras update from the class instance directly.
It is nice to create a variable for each extras object, to give the partner opportunity to monitor and take action based on extras states. Sample variable definitions are to the right.
--Variable Examples
C4:AddVariable("Extras_Button1", "", "STRING")
C4:AddVariable("Extras_Checkbox1", "", "BOOL")
Sqishy
If the Lua Squish is used, the Module code snippet below should be included in the squishy file:
-- Lua Squish Sample
Module "Extras" "extras/Extras.lua"
Module "ExtrasObject" "extras/ExtrasObject.lua"
Module "ExtrasButton" "extras/ExtrasButton.lua"
Module "ExtrasCheckbox" "extras/ExtrasCheckbox.lua"
Module "ExtrasIcon" "extras/ExtrasIcon.lua"
Module "ExtrasList" "extras/ExtrasList.lua"
Module "ExtrasSwitch" "extras/ExtrasSwitch.lua"
Module "ExtrasNumber" "extras/ExtrasNumber.lua"
Module "ExtrasSlider" "extras/ExtrasSlider.lua"
Module "ExtrasText" "extras/ExtrasText.lua"
Module "ExtrasTextField" "extras/ExtrasTextField.lua"
In this case, the library can be used as git submodule.
Removing
To remove the object or the section please use following methods:
Extras:removeObject(id)
Extras:removeSection(sectionLabel)
This way, you will avoid lost objects (objects that are in section array but will not be displayed because empty index before). It is strongly recommended to hide rather than remove objects that will be temporary removed form the CI.
Before destroying an Extras class instance, please use the Extras:cleanCapability()
method. Also, please pay attention to the Capability section of the documentation.
Light V2 Variables
Light State: ID = 1000. Boolean indicating if the light Brightness is not at the Off preset. If you set this variable to true on a dimmer, it will go to the On preset. On a switch, only the first variable exists.
Light Brightness Percent: ID = 1001. An integer indicating the current brightness for a dimmer. The value should be between 0-100.
Click Rate Up: ID = 1002. An integer indicating the number of milliseconds. (Used in "On" Preset).
Click Rate Down: ID = 1003. An integer indicating the number of milliseconds. (Used in "Off" Preset).
Hold Rate Up: ID = 1004. An integer indicating the number of milliseconds. (Used in "Slow On" Preset).
Default On Preset Brightness: ID = 1006. An integer indicating what the preset "On" brightness is and thus what a light Brightness would go to if the top wall keypad button is clicked, regardless what the light level is at and including even if the current brightness is higher. (Used in "On" Preset).
Max Brightness: ID = 1007. An integer indicating how high the light will go with a click. To go passed the max (still capped at 100%), you need to press and hold.
Min Brightness: ID = 1008. An integer on how low the light will go before skipping values between this number and 0/completely off.
Cold Start Brightness: ID = 1009. An integer of what level to go to when first turning on before attempting to do a ramp.
Cold Start Time: ID = 1010. An integer indicating the amount of time in milliseconds to stay at the cold start level before starting a ramp.
Color Presets ID=1300. An XML string containing all of the Color Presets that are configured in the system. For UI use only.
Color Active Presets ID=1301. An XML string containing all of the presets that are currently active. For UI use only.
Example
<active_presets>
<preset>
<name>Relax</name>
<id>2</id>
<origin>2</origin>
</preset>
</active_presets>
In the example to the right, the origin value indicates if the preset came from a device (1), or the color agent (2).
Light Dynamic Capabilities ID=6661. An XML string containing the active dynamic capabilities for this light proxy. For UI use Only.
Example
<DynamicCapabilities>
<supports_broadcast_scenes>False</supports_broadcast_scenes>
<dimmer>False</dimmer>
<supports_target>False</supports_target>
<supports_color>False</supports_color>
<supports_color_correlated_temperature>False<supports_color_correlated_temperature>
<color_correlated_temperature_min>1000<color_correlated_temperature_min>
<color_correlated_temperature_max>20000</color_correlated_temperature_max>
<color_rate_behavior>0</color_rate_behavior>
<color_rate_min>0</color_rate_min>
<color_rate_max>0</color_rate_max>
<color_trace_tolerance>2</color_trace_tolerance>
<has_extras>False</has_extras>
<click_rate_min>0</click_rate_min>
<click_rate_max>86400000</click_rate_max>
<hold_rate_min>1000</hold_rate_min>
<hold_rate_max>86400000</hold_rate_max>
</DynamicCapabilities>
Lock Proxy Commands
ADD USER
Adds a user.
Signature
ADD_USER ()
Parameter | Description |
---|---|
str | USER NAME |
str | PASSCODE |
bool | IS ACTIVE: Optional, true |
bool | SCHEDULED DAYS: Comma delimited BOOLEAN. Optional. Sunday – Saturday, true |
int | START DAY: 1-31. |
int | START MONTH: 1-12. |
int | START YEAR: YYYY. |
int | END DAY: 1-31 |
int | END MONTH: 1-12. |
int | END YEAR: YYYY. |
int | START TIME: optional, minutes from midnight. |
int | END TIME: optional, minutes from midnight. |
str | SCHEDULE TYPE: Optional. daily |
bool | IS RESTRICTED SCHEDULE: Optional, true/false. Specifies whether or not to enforce the user’s schedule. Defaults to false. |
Returns
None
CLOSE
Lock if status is unlocked. Called by bound relay.
Signature
CLOSE ()
Parameters
None
Returns
None
DELETE USER
Deletes a user.
Signature
DELETE_USER ()
Parameters
None
Returns
None
EDIT USER
Edits the user's schedule and status.
Signature
ADD_USER ()
Parameter | Description |
---|---|
int | USER ID |
str | USER NAME |
str | PASSCODE |
bool | IS ACTIVE: Optional, true |
bool | SCHEDULED DAYS: Comma delimited BOOLEAN. Optional. Sunday – Saturday, true |
int | START DAY: 1-31. |
int | START MONTH: 1-12. |
int | START YEAR: YYYY. |
int | END DAY: 1-31 |
int | END MONTH: 1-12. |
int | END YEAR: YYYY. |
int | START TIME: optional, minutes from midnight. |
int | END TIME: optional, minutes from midnight. |
str | SCHEDULE TYPE: Optional. daily |
bool | IS RESTRICTED SCHEDULE: Optional, true/false. Specifies whether or not to enforce the user’s schedule. Defaults to false. |
Returns
None
LOCK
Lock if status is unlocked.
Signature
LOCK ()
Parameters
None
Returns
None
OPEN
Unlock if status is unlocked. Called by bound relay.
Signature
OPEN ()
Parameters
None
Returns
None
REQUEST CAPABILITIES
This command results in the Protocol Notification CAPABILITIESCHANGED
` being sent from the Protocol to the Proxy.
Signature
REQUEST_CAPABILITIES ()
Parameters
None
Returns
None
REQUEST CUSTOM SETTINGS
This command results in the Protocol Notification CUSTOM_SETTINGS
being sent from the Protocol to the Proxy.
Signature
REQUEST_CUSTUM_SETTINGS ()
Parameters
None
Returns
None
REQUEST CUSTOM SETTINGS
This command results in the Protocol Notification HISTORY
being sent from the Protocol to the Proxy.
Signature
REQUEST_HISTORY ()
Parameters
None
Returns
None
REQUEST SETTINGS
This command results in the Protocol Notification SETTINGS
being sent from the Protocol to the Proxy.
Signature
REQUEST_SETTINGS ()
Parameters
None
Returns
None
REQUEST USERS
This command results in the Protocol Notification USERS
being sent from the Protocol to the Proxy.
Signature
REQUEST_USERS ()
Parameters
None
Returns
None
SET ADMN CODE
Set the lock's administrator code.
Signature
PSET_ADMIN_CODE ()
Parameter | Description |
---|---|
str | PASSCODE |
Returns
None
SET AUTO LOCK SECONDS
Set the number of seconds to wait before locking automatically after unlocked. A value of 0 means do not auto lock. Range determined by capabilities.
Signature
SET_AUTO_LOCK_SECONDS ()
Parameter | Description |
---|---|
unti | SECONDSE |
Returns
None
SET CUSTOM SETTINGS
This command results in the Protocol Notification CUSTOM_SETTINGS
being sent from the Protocol to the Proxy.
Signature
SET_CUSTUM_SETTINGS ()
Parameter | Description |
---|---|
str | NAME: Required. |
str | VALUE: Required. Value type must be converted based on custom setting type. |
Returns
None
SET LANGUAGE
Set the lock's language. Values determined by capabilities.
Signature
SET_ LANGUAGE ()
Parameter | Description |
---|---|
str | LANGUAGE. |
Returns
None
SET LOCK MODE
Set the lock’s mode. The supported modes are determined by capabilities.
Signature
SET_ LOCK_MODE ()
Parameter | Description |
---|---|
str | MODE: Required: normal |
Returns
None
SET LOG FAILED ATTEMPTS
For lock’s that have internal log storage, sets whether or not to log failed attempts.
Signature
SET_LOG_FAILED_ATTEMPTS ()
Parameter | Description |
---|---|
bool | true/false |
Returns
None
SET NUMBER LOG ITEMS
For locks that have internal log storage, set the maximum number of log items to store. Range determined by capabilities.
Signature
SET_NUMBER_LOG_ITEMS ()
Parameter | Description |
---|---|
unit | count |
Returns
None
SET ONE TOUCH LOCKING
Set whether or not keypad activation will extend bolt if unlocked.
Signature
SET_ONE_TOUCH_LOCKING ()
Parameter | Description |
---|---|
bool | true/false |
Returns
None
SET SCHEDULED LOCKOUT ENABLED
Disable or enable all user passcode access.
Signature
SET_SCHEDULED_LOCKOUT_ENABLED ()
Parameter | Description |
---|---|
bool | true/false |
Returns
None
SET SHUT OUT TIMER
Set the number of seconds to wait after wrong code attempts has been reached. Range determined by capabilities.
Signature
SET_SHUT_OUT_TIMER ()
Parameter | Description |
---|---|
unit | SECONDS |
Returns
None
SET WRONG CODE ATTEMPTS
Set the number of failed passcode attempts before users are temporarily shut out. Range determined by capabilities.
Signature
SET_WRONG_CODE_ATTEMPTS ()
Parameter | Description |
---|---|
unit | COUNT |
Returns
None
SET VOLUME
Sets the lock’s volume.
Signature
SET_ VOLUME ()
Parameter | Description |
---|---|
str | high/low/silent |
Returns
None
TOGGLE
Toggle the state of the lock. If the lock status is unknown or default, the resulting status is indeterminable
Signature
TOGGLE ()
Parameter
None
Returns
None
UNLOCK
Unlock if status is locked.
Signature
UNLOCK ()
Parameter
None
Returns
None
Lock Protocol Notifications
BATTERY STATUS CHANGED
Sent when battery status changed.
Signature
BATTERY_STATUS_CHANGED ()
Parameter | Description |
---|---|
str | BATTERY STATUS: Required parameter: normal, warning, or critical. Fires Events: BatteryNormal, BatteryWarning, BatteryCritical. |
CAPABILITY CHANGED
Sent when a capability changes; or when requested by the protocol driver command REQUEST_CAPABILITES
, and a capability has changed from what is defined in the driver capabilities XML
Signature
CCAPABILITY_CHANGED ()
Parameter | Description |
---|---|
str | NAME: Required parameter: The name of the setting is its XML tag as defined in <lock_setup> . |
str | VALUE: Required parameter: The capabilities new value. |
HISTORY
Sent in response to the command REQUEST_HISTORY
.
Signature
HISTORY ()
Parameter
None
Returns
None
Example
<lock_history>
<history_item>
<history_id>history-ID INT</history_id>
<date>date STRING</date>
<time>time STRING</time>
<message>message STRING</message>
<source>source STRING</source>
</history_item>
</lock_history>
CUSTOM SETTINGS
Sent in response to the command REQUEST_CUSTOM_SETTINGS
.
Signature
CUSTOM_SETTINGS ()
Parameter
None
Returns
None
Example
<lock_custom_settings>
<custom_setting>
<name>name STRING</name>
<type>STRING,LIST,RANGED_INTEGER,RANGED_FLOAT,BOOLEAN</type>
<mode> alpha|alpha-numeric|password</mode>
<items>
<item>item</item>
<item>item</item>
</items>
<minimum>min</minimum>
<maximum>max</maximum>
<value>value</value>
</custom_setting>
</lock_custom_settings>
CUSTOM SETTINGS CHANGED
Sent in when a custom setting changes
Signature
CUSTOM_SETTINGS_CHANGED ()
Parameter
None
Returns
None
LOCK STATUS CHANGED
Sent in when a lock status changes for any reason.
Signature
LOCK_STAUS_CHANGED ()
Parameter | Description |
---|---|
str | LOCK STATUS: Required parameter: unknown, locked, unlocked, or fault. |
str | LAST ACTION DESCRIPTION: Optional parameter. |
str | SOURCE: Optional parameter: the source that affected the status change. |
bool | MANUAL: Optional parameter: true |
Returns
None
SETTINGS
Sent in response to the command REQUEST_SETTINGS
.
Signature
SETTINGS ()
Parameters
None
Returns
None
Example
<lock_settings>
<admin_code>admin-code STRING</admin_code>
<auto_lock_time>nINT</auto_lock_time>
<log_item_count>nINT </log_item_count>
<schedule_lockout_enabled>true|false</schedule_lockout_enabled>
<lock_mode> normal|vacation|privacy</lock_mode>
<log_failed_attempts>true|false</log_failed_attempts>
<wrong_code_attempts>nINT</wrong_code_attempts>
<shutout_timer>nINT</shutout_timer>
<language>English|French|Spanish|etc</language>
<volume>silent|low|high</volume>
<one_touch_locking>true|false</one_touch_locking>
</lock_settings>
SETTINGS CHANGED
Sent when a setting changes.
Signature
SETTINGS_CHANGED ()
Parameter | Description |
---|---|
str | Required parameter. The name of the setting is its XML tag as defined in <lock_settings>’ |
Returns
None
USERS
Sent in response to the command REQUEST_HISTORY
.
Signature
USERS ()
Parameter
None
Returns
None
USER ADDED
Sent when a user is added.
Signature
USER_ADDED ()
Parameter | Description |
---|---|
int | USER ID |
str | USER NAME |
str | PASSCODE |
bool | IS ACTIVE: Optional, true |
bool | SCHEDULED DAYS: Comma delimited BOOLEAN. Optional. Sunday – Saturday, true |
int | START DAY: 1-31. |
int | START MONTH: 1-12. |
int | START YEAR: YYYY. |
int | END DAY: 1-31 |
int | END MONTH: 1-12. |
int | END YEAR: YYYY. |
int | START TIME: optional, minutes from midnight. |
int | END TIME: optional, minutes from midnight. |
str | SCHEDULE TYPE: Optional. daily |
bool | IS RESTRICTED SCHEDULE: Optional, true/false. Specifies whether or not to enforce the user’s schedule. Defaults to false. |
Returns
None
USER CHANGED
Sent when a user setting is changed.
Signature
USER_CHANGED ()
Parameter | Description |
---|---|
int | USER ID |
str | USER NAME |
str | PASSCODE |
bool | IS ACTIVE: Optional, true |
bool | SCHEDULED DAYS: Comma delimited BOOLEAN. Optional. Sunday – Saturday, true |
int | START DAY: 1-31. |
int | START MONTH: 1-12. |
int | START YEAR: YYYY. |
int | END DAY: 1-31 |
int | END MONTH: 1-12. |
int | END YEAR: YYYY. |
int | START TIME: optional, minutes from midnight. |
int | END TIME: optional, minutes from midnight. |
str | SCHEDULE TYPE: Optional. daily |
bool | IS RESTRICTED SCHEDULE: Optional, true/false. Specifies whether or not to enforce the user’s schedule. Defaults to false. |
Returns
None
USER DELETED
Sent when a user setting is deleted.
Signature
USER_DELETED ()
Parameter | Description |
---|---|
int | USER ID |
str | USER NAME |
Returns
None
Lock Capabilities
LOCK CAPABILITIES
The following Capabilities are supported with the Lock Proxy. Note that these capabilities will persist their values. This can result in inaccurate capability values being displayed on Navigators.
The correct way to update these capabilities when a driver is updated is with the DYNAMIC_CAPABILITY_CHANGED notification. For example see the lua code to the right which uses name/value pairs:
C4:SendToProxy(5001, 'CAPABILITY_CHANGED', { NAME = 'shutout_timer_values', VALUE = '10, 30' } , 'NOTIFY')
C4:SendToProxy(5001, 'CAPABILITY_CHANGED', { NAME = 'shutout_timer_display_values', VALUE = '10s, 30s' }, 'NOTIFY')
Capabilities
<auto_lock_time_display_values></auto_lock_time_display_values>
Comma delimited list of correlating display values: str
<auto_lock_time_values></auto_lock_time_values>
Comma delimited list of increasing values: int
<has_admin_code></has_admin_code>
Defines whether the lock has an admin code that must be entered to access lock management. true|false
<has_auto_lock_time></has_auto_lock_time>
Defines whether a lock has an auto lock setting. A lock can auto lock after a set amount of time or not auto lock if time set to 0 – OFF: true|false
<has_custom_settings></has_custom_settings>
Defines whether the lock supports any custom settings that should be added to the list of standard proxy defined settings. See lock_custom_settings
data-to-ui: true|false
<has_date_range_schedule></has_date_range_schedule>
Defines whether the lock supports a date range schedule for users: true|false
<has_daily_schedule></has_daily_schedule>
Defines whether the lock supports a daily schedule for users: true|false
<has_internal_history></has_internal_history>
Defines whether the lock maintains its own list of log / history items: true|false
<has_language></has_language>
Defines whether the lock has a setting for different languages: true|false
<has_log_item_count></has_log_item_count>
Defines whether a lock has a setting for the number of log items to store for internal logging/history: true|false
<has_log_failed_attempts></has_log_failed_attempts>
Defines whether a lock has a setting for logging failed keypad unlock attempts: true|false
<has_lock_modes></has_lock_modes>
Defines whether the lock has a setting for different modes. Vacation mode prevents users from opening a lock using the keypad. Privacy mode prevents users from opening a lock using the keypad. However, if a key is used during privacy mode the lock resets to normal mode. Not all modes have to be supported. true|false
<has_one_touch_locking></has_one_touch_locking>
Defines whether the lock has a setting to allow one touch locking at the keypad without entering full key code: true|false
<has_schedule_lockout></has_schedule_lockout>
Defines whether a lock has a schedule lockout setting. The schedule lockout can be used to prevent all users from manually unlocking a lock using the lock's keypad. This is similar to privacy mode: true|false
<has_settings></has_settings>
Defines whether the lock supports any settings: true|false
<has_shutout_timer></has_shutout_timer>
Defines whether the lock has a setting for how long to disable lock keypad after failed attempts: true|false
<has_volume></has_volume>
Defines whether the lock has a setting for volume: true|false
<has_wrong_code_attempts</has_wrong_code_attempts>
Defines whether the lock has a setting for the number of failed unlock attempts to allow before temporarily disabling the lock: true|false
<is_management_only></is_management_only>
Defines whether the lock is only used for managing users A lock that is management only does not support the LOCK, UNLOCK, and TOGGLE commands: true|false
<language_values></language_values>
English, French, Spanish …: str
<lock_modes_values></lock_modes_values>
normal, vacation, privacy: str
<log_item_count_values></log_item_count_values>
Comma delimited list of increasing values: int
<max_users></max_users>
The maximum number of user that can be added to a lock: int
<shutout_timer_display_values></shutout_timer_display_values>
Comma delimited list of correlating display values: str
<shutout_timer_values></shutout_timer_values>
Comma delimited list of increasing values: int
<wrong_code_attempts_values> </wrong_code_attempts_values>
Comma delimited list of increasing values: int
Lock Conditionals
LOCK CONDITIONALS
The Lock Proxy supports the following conditionals:
IS_LOCKED
IS_UNKNOWN
IS_UNLOCKED
IS_FAULT
IS_BATTERY_NORMAL
IS_BATTERY_WARNING
IS_BATTERY_CRITICAL
Lock Events
LOCK EVENTS
The Lock Proxy fires the following events:
Locked (1) – UI, keypad or deadbolt.
Unlocked (2) – UI, keypad or deadbolt.
LockedManually (3) – Keypad or deadbolt.
UnlockedManually (4) – Keypad or deadbolt.
LockedProxy (5) - Locked via the Proxy.
UnlockedProxy (6) - Unlocked via the proxy.
Fault (7) -Door/Lock Jam Event. Battery too low.
BatteryNormal (8) - Battery state change from Normal.
BatteryWarning (9) - Battery state change from Warning.
BatteryCritical (10) - Battery state change from Critical.
Lock Variables
LOCK VARIABLES
The Lock Proxy supports the following variables:
LockStatus (1000) – STRING: unknown, locked, unlocked, fault
BatteryStatus (1001) – STRING: normal, warning, critical
LastActionDescription (1002) - STRING: Description of the last action for the lock. For example: "User opened Lock." "Lock was Toggled."
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.
Signature
SET_AUX_MODE ()
Parameter | Description |
---|---|
ID |
ID value of the auxiliary to set. |
MODE |
ON/OFF |
Returns
None
SET POOL HEAT MODE
Received from the proxy when pool het mode has been changed.
Signature
SET_POOL_HEATMODE ()
Parameter | Description |
---|---|
MODE |
string: ON/OFF |
ID |
int: heat mode ID |
Returns
None
SET POOL PUMP MODE
Received from the proxy when pool pump mode has been changed.
Signature
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.
Signature
SET_POOL_SETPOINT ()
Parameter | Description |
---|---|
SETPOINT |
int: Temperature |
Returns
None
SET SPA HEAT MODE
Received from the proxy when spa heat mode been changed.
Signature
SET_SPA_HEATMODE ()
Parameter | Description |
---|---|
MODE |
string: ON/OFF |
ID |
int: heat mode ID |
Returns
None
SET SPA PUMP MODE
Received from the proxy when spa pump mode has been changed.
Signature
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.
Signature
SET_SPA_SETPOINT ()
Parameter | 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.
Signature
AUX_ITEM_UPDATED ()
Parameter | 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.
Signature
AUX_ITEM_ADDED ()
Parameter | 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.
Signature
AUX_ITEM_ADDED ()
Parameter | 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
Signature
AIR_TEMP_CHANGED ()
Parameter | Description |
---|---|
TEMPERATURE |
Temperature value. |
Returns
None
Example
C4:SendToProxy(5001, "AIR_TEMP_CHANGED", {TEMPERATURE = 99})
AUX NAMES CHANGED
This notification provides a way to override capabilities.
Signature
AUX_NAMES_CHANGED ()
Parameter | Description |
---|---|
AUXNAMES |
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>
AUX MODE 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.
Signature
AUX_MODE_CHANGED ()
Parameter | Description |
---|---|
ID |
ID of auxiliary |
MODE |
ON/OFF |
SELECTED |
For type LIST from <aux_types> <items> item selected if is provided by the device.m |
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.
Signature
HAS_AIR_CHANGED ()
Parameter | Description |
---|---|
HASAIR |
(“True/False”) |
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.
Signature
HAS_POOL_CHANGED ()
Parameter | Description |
---|---|
HASPOOL |
(“True/False”) |
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.
Signature
HAS_SPA_CHANGED ()
Parameter | Description |
---|---|
HASSPA |
(“True/False”) |
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
Signature
NUM_AUXS_CHANGED ()
Parameter | Description |
---|---|
AUXS |
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
Signature
POOL_PUMPMODES_LIST_CHANGED ()
Parameter | Description |
---|---|
POOL_PUMPMODES |
Comma delimited list. |
Returns
None
POOL SETPOINT CHANGED
Sent to the proxy to indicate that the setpoint on the pool controller has changed.
Signature
POOL_SETPOINT_CHANGED ()
Parameter | Description |
---|---|
SETPOINT |
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.
Signature
POOL_TEMP_CHANGED ()
Parameter | Description |
---|---|
TEMPERATURE |
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.
Signature
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.
Signature
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.
Signature
PUMP_MODE_CHANGED ()
Parameter | Description |
---|---|
PUMPMODE |
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.
Signature
SCALE_CHANGED ()
Parameter | Description |
---|---|
SCALE |
“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.
Signature
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.
Signature
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.
Signature
SPA_MODE_CHANGED ()
Parameter | Description |
---|---|
SPAMODE |
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
Signature
SPA_PUMPMODES_LIST_CHANGED ()
Parameter | Description |
---|---|
SPA_PUMPMODES |
Comma delimited list. |
Returns
None
SPA SETPOINT CHANGED
Sent to the proxy to indicate that the temperature setpoint on the spa controller has changed.
Signature
SPA_SETPOINT_CHANGED ()
Parameter | Description |
---|---|
SETPOINT |
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.
Signature
SPA_TEMP_CHANGED ()
Parameter | Description |
---|---|
TEMPERATURE |
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
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
Security Capabilities
The following Capabilities are supported by the Security Proxy:
button_list
Defines buttons to be displayed on UI panel along with IDs for Keypad. locCode defines button's column (A...Z) and row (1...9). For example, A3 indicates column 1 row 3. Width defines button width (in columns).
Parameter |
---|
True/False |
display_type
Define GUI display location and width.
Parameter | Description |
---|---|
locCode | location code |
width |
Example
<location>locCode</location>
<width>nWidth</width>
has_alrm_cleared_event
Alarm capable of generating an event when alarm is cleared.
Parameter |
---|
True/False |
has_alrm_event
Alarm capable of generating an event when activated
Parameter |
---|
True/False |
has_trouble_event
Alarm capable of generating an event when alarm trouble is detected.
Parameter |
---|
True/False |
Security Panel Commands
ADDITIONAL_PANEL_INFO
Command from the UI to the Proxy and then forwarded on to the Protocol. Has no Return values. This command will only be sent after having received a REQUEST_ADDITIONAL_INFO
notification from the protocol driver. The protocol driver will send the notification to the proxy driver, which will send a request_additional_info
DataToUI command to the UIs. The UIs will then prompt the user for additional info. After the information is entered, the UI will generate this command to send back to the protocol driver. See the REQUEST_ADDITIONAL_INFO
notification.
Parameter | Description |
---|---|
str | Info: A copy of the info_string parameter that was passed with the request_additional_info request. The protocol driver will need this to know what actions to return to when it gets the new info. |
str | FunctionName: A copy of the function_name parameter that was passed with the request_additional_info request. The protocol driver may need this to know what actions to return to when it gets the new info. |
str | NewInfo: The new info provided by the UI in response to the Request_additional_info request. |
str | InterfaceID: A unique (str) to identify which interface is sending this command. |
Returns
None
GET_ALL_PGM_INFO
Request to return information about each PGM active on the panel. The information consists of its id and a flag indicating if it is currently opened.
Parameters
None
Return | Description |
---|---|
int | PGM ID |
bool | True, False: True if PGM is Open. |
GET_ALL_PARTITION_INFO
Request to return information to the panel proxy about each of its partitions. The information consists of its id, if it’s enabled, its binding id, and its current state.
Parameters
None
Return | Description |
---|---|
int | Partition ID |
bool | True, False: True if this partition is Open. |
int | Binding ID |
str | State |
GET_ALL_ZONE_INFO
Request to return information about each zone on the panel. The information consists of its id, name, type_id, and a list of partitions the zone is included in, a flag indicating if it can be bypassed, and a flag indicating if it is currently opened.
Parameters
None
Return | Description |
---|---|
int | Zone ID |
str | Zone Name |
int | Zone Type ID |
table | Partitions the Zone is included in. |
bool | True, False: True if Zone can be bypassed. |
bool | True, False: True if Zone is currently Open. |
str | State |
GET_PANEL_SETUP
Calls [GET_ALL_PARTITION_INFO\]1
PGM_CLOSE
Sends an ‘close’ command to the targeted PGM.
Parameter | Description |
---|---|
int | PGM ID: The id of the targeted PGM. |
PGM_OPEN
Sends an ‘open’ command to the targeted PGM.
Parameter | Description |
---|---|
int | PGM ID: The id of the targeted PGM. |
PGM_TOGGLE
Sends an ‘toggle’ command to the targeted PGM.
Parameter | Description |
---|---|
int | PGM ID: The id of the targeted PGM. |
PGM_TRIGGER
Sends an ‘trigger’ command to the targeted PGM.
Parameter | Description |
---|---|
int | PGM ID: The id of the targeted PGM. |
READ_PANEL_INFO
Send a command to the panel to read its partition and zone information.
SET_PANEL_TIME_DATE
Set the current date and time on the panel. This command is only available if the ‘can_set_time’ capability is set to ‘true’.
Parameter | Description |
---|---|
int | YEAR: The current year (4 digits) |
int | MONTH: The current month (2 digits 01-12) |
int | DAY: The current day of the month (2 digits 01-31) |
int | HOUR: The current hour in 24-hour time (2 digits 00-23) |
int | MINUTE: The current minute in the hour (2 digits 00-59) |
int | SECOND: The current second in the minute (2 digits 00-59) |
str | INTERFACE_ID: Unique string ID indicating from where the command originated. |
SET_PARTITION_ENABLED
Set a flag to designate whether or not the specified partition is currently enabled. This command is only available if the ‘can_activate_partitions’ capability is set to ‘true’.
Parameter | Description |
---|---|
str | PARTITION_ID: The id number of the targeted partition. |
bool | ENABLED: ‘True’ if this partition should now be enabled, False if not. |
SEND_PGM_COMMAND
Send a command to a PGM on the panel.
Parameter | Description |
---|---|
int | PGM ID: The id of the targeted PGM. |
bool | ENABLED: ‘True’ if this partition should now be enabled, False if not. |
str | COMMAND: Possible commands are: ‘open’, ‘close’, ‘toggle’, and ‘trigger’. |
SET_ZONE_INFO
Set the information about a specified zone in the driver.
Parameter | Description |
---|---|
int | ZONE_ID: The id of the targeted zone. |
str | NAME: The name by which we will now refer to this zone. |
str | TYPE_ID: The type of zone that the Control4 project will consider this zone. This will determine which icons will show up when it is referenced. Valid values are: |
”CONTACT_SENSOR" | |
”EXTERIOR_DOOR" | |
“EXTERIOR_WINDOW" | |
“INTERIOR_DOOR" | |
"MOTION_SENSOR" | |
"FIRE" | |
"GAS" | |
"CARBON_MONOXIDE" | |
"HEAT" | |
"WATER" | |
"SMOKE" | |
"PRESSURE" | |
"GLASS_BREAK" | |
"GATE" | |
"GARAGE_DOOR" | |
bool | DATA_GUARDED: ‘True’ if these new settings should be protected so that information from the panel doesn’t overwrite them. |
str | INTERFACE_ID: Unique string ID indicating from where the command originated. |
Security Panel Capabilities
The following Capabilities are supported with the Security System Controller Panel:
<can_set_time></can_set_time>
Defaults to true.
<can_activate_partitions></can_activate_partitions>
Defaults to true.
Security Panel Conditionals
The following Conditionals are supported with the Security System Controller Panel. System programming conditionals are handled by the proxy and return a true or false:
IN_TROUBLE
: Returns True if the system is currently in a TROUBLE state.
Security Panel Events
The following Events are supported with the Security System Controller Panel.
TROUBLE
: Fired when the security panel receives a TROUBLE notification.
TROUBLE_CLEAR
: Fired when the TROUBLE state is cleared.
Security Panel Notifications
Overview
Sending Protocol Notifications requires the use of the SendToProxy API.
The first parameter for C4:SendToProxy is a binding id. The API doesn't not recognize Partiton Ids. The assumption is made that the panel binding defined in driver.xml is on binding id 5001. Then partition 1 is on binding id 5002, partition 2 on 5003, etc.
The second parameter is the text of the particular notification being sent. The Proxy knows the information being sent based off of this text. For example, when the parameter "PARTITION_ENABLED" is sent through SendtoProxy, the Camera proxy knows parameter type information that "PARTITION_ENABLED" should contain.
The third parameter is a table of the parameters for the particular notification. In this case, the PARTITION_ENABLED notification takes one parameter named "ENABLED". Its value is either "true" or "false". Note that the third parameter could also be sent as a string rather than a table. In this case the are no parameter names. The whole string is just interpreted as data for the notification. This usage is mostly deprecated, but some notifications (such as DISPLAY_TEXT) started out doing this and have never been changed so they don't break backward compatibility.
The fourth parameter is just the word "NOTIFY". This is just some extra information for BindingManager so it won't try to make assumptions about the type of message based on binding ids. It is recommended that it is included in C4:SendToProxy.
To the right are an examples fully formed PANEL_ZONE_STATE and ALL_ZONES_INFO Notifications being sent using the SendToProxy API.
-- PANEL_ZONE_STATE Example
function SendZoneState(ZoneId, IsOpen, AreInitializing)
C4:SendToProxy( 5001,
"PANEL_ZONE_STATE",
{ ZONE_ID = ZoneId,
ZONE_OPEN = IsOpen,
INITIALIZING = AreInitializing
},
"NOTIFY"
)
end
-- ALL_ZONES Example
function SendAllZoneInfo()
local ZoneInfoXMLStr =
[[<zones>
<zone>
<id>1</id>
<name>Back Door</name>
<type_id>2</type_id>
<partitions></partitions>
<can_bypass>false</can_bypass>
<is_open>false</is_open>
</zone>
<zone>
<id>2</id>
<name>Front Door</name>
<type_id>2</type_id>
<partitions></partitions>
<can_bypass>false</can_bypass>
<is_open>false</is_open>
</zone>
<zone>
<id>3</id>
<name>Back Window</name>
<type_id>3</type_id>
<partitions></partitions>
<can_bypass>true</can_bypass>
<is_open>true</is_open>
</zone>
<zone>
<id>4</id>
<name>Zone 4</name>
<type_id>5</type_id>
<partitions></partitions>
<can_bypass>true</can_bypass>
<is_open>false</is_open>
</zone>
</zones>]]
C4:SendToProxy( 5001,
"ALL_ZONES_INFO",
ZoneInfoXMLStr,
"NOTIFY"
)
end
ALL_PGMS_INFO
Sends and XML string of all PGMs (relays) and respective PGM information.
Parameter | Description |
---|---|
xml | XML data. See example. |
Example
<pgms>
<pgm>
<id>1</id>
<is_open>true</is_open>
</pgm>
<pgm>
<id>2</id>
<is_open>false</is_open>
</pgm>
<pgm>
<id>3</id>
<is_open>false</is_open>
</pgm>
</pgms>
ALL_ZONES_INFO
Sends and XML string of all zones and respective zone information.
Parameter | Description |
---|---|
xml | XML data. See example. |
Example
<zones>
<zone>
<id>1</id>
<name>Back Door</name>
<type_id>2</type_id>
<partitions></partitions>
<can_bypass>false</can_bypass>
<is_open>false</is_open>
</zone>
<zone>
<id>2</id>
<name>Front Door</name>
<type_id>2</type_id>
<partitions></partitions>
<can_bypass>false</can_bypass>
<is_open>false</is_open>
</zone>
<zone>
<id>3</id>
<name>Back Window</name>
<type_id>3</type_id>
<partitions></partitions>
<can_bypass>true</can_bypass>
<is_open>true</is_open>
</zone>
<zone>
<id>4</id>
<name>Zone 4</name>
<type_id>5</type_id>
<partitions></partitions>
<can_bypass>true</can_bypass>
<is_open>false</is_open>
</zone>
</zones>
PANEL ADD PGM
Add a PGM (relay) to the panel.
Parameter | Description |
---|---|
num | PGM_ID: ID of the new PGM |
Example
C4:SendToProxy(TargetBindingID, "PANEL_ADD_PGM", { PGM_ID = 1 }, "NOTIFY")
SYNC PANEL INFO
Tells the Panel proxy that the hardware has been initialized and is ready to function.
Parameters
None
Example
C4:SendToProxy(TargetBindingID, "PANEL_INITIALIZED", {}, "NOTIFY")
PANEL PARTITION STATE
Lets the panel know the state of the given partition. This is used in the Properties display in ComposerPro.
Parameter | Description |
---|---|
num | PARTITION_ID: ID of the target partition. |
str | STATE: A string listing its state. Supported values include: "ARMED" "ALARM" "OFFLINE" "EXIT_DELAY" "ENTRY_DELAY" "DISARMED_READY" "DISARMED_NOT_READY" "CONFIRMATION_REQUIRED" |
str | TYPE: Further information on the state. For example, it could be "Stay" for a type of ARMED. It could be "Burglary" for a type of ALARM. Can be "" if not needed. |
Example
C4:SendToProxy(5001, "PANEL_PARTITION_STATE", {PARTITION_ID = 2, STATE = "ARMED", TYPE = "Stay"}, "NOTIFY")
PANEL PGM STATE
Current status of a PGM (relay): open or closed
Parameter | Description |
---|---|
num | PGM_ID: ID of the target PGM |
bool | PGM_OPEN: "true" if the PGM is opened. "false" if it is closed. |
bool | INITIALIZING: "true" if the PGM is initializing. This will prevent programming from firing. |
Example
C4:SendToProxy(TargetBindingID, "PANEL_PGM_STATE", { PGM_ID = 1, PGM_OPEN = true, INITIALIZING = false }, "NOTIFY")
PANEL REMOVE PGM
Remove a PGM (relay) from the panel.
Parameter | Description |
---|---|
num | PGM_ID: ID of the PGM being removed |
Example
C4:SendToProxy(TargetBindingID, "PANEL_REMOVE_PGM", { PGM_ID = 1 }, "NOTIFY")
PANEL_REMOVE_ ZONE
Remove a zone from the panel.
Parameter | Description |
---|---|
num | ID: ID of the target zone. |
Example
C4:SendToProxy(TargetBindingID, "PANEL_REMOVE_ZONE", { ID = 2}, "NOTIFY")
PANEL_ZONE_INFO
Information about a given zone that Navigator or Composer can display.
Parameter | Description |
---|---|
num | ID: ID of the target zone. |
str | NAME: The zone's name either read from the panel or assigned by the user. Will default to "Zone NN" |
num | TYPE_ID: The type of zone so that the Control4 system can map its sensor binding to a type of sensor. Current valid types with their ids are: |
UNKNOWN = 0 | |
CONTACT_SENSOR= 1 | |
EXTERIOR_DOOR= 2 | |
EXTERIOR_WINDOW= 3 | |
INTERIOR_DOOR = 4 | |
MOTION_SENSOR = 5 | |
FIRE = 6 | |
GAS = 7 | |
CARBON_MONOXIDE = 8 | |
HEAT = 9 | |
WATER = 10 | |
SMOKE = 11 | |
PRESSURE = 12 | |
GLASS_BREAK= 13 | |
GATE = 14 | |
GARAGE_DOOR = 15 | |
str | PARTITIONS: Comma-delimited string of numbers indicating which partitions this zone is a member of. For example, if this zone is included in both partitions 1 and 3, the string would be "1,3" |
bool | IS_OPEN: "true" = open. "false" = closed. |
Example
C4:SendToProxy(TargetBindingID, "PANEL_ZONE_INFO", { ID = 2, NAME = "ENTRYWAY", TYPE_ID = 5, PARTITIONS = "1,3", IS_OPEN = true}, "NOTIFY")
PANEL ZONE STATE
Sends the current status of a zone: open or closed.
Parameter | Description |
---|---|
num | ZONE_ID: ID of the target zone |
bool | ZONE_OPEN: "true" if the zone is opened. "false" if it is closed. |
bool | INITIALIZING: "true" if the zone is initializing. This will prevent programming from firing. |
Example
C4:SendToProxy(TargetBindingID, "PANEL_ZONE_STATE", { ZONE_ID = 1, ZONE_OPEN = true, INITIALIZING = false }, "NOTIFY")
REQUEST_ADDITIONAL_PANEL_INFO
This is a notification that can allow two-way communication with the keypad. This command will cause Navigator to bring up the keypad screen with the prompt string. After the user types in something on the keypad, it will be returned to our driver through the ADDITIONAL_PANEL_INFO command.
Parameter | Description |
---|---|
str | PROMPT: The prompt string that will show up above the keypad on the Navigator string. |
str | INFO_STRING: This is a string that will not be shown to the user, but will be returned with the ADDITIONAL_INFO command. It is a way that information can be built up through multiple iterations of calls to REQUEST_ADDITIONAL_PANEL_INFO |
str | FUNCTION_NAME: This will not be shown to the user but will also be returned with the ADDITIONAL_INFO command. It is the function name of the handler in the driver code that should be called when the new information arrives. |
bool | MASK_DATA: “true" if the information being entered on the screen (such as a user code) should not be readable. If the flag is true, then each character will show up on the Navigator screen as a dot. |
str | INTERFACE_ID: Unique identification string for one of the UIs that the prompt will appear on. |
Example
C4:SendToProxy(TargetBindingID, "REQUEST_ADDITIONAL_PANEL_INFO", { PROMPT =
promptstring, INFO_STRING = infostring, FUNCTION_NAME = functionstring, MASK_DATA = true, INTERFACE_ID = interfaceid }, "NOTIFY")
SYNC PANEL INFO
This is a request to the proxy driver to re-send all of the information it has about the panel to ensure synchronization.
Parameters
None
Example
C4:SendToProxy(TargetBindingID, "SYNC_PANEL_INFO", {}, "NOTIFY")
TROUBLE CLEAR
Clear the trouble flag.
Parameter | Description |
---|---|
num | IDENTIFIER: Unique number for the trouble instance that has been resolved. |
Example
C4:SendToProxy(TargetBindingID, "TROUBLE_CLEAR", { IDENTIFIER = 10 }, "NOTIFY")
TROUBLE START
List trouble that the panel is having on the Composer Property Page and on each of the Navigator partition screens.
Parameter | Description |
---|---|
str | TROUBLE_TEXT: Text listing the type of trouble. “For example: “Battery", "Communication", etc.) |
num | IDENTIFIER: Unique number for this instance of trouble. |
Example
C4:SendToProxy(TargetBindingID, "TROUBLE_START", { TROUBLE_TEXT = "Battery", IDENTIFIER = 10 }, "NOTIFY")
Security Panel Variables
The Security System Controller Panel supports the following variable:
TROUBLE_TEXT
String representing the text which will be displayed.
Security Partition Capabilities
The following Capabilities are supported with the Security System Controller Partition:
ui_version
Integer. Defaults to 2.
A value of 2 means that the new user interface is used. If the interface changes in the future, this number may increase again.
arm_states
Comma Delimited String.
A comma delimited string containing the possible arm states this system supports.
has_fire
Boolean. Defaults to false.
True if this partition supports the “Fire” emergency button. If True, Navigator will show a fire emergency icon.
has_medical
Boolean. Defaults to false.
True if this partition supports the “Medical” emergency button. If True, Navigator will show a medical emergency icon.
has_police
Boolean. Defaults to false.
True if this partition supports the “Police” emergency button. If True, Navigator will show a police emergency icon.
has_panic
Boolean. Defaults to false.
True if this partition supports the “Panic” emergency button. If True, Navigator will show a fire emergency icon.
functions
Comma Delimited String. Default to ""
A comma delimited string containing the functions supported by the protocol driver. Navigator will show these under its 'Functions' button on the main screen. When one of the functions are selected a command will be sent to the driver with the function name. It is up to the driver writer to implement that function.
star_label
string Default to *
The text that will be shown on the * button
on the keypad.
pound_label
string Default to “#”
The text that will be shown on the # button on the keypad.
button_A
xml string
<visible\>true\</visible\>
Designates whether button “A” will be visible on the UI keypad.
<label>This is Button A</label>
The text that will appear on button “A” on the UI keypad (if visible) Defaults to “A”
button_B
xml string
<visible\>true\</visible>
Designates whether button “B” will be visible on the UI keypad.
<label>This is Button B</label>
The text that will appear on button “B” on the UI keypad (if visible)
Defaults to “B”
button_C
xml string
<visible>true</visible>
Designates whether button “C” will be visible on the UI keypad.
<label>This is Button C</label>
The text that will appear on button “C” on the UI keypad (if visible)
Defaults to “C”
button_D
xml string
<visible>true</visible>
Designates whether button “D” will be visible on the UI keypad.
<label>This is Button D</label>
The text that will appear on button “D” on the UI keypad (if visible)
Defaults to “D”
supports_virtual_keypad
Boolean Defaults to true.
True if the panel supports raw key presses being passed by the software directly to the hardware; usually used for panel programming or setup. Navigator will provide the user a page that has the keypad on it.
Security Partition Conditionals
The following Conditionals are supported with the Security System Controller Partition. System programming conditionals are handled by the proxy and return a true or false:
CURRENT_ARM_STATUS
Parameter | Description |
---|---|
== | equal |
!= | not equal |
ARM STATE | One of the possible arm states listed in the arm_states configuration entry. These values are defined in the partition driver’s capabilities XML. See arm_states for more information. |
IS_ALARM
Returns true if the current state is ALARM.
IS_ARMED
Returns true if the current state is ARMED, ENTRY DELAY, EXIT DELAY or ALARM
IS_AWAY
Returns true if the partition is armed for away. Note this has been deprecated and is present for backwards compatibility purposes.
IS_DISARMED
Returns true if the partition is currently disarmed (states DISARMED READY or DISARMED NOT READY).
IS_HOME
Returns true if the partition is armed for home (states HOME or Stay). Note this has been deprecated and is present for backwards compatibility purposes.
IS_IN_ENTRY_DELAY
Returns true if the current state is ENTRY DELAY
IS_IN_EXIT_DELAY
Returns true if the current state is EXIT DELAY
PREVIOUS_ARM_STATUS
Same as CURRENT_ARM_STATUS
but used to compares with the arm status before the last state change.
Parameter | Description |
---|---|
== | equal |
!= | not equal |
ARM STATE | One of the possible arm states listed in the arm_states configuration entry. These values are defined in the partition driver’s capabilities XML. See arm_states for more information._ |
Security Partition Events
The following Events are supported with the Security System Controller Partition.
ALARM
Fired when the partition enters an alarm state.
ALARM_CLEAR
Fired when the partition leaves an alarm state.
ARM_FAILED
Fired when an attempt to arm the partition failed
ARMED
Fired when the partition is armed.
AWAY
Fired when the partition is armed for Away. Will be deprecated.
DISARMED
Fired when the partition is disarmed.
DISARM_FAILED
Fired when an attempt to disarm the partition failed
EMERGENCY_TRIGGERED
Fired when an emergency is triggered that doesn't change the alarm state.
HOME
Fired when the partition is armed for Home. Will be deprecated.
PARTITION_STATE_CHANGE
Fired when the partition state changes
Security Partition Notifications
Overview
Sending Protocol Notifications requires the use of the SendToProxy API.
The first parameter for C4:SendToProxy is a binding id. The API doesn't not recognize Partion Ids. The assumption is made that the panel binding defined in driver.xml is on binding id 5001. Then partition 1 is on binding id 5002, partition 2 on 5003, etc.
The second parameter is the text of the particular notification being sent. The Proxy knows the information being sent based off of this text. For example, when the parameter "PARTITION_ENABLED" is sent through SendtoProxy, the Camera proxy knows parameter type information that "PARTITION_ENABLED" should contain.
The third parameter is a table of the parameters for the particular notification. In this case, the PARTITION_ENABLED notification takes one parameter named "ENABLED". Its value is either "true" or "false". Note that the third parameter could also be sent as a string rather than a table. In this case the are no parameter names. The whole string is just interpreted as data for the notification. This usage is mostly deprecated, but some notifications (such as DISPLAY_TEXT) started out doing this and have never been changed so they don't break backward compatibility.
The fourth parameter is just the word "NOTIFY". This is just some extra information for BindingManager so it won't try to make assumptions about the type of message based on binding ids. It is recommended that it is included in C4:SendToProxy.
To the right is an example of a fully formed Partition_Enabled Notifications being sent using the SendToProxy API.
-- Partition_Enabled Example
function SetPartitionEnabled(PartitionID, Enabled)
local TargetBindingID = PartitionID + 5001
C4:SendToProxy(TargetBindingID, "PARTITION_ENABLED", { ENABLED = tostring(Enabled) }, "NOTIFY")
end
ARM FAILED
An attempt to arm the partition failed. The two most common reasons are because a user code is required to arm this partition or because one or more unbypassed zones are open.
Parameter | Description |
---|---|
str | ACTION: Supported values include: “keypad”: Will cause Navigator to ask for a user code and then retry. |
“bypass”: Will cause Navigator to show a list of zones that are in fault and ask the user if they wish to continue. If continue chosen, the arm command will be resent. However, it will try to bypass each faulted zone before it tries to arm again. | |
“NA”: Failed for some other reason. Navigator will take no further action on the arming. | |
Example
C4:SendToProxy(TargetBindingID, "ARM_FAILED", { ACTION = "bypass" }, "NOTIFY")
CLEAR_ZONE_LIST
Removes all the zones from a partition's list. Usually precedes new messages that will build that list back up.
Parameters
None
Example
C4:SendToProxy(TargetBindingID, "CLEAR_ZONE_LIST", {}, "NOTIFY")
CODE_REQUIRED_
Sets a flag that Navigator will use when an arm command is attempted. If the flag is true, Navigator will ask for a user code before it sends the arm command.
Parameter | Description |
---|---|
bool | CODE_REQUIRED_TO_ARM: “true" if the user code should be sent with the arm command. |
Example
C4:SendToProxy(TargetBindingID, "CODE_REQUIRED", { CODE_REQUIRED_TO_ARM = true }, "NOTIFY")
DISARM FAILED
Notification sent when an attempt to disarm the panel failed. This is typically due to an invalid user code.
Parameter | Description |
---|---|
str | NTERFACE_ID: Commands receiveD from Director will have an interface_id string sent as one of the parameters. This is a unique string that identifies where the command originated. When a response such as a failure is sent, it should only display on the UI that originated the command. To support this, the INTERFACE_ID string is sent back with the notification. Only the original UI will show the results of this notification. |
Example
C4:SendToProxy(TargetBindingID, "DISARM_FAILED", { INTERFACE_ID = ID }, "NOTIFY")
EMERGENCY TRIGGERED
An emergency was triggered, either from a sensor or by the user hitting one of the emergency buttons.
Parameter | Description |
---|---|
str | TYPE: Specifies the type of emergency just triggered. It can be anything, but standard types that Navigator has icons for are: Fire, Medical, Police, and Panic. |
Example
C4:SendToProxy(TargetBindingID, "EMERRGENCY_TRIGGERED", { TYPE = "Fire" }, "NOTIFY")
HAS_ZONE_
Tells the proxy that a particular zone is part of this partition.
Parameter | Description |
---|---|
num | ZONE_ID: The zone ID of the zone to be included in this partition's zone list. |
Example
C4:SendToProxy(TargetBindingID, "HAS_ZONE", { ZONE_ID = 2 }, "NOTIFY")
PARTITION ENABLED
It's possible to have partitions defined on a panel that aren't enabled. They still must have a proxy defined for them, but it is possible to specify whether they are currently in use or not.
Parameter | Description |
---|---|
bool | ENABLED: "true" if this partition is enabled. |
Example
C4:SendToProxy(TargetBindingID, "PARTITION_ENABLED", { ENABLED = tostring(Enabled) }, "NOTIFY")
PARTITION STATE
Specifies which state the partition is currently in.
Parameter | Description |
---|---|
str | STATE: Supported values include: "ARMED" "ALARM" "OFFLINE" "EXIT_DELAY" "ENTRY_DELAY" "DISARMED_READY" "DISARMED_NOT_READY" "CONFIRMATION_REQUIRED" |
str | TYPE: Further information on the state. For example, it could be "Stay" for a type of ARMED. It could be "Burglary" for a type of ALARM. Can be "" if not needed. |
num | DELAY_TIME_TOTAL: For Entry or Exit delays. The total time of the delay. |
num | DELAY_TIME_REMAINING: For Entry or Exit delays, the time remaining in the delay. |
bool | CODE_REQUIRED_TO_CLEAR: "true" if a user code is now required from Navigator to change from the current state. |
Example
C4:SendToProxy(TargetBindingID, "PARTITION_STATE", { STATE = "ALARM", TYPE = "BURGLARY", DELAY_TIME_TOTAL = 5, DELAY_TIME_TOTAL = 2, CODE_REQUIRED_TO_CLEAR = true }, "NOTIFY")
PARTITION STATE INIT
Specifies which state the partition is currently in but will not cause any of the programming to be fired.
Parameter | Description |
---|---|
str | STATE: Supported values include: "ARMED" "ALARM" "OFFLINE" "EXIT_DELAY" "ENTRY_DELAY" "DISARMED_READY" "DISARMED_NOT_READY" "CONFIRMATION_REQUIRED" |
str | TYPE: Further information on the state. For example, it could be "Stay" for a type of ARMED. It could be "Burglary" for a type of ALARM. Can be "" if not needed. |
num | DELAY_TIME_TOTAL: For Entry or Exit delays. The total time of the delay. |
num | DELAY_TIME_REMAINING: For Entry or Exit delays, the time remaining in the delay. |
bool | CODE_REQUIRED_TO_CLEAR: "true" if a user code is now required from Navigator to change from the current state. |
Example
C4:SendToProxy(TargetBindingID, "PARTITION_STATE_INIT", { STATE = "ALARM", TYPE = "BURGLARY", DELAY_TIME_TOTAL = 5, DELAY_TIME_TOTAL = 2, CODE_REQUIRED_TO_CLEAR = true}, "NOTIFY")
REQUEST_ADDITIONAL_INFO
This notification allowS two-way communication with the keypad. This command will cause Navigator to bring up the keypad screen with the prompt string. After the user types in something on the keypad, it will be returned to the driver through the ADDITIONAL_INFO command.
Parameter | Description |
---|---|
str | PROMPT: The prompt string that will show up above the keypad on the Navigator string. |
str | INFO_STRING: This is a string that will not be shown to the user, but will be returned with the ADDITIONAL_INFO command. It provides a way for information to be built up through multiple iterations of calls to REQUEST_ADDITIONAL_INFO |
str | FUNCTION_NAME: This will not be shown to the user but will also be returned with the ADDITIONAL_INFO command. It is the function name of the handler in the driver code that should be called when the new information arrives. |
bool | MASK_DATA: “true" if the information being entered on the screen (such as a user code) should not be readable. If the flag is true, then each character will show up on the Navigator screen as a dot. |
str | INTERFACE_ID: Commands received from Director will have an interface_id string sent as one of the parameters. This is a unique string that identifies where the command originated. When a response such as a failure is sent, it should only display on the UI that originated the command. To support this, the INTERFACE_ID string is sent back with the notification. Only the original UI will show the results of this notification. |
Example
C4:SendToProxy(TargetBindingID, "REQUEST_ADDITIONAL_INFO", { PROMPT =
promptstring, INFO_STRING = infostring, FUNCTION_NAME = functionstring, MASK_DATA = true, INTERFACE_ID = interfaceid }, "NOTIFY")
REQUEST_DEFAULT_USER_CODE_
The proxy code stores the default user code if it exists for the partition. When the proxy is first bound to the protocol driver, it will send that code to the protocol driver. However, we found that when a driver is updated, that call was not being made, so we added a mechanism for the protocol driver to initiate the communication to get that code. This is new in 3.2
Available from 3.2.0
Parameters
None
Example
C4:SendToProxy(TargetBindingID, "REQUEST_DEFAULT_USER_CODE", {}, "NOTIFY")
REMOVE_ZONE_
Tells the proxy that a particular zone is no longer a part of this partition.
Parameter | Description |
---|---|
num | ZONE_ID: The zone ID of the zone to be removed from the partition's zone list. |
Example
C4:SendToProxy(TargetBindingID, "REMOVE_ZONE", { ZONE_ID = 1 }, "NOTIFY")
ZONE STATE
Reports if a specific zone is open/closed and bypassed/unbypassed.
Parameter | Description |
---|---|
num | ZONE_ID: Number |
bool | ZONE_OPEN: "true" if the zone is opened. "false" if it is closed. |
bool | ZONE_BYPASSED: "true" if the zone is bypassed. "false" if it is not bypassed. |
Example
C4:SendToProxy(TargetBindingID, "ZONE_STATE", { ZONE_ID = 1, ZONE_OPEN = true, ZONE_BYPASSSED = false }, "NOTIFY")
Security Partition Commands
ADDITIONAL_INFO
This command will only be sent after having received a REQUEST_ADDITIONAL_INFO
notification from the protocol driver. The protocol driver will send the notification to the proxy driver, which will send a request_additional_info
DataToUI command to the UIs. The UIs will then prompt the user for additional info. After the information is entered, the UI will generate this command to send back to the protocol driver. See the REQUEST_ADDITIONAL_INFO
notification.
Parameter | Description |
---|---|
str | Info: A copy of the info_string parameter that was passed with the request_additional_info request. The protocol driver will need this to know what actions to return to when it gets the new info. |
str | FunctionName: A copy of the function_name parameter that was passed with the request_additional_info request. The protocol driver may need this to know what actions to return to when it gets the new info. |
str | NewInfo: The new info provided by the UI in response to the equest_additional_info request. |
str | InterfaceID: A unique (str) to identify which interface is sending this command. |
ARM_CANCEL
Cancel an uncompleted arm command.
Parameter | Description |
---|---|
str | InterfaceID: A unique string to identify which interface is sending this command. |
EXECUTE_EMERGENCY
Requests the partition to execute an emergency event of the type specified by the EmergencyType parameter. Valid values are: Fire, Medical, Police, and Panic.
Parameter | Description |
---|---|
str | A unique string to identify which interface is sending this command. |
str | Interface ID: Unique string ID indicating from where the command originated |
EXECUTE_FUNCTION
Request the partition to execute a function event of the type listed in the functions capability. The function parameter would be one of the function strings listed in the <functions> capability
Parameter | Description |
---|---|
str | Function. |
str | InterfaceID: A unique string to identify which interface is sending this command. |
KEY_PRESS
Specifies that a key (button) was pressed on the UI interface. But different from BUTTON_PRESS
, the actual key name is passed rather than its ID.
Parameter | Description |
---|---|
str | Key Name: The single key that we should emulate a press for. |
str | InterfaceID: A unique string to identify which interface is sending this command. |
SET_DEFAULT_USER_CODE
The default user code that this driver should use when it receives arm and disarm commands that originated from programming.
Parameter | Description |
---|---|
str | Code |
PARTITION_ARM
Specifies the user code to use with the arm command (if needed).
Parameter | Description |
---|---|
str | ArmType: Request the partition to arm. |
str | UserCode: Optional. Specifies the user code to use with the arm command (if needed). |
bool | Bypass: Optional. Specify whether currently open zones should be bypassed. |
str | InterfaceID: A unique string to identify which interface is sending this command. |
PARTITION_DISARM
Specifies the user code to use with the DISARM command (if needed).
Parameter | Description |
---|---|
str | User Code: The user code needed for disarming. |
str | InterfaceID: A unique string to identify which interface is sending this command. |
Security Partition States
SECURITY SYSTEM CONTROLLER PARTITION STATES
The following States are supported by the Security System Controller Partition. These states were added to the Proxy in operating system release 2.9.0.
ALARM
The partition is in an alarm state. A separate variable will indicate which type of alarm (Burglary, Fire, CO, etc.).
ARMED
The partition is armed. A separate variable would keep track of what type of armed state. HOME and AWAY would be the most common types, but the protocol driver could specify other types if desired.
CONFIRMATION REQUIRED
Some panels require an extra confirmation from the user after an alarm has been cleared before they will go back into DISARMED_READY
state. When in this state, the panel is waiting for a SEND_CONFIRMATION
command from one of the UIs.
DISARMED READY
The partition is disarmed, but could be armed if desired.
DISARMED NOT READY
The partition is disarmed, but not ready to be armed; usually because one of its zones is currently open.
EXIT DELAY
The user has given the arm command, but the partition is in the delay time which allows the user to exit the area before the alarm is tripped.
ENTRY DELAY
The user has opened a zone while the partition is armed. He has a certain amount of time to disarm the system before the alarm engages.
OFFLINE
The partition is in an OFFLINE state.
Security Sensor Types
The following sensor types and their respective ID values are listed below:
- UNKNOWN = 0
- CONTACT_SENSOR = 1
- EXTERIOR_DOOR = 2
- EXTERIOR_WINDOW = 3
- INTERIOR_DOOR = 4
- MOTION_SENSOR = 5
- FIRE = 6
- GAS = 7
- CARBON_MONOXIDE = 8
- HEAT = 9
- WATER = 10
- SMOKE = 11
- PRESSURE = 12
- GLASS_BREAK = 13
- GATE = 14
- GARAGE_DOOR = 15
There are no restrictions imposed regarding sensor types when zone information is sent to the security proxy and functionality is not impacted based on the sensor type defined. The sensor type value only dictates which icons are displayed on Navigators and within ComposerPro.
Security Variables
SECURITY SYSTEM CONTROLLER PARTITION VARIABLES
The Security System Controller Partition supports the following Variables:
HOME_STATE
Boolean. True when armed home. Will be deprecated.
AWAY_STATE
Boolean. True when armed away. Will be deprecated.
DISARMED_STATE
Boolean. True when disarmed. Will be deprecated.
ALARM_STATE
Boolean. True when in an alarm state.
DISPLAY_TEXT
String. Current text in the display window.
TROUBLE_TEXT
String. Current text in the trouble window. When trouble text is blank, the UI will hide the trouble text window and give the space to the display text window.
IS_ACTIVE
Boolean. True if this partition is active and can be used.
PARTITION_STATE
String. Text representation of the current state.
DELAY_TIME_TOTAL
Integer. The total length of the current Entry or Exit delay. If not in a delay, this will be 0.
DELAY_TIME_REMAINING
Integer. The amount of time remaining in the current Entry or Exit delay. If not in a delay this will be 0.
OPEN_ZONE_COUNT
Integer. The number of zones in this partition which are currently open. Usually this will only matter when the armed state is DISARMED_NOT_READY
.
ALARM_TYPE
String. If the system is currently in the ALARM state, this will be a string representation of the type of alarm (Burglary, Fire, Medical, Panic, Carbon Monoxide, etc.).
ARMED_TYPE
String. If we the system is currently in the ARMED state, this will be a string representation of type of arming (HOME, AWAY, etc.).
LAST_EMERGENCY
String. When an emergency is triggered, this variable will store which type of emergency it was. e.g. “Police” or “Panic.
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
.
Signature
ALLOWED_FAN_MODES_CHANGED ()
Parameter | Description |
---|---|
Modes |
A comma delimited list of available modes. |
Returns
None
ALLOWED HUMIDITY MODES CHANGED
Changes the value of the variable HUMIDITY_MODES_LIST
Signature
ALLOWED_HUMIDITY_MODES_CHANGED ()
Parameter | Description |
---|---|
Modes |
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
Signature
ALLOWED_HVAC_MODES_CHANGED ()
Parameter | Description |
---|---|
Modes |
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.
Signature
ALLOWED_HVAC_MODES_CHNAGED ()
Parameter | Description |
---|---|
bool | LOCK |
Returns
None
CAN COOL
Boolean to enable/disable can_cool
capability. If the device supports this feature, default is False.
Signature
CAN_COOL ()
Parameter | Description |
---|---|
bool | True/False |
Returns
None
CAN HEAT
Boolean to enable/disable can_heat
capability. If the device supports this feature, default is False.
Signature
CAN_HEAT ()
Parameter | Description |
---|---|
bool | True/False |
Returns
None
CAN HUMIDIFY
Boolean to enable/disable can_humidify
capability. If the device supports this feature, default is False.
Signature
CAN_HUMIDIFY ()
Parameter | Description |
---|---|
bool | True/False |
Returns
None
CAN DEHUMIDIFY
Boolean to enable/disable can_dehumidify
capability. If the device supports this feature, default is False.
Signature
CAN_DEHUMIDIFY ()
Parameter | Description |
---|---|
bool | True/False |
Returns
None
CONNECTION
Boolean to enable/disable can_dehumidify
capability. If the device supports this feature, default is False.
Signature
CONNECTION ()
Parameter | Description |
---|---|
bool | CONNECTED: 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.
Signature
COOL_SETPOINT_CHANGED ()
Parameter | Description |
---|---|
num | SETPOINT: New cooling setpoint temperature. |
str | SCALE: The values allowed are KELVIN, K, CELSIUS, C, FAHRENHEIT, or F. |
Returns
`None `
COOL SETPOINT RESOLUTION C
Signature
COOL_SETPOINT_RESOLUTION_C ()
Parameter | Description |
---|---|
int | SETPOINT: 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
Signature
COOL_SETPOINT_RESOLUTION_F ()
Parameter | Description |
---|---|
int | SETPOINT: 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.
Signature
CUSTOM FIELDS CHANGED ()
Parameter | 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
Signature
COOL_SETPOINT_ MAX_C ()
Parameter | Description |
---|---|
int | 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
Signature
COOL_SETPOINT_ MAX_F ()
Parameter | Description |
---|---|
int | 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
Signature
COOL_SETPOINT_ MIN_C ()
Parameter | Description |
---|---|
int | 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
Signature
COOL_SETPOINT_ MIN_F ()
Parameter | Description |
---|---|
int | 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.
Signature
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.
Signature
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.
Signature
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.
Signature
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.
Signature
DYNAMIC_CAPABILITIES_CHANGED ()
Parameter | Description |
---|---|
bool | HAS_OUTDOOR_TEMPERATURE : boolean to enable/disable hasoutdoortemperature capability, if the device supports this feature, default is false. |
bool | CAN_CHANGE_SCALE : boolean to enable/disable Navigators UI's and composer from being able to change the scale of the hardware. |
bool | HAS_HUMIDITY : boolean to enable/disable has_humidity capability, if the device supports this feature, default is false |
bool | HAS_SINGLE_SETPOINT : Boolean used to turn single setpoint mode to on or off. Defaults to false (off). |
int | HUMIDIFY_SETPOINT_MIN : Minimum Setpoint, int 0-100 that will do the same thing as the setpoint_humidify_min capability, default 0 |
int | HUMIDIFY_SETPOINT_MAX : Minimum Setpoint, int 0-100 that will do the same thing as the setpoint_humidify_max capability, default 100 |
int | HUMIDIFY_SETPOINT_RESOLUTION : What increment to use (ie 1,3,5,10,etc), will do the same thing as the setpoint_humidify_resolution capability, default 1 |
int | HUMIDITY_SETPOINT_DEADBAND : What the deadband between humidify and dehumidify is, will do the same thing as the setpoint_humidity_deadband capability, default 10 |
int | DEHUMIDIFY_SETPOINT_MIN : Minimum Setpoint, int 0-100 that will do the same thing as the setpoint_dehumidify_min capability, default 0 |
int | DEHUMIDIFY_SETPOINT_MAX : Minimum Setpoint, int 0-100 that will do the same thing as the setpoint_dehumidify_max capability, default 100 |
int | DEHUMIDIFY_SETPOINT_RESOLUTION : 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
Signature
EXTRAS_SETUP_CHANGED ()
Parameter | Description |
---|---|
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
Signature
EXTRAS_STATE_CHANGED ()
Parameter | Description |
---|---|
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,
ANA_FANMODE``.
Signature
FAN_MODE_CHANGED ()
Parameter | Description |
---|---|
str | MODE: 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.
Signature
FAN_STATE_CHANGE ()
Parameter | Description |
---|---|
str | STATE: 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.
Signature
HAS_EXTRAS ()
Parameter | Description |
---|---|
XML | 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.
Signature
HAS_HEAT_PUMP ()
Parameter | Description |
---|---|
bool | True/False |
Returns
None
HAS HUMIDITY
Boolean to enable/disable has_humidity
capability. If the device supports this feature, default is false
Signature
HAS_ HUMIDITY ()
Parameter | Description |
---|---|
bool | True/False |
Returns
None
HAS OUTDOOR TEMPERATURE
Boolean to enable/disable has_outdoor_temperature
capability, if the device supports this feature, default is false
Signature
HAS_OUTDOOR_TEMPERATURE ()
Parameter | Description |
---|---|
bool | True/False |
Returns
None
HEATSETPOINT
Fires event: Heat_Setpoint_Changed
.
Signature
HEAT_SETPOINT ()
Parameters
None
Returns
None
HEATSETPOINT
Notification that should be sent to the proxy when the heating setpoint has changed.
Signature
HEAT_SETPOINT_CHANGED ()
Parameter | Description |
---|---|
num | SETPOINT: New heating setpoint temperature. |
str | SCALE: 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
.
Signature
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
.
Signature
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.
Signature
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.
Signature
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.
Signature
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.
Signature
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.
Signature
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.
Signature
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
.
Signature
HOLD_MODE_CHANGED ()
Parameter | Description |
---|---|
str | MODE: 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
.
Signature
HUMIDITY_CHANGED ()
Parameter | Description |
---|---|
int | HUMIDITY: (0-100) |
Returns
None
HUMIDITY MODE CHANGED
MODE, typically: humidify, humidifyAuto (aggressiveness), dehumidify or auto). To UI comes through as humidity_mode
Signature
HUMIDITY_MODE_CHANGED ()
Parameter | Description |
---|---|
str | MODE, typically: humidify, humidifyAuto (aggressiveness), dehumidify or auto). |
Returns
None
HUMIDIFY SETPOINT CHANGED
The humidity setpoint has changed. To UI comes through as humidify_setpoint
Signature
HUMIDIFY_SETPOINT_CHANGED ()
Parameter | Description |
---|---|
num | SETPOINT (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.
Signature
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,
Signature
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,
Signature
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.
Signature
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
.
Signature
HUMIDITY_STATE_CHANGED ()
Parameter | Description |
---|---|
str | STATE - 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
.
Signature
HVAC_MODE_CHANGED ()
Parameter | Description |
---|---|
str | MODE: 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
.
Signature
HVAC_STATE_CHANGED ()
Parameter | Description |
---|---|
str | STATE: 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
.
Signature
MESSAGE_CHANGED ()
Parameter | Description |
---|---|
str | MESSAGE 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
.
Signature
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.
Signature
PRESET_FIELDS_CHANGED ()
Parameter | Description |
---|---|
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.
Signature
SCALE_CHANGED ()
Parameter | Description |
---|---|
str | SCALE: 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.
Signature
SCHEDULE_ENTRY_CHANGED ()
Parameter | Description |
---|---|
num | DayIndex: Number representing day of week: 0= Sunday, 1=Monday |
num | EntryIndex : 0 to the number of entries the day can support. 0 = the first entry, 1 = the second entry. |
num | TimeMinutes: Number of minutes past midnight for the entry change. For example 360= 6:00AM. |
bool | EnabledFlag: Enables or disables a schedule. By default, the first four schedules are enabled. |
num | HeatSetpoint: Temperature designated to start the heating system. |
num | CoolSetpoint: Temperature designated to start the cooling system. |
str | Units (string): 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
.
Signature
SINGLE_SETPOINT_CHANGED ()
Parameter | Description |
---|---|
int | SETPOINT: he new temperature setpoint value. |
str | SCALE: 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.
Signature
SINGLE_SETPOINT_MAX_C ()
Parameter | Description |
---|---|
int | SETPOINT: 0-100 default 100 |
Returns
None
SINGLE SETPOINT MAX F
Maximum Setpoint. Will do the same thing as the setpoint_single_max
capability.
Signature
SINGLE_SETPOINT_MAX_F ()
Parameter | Description |
---|---|
int | SETPOINT: 0-100 default 100 |
Returns
None
SINGLE SETPOINT MIN C
Minimum Setpoint. Will do the same thing as the setpoint_single_min
capability.
Signature
SINGLE_SETPOINT_MIN_C ()
Parameter | Description |
---|---|
int | SETPOINT: 0-100 default 0 |
Returns
None
SINGLE SETPOINT MIN C
Minimum Setpoint. Will do the same thing as the setpoint_single_min
capability.
Signature
SINGLE_SETPOINT_MIN_F ()
Parameter | Description |
---|---|
int | SETPOINT: 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.
Signature
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.
Signature
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.
Signature
TEMPERATURE_CHANGED ()
Parameter | Description |
---|---|
num | TEMPERATURE: New temperature value. |
str | SCALE: 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
Signature
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.
Signature
VACATION_MODE ()
Parameter | Description |
---|---|
str | ON VACATION: 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.
Signature
VACATION_ SETPOINTS ()
Parameter | Description |
---|---|
num | VAC HEAT SETPOINT: New temperature for the heating setpoint while in vacation mode. |
num | VAC COOL SETPOINT: New temperature for the cooling setpoint while in vacation mode. |
str | UNITS: F or C – Fahrenheit or Celsius. |
Returns
None
OUTDOOR TEMPERATURE CHANGED
Used to inform the proxy that the outdoor temperature has changed.
Signature
OUTDOOR_TEMPERATURE_CHANGED ()
Parameter | Description |
---|---|
int | Default 1. |
Returns
None
OUTDOORTEMPERATURERESOLUTION
What increment to use (ie .1, .5, 1, 3, 5, 10, etc), will do the same thing as the outdoor_temperature_resolution
capability.
Signature
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.
Signature
DEC_SETPOINT_COOL ()
Parameter
None
Returns
None
SET PRESET
Runs a Preset regardless if there is an event scheduled for it.
Signature
SET_PRESET ()
Parameter | Description |
---|---|
str | 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
Signature
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.
Signature
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.
Signature
INC_SETPOINT_HEAT ()
Parameter
None
Returns
None
PRESET ADD
Adds a new Preset Schedule Preset (If protocol driver has the can_preset_schedule
capability)
Signature
PRESET_ADD ()
Parameter | Description |
---|---|
str | NAME: Required. |
xml | PRESET FIELDS: 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)
Signature
PRESET_DELETE ()
Parameter | Description |
---|---|
str | NAME: Required. |
xml | PRESET FIELDS: 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.
Signature
PRESET_EVENT_ADD ()
Parameter | Description |
---|---|
str | NAME |
int | WEEKDAY: 0-6 with Sunday being 0 |
int | HOUR: 0-23 |
int | MINUTE: 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.
Signature
PRESET_EVENT_DELETE ()
Parameter | Description |
---|---|
str | NAME: Using "" (an empty string) will match all presets to make deleting all events of a given preset name easier. |
int | WEEKDAY: 0-6 with Sunday being 0. Using -1 will match any weekday. |
int | HOUR: 0-23 Using -1 Will match any Hour. |
int | MINUTE: 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)
Signature
PRESET_EVENT_MODIFY ()
Parameter | Description |
---|---|
str | NAME |
int | WEEKDAY: 0-6 with Sunday being 0. |
int | HOUR: 0-23 |
int | MINUTE: 0-60 |
int | NEW WEEKDAY: 0-6 with Sunday being 0 |
int | NEW HOUR: 0-23 |
int | NEW MINUTE: 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)
Signature
PRESET_MODIFY ()
Parameter | Description |
---|---|
str | NAME |
XML | PRESET FIELDS: XML DATA. |
str | NEW 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.
Signature
QUERY_SCHEDULE ()
QUERY SCHEDULE EVENTS
Used for the old .ccz and a few older thermostats for scheduling purposes.
Signature
QUERY_SCHEDULE_EVENTS ()
SET BUTTONS LOCK
Used to indicate if the buttons on the thermostat should be locked out from controlling the temperature.
Signature
SET_BUTTONS_LOCK ()
Parameter | Description |
---|---|
bool | LOCK: 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.
UI Button Proxy Overview
The UI Button Proxy was delivered in OS 2.9.0. The proxy supports the display of a configurable button within Navigator. The button and can be placed onto any experience menu such as Listen, Watch, Security, Comfort. Navigator menu configuration for shortcuts supported by the button is done through ComposerPro's standard room menu controls.The button's icon can also change to reflect the state of the device that the button controls.
The XML name of the proxy is "UI Button". For example:
<proxies>
<proxy proxybindingid="5001" name="UI Button">uibutton</proxy>
</proxies>
To the right is an example of the connection information required to use the UI Button Proxy:
<connections>
<connection>
<id>5001</id>
<facing>6</facing>
<connectionname>UIBUTTON</connectionname>
<type>2</type>
<consumer>False</consumer>
<audiosource>False</audiosource>
<videosource>False</videosource>
<linelevel>False</linelevel>
<classes>
<class>
<classname>UIBUTTON</classname>
</class>
</classes>
</connection>
</connections>
Note that OS Release 2.10.0 enhanced this Proxy with the capability to allow for URL manipulation of Navigator's web module feature through the use of the HTML Web View.
HTML WebView Overview
Adding the HTML WebView functionality to an Experience (UIbutton) driver enables the driver developer to specify a web URL that can provide an HTML interface for the end user. The web UI is launched within an embedded browser on the Control4 T3 touch screen.
HTML WebView Usage Best Practice Recommendations
The Driver Developer should implement the proxy interfaces that Control4 provides as a standard part of the user experience to the full extent that these apply to the device. The web interface should be considered supplementary to the proxy interface.
The Driver Developer should keep the Web UI as simple as reasonably possible.
HTML WebView Usage Guidelines (rules):
The developer must self-certify their website on our current browsers (on the T3, T4s and Mobile devices). If they find any incompatibility between their HTML UI / website, and our embedded browser, they must code around it.
They must provide all support for their web UI.
The Experience driver can do no more than reference the external website, all log ins must occur at the web site, not within the driver.
There is no Control4 certification for an Experience driver that uses the HTML WebView capability.
Because these drivers are not certified, we reserve the right to post them or not to post them within the Control4 online database based on discretion.
If a call comes to our support, we MAY instruct the dealer to remove the driver, otherwise any support will be referred to the developer of the driver.
JavaScript API
The Proxy has also been enhanced to provide a JavaScript API that allows Driver hosted web views to send commands, subscribe to DATA_TO_UIs and variables using the existing mobile communication channels.
In addition to the APIs, a new capability has been added: mobile_webview_enabled
This functionality is available for all customers running mobile app version 321.46 (or later) and running OS 3.1.3 (or later).
A sample Driver: JavascriptAPIDemo.c4z is also available. To use the demo driver:
- Download the Javascript API driver from the JS demo Driver folder from the DiverWorks Github repository and add it to your project.
- Under the Project’s System Design, select the room where the driver was added.
- Under the Room’s Properties select Navigator.
- Note the that the demo driver (UI Button) is listed under the Device column in the following Experience Menus: Comfort, Listen, Security and Watch.
- Ensure that UI Button has a Visibility status of Visible in each of the Experience menus. The status can be changed by clicking on the Modify … button on the Properties screen.
- Refresh Navigators.
Demo Driver Usage
The driver utilizes a lightbulb and color variables to demonstrate the use of the web_view_url capability and new APIs. Selecting the UI Button driver from System Design will display the Advanced properties for the driver. The driver supports the selection of several states for the bulb.
Select a state, Red for example, and click the set Button. Verify the color state is red on Touchscreens in the room where the UI Button resides and mobile devices running this project. The color state can also be verified by double clicking the UI Button driver from System design.
The driver’s Lua output will from the Red State setting is displayed to the right.
OnPropertyChange(): States Red
OnPropertyChange(): States
Icon changed to: Red
Red
fireEvent(): Red
Next, from a mobile device, change the color of the bulb state to Blue. Verify the state change on Touchsrceens and double clicking the UI Button driver from System design.
The driver’s Lua output from changing from red State to Blue is displayed to the right.
OnPropertyChange(): States Red
OnPropertyChange(): States
Icon changed to: Red
Red
fireEvent(): Red
OnPropertyChange(): States Blue
Icon changed to: Blue
OnPropertyChange(): States
Blue
fireEvent(): Blue
WebView Mobile Usage Best Practice Recommendations
Webview Mobile App Usage Guidelines (rules):
When accessing a controller remotely through the App, a fully qualified URL should be used to ensure all UI resources will render correctly on the App. The mobile App cannot access local-style resources specified by the CSS. However, if the CSS is structured to include the fully qualified path including the controller syntax, the resource will be available both locally and remotely.
For example, here is a path that would successfully render a background image locally:
{ background-image: url(../images/wp_carbon_blue.jpg); padding: 16px; }
However, this path will fail to render the image on the mobile App. An example of a fully qualified URL to the background image would be:
{ background-image: url(controller://driver/JavascriptAPIDemo/contents/images/wp_carbon_blue.jpg); padding: 16px; }
Implementation
See the web_view_url capability
Supported HTML/CSS Components
The following HTML/CSS components and versions are shipped with the T3 and T4 touchscreens:
T4: (OS 3.2.1 or above)
- Mozilla 5.0
- Android 9 Mobile rv:96.0
- Gecko/96.0
- Firefox/96.0
T3: (OS 3.1.3 or above)
- Mozilla 5.0
- Android 4.4.2 Mobile rv: 96.0
- Gecko 96.0
- Firefox 96.0
T3: (OS 3.1.2 or below)
- Mozilla 5.0
- Linux for Android 4.4.2 rk3188 Build KOT49H
- AppleWebKit 537.36
- KHTML, like Gecko Version 4.0
- Chrome 30.0.0.0
- Safari 537.36
UI Button Capabilities
<navigator_display_options></navigator_display_options>
This capability adds the ability to display device state icons for the button. As of this release, icon resolution for non-Media Server Proxy based drivers is:
- 300x300px
- 90x90px
- 70x70px
Example
<capabilities>
<navigator_display_option proxybindingid="5001">
<display_icons>
<!-- Default Icon -->
<Icon width="300" height="300">controller://driver/shortcutTest/icons/msp_ico_settings/msp_ico_settings_300.png</Icon>
<!-- On State -->
<state id="Settings-on">
<Icon width="300" height="300">controller://driver/shortcutTest/icons/msp_ico_settings_a/msp_ico_settings_a_300.png</Icon>
</state>
<!-- Off State -->
<state id="Settings-off">
<Icon width="300" height="300">controller://driver/shortcutTest/icons/msp_ico_settings/msp_ico_settings_a_300.png</Icon>
</state>
</display_icons>
</navigator_display_option>
</capabilities>
Note, the example to the right does not include all icon sizes for brevity.
<web_view_url></web_view_url>
Optional Capability which, when added contains the default URL that is associated with the shortcut.
Example
<capabilities>
<web_view_url proxybindingid="5000">http://youtube.com</web_view_url>
</capabilities>
web_view_url
<web_view_url></web_view_url>
An optional capability which points to the c4z-delivered web application. The controller://driver/driver_name construct (i.e., the Controller URL Scheme) connects at the driver's www directory as the root of the path.
Note that the driver name MUST be the same as the driver's filename.
Example
<capabilities>
<web_view_url proxybindingid="5001">controller://driver/JavascriptAPIDemo/contents/index.html</web_view_url>
</capabilities>
mobile_web_view_enabled
<mobile_web_view_enabled></mobile_web_view_enabled>
An optional boolean capability that indicates that the driver can be shown in mobile clients when the web_view_url
capability is also present. Applicable to O.S. 3.0.0 and later.
UI Button Proxy Events
The UI Button Proxy currently supports one Event:
Selected
- Fired upon receiving the Select command.
UI Button Proxy Notifications
ICON CHANGED
Notification sent to the proxy to change the driver's icon.
Signature
ICON_CHANGED
Parameter | Description |
---|---|
icon | str: value which references an icon state name defined in the display icons capability or an empty string to set the default icon. |
icon_description | str: Value of a human readable string describing the icon state. This is used in the List Navigator in place of the icon. |
Returns
None
DataToUI
Sends “icon” DataToUI: <icon>Settings-on</icon>
Also sends “icon_description” DataToUI: <icon_description>Settings are on</icon_description>
Example
C4:SendToProxy(5001, "ICON_CHANGED", {icon="Settings-on", icon_description="Settings are on"})
URL_CHANGED
Notification that supports the ability for the driver to dynamically change the web URL. This is useful in cases such as changing ports, load balancing and driver-delivered controller hosted UI content. This function is sent to the proxy when the URL changes. Note that if the parameter value is empty, then the URL is considered disabled and the web view will not be shown in navigator. Also, note, Navigator will not change the URL of an open web view.
Signature
URL_CHANGED
Parameter | Description |
---|---|
url | str: Value of the URL |
Returns
None
DataToUI
Sends “url” DataToUI: <url>http://google.com</url>
Example
C4:SendToProxy(5001, "URL_CHANGED", {url="http://control4.com"})
Usage Note
See the HTML Webview Overview content for more information.
UI Button Proxy Commands
SELECT
This command comes from the UI when a user selects the shortcut for the button. It is passed to the protocol driver and also sends the Selected event.
Signature
SELECT
Parameter | Description |
---|---|
Device ID | num: The room device ID value where the shortcut was pressed in. Exposed by the LAST_ROOM_SELECTED variable. |
Menu | str: The name of the menu the shortcut was selected in. Possible values: "listen", "watch", "security", "comfort", "service". Exposed by the LAST_MENU_SELECTED variable. |
UI Button Proxy Variables
LAST_MENU_SELECTED
String value of the name of the menu where the menu was selected. Possible values are: "listen", "watch", "security", "comfort", "service".
LAST_ROOM_SELECTED
Number value of the room id of the last room invoked by the Select command on the shortcut.
UI Button Proxy Webview JavaScript API
API OVERVIEW
Requires Navigator Version 321.46+
The Java Script API included with the UI Button proxy allows Driver hosted web views to send commands, subscribe to DATA_TO_UIs and variables using the existing mobile communication channels. This enables UI Button web views to work remotely. Previous versions of web views only worked on Control4 touchscreens residing on the local network.
Note that these API calls can only be made to the driver/protocol hosting the web page. UI Buttons pointing to external web pages will not be able to access the Javascript API.
C4.sendCommand
Sends a command to either the protocol or driver. All responses are sent back via the Javascript callback: onDataToUi(response: string)
. Driver writers will need to implement this callback in their web page. Errors are sent back via: onSendCommandError(message: string)
Signature
C4.sendCommand(commandName: string, params: string, async: boolean, sendToProtocol: boolean = false): void)
Parameter | Description |
---|---|
string | commandName - The name of the command to be executed by the driver or protocol. |
string | params - A JSON formatted string of parameters. Invalid JSON will trigger an exception. |
boolean | async - true to send the command asynchronously to ExecuteCommand(). false to send the command as a UI Request. |
boolean | sendToProtocol - Whether the command should be sent to the protocol or driver. |
Returns | Description |
---|---|
void | All responses, even for synchronous commands, will be sent back via the Javascript callback: onDataToUi(response: string) |
Callbacks | Description |
---|---|
onDataToUi(response: string) |
Callback to receive DATA_TO_UIs when subscribed. |
onSubscribeToDataToUiError(message: string) |
Callback to receive error messages when attempting to subscribe to DATA_TO_UIs. |
Example
C4.sendCommand("SetState", "{'state':'" + color + "'}", false, true);
C4.subscribeToDataToUi
Subscribes to the DATA_TO_UIs for either the protocol or proxy. All responses are sent back via the Javascript callback: onDataToUi(response: string)
. Driver writers will need to implement this callback in their web page to receive DATA_TO_UIs. Errors are sent back via: onSubscribeToDataToUiError(message: string)
Signature
C4.subscribeToDataToUi(sendToProtocol: boolean = false):void
Parameter | Description |
---|---|
boolean | sendToProtocol - Whether the command should be sent to the protocol (true ) or proxy (false ). |
Returns | Description |
---|---|
void | All responses will be sent back via the Javascript callback: onDataToUi(response: string) |
Callbacks | Description |
---|---|
onDataToUi(response: string) |
Receives DATA_TO_UIs when subscribed. DATA_TO_UIs are converted to json by Broker before being sent to the web page. |
onSubscribeToDataToUiError(message: string) |
Receives error messages when attempting to subscribe to DATA_TO_UIs. |
Example
Subscribes to the protocol's DataToUI events. Protocol driver's can send DataToUI
events by calling C4:SendDataToUI(xml)
or C4:SendDataToUI (strCommand, tParams)
C4.subscribeToDataToUi(true);
C4.subscribeToVariable
Subscribes to the specified variable for either the protocol or proxy. All responses are sent back via the Javascript callback: onVariable(response: string)
. Driver writers will need to implement this callback in their web page to receive variable change events. Errors are sent back via: onSubscribeToVariableError(message: string)
Signature
C4.subscribeToVariable("LAST_MENU_SELECTED", false);
Parameter | Description |
---|---|
string | variableName - The name of the variable to subscribe to for either the driver or protocol. |
boolean | protocol - Whether the variable is part of the protocol (true ) or proxy (false ). |
Returns | Description |
---|---|
void | All responses will be sent back via the Javascript callback: onDataToUi(response: string) |
Callbacks | Description |
---|---|
onVariable(response: string) |
Receives DATA_TO_UIs when subscribed. |
onSubscribeToVariableError(variableName: string, message: string) |
Receives error messages when attempting to subscribe to a variable. |
Example
Subscribes to the proxy's "LAST_MENU_SELECTED" variable.
C4.subscribeToVariable("LAST_MENU_SELECTED", false);
UI Button Proxy JavaScript Logging
Managing JS Logging using console.log
A debug console is included in the webview page to assist with viewing javascript logs. It is invoked by tapping 4 times on the header. The console appears in the lower half of the view and can be positioned as needed. Any JS console logging is shown in the console view.
Contact Overview
CONTACTS OVERVIEW
This area of the Proxy and Protocol Guide contains information for a developing a Contact driver. Contacts are unique in how they are handled within Control4's architecture. Contact drivers do not rely upon a proxy as most traditional drivers do. In the most simple use case, a contact driver is added to a project to provide icons on devices running Navigator for the contacts' state (open and close) or a change to that state. An example of this type of driver can be seen in the contactsingle_contactswitch.c4i
file. In a typical ComposerPro installation, this driver can be found in the following directory:
C:\Program Files\Control4\Composer###\Drivers\Virtual
Opening this driver in a text editor and reviewing several of the driver components is helpful in order to understand how a simple contact driver is used. To begin with, line 46 of this driver defines its proxy type. The value entered here is the filename of the driver without the .c4i file extension:
<proxy>contactsingle_contactswitch_c4</proxy>
The filename of the driver is used in the proxy tag because this driver does not reference a defined Control4 proxy. This is a required convention for all “Combo-drivers”. Populating the proxy tag in this manner is required for the driver to work.
The next section of code to review is the states section where icons are included. Beginning with line 49 we can see that this driver has two states: Open and Closed. These states are supported by icons that are loaded onto the controller upon installation of ComposerPro. The icons to the right represent the default icon for a contact switch:
<states>
<state>
<id>1</id>
<small>devices_sm\contactsingle_contactswitch_open.gif</small>
<large>devices_lg\contactsingle_contactswitch_open.gif</large>
</state>
<state>
<id>2</id>
<small>devices_sm\contactsingle_contactswitch_close.gif</small>
<large>devices_lg\contactsingle_contactswitch_close.gif</large>
</state>
</states>
Default icons vary based on the type of contact being represented by the driver. In the example to the right, if we look at the states section from the contactsingle_gate_c4i
file (located in the same directory) we'll see different icons being used:
<states>
<state>
<id>1</id>
<small>devices_sm\contactsingle_gate_open.gif</small>`
<large>devices_lg\contactsingle_gate_open.gif</large>`
</state>
<state>
<id>2</id>
<small>devices_sm\contactsingle_gate_close.gif</small>`
<large>devices_lg\contactsingle_gate_close.gif</large>`
</state>
</states>
Next, to the right we can examine the connection section of this driver we see the following:
<connections>
<connection>
<id>1</id>
<facing>6</facing>
<connectionname>Contact Sensor</connectionname>
<type>1</type>
<consumer>True</consumer>
<audiosource>False</audiosource>
<videosource>False</videosource>
<linelevel>False</linelevel>
<classes>
<class>
<classname>CONTACT_SENSOR</classname>
</class>
</classes>
</connection>
</connections>
All of the stock contact drivers use a connection type of 1. This is a control connection type and a requirement for the driver.
Finally, the last piece of driver code which needs to be considered is the control tag. If we look at the control value for the contact driver we see the following:
<control>control4_contactsingle</control>
Populating the control tag with the control4_contactsingle
value in this manner is required for the driver to work.
Control4 provides stock contact drivers for the following devices:
- Carbon Monoxide Detector
- Generic Contact
- Doorbell
- Door Contact Sensor
- Driveway Sensor
- Garage Door Sensor
- Gate
- Glass Break Detector
- Heat Detector
- Humidity Sensor
- IR Beam
- Motion Sensor
- Pressure Sensor
- Smoke Detector
- Water Sensor
- Window Contact Sensor
If the device that you would like to include in a ComposerPro project falls under one of the device types listed above, it can easily be supported through one of the stock contact drivers delivered through ComposerPro. This assumes, that your driver needs consist of a simple communication protocol which will reflect contact state on UI devices using stock icons. Driver needs that fall outside of the scope of this document are currently not supported through the Contact driver architecture.
Contact Notifications
CLOSED
Contact has closed.
Signature
CLOSED ()
Parameters
None
Returns
None
OPENED
Contact has opened.
Signature
OPENED ()
Parameters
None
Returns
None
STATE CLOSED
Contact remains in the closed state.
Signature
STATE_CLOSED ()
Parameters
None
Returns
None
STATE OPENED
Contact remains in the opened state.
Signature
STATE_OPENED ()
Parameters
None
Returns
None
Relay Overview
NON-PROXY DEVICE: RELAY OVERVIEW
This area of the Proxy and Protocol Guide contains information regarding commands and notifications for a developing a Relay driver. Together, these provide an interface for controlling the Relay. Generic commands such as On, Off, etc. are supported for controlling the Relay while feedback is received through the notifications to update the Control4 User Interface.
Relay Commands
CLOSE
Close relay.
Signature
CLOSE ()
Parameters
None
Returns
None
OPEN
OPEN relay.
Signature
OPEN ()
Parameters
None
Returns
None
TOGGLE
TOGGLE relay.
Signature
TOGGLE ()
Parameters
None
Returns
None
TRIGGER
TRIGGER relay.
Signature
TRIGGER ()
Parameter | Description |
---|---|
int | TIME: Milliseconds |
Returns
None
Relay Notifications
CLOSED
Relay has closed.
Signature
CLOSED ()
Parameters
None
Returns
None
OPENED
Relay has opened.
Signature
OPENED ()
Parameters
None
Returns
None
STATE CLOSED
Relay remains in the closed state. Does not indicate a change in state.
Signature
STATE_CLOSED ()
Parameters
None
Returns
None
Usage Note
Send STATE_CLOSED
when the device initializes rather than CLOSED
. The driver will ignore the STATE_CLOSED
from the standpoint of events since it is not a state change but just a notification of the current state.
STATE OPENED
Relay remains in the open state. Does not indicate a change in state.
Signature
STATE_OPENED ()
Parameters
None
Returns
None
Usage Note
Send STATE_OPENED
when the device initializes rather than OPENED
. The driver will ignore the STATE_OPENED
from the standpoint of events since it is not a state change but just a notification of the current state.
Best Practices
AV PATHING, UNSOLICITED NOTIFICATIONS AND CONTROL4 UI
Fundamentally, audio/video source/endpoint selection and pathing behavior in the Control4 system are expected to be under Control4’s control. Commands are expected to originate from the Control4 user interface. The user selects a source for playback in a certain room (as configured by the Control4 installer and automatically generated in the Control4 UI). When the user selects a source, the Control4 pathing algorithms dynamically select the best path from the selected source device to the audio/video endpoint(s) based on the connections configured by the Control4 installer. Drivers for the devices on the path are expected to handle the commands for on/off, source selection, input/output switching, etc. The drivers will receive commands and should send the proper notifications for each command received based on the Proxy/Protocol guide documentation. Because of this architectural choice made by Control4, the system will ignore unsolicited notifications (or notifications for which no command was sent). If the user is controlling a specific device in the path (through physical buttons, 1st-party product remote, or product-specific app), even if the driver sends a notification to the Control4 system the changes will not be propagated back up to the Control4 UI. Control4 will not run the pathing algorithms in reverse to try to interpret what has just happened. And the Control4 UI will be out of sync with the actual device status. Therefore, we recommend that the Control4 user interface be used for source selection.
Likewise, because of the automatic pathing algorithms, Control4 discourages driver developers from trying to mimic the pathing functionality of the system by having their driver select other device(s). When it comes to devices selecting other devices, it’s best to simply not do so in the driver because the driver doesn’t have access to all of the information that the installer has configured when the system was installed.
If a driver developer decides to implement this type of functionality, for a specific use case, we recommend that they include a dealer setup method on the properties page where the dealer actually selects which source is connected to which input and use that, combined with the Room On room selector property, to choose the source in the right room. This effectively replicates the programming the dealer would have to do on the programming page inside the driver and is a user-friendly way of doing this. We have not done this on any driver of ours yet though, because the use case of source selection outside of Control4 is so low because of the source control aspect.
If used, this behavior should be select-able by the dealer though, and not always forced, as there are likely to be scenarios where different behavior than expected by the client/dealer will happen, even though it’s “correct”.
Please note, however, that the above restriction only applies to AV-type device drivers. This does not apply to other types of devices controlled within the Control4 environment. Drivers for security system integrations, blinds/shades, relays/sensors, thermostats, etc. will always send notifications of state changes and these will be tracked by the Control4 system regardless of whether or not the command to perform the action which resulted in the state change originated with the Control4 UI.
AUTOBINDINGS in Receiver an TV DRIVERS
Usage Note on the use of Auto-Bindings in conjunction with the Receiver and TV Proxies:
If your Receiver and TV driver intends to use Auto-Binding feature in ComposerPro, the binding ID value for those connections must use an ID value of 7000. Any other value will result in the auto-binding connection not being created.
For example:
<connection proxybindingid="5000">
<id>7000</id>
<facing>6</facing>
<connectionname>Room Selection - Output</connectionname>
<type>7</type>
<consumer>False</consumer>
<audiosource>True</audiosource>
<videosource>True</videosource>
<linelevel>True</linelevel>
<classes>
<class>
<classname>AUDIO_SELECTION</classname>
</class>
<class>
<classname>AUDIO_VOLUME</classname>
</class>
<class>
<classname>VIDEO_SELECTION</classname>
</class>
</classes>
</connection>
USING THE UPDATE PROPERTY COMMAND
The UPDATE_PROPERTY
command is a non proxy-specific function that can be called from any device to change a property of any other device. This command modifies a Property of a device that is currently in a Control4 project. The command is sent from a driver other than that of the device who's property is being modified. This supports that ability to modify device properties externally.
Consider the following scenarios where UPDATE_PROPERTY
may be useful:
- A Primary device that is aware of the configuration of Secondary devices. The Primary device can use
UPDATE_PROPERTY
to send new configuration data to Secondary devices and ultimately to set the properties of the Secondary devices. - The replacement of an obsolete device driver with a new driver. Instead of manually copying a device’s properties to a new driver’s properties, a dealer could use the
UPDATE_PROPERTY
to automate this process.
Parameter | Description |
---|---|
str | Name: Name of the Property that is being modified. |
int | Value: The new value of the Property that is being modified. |
Returns
None
Example
C4:SendToDevice(deviceId, "UPDATE_PROPERTY", {Name = propName, Value = newPropValue})
OS 3 NAVIGATOR UI AND VOLUME CONTROL
In conjunction with OS 3, a new volume control slider is available on the Control4 UI. The use of this slider to set or change volume results in devices receiving volume adjustment commends every 750 milliseconds by default. This represents a sampling of the continuous volume commands that are being sent by the Navigator to the device. The Room Driver has the ability to throttle these commands being sent in order to ensure that volume behaves properly and that volume commands are not received faster than they can be processed and remain in the queue. This command throttling is managed through a new capability: <throttled_vol_ms_rate></throttled_vol_ms_rate>
This capability designates the amount of time (in milliseconds) that volume change commands are sent from the Navigator to the driver. For example: <throttled_vol_ms_rate>600</throttled_vol_ms_rate>
will result in volume commands being sent very 600 milliseconds.
In the event that a volume control device cannot process commands fast enough to accommodate the default use of the new volume control slider (750 milliseconds), this capability can be added to the driver's <capabilities></capabilities>
XML and an increased millisecond value be used.
Conversely, if a volume-control device driver can process volume commands fast enough to allow more commands being sent in a smaller millisecond time frame; it can use this capability to lower the time (increase the sampling) and provide a smoother volume control experience for the end user. For example, if the device is capable, a value of 250 milliseconds will provide a good volume slider experience. Values less than 200 milliseconds are not recommended.