ZCL Records

These records either directly correspond or are related to definitions in the ZigBee Cluster Library (ZCL) specification, and are used primarily by methods in the ZCL Interface.

ReadAttributeRecord

Specifies an attribute to read, contained in a ZCL read_attributes command.

Parameters

Parameter Type Description
attribute_id int 16-bit identifier of the attribute to read.

Example

<record type="ReadAttributeRecord">
    <attribute_id type="int">0x0005</attribute_id>
</record>

ReadAttributeStatusRecord

Specifies the value of an attribute which was read, contained in the response to ZCL read_attributes. When generated, optional parameters will not be included if the status parameter does not indicate success (0).

Parameters

Parameter Type Description
attribute_id int 16-bit identifier of the attribute which was read.
status int 8-bit ZCL status code of the read operation.
attribute_type* int 8-bit ZCL type identifier of the attribute which was read.
value* various The value of the attribute which was read. The type of this parameter corresponds with the ZCL type of the attribute.

Example

Attribute 0x0005 was read successfully and is a 32-bit signed integer with value 0x12345678.

<record type="ReadAttributeStatusRecord">
    <attribute_id type="int">0x5</attribute_id>
    <status type="int">0x0</status>
    <attribute_type type="int">0x2B</attribute_type>
    <value type="int">0x12345678</value>
</record>

WriteAttributeRecord

Specifies an attribute and value to write, contained in a ZCL write_attributes command.

Parameters

Parameter Type Description
attribute_id int 16-bit identifier of the attribute to write.
attribute_type int 8-bit ZCL type identifier of the attribute to write. As of 1.5.0: This value is no longer required when doing a local write.
value various The value of the attribute to write. The type of this parameter corresponds with the ZCL type of the attribute.

Example

Specify that attribute 0x0005, which is a 32-bit signed integer, should be written with the value 0xABCDEF

<record type="WriteAttributeRecord">
    <attribute_id type="int">0x0005</attribute_id>
    <attribute_type type="int">0x2B</attribute_type>
    <value type="int">0xABCDEF</value>
</record>

WriteAttributeResponseRecord

Specifies the status of writing to an attribute. This record does not directly correspond to a definition in the ZCL specification, but is instead derived from the response to ZCL write_attributes after comparison with the original Write Attributes request.

Parameters

Parameter Type Description
attribute_id int 16-bit identifier of the attribute which was written.
status int 8-bit ZCL status code of the write operation.
attribute_type int 8-bit ZCL type identifier of the attribute which was written.
value various The value of the attribute which was written. The type of this parameter corresponds with the ZCL type of the attribute.

Example

Attribute 0x0005, which is a 32-bit signed integer, was written successfully and now has the value 0xABCDEF.

<record type="WriteAttributeStatusRecord">
    <attribute_id type="int">0x5</attribute_id>
    <status type="int">0x0</status>
    <attribute_type type="int">0x2B</attribute_type>
    <value type="int">0xABCDEF</value>
</record>

AttributeReportingConfigurationRecord

Specifies the configuration of reporting for an attribute, contained in a ZCL Configure Reporting command. This record type is used directly the start_receiving_reports RPC command but is also generated internally by stop_receiving_reports and stop_sending_reports. When instantiated, optional parameters will take default values if not included.

Note

The AttributeReportingConfigurationRecord in the ZCL specification has a “direction” parameter, which would allow a single Configure Reporting command with multiple records in its payload to configure reporting in both transmitting and receiving directions. Because this is confusing and not particularly useful, the direction parameter is instead implied by the RPC command and not explicitly included in the record. The direction parameter is included in the payload sent to the target device after being set automatically.

Parameters

