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>