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.

[参考译文] LP-CC2652RB:报告蓄电池电压时出现问题

Guru**** 2543190 points
Other Parts Discussed in Thread: CCSTUDIO, SYSCONFIG, Z-STACK

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

https://e2e.ti.com/support/wireless-connectivity/zigbee-thread-group/zigbee-and-thread/f/zigbee-thread-forum/1081185/lp-cc2652rb-problems-reporting-battery-voltage

部件号:LP-CC2652RB
在“线程:CCStudiosysconfigZ-stack”中讨论的其它部分

你好!

我正在追问一个问题,该问题的电源配置电池电压属性不会与 z2m 报告绑定。 我在 zcl.h 上的 ZCL_POWER_PROFILE 定义中有通知,电池电压丢失了 ACCESS_REPORTable 标志。 我认为这又是 ZigBee 的标准吗? 是否有办法使电压可报告?

{
		ZCL_CLUSTER_ID_GENERAL_POWER_CFG,
			{
				ATTRID_POWER_CONFIGURATION_BATTERY_VOLTAGE ,
				ZCL_DATATYPE_UINT8,
				ACCESS_CONTROL_READ,
				(void *)&soilMoistureSensor_PowerConfiguration_BatteryVoltage
			}
	},
	{
		ZCL_CLUSTER_ID_GENERAL_POWER_CFG,
			{
				ATTRID_POWER_CONFIGURATION_BATTERY_PERCENTAGE_REMAINING ,
				ZCL_DATATYPE_UINT8,
				ACCESS_REPORTABLE | ACCESS_CONTROL_READ,
				(void *)&soilMoistureSensor_PowerConfiguration_BatteryPercentageRemaining
			}
	},

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

    我假设您可以使用电池百分比属性(可报告),而不是电池电压。

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

    我真的不想四处走动,只想按照电池的预期方式使用电池电压属性,如果我不能使用电池电压属性,为什么它会出现在第一个位置?

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

    如果您坚持使用电池电压报告,可以尝试将 ACCESS_REPORTable 添加到属性中。 它不符合 Zigbee 规范。

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

    “如果您坚持使用电池电压报告”,但要充分尊重,这是一个非常奇怪的选择。  

    我不能添加 ACCESS_REPORTable,因为每次我按 Build,它都会被辉煌的 CCStudio 重写。

    我只想知道如何以任何方式将设备的电池电压转换为 z2m。 我在这个论坛上找不到任何文档,任何手册中都找不到,什么都找不到。 然而,有很多设备都能做到这一点。。。是的,我坚持您是否愿意。

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

    您可以创建自己的 xxx_data.c,如手动实现 ZCL 群集/属性的一般应用程序示例,而无需使用 sysconf 将电池电压设置为可报告属性。

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

    嗯,我们之前讨论过这个问题,建议用户使用 SampleApp。我现在该如何改变我的项目?

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

    如果您完全遵循 ZCL 规范,则最好使用样例应用程序。 如果您要自定义群集/属性,建议使用常规应用程序。 我认为您可以将生成的群集和属性列表复制到常规应用程序数据。c 并将其用于应用程序开发。

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

    谢谢,我会尝试一下。为什么 zcl 规格的电池电压不可报告是有道理的? 蓄电池电压属性的预期用途是什么? 只要我可以 通过协调员访问属性,我就可以不报告它...

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

    蓄电池电压不是很有用,因为不同的传感器可能使用不同的蓄电池类型。 像智能手机一样使用电池百分比通常更有意义。 对于 ZCL 规范只读属性,您可以发送 ZCL 属性读取请求,以便在协调员想要读取时读取。

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

    因此,我已经检查了 z2m 的代码,并绕着它所抛出的错误调试了我的路,实际上它无法在 genPowerCfg 群集中配置电池电压报告:

    const p = payload('batteryVoltage', repInterval.HOUR, repInterval.MAX, 0, overrides);
    await endpoint.configureReporting('genPowerCfg', p);

    所有这一切都发生在它呼叫等待终结点之前。请阅读('genPowerCfg',['batteryVoltage']);当我从 z2m 前端的 dev-console 调用它时,这是我可以确认的工作状态,它失败是因为状态回复是135而不是0 (invalid 属性而不是成功)。 我只能假设这是因为电池电压没有报告属性?

    现在,这就是我拥有的每台电池供电的 ZigBee 器件的工作原理(我检查了,每台都报告电池电压),这是否意味着大多数电池供电器件不严格遵守 zcl 规范,或者 我只是用错了它?  

    ,你是否有更多关于这些事情如何运作的知识?  

    假设报告属性 是问题所在,实施该属性的正确方法是什么? 我在另一条线程中遵循了您的建议,并使用示例应用程序启动了项目。 您表示不建议编辑 sysconfig 文件,这将需要遵循上述 YIKAIS 建议,即只添加包含 Z-Stack 配置的..._data.c 文件。 我应该从 GenericApp 样例开始吗?  

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

    如果需要自定义群集/属性, 建议的解决 方案是将开发迁移到不使用应用程序生成器的项目。  您仍然可以使用 SampleApp 的 sysconfig 模块输出的 zcl_config.c/h 文件来构建您的*_data.c 文件。  请注意,GenericApp 不包括通用用户界面(CUI),以防您有兴趣保留该功能。

    此致,
    瑞安

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

    谢谢! 您是否确认报告电池电压问题确实是由于缺少可报告属性所致?

    我的意思是,这是一个很大的努力,因为有怀疑...

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

    如果该属性没有 ACCESS_REPORTable 位掩码,则它将在处理“报告 配置”命令后返回 INVALID_ATTRIBUTE。

    通过将  <SDK directory>\sources\ti\ZStack \ZCL.js 中 ATTRID_POWER_configuration_battery_voltage 的“可报告”字段更改为“真”并重新导入 SampleApp 项目,您可能能够影响应用程序构建器的行为。  这是未经测试的。

    此致,
    瑞安

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

    啊,我花了4天时间才得到你在第一句中提供的答案。 非常感谢!!

    换个可报告字段并重新导入我自己已自定义的项目是否也会这样做? 我没有研究 CCS 中“导入”的实际作用(如果有的话),在 VSCode 中不需要导入,您需要一些配置文件,就只有这些文件。  

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

    老实说,我对 CCS 导入详细信息不太确定。  我只是通知您,可以从 SDK 中访问可报告的配置。  我不知道它是否能解决您的问题。

    此致,
    瑞安

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

    我现在非常确信,将  ACCESS_REPORTable 位掩码插入到电池电压中可以解决我的问题。 此时,我只是在寻找一种最佳的方法,将此位掩码放到 batteryVoltage 属性上,而不是从项目开始。 (笑)

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

    我非常高兴地报告,按照建议更改 ZCL.js 中的行,并简单地重新构建问题,添加了 ACCESS_REPORTable 位掩码,并允许 Z2M 无 例外地配置设备。 非常感谢!