Parameter Type Description
attribute_id int 16-bit identifier of the attribute to configure for reporting.
attribute_type int 8-bit ZCL type identifier of the attribute to configure for reporting. As of 1.5.0: This attribute is not required if pseudo_reporting is set to TRUE (see start_receiving_reports) or when reporting local attributes.
min_interval* int 16-bit minimum time between attribute reports, in seconds. Defaults to 0, which will cause the device to use its default minimum reporting interval, except in the case of pseudo reporting, where it defaults to 5.
max_interval* int 16-bit maximum time between attribute reports, in seconds. An attribute report will be generated after this much time has passed since the last attribute report, even if the attribute value has not changed more than reportable_change. The exception is if this value is 0, in which case reports will only be generated due to reportable_change. Setting this value to 0xFFFF is reserved and will cause the reporting configuration for the attribute to be removed. Defaults to 0. As of 1.5.0: A value greater than 0xFFFE will be accepted when pseudo_reporting is set to TRUE in start_receiving_reports.
reportable_change* int The minimum value by which the attributes value must change before a report will be generated, excluding min and max interval restrictions. The type of this parameter corresponds with the ZCL type of the attribute. Note that this value is only meaningful for analog ZCL types; for discrete types any change is considered a reportable change. Defaults to none, which is equivalent to not having a valid reportable change (if analog).
timeout* int The maximum time that the report receiver (i.e. the local device) will wait for a report from the device before timing out. Refer to Automatic Reconfiguration on Timeout for expected behavior on timeout. Defaults to 0, which will cause the receiver to never time out.
check_interval* int When configuring report receiving using pseudo reporting (see ZCL Reporting and start_receiving_reports), this is the interval between read attribute requests, in seconds. Defaults to min_interval and cannot be less than 5.

Example

Attribute 0, which is a 48-bit unsigned integer, is configured to be reported no more than once every five seconds and no less than once a minute, with a report generated whenever the value changes by at least 1. If a report is not received after two minutes, the configuration will have timed out and action will be taken.

<record type="AttributeReportingConfigurationRecord">
    <attribute_id>0x0000</attribute_id>
    <attribute_type>0x25</attribute_type>
    <min_interval>5</min_interval>
    <max_interval>60</max_interval>
    <reportable_change>1</reportable_change>
    <timeout>120</timeout>
</record>

AttributeReportingConfigurationResponseRecord

Specifies the status of configuring an attribute for reporting. This record does not directly correspond to a definition in the ZCL specification, but is instead derived from the ZCL Configure Reporting response after comparison with the original Configure Reporting request. This record is used by the start_receiving_reports command.

Parameters

Parameter Type Description
status int 8-bit ZCL status code of the reporting configuration.
attribute_id int 16-bit identifier of the attribute that was configured for reporting.
attribute_type int 8-bit ZCL type identifier of the attribute that was configured for reporting.
min_interval int 16-bit minimum time between attribute reports, in seconds.
max_interval int 16-bit maximum time between attribute reports, in seconds. An attribute report will be generated after this much time has passed since the last attribute report, even if the attribute value has not changed more than reportable_change. The exception is if this value is 0, in which case reports will only be generated due to reportable_change.
reportable_change int The minimum value by which the attributes value must change before a report will be generated, excluding min and max interval restrictions. The type of this parameter corresponds with the ZCL type of the attribute. Note that this value is only meaningful for analog ZCL types; for discrete types any change is considered a reportable change.
timeout int The maximum time that the report receiver (i.e. the local device) will wait for a report from the device before timing out. Refer to Automatic Reconfiguration on Timeout for expected behavior on timeout.
check_interval* int Only included when pseudo reporting is used (see ZCL Reporting and start_receiving_reports). This is the interval between read attribute requests, in seconds.

Example

Attribute 0, which is a 48-bit unsigned integer, was successfully configured to be reported.

<record type="AttributeReportingConfigurationResponseRecord">
    <status type="int">0x0</status>
    <attribute_id type="int">0x0</attribute_id>
    <attribute_type type="int">0x25</attribute_type>
    <min_interval type="int">0x5</min_interval>
    <max_interval type="int">0x3C</max_interval>
    <reportable_change type="int">0x1</reportable_change>
    <timeout type="int">0x78</timeout>
</record>

AttributeReportRecord

Specifies the value of an attribute which was reported, contained in a ZCL received_attribute_report* command.

Parameters

Parameter Type Description
attribute_id int 16-bit identifier of the attribute being reported.
attribute_type int 8-bit ZCL type identifier of the attribute being reported.
value various The value of the attribute being reported. The type of this parameter corresponds with the ZCL type of the attribute.

