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:

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>