This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC2652R:占位传感器和照明

Guru**** 2927270 points

Other Parts Discussed in Thread: SIMPLELINK-CC13X2-26X2-SDK, SYSCONFIG

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1016350/cc2652r-occupancy-sensor-and-lighting

器件型号:CC2652R
主题中讨论的其他器件:SIMPLELINK-CC13X2-26X2-SDKSysConfig

您好 TI!

我有一个传感器要用作占位传感器、它既不是 PIR、也不是超声波。

我已经为 LP-CC2652R 上的传感器编写了程序、并希望将其与 Zigbee 堆栈(作为终端设备)配合使用、以便将"占用"/"未占用"状态传达给另一个 LP-CC2652R 上的协调器。

作为当前设置、我使用了 zc_SampleApp 和 zed_SampleApp 作为起点、并根据占位传感器的 ZHA 和 ZCL 规范添加了具有.syscf 的集群。 协调器是具有占位感应功能的开/关灯、终端设备是占位传感器。 这是我被卡住的地方。 设备位于网络中、但我的工作占用传感器应用程序应如何管理通信"占用"/"未占用"?

  1. 是否WEAK map8 sampleApp_OccupancySensing_Occupancy; 需要复制到 SampleApp.c 中?
  2. 是否可以通过线程同步和信标将 ZStack 应用代码与我自己的用于占位传感器的代码融合在一起? 让 ZStack 应用程序等待占用传感器注意到存在状态和帖子发生变化的过程是否简单?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、christng、

    您是否关注 了设计可认证产品 SimpleLink Academy 实验?  参照 ZigBee 照明和占位设备规范、您应确保 ZC 具有 定义为客户端群集的占位感应(0x0406)、同时在 ZED 上定义为服务器群集。  占位感应是可报告属性、因此如果绑定格式正确、则报告应能够自动发送。  您可以查看温度传感器/恒温器应用示例以了解此功能的模型。  否则、您应该能够使用 ZED 占位传感器中的 zcl_SendCommand。  ZC 可以注册回调以相应地接收和处理数据。  此外、请注意 SIMPLELINK-CC13X2-26X2-SDK v5.10中的以下 SampleApp 问题、这些问题将在 v5.20中得到解决:

    https://e2e.ti.com/f/1/t/1005968 
    https://e2e.ti.com/f/1/t/996443 
    https://e2e.ti.com/f/1/t/1015341 

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ryan、

    我已经学习了该实验、但将再次通读最后一部分。 温度传感器/恒温器示例帮助我解决了问题!

    我应该如何处理强制性属性"乘员 传感器类型"和"乘员 传感器类型位图"? 我应该忽略它们吗?

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果您不需要将这些属性用于应用程序、则不需要担心这些属性。

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ryan、

    我已经查看了温度传感器/恒温器示例、需要一些说明:

    在我的 ZED 上、我使用了其中一个按钮作为"存在"切换(用于测试)、并按照温度传感器示例中的操作更改了属性值;ZC 应该如何处理传入的 bdb 报告? 我注意到我的 SampleApp.c 中的 ZCL_CMD_REPORT 案例为空、并添加了一个与恒温器示例中的处理类似的函数。 报告的占用情况变化是否在 ZC 结束?

    2.如何知道绑定是否正确格式? 我已经按照实验室和 Zigbee 仪表组库规范进行了操作、其中开/关指示灯为 ZC、占位传感器为 ZED。 他们成功加入了同一个网络;我能不能认为它是正确的?

    提前感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    1.您可以再次参考恒温器示例,其中 zclSampleThermostat_ProcessInReportCmd 用于处理传入的属性报告。

    请参考 来自*_processZStackMsgs 的 zstackmsg_CmdIDs_BDB_BIND_BIND_notification_CB,例如 为 UI 执行 uiProcessBindNotification 的 zstackmsg_CmdIDs_BDB_BID_notification_CB。

    我建议您设置 监听器设备 来监控网络的无线数据包。

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我通过建议成功地将 ZED 与 ZC 正确绑定一次。 ZED 上的绑定信息指 ZC IEEE Addr、群集 ID:0x0406和端点0x08。 我尝试监控无线数据包、并确认按下按钮时 ZED 正在发送数据包。

    我试图通过建议重新创建绑定,但此后没有成功。 我不确定在绑定成功时我做了什么不同。

    是否有人建议这样做的原因?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果您使用的是 BDB 查找和绑定、zstack_bdbStartCommissioningReq.commissioning_mode |= BDB_commissioning_mode_finding_binding;、只要标识时间尚未过期、就应在调试时自动创建绑定。  如果您使用的是手动绑定(Zstackapi_ZdoBindReq)、请记住、绑定源和目标 IEEE 地址/端点必须与数据包目标的短地址一起使用(请参阅 Zigbee 基础 SLA)。  也许您可以考虑重置两个设备的因素以确定行为是否发生变化。  请提供监听器日志和/或调试信息、以获得进一步帮助。

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ryan、

    重置两个设备的因素和建议再次成功形成绑定,谢谢。 您是否碰巧知道 SampleApp 示例有两个 processKey 函数 zclSampleApp_processKey()和 SampleApp_processKey()的原因? 它们都是关键事件处理程序函数、我是否应该省略其中一个?

    static void zclSampleApp_processKey(uint8_t key, Button_EventMask buttonEvents)
    {
        if (buttonEvents & Button_EV_CLICKED)
        {
            if(key == CONFIG_BTN_LEFT)
            {
                zstack_bdbStartCommissioningReq_t zstack_bdbStartCommissioningReq;
    
                zstack_bdbStartCommissioningReq.commissioning_mode = zclSampleApp_BdbCommissioningModes;
                Zstackapi_bdbStartCommissioningReq(sampleApp_serviceTaskId,&zstack_bdbStartCommissioningReq);
            }
            if(key == CONFIG_BTN_RIGHT)
            {
    
            }
        }
    }
    
    static void sampleApp_processKey(Button_Handle _btn)
    {
        zstack_bdbStartCommissioningReq_t zstack_bdbStartCommissioningReq;
        //Button 1
        if(_btn == gLeftButtonHandle)
        {
            if(ZG_BUILD_COORDINATOR_TYPE && ZG_DEVICE_COORDINATOR_TYPE)
            {
    
                zstack_bdbStartCommissioningReq.commissioning_mode = BDB_COMMISSIONING_MODE_NWK_FORMATION | BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING;
                Zstackapi_bdbStartCommissioningReq(sampleApp_serviceTaskId,&zstack_bdbStartCommissioningReq);
            }
            else if (ZG_BUILD_JOINING_TYPE && ZG_DEVICE_JOINING_TYPE)
            {
                zstack_bdbStartCommissioningReq.commissioning_mode = BDB_COMMISSIONING_MODE_NWK_STEERING | BDB_COMMISSIONING_MODE_FINDING_BINDING;
                Zstackapi_bdbStartCommissioningReq(sampleApp_serviceTaskId,&zstack_bdbStartCommissioningReq);
            }
        }
        //Button 2
        if(_btn == gRightButtonHandle)
        {
            Zstackapi_bdbResetLocalActionReq(sampleApp_serviceTaskId);
        }
    }

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    zclSampleApp_processKey 由 UI 在回调上下文中使用、 除非 应用使用 SampleApp_key_EVT、否则 SampleApp_processKey 似乎未使用。  我将向软件开发团队提交此反馈、以供进一步澄清。

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我对处理占用报告有疑问。 现在、对于我的 ZC、我在器件上运行了 SampleApp、其中包含用于开/关照明的所有必需仪表组、包括可选的仪表组占用感应。 绑定是通过 ZED 和占位感应报告形成的、但我不知道如何在 ZC 端接收属性更改。

    我看到占位属性的类型为 map8、其中位0是唯一使用的位、因为其他位是保留的。 我查看了恒温器示例,但没有完全了解 zclSampleThermost_ProcessInReportCmd ()中 Build_UINT16的功能。

    • 如何从我的 ZC SampleApp_ProcessInReportCmd()中处理 Reported 属性?
    • 我能否将 SampleApp_乘员 感应_占据 属性作为我的 ZED 中的输入提供一个 bool?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果您可以确认 ZED 正在发送占位感应报告,并且 您已经创建并正在积极输入 SampleApp_ProcessInReportRspCmd 函数,则一些自定义的 zclSampleApp_乘员 感应传感器变量应设置为 pIntattrancySensorReport->MAPList[0].attrData[0],因为 MAP8只有8位长。  此属性类型由 Zigbee 群集库规范定义、因此我不建议更改它。

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    除了检查 AF_DATA_CONFIRM_IND 外、是否还有其他方法可以确认 ZED 正在发送占位感应报告?

    从 AF_DATA_CONFIRM_IND 中、我获得的发送状态为0、这是成功。 我尝试使用数据包监听器、但无法解释捕获、因为我的 Ubiqua 试用期已结束。

    下面是用于处理 ZC 上的报告的代码。 SampleApp_UpdateLedState()只是切换 LED。

    /*********************************************************************
     * @fn      sampleApp_ProcessInReportCmd
     *
     * @brief   Process the "Profile" Report Command
     *
     * @param   pInMsg - incoming message to process
     *
     * @return  none
     */
    static void sampleApp_ProcessInReportCmd( zclIncoming_t *pInMsg )
    {
      zclReportCmd_t *pInOccupancyReport;
    
      pInOccupancyReport = (zclReportCmd_t *)pInMsg->attrCmd;
    
      if ( pInOccupancyReport->attrList[0].attrID != ATTRID_OCCUPANCY_SENSING_OCCUPANCY )
      {
        return;
      }
      // store the current occupancy state sent over the air from occupancy sensor
      sampleApp_remoteOccupancy = pInOccupancyReport->attrList[0].attrData[0];
      sampleApp_UpdateLedState();
    }

    以下是发送更改属性报告的代码:

        if(prevPresence != presence)
        {
    
            sampleApp_OccupancySensing_Occupancy = presence ? ((sampleApp_OccupancySensing_Occupancy & ~7) | 1) : ((sampleApp_OccupancySensing_Occupancy & ~7) | 0);
            Display_printf(display, 0, 0, "sampleApp_OccupancySensing_Occupancy value: %d", sampleApp_OccupancySensing_Occupancy);
    
            Req.attrID = ATTRID_OCCUPANCY_SENSING_OCCUPANCY;
            Req.cluster = ZCL_CLUSTER_ID_MS_OCCUPANCY_SENSING;
            Req.endpoint = SAMPLEAPP_ENDPOINT;
    
            Zstackapi_bdbRepChangedAttrValueReq(sampleApp_serviceTaskId,&Req);
    
            prevPresence = presence;
            Display_printf(display, 0, 0, "%s", presence ? "Presence: TRUE\n" : "Presence: FALSE\n");
        }

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    此外、在恒温器示例中、群集属性之一为:

      {
        ZCL_CLUSTER_ID_MS_TEMPERATURE_MEASUREMENT,
        {  // Attribute record
          ATTRID_CLUSTER_REVISION,
          ZCL_DATATYPE_UINT16,
          ACCESS_CONTROL_READ | ACCESS_CLIENT,
          (void *)&zclSampleThermostat_temperaturems_clusterRevision
        }
      }

    在 ZC_SampleApp 中、除了 SampleApp_OutClusterList[]之外、没有提到占用传感集群。

    const zclAttrRec_t sampleApp_Attrs[] =
    {
    #ifdef ZCL_BASIC
    	{
    		ZCL_CLUSTER_ID_GENERAL_BASIC,
    			{
    				ATTRID_BASIC_ZCL_VERSION ,
    				ZCL_DATATYPE_UINT8,
    				ACCESS_CONTROL_READ,
    				(void *)&sampleApp_Basic_ZCLVersion
    			}
    	},
    	{
    		ZCL_CLUSTER_ID_GENERAL_BASIC,
    			{
    				ATTRID_BASIC_POWER_SOURCE ,
    				ZCL_DATATYPE_ENUM8,
    				ACCESS_CONTROL_READ,
    				(void *)&sampleApp_Basic_PowerSource
    			}
    	},
    	{
    		ZCL_CLUSTER_ID_GENERAL_BASIC,
    			{
    				ATTRID_CLUSTER_REVISION,
    				ZCL_DATATYPE_UINT16,
    				ACCESS_CONTROL_READ,
    				(void *)&sampleApp_Basic_ClusterRevision
    			}
    	},
    #endif
    #ifdef ZCL_IDENTIFY
    	{
    		ZCL_CLUSTER_ID_GENERAL_IDENTIFY,
    			{
    				ATTRID_IDENTIFY_IDENTIFY_TIME ,
    				ZCL_DATATYPE_UINT16,
    				ACCESS_CONTROL_WRITE | ACCESS_CONTROL_READ,
    				(void *)&sampleApp_Identify_IdentifyTime
    			}
    	},
    	{
    		ZCL_CLUSTER_ID_GENERAL_IDENTIFY,
    			{
    				ATTRID_CLUSTER_REVISION,
    				ZCL_DATATYPE_UINT16,
    				ACCESS_CONTROL_READ,
    				(void *)&sampleApp_Identify_ClusterRevision
    			}
    	},
    #endif
    #ifdef ZCL_GROUPS
    	{
    		ZCL_CLUSTER_ID_GENERAL_GROUPS,
    			{
    				ATTRID_GROUPS_NAME_SUPPORT ,
    				ZCL_DATATYPE_BITMAP8,
    				ACCESS_CONTROL_READ,
    				(void *)&sampleApp_Groups_NameSupport
    			}
    	},
    	{
    		ZCL_CLUSTER_ID_GENERAL_GROUPS,
    			{
    				ATTRID_CLUSTER_REVISION,
    				ZCL_DATATYPE_UINT16,
    				ACCESS_CONTROL_READ,
    				(void *)&sampleApp_Groups_ClusterRevision
    			}
    	},
    #endif
    #ifdef ZCL_SCENES
    	{
    		ZCL_CLUSTER_ID_GENERAL_SCENES,
    			{
    				ATTRID_SCENES_SCENE_COUNT ,
    				ZCL_DATATYPE_UINT8,
    				ACCESS_CONTROL_READ,
    				(void *)&sampleApp_Scenes_SceneCount
    			}
    	},
    	{
    		ZCL_CLUSTER_ID_GENERAL_SCENES,
    			{
    				ATTRID_SCENES_CURRENT_SCENE ,
    				ZCL_DATATYPE_UINT8,
    				ACCESS_CONTROL_READ,
    				(void *)&sampleApp_Scenes_CurrentScene
    			}
    	},
    	{
    		ZCL_CLUSTER_ID_GENERAL_SCENES,
    			{
    				ATTRID_SCENES_CURRENT_GROUP ,
    				ZCL_DATATYPE_UINT16,
    				ACCESS_CONTROL_READ,
    				(void *)&sampleApp_Scenes_CurrentGroup
    			}
    	},
    	{
    		ZCL_CLUSTER_ID_GENERAL_SCENES,
    			{
    				ATTRID_SCENES_SCENE_VALID ,
    				ZCL_DATATYPE_BOOLEAN,
    				ACCESS_CONTROL_READ,
    				(void *)&sampleApp_Scenes_SceneValid
    			}
    	},
    	{
    		ZCL_CLUSTER_ID_GENERAL_SCENES,
    			{
    				ATTRID_SCENES_NAME_SUPPORT ,
    				ZCL_DATATYPE_BITMAP8,
    				ACCESS_CONTROL_READ,
    				(void *)&sampleApp_Scenes_NameSupport
    			}
    	},
    	{
    		ZCL_CLUSTER_ID_GENERAL_SCENES,
    			{
    				ATTRID_CLUSTER_REVISION,
    				ZCL_DATATYPE_UINT16,
    				ACCESS_CONTROL_READ,
    				(void *)&sampleApp_Scenes_ClusterRevision
    			}
    	},
    #endif
    #ifdef ZCL_ON_OFF
    	{
    		ZCL_CLUSTER_ID_GENERAL_ON_OFF,
    			{
    				ATTRID_ON_OFF_ON_OFF ,
    				ZCL_DATATYPE_BOOLEAN,
    				ACCESS_REPORTABLE | ACCESS_CONTROL_READ,
    				(void *)&sampleApp_OnOff_OnOff
    			}
    	},
    	{
    		ZCL_CLUSTER_ID_GENERAL_ON_OFF,
    			{
    				ATTRID_CLUSTER_REVISION,
    				ZCL_DATATYPE_UINT16,
    				ACCESS_CONTROL_READ,
    				(void *)&sampleApp_OnOff_ClusterRevision
    			}
    	},
    #endif
    #ifdef ZCL_MS   <<<<----- 
    #endif

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我建议您设置数据包监听器2和 Wireshark、以确保发出占用群集报告。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Yikai、

    您是否有关于如何解读数据包监听数据的链接或参考?

    我已经附加了我的文件并从信息行中看到、当我激活占位传感器时、这两个文件将发送与 ZigBee 相关的数据。

    e2e.ti.com/.../zed_5F00_sampleapp.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    当设备从头开始加入 Zibgee 网络时,您需要执行监听器操作,以便监听器日志可以获取正确的网络密钥来解密数据。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    e2e.ti.com/.../zed_5F00_sampleapp_5F00_trimmed.zip

    感谢您的帮助、Yikai。

    我能够从设备中读取信息、并且可以看到占用集群报告确实已发出(帧编号216和253)、但似乎没有正确接收(帧编号222和257)?

    ZC 方面我缺少什么?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    报告将发送到端点8。 您的协调员是否支持端点8上的占用集群?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在哪里检查我的协调员是否支持端点8上的占用集群?

    在我的 zc_SampleApp 中、我遵循了客户侧带有可选职业感应集群的照明开关的 ZHA 器件规格。 根据规范、我已通过 SysConfig 添加了强制和可选属性、并编写了在之前的答复中共享的报告处理程序。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    该端点在 SysConfig Zigbee 应用端点模块的高级设置中定义。   ZCL_STATUS_UNSUP_General_command 仅在  zclCmdTable[inMsg.hdr.commandID].pfnParseInProfile 为 NULL 时发生、因此请确保已将占位感应列为客户端群集并 定义了 ZCL_REPORT_DESTINATION_DEVICE。

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    占用传感确实在 SysConfig 中列为客户端群集、我现在已定义 ZCL_REPORT_DESTINATION_DEVICE 并获得状态:成功、谢谢!

    e2e.ti.com/.../occupancyWithSuccess.zip

    但是、不会处理 ZCL_CMD_REPORT 案例。

    此外、您是否建议在除我在 SysConfig 中所做的操作之外的其他位置列出占位感应、如下所示?

    谢谢

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请尝试将 zcl_config.c 从 default/syscfg 直接复制到您的应用文件夹中、并禁用将 zcl_config.c 包含在 SysConfig 生成的构建文件中、然后将以下内容添加 到 SampleApp_Attrs:

    	{
    		ZCL_CLUSTER_ID_MS_OCCUPANCY_SENSING,
    			{
    				ATTRID_CLUSTER_REVISION,
    				ZCL_DATATYPE_UINT16,
    				ACCESS_CONTROL_READ | ACCESS_CLIENT,
    				(void *)&sampleApp_OccupancySensing_ClusterRevision
    			}
    	},

    如果这不会改善行为、请尝试进一步调试 zclProcessCmd -> zclParseInReportCmd/zcl_HandleExternal、以帮助进一步确定问题。

    此致、
    Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我建议您在 xxx_processAfIncomingMsgInd 中设置断点、并检查它在发送占位报告时是否触发。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ryan、

    这正是我所考虑的,它解决了我的问题。 如果通过 SysConfig 包含可选的群集、将这些群集包括到 SampleApp_Attrs 中是否有意义?

    感谢 Yikai 和 Ryan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、christng、

    我已将此标识为 SampleApp 示例项目的 Zigbee 应用程序生成器中的错误、其中不会为 推荐的可选或其他客户端群集生成群集属性(至少为 ATTRID_cluster_revision)。  这可能是由于 ZCL.js 中缺少客户端属性条目、因为我注意到它在服务器群集方面确实按预期工作。  我已经向软件开发团队提交了一个 TT、以便可以在未来的 SDK 版本中解决此问题。

    此致、
    Ryan