Example

Attribute 0x0005, which is a 32-bit signed integer, is reported to have the value 0x12345678.

<record type="AttributeReportRecord">
    <attribute_id type="int">0x5</attribute_id>
    <attribute_type type="int">0x2B</attribute_type>
    <value type="int">0x12345678</value>
</record>

StopReportingRecord

Specifies an attribute on which reporting should be stopped. This record does not directly correspond to a definition in the ZCL specification. This record is used by the stop_receiving_reports command.

Parameters

Parameter Type Description
attribute_id int 16-bit identifier of the attribute on which reporting will be stopped.

Example

<record type="StopReportingRecord">
    <attribute_id type="int">0x0005</attribute_id>
</record>

StopReportingStatusRecord

Specifies the status of stopping reporting on an attribute. This record does not directly correspond to a definition in the ZCL specification. This record is used by the resposne to the stop_receiving_reports command.

Parameters

Parameter Type Description
attribute_id int 16-bit identifier of the attribute on which reporting was stopped.
status int 8-bit ZCL status code of stop reporting operation.

Example

<record type="StopReportingStatusRecord">
    <attribute_id type="int">0x5</attribute_id>
    <status type="int">0x0</status>
</record>

ReadReportingConfigurationRecord

Specifies an attribute whose reporting configuration should be read. This record does not directly correspond to a definition in the ZCL specification. This record is used by the read_reporting_configuration command.

Parameters

Parameter Type Description
attribute_id int 16-bit identifier of the attribute on whose configuration will be read.

Example

<record type="ReadReportingConfigurationRecord">
    <attribute_id type="int">0x0005</attribute_id>
</record>

ReadReportingConfigurationResponseRecord

Specifies the reporting configuration of an attribute, contained in a ZCL Read Reporting Configuration response. When generated, optional parameters will not be included if the status parameter does not indicate success (0). Additionally, the optional parameters of the record vary depending on whether the reporting configuration is for transmitting or receiving reports. For transmitting only timeout is included, and for receiving all other fields but timeout are included. This record is used by the response to the read_reporting_configuration command.

Note

The ReadReportingConfigurationResponseRecord in the ZCL specification has a “direction” parameter, which would allow a single Read Reporting Configuration response with multiple records in its payload to specify configurations in both transmitting and receiving directions. Because this is confusing and not particularly useful, the direction parameter is instead implied by the RPC request (see read_reporting_configuration) and not explicitly included in the record.

Parameters

Parameter Type Description
status int 8-bit ZCL status code of reading the reporting configuration.
attribute_id int 16-bit identifier of the attribute that is configured for reporting.
attribute_type* int 8-bit ZCL type identifier of the attribute that is configured for reporting.
min_interval* int 16-bit minimum time between attribute reports, in seconds.
max_interval* int 16-bit maximum time between attribute reports, in seconds. An attribute report will be generated after this much time has passed since the last attribute report, even if the attribute value has not changed more than reportable_change. The exception is if this value is 0, in which case reports will only be generated due to reportable_change.
reportable_change* int The minimum value by which the attributes value must change before a report will be generated, excluding min and max interval restrictions. The type of this parameter corresponds with the ZCL type of the attribute. Note that this value is only meaningful for analog ZCL types; for discrete types any change is considered a reportable change.
timeout* int The maximum time that the report receiver (i.e. the local device) will wait for a report from the device before timing out.

Example

Record for the report sending configuration from the Metering server on device 11:22:33:44:55:66:77:88, endpoint 0x10 for its Current Summation Delivered attribute.

<record type="ReadReportingConfigurationResponseRecord">
    <status type="int">0x0</status>
    <attribute_id type="int">0x0</attribute_id>
    <attribute_type type="int">0x25</attribute_type>
    <min_interval type="int">0x5</min_interval>
    <max_interval type="int">0x3C</max_interval>
    <reportable_change type="int">1</reportable_change>
</record>

AttributeInformationRecord

Specifies information about an attribute that was discovered, contained in a ZCL discover_attributes respose.

Parameters

Parameter Type Description
attribute_id int 16-bit identifier of the attribute that was discovered.
attribute_type int 8-bit ZCL type identifier of the attribute that was discovered.

