General Interface¶
The following are the RPC requests and responses added by the RPC_General_Interface class. These methods manage gateway configuration which does not involve communicating with the XBee radio.
registry_configuration¶
Sets or gets a registry entry. Can only be used to access an existing entry, not to create a new one.
Request Parameters
Parameter | Type | Description |
---|---|---|
name | string | Name of the registry entry to access. |
value* | bool, int, float, string or none | If provided, the request will set registry entry to the given value. If not provided, the request will get the current value of the registry entry. |
Response Parameters
Parameter | Type | Description |
---|---|---|
name | string | Name of the registry entry. |
value | bool, int, float or string | Current value of registry entry, except when the original request included a value and write_status is FALSE, in which case it will be the value that was unsuccessfully written. |
write_status* | bool | Only included if the original request included a value. If TRUE, the registry entry was updated. If FALSE, the registry entry was not updated. |
write_errors* | string | Only included if the original request included a value and write_status is FALSE. Description of any errors encountered while setting the registry entry. |
Example
<registry_configuration>
<name type="string">RPC_Manager.use_push</name>
<value>TRUE</value>
</registry_configuration>
<registry_configuration_response>
<name type="string">RPC_Manager.use_push</name>
<value type="bool">TRUE</value>
<write_status type="bool">TRUE</write_status>
</registry_configuration_response>
registry_restore_defaults¶
Restores all registry settings to their default values.
Note
Added in version 1.5.0.
Request Parameters
None
Response Parameters
None
Example
<registry_restore_defaults/>
<registry_restore_defaults_response/>
add_path¶
Adds the given string to the Python system path. Typically this is used to add a zip file to the path so that its modules may be imported. The path will also be added to paths.ini so that on gateway restart the path will still be available.
Request Parameters
Parameter | Type | Description |
---|---|---|
path | string | The path to add, relative to the gateway’s WEB/python/ directory. |
Response Parameters
Parameter | Type | Description |
---|---|---|
path | string | The path that was added, relative to the gateway’s WEB/python/ directory. |
Example
<add_path>
<path type="string">Custom_Extensions.zip</path>
</add_path>
<add_path_response>
<path type="string">Custom_Extensions.zip</path>
</add_path_response>
get_paths¶
Returns the list of paths that have been added to the Python path dynamically.
Note
Added in version 1.6.0.
Request Parameters
None
Response Parameters
Parameter | Type | Description |
---|---|---|
paths | list | A list of paths (strings). |
Example
<get_paths/>
<get_paths_response>
<paths type="list">
<item type="string">modules.zip</item>
<item type="string">package.zip</item>
<item type="string">another_directory</item>
</paths>
</get_paths_response>
remove_path¶
Removes the given string from paths.ini so that on gateway restart the path will not be available. For stability reasons, the string is not removed from the Python system path when this method is called.
Request Parameters
Parameter | Type | Description |
---|---|---|
path | string | The path to remove, relative to the gateway’s WEB/python/ directory. |
Response Parameters
Parameter | Type | Description |
---|---|---|
path | string | The path that was removed, relative to the gateway’s WEB/python/ directory. |
Example
<remove_path>
<path type="string">Custom_Extensions.zip</path>
</remove_path>
<remove_path_response>
<path type="string">Custom_Extensions.zip</path>
</remove_path_response>
add_module¶
Imports a Python module without stopping gateway execution. The module is scanned after it has been imported and any interface, endpoint, cluster, or record classes are made available for use in other interface commands. The module is also be added to modules.ini so that on gateway restart the module will be imported.
Note
The module’s Python file must first be uploaded to the gateway before it can be added by this method. Alternately, the file must be present in a zip file that has previously been uploaded to the gateway and added to the system path (see add_path). Also note that using precompiled Python files requires considerably less memory than .py files. Accordingly, it is recommended that only precompiled files be used when possible.
Request Parameters
Parameter | Type | Description |
---|---|---|
module_name | string | Name of the module to be imported (does not include the file extension). |
Response Parameters
Parameter | Type | Description |
---|---|---|
module_name | string | Name of the module that was imported. |
Example
<add_module>
<module_name type="string">Custom_Module</module_name>
</add_module>
<add_module_response>
<module_name type="string">Custom_Module</module_name>
</add_module_response>
get_modules¶
Returns the list of modules which have been added dynamically.
Note
Added in version 1.6.0.
Request Parameters
None
Response Parameters
Parameter | Type | Description |
---|---|---|
modules | list | The list of module names (strings). |
Example
<get_modules/>
<get_modules_response>
<modules type="list">
<item type="string">OTA_Cluster</item>
<item type="string">SE_Profile</item>
<item type="string">RPC_ZCL_Interface</item>
<item type="string">RPC_SE_Interface</item>
</modules>
</get_modules_response>
remove_module¶
Removes the module from modules.ini so that it will not be imported on startup. Modules not imported from modules.ini on startup or via the add_module command cannot be removed by this request. Note that this will not delete the corresponding .py, .pyc or .pyo file from the gateway. Additionally, for stability reasons the memory used by the module will not be freed when this method is called.
Request Parameters
Parameter | Type | Description |
---|---|---|
module_name | string | Name of the module to be removed (does not include the file extension). |
Response Parameters
Parameter | Type | Description |
---|---|---|
module_name | string | Name of the module that was removed. |
Example
<remove_module>
<module_name type="string">Custom_Module</module_name>
</remove_module>
<remove_module_response>
<module_name type="string">Custom_Module</module_name>
</remove_module_response>
add_interface¶
Instantiates an interface of the given class without stopping gateway execution, making all public methods inside that class available as RPC methods. The interface will also be added to interfaces.ini so that on startup it will still be available.
Request Parameters
Parameter | Type | Description |
---|---|---|
interface_class | string | Name of the interface class to be instantiated. |
Response Parameters
Parameter | Type | Description |
---|---|---|
interface_class | string | Name of the interface class that was instantiated. |
Example
<add_interface>
<interface_class type="string">Custom_Interface_Class</interface_class>
</add_interface>
<add_interface_response>
<interface_class type="string">Custom_Interface_Class</interface_class>
</add_interface_response>
get_interfaces¶
Returns the list of interfaces which are currently instantiated.
Note
Added in version 1.6.0.
Request Parameters
None
Response Parameters
Parameter | Type | Description |
---|---|---|
interfaces | list | The list of interface names (strings). |
Example
<get_interfaces/>
<get_interfaces_response>
<interfaces type="list">
<item type="string">RPC_General_Interface</item>
<item type="string">RPC_SE_Interface</item>
<item type="string">RPC_XML_Interface</item>
<item type="string">RPC_ZCL_Interface</item>
<item type="string">RPC_ZigBee_Interface</item>
</interfaces>
</get_interfaces_response>
remove_interface¶
Removes an interface of the given class, making all public methods inside that class unavailable as RPC methods. Also removes the interface from interfaces.ini so that is will not be made available at startup. Interfaces not imported from interfaces.ini on startup or via the add_interface command cannot be removed by this request.
Request Parameters
Parameter | Type | Description |
---|---|---|
interface_class | string | Name of the interface class to be removed. |
Response Parameters
Parameter | Type | Description |
---|---|---|
interface_class | string | Name of the interface class that was removed. |
Example
<remove_interface>
<interface_class type="string">Custom_Interface_Class</interface_class>
</remove_interface>
<remove_interface_response>
<interface_class type="string">Custom_Interface_Class</interface_class>
</remove_interface_response>
add_endpoint¶
Instantiates an endpoint of the given class, along with any of its default clusters, without stopping gateway execution. Optional parameters will override defaults of the endpoint class. The endpoint will also be added to endpoints.ini so that on startup the endpoint will be instantiated.
Refer to Endpoint Reference for standard endpoint classes which can be instantiated.
Request Parameters
Parameter | Type | Description |
---|---|---|
endpoint_class | string | Name of the endpoint class to be instantiated. |
endpoint_id* | int | 8-bit identifier of the endpoint. By default, the next available identifier will be chosen. |
profile_id* | int | 16-bit profile identifier of the endpoint. Required if the endpoint class does not provide a default. |
device_id* | int | 16-bit device identifier of the endpoint. |
device_version* | int | 4-bit device version of the endpoint. |
Response Parameters
Parameter | Type | Description |
---|---|---|
endpoint_class | string | Name of the endpoint class that was instantiated. |
endpoint_id | int | 8-bit identifier of the endpoint. |
profile_id | int | 16-bit profile identifier of the endpoint. |
device_id | int | 16-bit device identifier of the endpoint. |
device_version | int | 4-bit device version of the endpoint. |
Example
<add_endpoint>
<endpoint_class type="string">ZCL_Endpoint</endpoint_class>
<endpoint_id>0x10</endpoint_id>
<profile_id>0xC105</profile_id>
<device_id>0x9000</device_id>
<device_version>0x3</device_version>
</add_endpoint>
<add_endpoint_response>
<endpoint_class type="string">ZCL_Endpoint</endpoint_class>
<endpoint_id type="int">0x10</endpoint_id>
<profile_id type="int">0xC105</profile_id>
<device_id type="int">0x9000</device_id>
<device_version type="int">0x3</device_version>
</add_endpoint_response>
get_endpoints¶
Returns a list of endpoints instantiated on the gateway. This list may be filtered by one or more optional parameters.
Note
Added in version 1.6.0.
Request Parameters
Parameter | Type | Description |
---|---|---|
endpoint_id* | int | The ID that the endpoint must have. |
profile_id* | int | The profile ID that each endpoint must have. |
device_id* | int | The device ID (profile-specific) that each endpoint must have. |
device_version* | int | The device version that each endpoint must have. |
endpoint_class* | string | The name of the endpoint class that each endpoint must be. |
Response Parameters
Parameter | Type | Description |
---|---|---|
endpoints | list | The list of endpoints which match the given filters. Each item is a dictionary giving information about an endpoint (endpoint_id, profile_id, device_id, device_version, endpoint_class). |
Example
<get_endpoints>
<profile_id>0x0109</profile_id>
</get_endpoints>
<get_endpoints_response>
<endpoints type="list">
<item type="dict">
<endpoint_id type="int">0x5E</endpoint_id>
<profile_id type="int">0x109</profile_id>
<device_id type="int">0x500</device_id>
<device_version type="int">0x1</device_version>
<endpoint_class type="string">SE_EnergyServicePortal</endpoint_class>
</item>
</endpoints>
</get_endpoints_response>
remove_endpoint¶
Removes an endpoint with the given endpoint ID and any clusters on that endpoint. Also removes the endpoint from endpoints.ini so that it will not be instantiated at startup. Endpoints not added by endpoints.ini on startup or via the add_endpoint command cannot be removed by this request.
Note
Will remove all clusters on the endpoint. Any clusters dynamically added using add_cluster will have to be re-added if the endpoint is re-added. See remove_cluster for potential side effects to removing clusters.
Request Parameters
Parameter | Type | Description |
---|---|---|
endpoint_id | int | 8-bit identifier of the endpoint to be removed. |
Response Parameters
Parameter | Type | Description |
---|---|---|
endpoint_id | int | 8-bit identifier of the endpoint that was removed. |
Example
<remove_endpoint>
<endpoint_id>0x10</endpoint_id>
</remove_endpoint>
<remove_endpoint_response>
<endpoint_id type="int">0x10</endpoint_id>
</remove_endpoint_response>
add_cluster¶
Instantiates a cluster of the given class and adds it to the given endpoint without stopping gateway execution. Optional parameters will override defaults of the cluster class. The cluster will also be added to clusters.ini so that on startup the cluster will be added to the given endpoint.
Refer to Cluster Reference for standard cluster classes which can be instantiated.
Request Parameters
Parameter | Type | Description |
---|---|---|
endpoint_id | int | 8-bit identifier of the endpoint to which the cluster will be added. |
cluster_class | string | Name of the cluster class to be instantiated. |
cluster_id* | int | 16-bit identifier of the cluster. Required if the cluster class does not provide a default. |
server_or_client* | int | If 0, the new cluster will be a server (input) cluster. If 1, the cluster will be a client (output) cluster. Required if the cluster class does not provide a default. |
enable_APS_encryption* | bool | If TRUE, all transmissions over this cluster will use and require APS encryption, unless APS encryption is overridden for a particular message (i.e. send_ZCL) or is globally disabled (Registry Settings). If FALSE, this cluster will not use APS encryption. Defaults to the settings of the cluster class. |
Response Parameters
Parameter | Type | Description |
---|---|---|
endpoint_id | int | 8-bit identifier of the endpoint to which the cluster was added. |
cluster_class | string | Name of the cluster class that was instantiated. |
cluster_id | int | 16-bit identifier of the cluster. |
server_or_client | int | Whether the cluster is a server (0) or client (1) cluster. |
enable_APS_encryption | bool | Whether the cluster uses APS encryption. |
Example
<add_cluster>
<endpoint_id>0x5E</endpoint_id>
<cluster_class type="string">ZCL_Cluster</cluster_class>
<cluster_id>0xFC00</cluster_id>
<server_or_client>1</server_or_client>
</add_cluster>
<add_cluster_response>
<endpoint_id type="int">0x5E</endpoint_id>
<cluster_class type="string">ZCL_Cluster</cluster_class>
<cluster_id type="int">0xFC00</cluster_id>
<server_or_client type="int">1</server_or_client>
<enable_APS_encryption type="bool">FALSE</enable_APS_encryption>
</add_cluster_response>
get_clusters¶
Returns a list of clusters instantiated on the gateway. This list may be filtered by one or more optional parameters.
Note
Added in version 1.6.0.
Request Parameters
Parameter | Type | Description |
---|---|---|
endpoint_id* | int | The ID of the endpoint that the clusters must be on. |
server_or_client | int | Whether the clusters must be server (0) or client (1) clusters. |
cluster_id | int | The ID that the clusters must have. |
cluster_class | string | The name of the cluster class that each cluster must be. |
Response Parameters
Parameter | Type | Description |
---|---|---|
clusters | list | The list of clusters which match the given filters. Each item is a dictionary giving information about a cluster (endpoint_id, cluster_id, server_or_client, enable_APS_encryption, cluster_class). |
Example
<get_clusters>
<endpoint_id>0x5E</endpoint_id>
<server_or_client>0</server_or_client>
</get_clusters>
<get_clusters_response timestamp="1337906103">
<clusters type="list">
<item type="dict">
<server_or_client type="int">0x0</server_or_client>
<cluster_id type="int">0x0</cluster_id>
<cluster_class type="string">ZCL_BasicCluster_server</cluster_class>
<endpoint_id type="int">0x5E</endpoint_id>
<enable_APS_encryption type="bool">FALSE</enable_APS_encryption>
</item>
<item type="dict">
<server_or_client type="int">0x0</server_or_client>
<cluster_id type="int">0x800</cluster_id>
<cluster_class type="string">SE_KeyEstablishmentCluster_server</cluster_class>
<endpoint_id type="int">0x5E</endpoint_id>
<enable_APS_encryption type="bool">FALSE</enable_APS_encryption>
</item>
<item type="dict">
<server_or_client type="int">0x0</server_or_client>
<cluster_id type="int">0x3</cluster_id>
<cluster_class type="string">ZCL_IdentifyCluster_server</cluster_class>
<endpoint_id type="int">0x5E</endpoint_id>
<enable_APS_encryption type="bool">FALSE</enable_APS_encryption>
</item>
<item type="dict">
<server_or_client type="int">0x0</server_or_client>
<cluster_id type="int">0x701</cluster_id>
<cluster_class type="string">SE_DemandResponseLoadControlCluster_server</cluster_class>
<endpoint_id type="int">0x5E</endpoint_id>
<enable_APS_encryption type="bool">TRUE</enable_APS_encryption>
</item>
<item type="dict">
<server_or_client type="int">0x0</server_or_client>
<cluster_id type="int">0xA</cluster_id>
<cluster_class type="string">ZCL_TimeCluster_server</cluster_class>
<endpoint_id type="int">0x5E</endpoint_id>
<enable_APS_encryption type="bool">TRUE</enable_APS_encryption>
</item>
<item type="dict">
<server_or_client type="int">0x0</server_or_client>
<cluster_id type="int">0x703</cluster_id>
<cluster_class type="string">SE_MessageCluster_server</cluster_class>
<endpoint_id type="int">0x5E</endpoint_id>
<enable_APS_encryption type="bool">TRUE</enable_APS_encryption>
</item>
<item type="dict">
<server_or_client type="int">0x0</server_or_client>
<cluster_id type="int">0x700</cluster_id>
<cluster_class type="string">SE_PriceCluster_server</cluster_class>
<endpoint_id type="int">0x5E</endpoint_id>
<enable_APS_encryption type="bool">TRUE</enable_APS_encryption>
</item>
</clusters>
</get_clusters_response>
remove_cluster¶
Removes a cluster of the given class from the given endpoint. If a cluster class is not given, this will remove a cluster with the given type (server or client) and ID from the endpoint. Also removes the cluster from clusters.ini so that it will not be added to the endpoint at startup. Clusters not added by clusters.ini on startup or via the add_cluster command cannot be removed by this request.
Note
- Removing a cluster will remove all of the power-safe data stored with the cluster. This includes the follow:
- Reporting configurations created with start_receiving_reports.
- Power safe attribute values.
- Smart Energy events stored in SE server clusters. These events can be created by the following commands: create_price_event, create_DRLC_event, and create_message_event.
Request Parameters
Parameter | Type | Description |
---|---|---|
endpoint_id | int | 8-bit identifier of the endpoint from which the cluster will be removed. |
cluster_class* | string | Name of the cluster class which is to be removed. |
cluster_id* | int | 16-bit identifier of the cluster to be removed. Required if cluster class not given or cluster class does not define cluster ID. |
server_or_client* | int | If 0, the cluster to be removed is a server (input) cluster. If 1, the cluster to be removed is a client (output) cluster. Required if cluster class not given or cluster class does not define server_or_client. |
Response Parameters
Parameter | Type | Description |
---|---|---|
endpoint_id | int | 8-bit identifier of the endpoint from which the cluster was removed. |
cluster_id | int | 16-bit identifier of the cluster that was removed. |
server_or_client | int | If 0, the removed cluster was a server cluster. If 1, the removed cluster was a client cluster. |
cluster_class* | string | Class name of the removed cluster. Only present if given as a parameter to the remove_cluster command. |
Example
<remove_cluster>
<endpoint_id>0x5E</endpoint_id>
<cluster_id>0xFC00</cluster_id>
<server_or_client>1</server_or_client>
</remove_cluster>
<remove_cluster_response>
<endpoint_id type="int">0x5E</endpoint_id>
<cluster_id type="int">0xFC00</cluster_id>
<server_or_client type="int">1</server_or_client>
</remove_cluster_response>
get_version¶
Returns the version information of the given module, or the version information of the overall framework.
Request Parameters
Parameter | Type | Description |
---|---|---|
module_name* | string | If provided, the version information of the given module will be returned. If not provided, the overall version of the framework, as defined by the Version module, will be returned. |
Response Parameters
Parameter | Type | Description |
---|---|---|
module_name | string | The module whose version information was returned. |
version | any | The version of the module. This can be any type depending on what the module defines, but typically is a string, such as 1.0.0. |
version_extended* | any | The extended version information of the requested module, if available. This can be any type depending on what the module defines, but typically is a dictionary. |
Example
<get_version/>
<get_version_response>
<module_name type="string">Version</module_name>
<version type="string">1.5.0</version>
<version_extended type="dict">
<SE_spec_version type="string">1.1 revision 16</SE_spec_version>
<description type="string">SE Framework with support for ESI and IPD functionality.</description>
</version_extended>
</get_version_response>
help¶
Returns a listing of classes, methods or registry settings that are relevant to other RPC functionalty. If no parameters are provided, a list of parameters that the help command will accept is returned instead.
Request Parameters
Parameter | Type | Description |
---|---|---|
registry* | none | If provided, all registry entries will be listed. |
methods* | none | If provided, all RPC methods from instantiated interface classes will be listed. |
interfaces* | none | If provided, all known RPC interface classes will be listed. |
endpoints* | none | If provided, all known endpoint classes will be listed. |
clusters* | none | If provided, all known cluster classes will be listed. |
records* | none | If provided, all known record classes will be listed. |
Response Parameters
Parameter | Type | Description |
---|---|---|
registry* | list | Only included if requested. A listing of all registry entries. |
methods* | list | Only included if requested. A listing of all RPC methods from instantiated interface classes. |
interfaces* | list | Only included if requested. A listing of all known RPC interface classes. |
endpoints* | list | Only included if requested. A listing of all known endpoint classes. |
clusters* | list | Only included if requested. A listing of all known cluster classes. |
records* | list | Only included if requested. A listing of all known record classes. |
Lists are sorted alphabetically by module name and then by item name. The items in each list above are dictionaries with the following format:
Parameter | Type | Description |
---|---|---|
name | string | The name of the item. |
module | string | The name of the module where the item is defined. |
description* | string | The docstring of the item, if available. |
interface* | string | Only included for methods. The name of the interface class where the method is defined. |
Example
<help>
<endpoints/>
</help>
<help_response>
<endpoints type="list">
<item type="dict">
<name type="string">Endpoint</name>
<module type="string">Endpoint</module>
</item>
<item type="dict">
<name type="string">SE_Endpoint</name>
<module type="string">SE_Profile</module>
</item>
<item type="dict">
<name type="string">SE_EnergyServicePortal</name>
<module type="string">SE_Profile</module>
</item>
<item type="dict">
<name type="string">SE_InPremiseDisplay</name>
<module type="string">SE_Profile</module>
</item>
<item type="dict">
<name type="string">SE_RangeExtender</name>
<module type="string">SE_Profile</module>
</item>
<item type="dict">
<name type="string">ZCL_Endpoint</name>
<module type="string">ZCL_Endpoint</module>
</item>
<item type="dict">
<name type="string">ZDO_Endpoint</name>
<module type="string">ZDO_Profile</module>
</item>
</endpoints>
</help_response>
get_time¶
Gets the current UTC (Coordinated Universal Time) from the gateway.
Note
Additional response parameters added in version 1.4.0.
Request Parameters
None
Response Parameters
Parameter | Type | Description |
---|---|---|
UTC_1970 | int | Number of seconds since Jan. 1, 1970, UTC. As of 1.5.0: UTC is based solely off of NTP. (See Time Synchronization). |
UTC_2000* | int | Number of seconds since Jan. 1, 2000, UTC. As of 1.5.0: UTC is based off ZigBee network time. Parameter will not be included if NTP synchronization has not yet occured. (See Time Synchronization). |
time_since_synchronization* | int | As of 1.4.0: Number of seconds since time was last synchronized. Not included if time has not been synchronized. As of 1.5.0: Number of seconds since the network time was last synchronized. Not included if time has not been synchronized or if ZCL synchronization is not used. |
synchronization_type* | int | As of 1.4.0: The method in which the global time was last synchronized. 0 = NTP, 1 = ZCL, 2 = RPC. Not included if time has not been synchronized. As of 1.5.0: The method in which the network time was last synchronized. 0 = NTP, 1 = ZCL. Not included if time has not been synchronized. |
synchronization_server* | string or MAC | As of 1.4.0: The time server with which the gateway last synchronized. For NTP synchronization this will be the NTP server name, and for ZCL synchronization this will be the ZigBee 64-bit extended address of the server device. Not included if time has not been synchronized. As of 1.5.0: The ZCL time server with which the network time last synchronized. This will be the ZigBee 64-bit extended address of the server device. Not included if time has not been synchronized or if ZCL synchronization is not used. |
zigbee_time_offset | int | As of 1.6.0: The difference between the gateway’s time as obtained from NTP (UTC 2000) and the time obtained from ZCL synchronization. Not included if time has not been synchronized or if ZCL synchronization is not used. |
Example
<get_time/>
<get_time_response>
<UTC_1970 type="int">0x4C781621</UTC_1970>
<UTC_2000 type="int">0x140AD2A1</UTC_2000>
<time_since_synchronization type="int">0x100</time_since_synchronization>
<synchronization_type type="int">1</synchronization_type>
<synchronization_server type="MAC">00:11:22:33:44:55:66:77</synchronization_server>
<zigbee_time_offset type="int">0x3</zigbee_time_offset>
</get_time_response>
Note
Before 1.5.0: If time has not yet been synchronized, the gateway’s internal time will be the number of seconds since it was powered on. This will cause UTC_1970 to be the gateway’s uptime and UTC_2000 to be an invalid negative number.
After 1.5.0: If time has not yet been synchronized, the gateway’s internal time will be the number of seconds since it was powered on. This will cause UTC_1970 to be the gateway’s uptime and UTC_2000 will not be included in the response.
set_time¶
Manually sets the time on the gateway to the given UTC (Coordinated Universal Time). The time can be set using either 1970 or 2000 as the epoch.
Note
This command was removed as of 1.5.0.
Request Parameters
Parameter | Type | Description |
---|---|---|
UTC_1970* | int | Number of seconds since Jan. 1, 1970, UTC. |
UTC_2000* | int | Number of seconds since Jan. 1, 2000, UTC. |
Response Parameters
Parameter | Type | Description |
---|---|---|
UTC_1970 | int | Number of seconds since Jan. 1, 1970, UTC. |
UTC_2000 | int | Number of seconds since Jan. 1, 2000, UTC. |
Example
<set_time>
<UTC_2000>0x140AD2A1</UTC_2000>
</set_time>
<set_time_response>
<UTC_2000 type="int">0x140AD2A1</UTC_2000>
</set_time_response>
sync_time¶
Forces a synchronization of time with an NTP or ZCL time server, depending on registry settings (see “Time_Synchronizer” in Registry Settings).
Request Parameters
None
Response Parameters
None
Example
<sync_time/>
<sync_time_response/>
get_timezone¶
Retrieves the time zone setting from the ZigBee network. The timezone is used to adjust from UTC to local time.
Note
Added in version 1.6.0.
Note
The paramters for timezone are similar to Python’s time module, but have the opposite sign (like Python’s datetime module).
Request Parameters
None
Response Parameters
Parameter | Type | Description |
---|---|---|
gateway_timezone | dict | Timezone parameters for the gateway. Parameters are in table below. |
network_timezone | dict | Timezone parameters obtained from the ZigBee network. Parameters are in table below. |
Dictionary parameters.
Parameter | Type | Description |
---|---|---|
timezone | int | Offset of the local (non-DST) timezone, in seconds west of UTC (positive in most of Western Europe, negative in the US, zero in the UK). |
altzone | int | Offset of the local DST timezone, in seconds west of UTC (positive in most of Western Europe, negative in the US, zero in the UK). |
dst_start | int | UTC 2000 timestamp when daylight savings time starts. |
dst_end | int | UTC 2000 timestamp when daylight savings time ends. |
Example
<get_timezone/>
<get_timezone_response>
<network_timezone type="dict">
<timezone type="int">-0x7080</timezone>
<altzone type="int">-0x6270</altzone>
<dst_end type="int">0x50963CA0</dst_end>
<dst_start type="int">0x4F5C6990</dst_start>
</network_timezone>
<gateway_timezone type="dict">
<timezone type="int">-0x7080</timezone>
<altzone type="int">-0x6270</altzone>
<dst_end type="int">0x50963CA0</dst_end>
<dst_start type="int">0x4F5C6990</dst_start>
</gateway_timezone>
</get_timezone_response>
set_timezone¶
Sets the related ZigBee Time server cluster attributes. (This command does nothing and responds with a warning message in the case of a device with no ZigBee Time server cluster.)
Note
Added in version 1.6.0.
Note
The paramters for timezone are similar to Python’s time module, but have the opposite sign (like Python’s datetime module).
Request Parameters
Parameter | Type | Description |
---|---|---|
timezone | int | Offset of the local (non-DST) timezone, in seconds west of UTC (positive in most of Western Europe, negative in the US, zero in the UK). |
altzone | int | Offset of the local DST timezone, in seconds west of UTC (positive in most of Western Europe, negative in the US, zero in the UK). |
dst_start | int | UTC 2000 timestamp when daylight savings time starts. |
dst_end | int | UTC 2000 timestamp when daylight savings time ends. |
Response Parameters
Parameter | Type | Description |
---|---|---|
timezone | int | Offset of the local (non-DST) timezone, in seconds west of UTC (positive in most of Western Europe, negative in the US, zero in the UK). |
altzone | int | Offset of the local DST timezone, in seconds west of UTC (positive in most of Western Europe, negative in the US, zero in the UK). |
dst_start | int | UTC timestamp when daylight savings time starts. |
dst_end | int | UTC timestamp when daylight savings time ends. |
Example
<set_timezone>
<timezone>-0x7080</timezone>
<altzone>-0x6270</altzone>
<dst_end>0x50963CA0</dst_end>
<dst_start>0x4F5C6990</dst_start>
</set_timezone>
<set_timezone_response>
<timezone type="int">-0x7080</timezone>
<altzone type="int">-0x6270</altzone>
<dst_end type="int">0x50963CA0</dst_end>
<dst_start type="int">0x4F5C6990</dst_start>
</set_timezone_response>
clear_timezone¶
Removes all time zone settings from the Zigbee Network, effectively setting it back to using UTC for local time.
Note
Added in version 1.6.0.
Request Parameters
None
Response Parameters
None
Example
<clear_timezone/>
<clear_timezone_response/>
message*¶
Response only. During operation the gateway can generate unsolicited messages which indicate status or errors. Typically messages are considered asynchronous responses; however, messages generated due to errors caused by synchronous requests are usually treated as the synchronous responses to those requests.
When generated, messages contain a severity field which determines whether they will produce an RPC response message. This can be used to roughly filter the detail of messages being generated by the gateway (see “Message_Log.RPC_severity” in Registry Settings).
Some messages have associated status codes and additional fields, with the intention of making them easily machine-readable. See Asynchronous Message Reference for a listing of these messages.
Response Parameters
Parameter | Type | Description |
---|---|---|
description | string | The human-readable contents of the message. |
severity | int | The severity of the message. Can be 0 (debug), 1 (warning), or 2 (error). |
request_identifier* | any | Present if the message corresponds to a particular RPC request that included a request_identifier. |
status* | int | Included for certain messages. The status code of the message. See Asynchronous Message Reference. |
Note
Messages may also contain other fields as appropriate.
Example
<message>
<description type="string">Exception in registry_configuration: Missing required parameter(s): name</description>
<severity type="int">0x2</severity>
<request_identifier type="int">0x42</request_identifier>
</message>