您好!
我想构建一个终端设备、将属性数据报告回连接到 zigbee2mqtt 的集中器。
我克隆了 zed_genericapp 并添加了两个属性: ATTRID_basic_model_identifier (zigbee2mqtt 的 mandantory)和:
unsigned char zclGenericApp_iov_stateText[256];
...
{
ZCL_CLUSTER_ID_GENERAL_MULTISTATE_VALUE_BASIC,
{ // Attribute record
ATTRID_IOV_BASIC_STATE_TEXT,
ZCL_DATATYPE_CHAR_STR,
(ACCESS_CONTROL_READ | ACCESS_CONTROL_WRITE | ACCESS_REPORTABLE),
(void *)zclGenericApp_iov_stateText,
}
},
还将 ZCL_CLUSTER_ID_General_multistate_value_basic 添加到 了 zclGenericApp_InClusterList。
通过这个设置、我能够从 zigbee2mqtt 中设置一个新值、并请求该值返回。
现在、我想在按键时报告该值。 我将 zclGenericApp_processKey 修改为:
if(_btn == gRightButtonHandle)
{
// Zstackapi_bdbResetLocalActionReq(appServiceTaskId);
ZStatus_t status = bdb_RepChangedAttrValue(
GENERICAPP_ENDPOINT,
ZCL_CLUSTER_ID_GENERAL_MULTISTATE_VALUE_BASIC,
ATTRID_IOV_BASIC_STATE_TEXT
);
}
在该函数中、我遇到了一个问题、
if( FLAGS_CHECKFLAG( bdb_reportingClusterEndpointArray[indexClusterEndpoint].flags, BDBREPORTING_HASBINDING_FLAG_MASK ) == BDBREPORTING_FALSE )
因此不会发送报告。
这意味着什么? 无绑定? 我之前已经完成了"左按钮"、我认为它可以很好地连接到集中器。 虽然没有绑定请求、但存在关联请求/响应、密钥交换、节点描述符请求/响应。
感谢您的任何帮助...
此致、
Frithjof