Example

<record type="AttributeInformationRecord">
    <attribute_id type="int">0x3</attribute_id>
    <attribute_type type="int">0x20</attribute_type>
</record>

LocalReportingConfigurationRecord

Specifies the configuration of a reporting of an attribute on the local device. This record does not directly correspond to a definition in the ZCL specification. This command is used by the response to the get_local_reporting_configurations command.

Parameters

Parameter Type Description
group_id int As of 1.6.0, identifier of the group this reporting configuration belongs to.
collection_schedule* cron As of 1.6.0, Cron string specifying when collections of attribute reports should be pushed to Device Cloud.
device_address MAC 64-bit address of the other device with which reporting is configured.
device_endpoint_id int 8-bit identifier of the endpoint on the other device with which reporting is configured.
endpoint_id* int 8-bit identifier of the local endpoint containing the cluster which has reporting configured. Optional as of as of 1.6.0
profile_id* int 16-bit profile identifier of the target endpoint.
cluster_id int 16-bit identifier of the cluster over which reporting is configured.
server_or_client int Whether the cluster on the local device is a server (0) or client (1) cluster.
reporting_direction int Whether the cluster on the local device is transmitting (0) or receiving (1) reports.
pseudo_reporting* bool Only included if reporting_direction is receiving (1). If TRUE, reporting is using the pseudo reporting mechanism (see ZCL Reporting).
record AttributeReportingConfigurationRecord Specifies the configuration parameters of reporting.

Example

The local Metering client cluster has a configuration for receiving reports for the Current Summation Delivered attribute on the Metering server on device 11:22:33:44:55:66:77:88, endpoint 0x10.

<record type="LocalReportingConfigurationRecord">
    <group_id type="string">default_group_id_1</group_id>
    <collection_schedule type="cron">0 */5 * * * *</collection_schedule>
    <device_address type="MAC">11:22:33:44:55:66:77:88</device_address>
    <device_endpoint_id type="int">0x10</device_endpoint_id>
    <endpoint_id type="int">0x5E</endpoint_id>
    <cluster_id type="int">0x702</cluster_id>
    <server_or_client type="int">0x0</server_or_client>
    <reporting_direction type="int">0x1</reporting_direction>
    <pseudo_reporting type="bool">FALSE</pseudo_reporting>
    <record type="AttributeReportingConfigurationRecord">
        <attribute_id type="int">0x0</attribute_id>
        <attribute_type type="int">0x25</attribute_type>
        <min_interval type="int">0x5</min_interval>
        <max_interval type="int">0x3C</max_interval>
        <reportable_change type="int">0x1</reportable_change>
        <timeout type="int">0x78</timeout>
    </record>
</record>

ZCL_ArrayRecord

This is a special record type that corresponds to an instance of the ZCL Array type. Arrays have a list of elements, all of the same ZCL type. This record is usually treated as a normal ZCL value, such as in a WriteAttributeRecord. It is legal to have an array containing arrays.

Parameters

Parameter Type Description
attribute_type int 8-bit ZCL type identifier of the attributes stored in the array.
value list List of items in the array.

Example

Attribute 0x0007, which is an array of five 32-bit unsigned integers, is being written. See WriteAttributeRecord for the Write Attribute record parameters.

<record type="WriteAttributeRecord">
    <attribute_id type="int">0x0007</attribute_id>
    <attribute_type type="int">0x48</attribute_type>
    <value type="ZCL_ArrayRecord">
        <attribute_type type="int">0x23</attribute_type>
        <value type="list">
            <item type="int">0x1234</item>
            <item type="int">0x5678</item>
            <item type="int">0x90AB</item>
            <item type="int">0xCDEF</item>
            <item type="int">0x55AA</item>
        </value>
    </value>
</record>

StartReportRecord

Contained in a ZCL start_reports command. This record requires different sets of values for different types of reporting. There is a set of common addressing parameters and then different sets of timing/value parameters for the different types of reporting.

Note

Record available as of 1.6.0.

Common parameters for all types of reporting:

Parameter Type Description
destination_address* MAC 64-bit extended address of the target device. If not provided, defaults to the local device.
destination_endpoint_id* int 8-bit identifier of the endpoint on the target device containing the target cluster. If not provided, the correct endpoint is guessed based on the gateway’s discovery information.
source_endpoint_id* int 8-bit identifier of the endpoint on the local device from which the ZCL commands will be sent. If not provided, the correct endpoint is guessed based on the gateway’s discovery information.
profile_id* int 16-bit profile identifier of the target endpoint. If provided, this can help disambiguate endpoints during automatic lookup.
server_or_client* int Whether the target cluster is a server (0) or client (1) cluster. If not provided, the correct value is guessed based on the gateway’s discovery information.
cluster_id int 16-bit identifier of the cluster over which the ZCL command will be sent.
manufacturer_code* int If provided, the 16-bit manufacturer code of the ZCL attribute.
attribute_id int 16-bit identifier of the attribute to be reported.
force_configuration* bool If True, this reporting configuration will continue to be reattempted until successful, rather than being dropped after the first failure. Defaults to False.

Parameters for ZCL reporting.

Parameter Type Description
pseudo_reporting bool Must be set to False to enable ZCL reporting.
min_interval* int 16-bit minimum time between attribute reports, in seconds. Defaults to 0 for ZCL reporting.
max_interval* int 16-bit maximum time between attribute reports, in seconds. An attribute report will be generated after this much time has passed since the last attribute report, even if the attribute value has not changed more than reportable_change. The exception is if this value is 0, in which case reports will only be generated due to reportable_change.
reportable_change* int The minimum value by which the attributes value must change before a report will be generated, excluding min and max interval restrictions. The type of this parameter corresponds with the ZCL type of the attribute. Note that this value is only meaningful for analog ZCL types; for discrete types any change is considered a reportable change.
attribute_type* int ZCL type of the attribute to be reported. Required if reportable_change is specified; otherwise defaults to 0xFF, or “unknown type”.
timeout* int The maximum time that the report receiver (i.e. the local device) will wait for a report from the device before timing out. If a report is not received within this many seconds, the configuration will be re-sent to the target device. Defaults to 0, or “no timeout”.

Example

Specify ZCL reporting on the UTC time attribute on the ZCL Time cluster on device 11:22:33:44:55:66:77:88, endpoint 0x10.

Note

ZCL reporting on the time cluster in the ZCL specification in discouraged and may not be supported.

<item type="StartReportRecord">
    <destination_address type="MAC">11:22:33:44:55:66:77:88</destination_address>
    <destination_endpoint_id>0x10</destination_endpoint_id>
    <cluster_id>0x000A</cluster_id>
    <server_or_client>0</server_or_client>
    <attribute_id>0x0</attribute_id>
    <pseudo_reporting type="bool">False</pseudo_reporting>
    <min_interval>15</min_interval>
    <max_interval>300</max_interval>
    <reportable_change>60</reportable_change>
    <attribute_type>0xE2</attribute_type>
    <timeout>900</timeout>
</item>

Parameters for pseudo reporting (simulated ZCL reporting by polling the attribute value):

Parameter Type Description
pseudo_reporting* bool Either not set or set to True to enable pseudo reporting.
min_interval* int 16-bit minimum time between attribute reports, in seconds. Defaults to 5 seconds for ZCL reporting.
check_interval* int Polling interval. An attribute will be read every this many seconds, once min_interval seconds have passed since the last attribute report was generated. Defaults to min_interval seconds.
max_interval* int 16-bit maximum time between attribute reports, in seconds. An attribute report will be generated after this much time has passed since the last attribute report, even if the attribute value has not changed more than reportable_change. The exception is if this value is 0, in which case reports will only be generated due to reportable_change.
reportable_change* int The minimum value by which the attributes value must change before a report will be generated, excluding min and max interval restrictions. The type of this parameter corresponds with the ZCL type of the attribute. Note that this value is only meaningful for analog ZCL types; for discrete types any change is considered a reportable change.

Example

Specify pseudo reporting on the UTC time attribute on the ZCL Time cluster on device 11:22:33:44:55:66:77:88.

<item type="StartReportRecord">
    <destination_address type="MAC">11:22:33:44:55:66:77:88</destination_address>
    <cluster_id>0x000A</cluster_id>
    <attribute_id>0x0</attribute_id>
    <min_interval>15</min_interval>
    <check_interval>5<check_interval>
    <max_interval>300</max_interval>
    <reportable_change>60</reportable_change>
</item>

Parameters for scheduled reporting (reports are generated by sending reads on a cron schedule):

Parameter Type Description
pseudo_reporting* bool Either not set or set to True to enable pseudo reporting.
schedule cron The schedule for when reads will be sent. Every read is expected to generate a report unless some error occurs.

Example

Specify scheduled reporting on the UTC time attribute on the ZCL Time cluster on device 11:22:33:44:55:66:77:88, endpoint 0x10.

<item type="StartReportRecord">
    <destination_address type="MAC">11:22:33:44:55:66:77:88</destination_address>
    <destination_endpoint_id>0x10</destination_endpoint_id>
    <cluster_id>0x000A</cluster_id>
    <server_or_client>0</server_or_client>
    <attribute_id>0x0</attribute_id>
    <schedule type="cron">0 */1 * * * *</schedule>
</item>

StartReportStatusRecord

Contained in the response to a ZCL start_reports command. This record is very similar to

Note

Record available as of 1.6.0.

Common parameters for all types of reporting:

Parameter Type Description
destination_address MAC 64-bit extended address of the target device.
source_endpoint_id* int 8-bit identifier of the endpoint on the local device from which the ZCL commands will be sent. Only provided if explicitly specified.
destination_endpoint_id int 8-bit identifier of the endpoint on the target device containing the target cluster.
profile_id int 16-bit profile identifier of the target endpoint.
server_or_client int Whether the target cluster is a server (0) or client (1) cluster.
cluster_id int 16-bit identifier of the cluster over which the ZCL command will be sent.
manufacturer_code* int If applicable, the 16-bit manufacturer code of the ZCL attribute.
attribute_id int 16-bit identifier of the attribute to be reported.
force_configuration bool If True, this reporting configuration will continue to be reattempted until successful, rather than being dropped after the first failure.
status int The status of the configuration operation, which may be 0 (“success”), some other ZCL status code (e.g. 0x86 “attribute not found”) or some internal status code (e.g. 0x202 “conversation timeout”).

Parameters for ZCL reporting.

Parameter Type Description
pseudo_reporting bool Will return False.
min_interval int 16-bit minimum time between attribute reports, in seconds
max_interval int 16-bit maximum time between attribute reports, in seconds. An attribute report will be generated after this much time has passed since the last attribute report, even if the attribute value has not changed more than reportable_change. The exception is if this value is 0, in which case reports will only be generated due to reportable_change.
reportable_change* int The minimum value by which the attributes value must change before a report will be generated, excluding min and max interval restrictions. The type of this parameter corresponds with the ZCL type of the attribute. Note that this value is only meaningful for analog ZCL types; for discrete types any change is considered a reportable change.
attribute_type* int ZCL type of the attribute to be reported. Required if reportable_change is specified; otherwise defaults to 0xFF, or “unknown type”.
timeout int The maximum time that the report receiver (i.e. the local device) will wait for a report from the device before timing out. If a report is not received within this many seconds, the configuration will be re-sent to the target device.

Example

<item type="StartReportStatusRecord">
    <destination_address type="MAC">11:22:33:44:55:66:77:88</destination_address>
    <destination_endpoint_id type="int">0x10</destination_endpoint_id>
    <profile_id type="int">0x0109</profile_id>
    <server_or_client type="int">0</server_or_client>
    <cluster_id type="int">0x000A</cluster_id>
    <attribute_id type="int">0x0</attribute_id>
    <pseudo_reporting type="bool">False</pseudo_reporting>
    <min_interval type="int">0xf</min_interval>
    <max_interval type="int">0x12c</max_interval>
    <reportable_change type="int">0x3c</reportable_change>
    <attribute_type type="int">0xE2</attribute_type>
    <timeout type="int">0x384</timeout>
    <force_configuration type="bool">False</force_configuration>
    <status type="int">0x0</status>
</item>

Parameters for pseudo reporting (simulated ZCL reporting by polling the attribute value):

Parameter Type Description
pseudo_reporting bool Will return True.
min_interval int 16-bit minimum time between attribute reports, in seconds.
check_interval int Polling interval. An attribute will be read every this many seconds, once min_interval seconds have passed since the last attribute report was generated.
max_interval int 16-bit maximum time between attribute reports, in seconds. An attribute report will be generated after this much time has passed since the last attribute report, even if the attribute value has not changed more than reportable_change. The exception is if this value is 0, in which case reports will only be generated due to reportable_change.
reportable_change* int The minimum value by which the attributes value must change before a report will be generated, excluding min and max interval restrictions. The type of this parameter corresponds with the ZCL type of the attribute. Note that this value is only meaningful for analog ZCL types; for discrete types any change is considered a reportable change.

Example

<item type="StartReportStatusRecord">
    <destination_address type="MAC">11:22:33:44:55:66:77:88</destination_address>
    <destination_endpoint_id type="int">0x10</destination_endpoint_id>
    <profile_id type="int">0x0109</profile_id>
    <server_or_client type="int">0</server_or_client>
    <cluster_id type="int">0x000A</cluster_id>
    <attribute_id type="int">0x0</attribute_id>
    <pseudo_reporting type="bool">True</pseudo_reporting>
    <min_interval type="int">0xf</min_interval>
    <check_interval type="int">5<check_interval>
    <max_interval type="int">0x12c</max_interval>
    <reportable_change type="int">0x3c</reportable_change>
    <force_configuration type="bool">False</force_configuration>
    <status type="int">0x0</status>
</item>

Parameters for scheduled reporting (reports are generated by sending reads on a cron schedule):

Parameter Type Description
pseudo_reporting bool Will return True.
schedule cron The schedule for when reads will be sent. Every read is expected to generate a report unless some error occurs.

Example

<item type="StartReportStatusRecord">
    <destination_address type="MAC">11:22:33:44:55:66:77:88</destination_address>
    <destination_endpoint_id type="int">0x10</destination_endpoint_id>
    <profile_id type="int">0x0109</profile_id>
    <server_or_client type="int">0</server_or_client>
    <cluster_id type="int">0x000A</cluster_id>
    <attribute_id type="int">0x0</attribute_id>
    <pseudo_reporting type="bool">True</pseudo_reporting>
    <schedule type="cron">0 */1 * * * *</schedule>
    <force_configuration type="bool">False</force_configuration>
    <status type="int">0x0</status>
</item>

StopReportRecord

Contained in a ZCL stop_reports command.

Note

Record available as of 1.6.0.

Parameter Type Description
destination_address* MAC 64-bit extended address of the target device. If not provided, defaults to the local device.
source_endpoint_id* int 8-bit identifier of the endpoint on the local device from which the ZCL commands will be sent. If not provided, the correct endpoint is guessed based on the gateway’s discovery information.
destination_endpoint_id* int 8-bit identifier of the endpoint on the target device containing the target cluster. If not provided, the correct endpoint is guessed based on the gateway’s discovery information.
profile_id* int 16-bit profile identifier of the target endpoint. If provided, this can help disambiguate endpoints during automatic lookup.
server_or_client* int Whether the target cluster is a server (0) or client (1) cluster. If not provided, the correct value is guessed based on the gateway’s discovery information.
cluster_id int 16-bit identifier of the cluster over which the ZCL command will be sent.
manufacturer_code* int If provided, the 16-bit manufacturer code of the ZCL attribute.
attribute_id int 16-bit identifier of the attribute to be reported.
attribute_type* int ZCL type of the attribute to be stopped. Only required when stopping ZCL reporting that has no associated group. Defaults to 0xFF, or “unknown type”.
pseudo_reporting* bool Only required when stopping ZCL reporting that has no associated group. Must be set to False for this case.

Example

Stop ZCL reporting on the UTC time attribute on the ZCL Time cluster on device 11:22:33:44:55:66:77:88, endpoint 0x10.

<record type="StopReportRecord">
    <destination_address type="MAC">11:22:33:44:55:66:77:88</destination_address>
    <destination_endpoint_id>0x10</destination_endpoint_id>
    <cluster_id>0x000A</cluster_id>
    <server_or_client>0</server_or_client>
    <attribute_id>0x0</attribute_id>
    <pseudo_reporting type="bool">False</pseudo_reporting>
    <attribute_type>0xE2</attribute_type>
</record>

StopReportStatusRecord

Contained in the response to a ZCL stop_reports command.

Note

Record available as of 1.6.0.

Parameter Type Description
destination_address MAC 64-bit extended address of the target device.
source_endpoint_id* int 8-bit identifier of the endpoint on the local device from which the ZCL commands will be sent. Only provided if explicitly specified.
destination_endpoint_id int 8-bit identifier of the endpoint on the target device containing the target cluster.
profile_id int 16-bit profile identifier of the target endpoint.
server_or_client int Whether the target cluster is a server (0) or client (1) cluster.
cluster_id int 16-bit identifier of the cluster over which the ZCL command will be sent.
manufacturer_code* int If applicable, the 16-bit manufacturer code of the ZCL attribute.
attribute_id int 16-bit identifier of the attribute to be reported.
attribute_type int ZCL type of the attribute to be stopped.
pseudo_reporting* bool Whether the configuration used pseudo reporting (only included if False).
status int The status of the configuration operation, which may be 0 (“success”), some other ZCL status code (e.g. 0x86 “attribute not found”) or some internal status code (e.g. 0x202 “conversation timeout”). For pseudo reporting it is expected that status will always be “success”.

Example

<record type="StopReportStatusRecord">
    <destination_address type="MAC">11:22:33:44:55:66:77:88</destination_address>
    <destination_endpoint_id type="int">0x10</destination_endpoint_id>
    <profile_id type="int">0x0109</profile_id>
    <server_or_client type="int">0</server_or_client>
    <cluster_id type="int">0x000A</cluster_id>
    <attribute_id type="int">0x0</attribute_id>
    <attribute_type type="int">0xE2</attribute_type>
    <pseudo_reporting type="bool">False</pseudo_reporting>
    <status type="int">0x0</status>
</record>

ReportHeaderRecord

Contained in a ZCL received_attribute_report_collection* response.

Note

Record available as of 1.6.0.

Parameter Type Description
destination_address MAC 64-bit extended address of the target device.
destination_endpoint_id* int 8-bit identifier of the endpoint on the local device from which the ZCL commands will be sent. Only provided if explicitly specified.
source_endpoint_id int 8-bit identifier of the endpoint on the target device containing the target cluster.
profile_id int 16-bit profile identifier of the target endpoint.
server_or_client int Whether the target cluster is a server (0) or client (1) cluster.
cluster_id int 16-bit identifier of the cluster over which the ZCL command will be sent.
manufacturer_code* int If applicable, the 16-bit manufacturer code of the ZCL attribute.
attribute_id int 16-bit identifier of the attribute to be reported.
attribute_type int ZCL type of the attribute to be stopped.

Example

<record type="ReportHeaderRecord">
    <destination_address type="MAC">11:22:33:44:55:66:77:88</destination_address>
    <destination_endpoint_id type="int">0x5E</destination_endpoint_id>
    <source_endpoint_id type="int">0x10</source_endpoint_id>
    <profile_id type="int">0x0109</profile_id>
    <server_or_client type="int">0</server_or_client>
    <cluster_id type="int">0x000A</cluster_id>
    <attribute_id type="int">0x0</attribute_id>
    <attribute_type type="int">0xE2</attribute_type>
</record>

ReportDataRecord

Contained in a ZCL received_attribute_report_collection* response.

Note

Record available as of 1.6.0.

Parameter Type Description
timestamp int UTC 1970 timestamp giving the time on the local device when the value was received. In some cases during startup, a timestamp of 0xFFFFFFFF will be used to indicate that there is no data for this attribute.
value* (int or string) The value of the attribute. Value may be not included in group reports that have a reading error.

Example

<record type="ReportDataRecord">
    <timestamp type="int">0x1234567</timestamp>
    <value type="int">0x1230000</value>
</record>