我正在尝试设置Cumulocity smartREST响应模板,以便从应用程序存储的设备对象中提供信息。我认为这是不可能的,但我想确认一下,因为文件很简短而且不清楚。
我之前已成功实施了MEASUREMENT POST模板,但我现在正尝试进行INVENTORY GET。我在设备对象中设置了一些值,我可以从tenant.cumulocity.com/inventory/managedObjects/id/看到它们。这看起来像是:
"custom_values": {
"val1": "abcde",
"val2": "fghij"
}
现在我转到smartREST模板Web界面编辑器并创建一个模板(例如t1)并设置一条消息(例如m001)并将其设置为' inventory'和'得到'并打勾'包括回复'。我不确定我是否需要自定义字段。然后我创建一个响应(例如r001),我现在必须用条件和一些其他模式填充基本模式。我假设在其中一个字段中我有$ .custom_values.val1等,但我尝试的所有排列导致无法访问对象'主题错误' s / e'。
我的理想结果(来自上面的例子)将发布到' / s / uc / t1'用' m001'并收到' r001,abcde' (即custom_values.val1)并发布' m002'并收到' r001,fghij' (即custom_values.val2)。
感谢您花时间阅读。
答案 0 :(得分:1)
您的方法是正确的,但您的MQTT用户可能只是缺少对象的权限,因为它是由应用程序创建的(我猜mqtt客户端是设备用户)。 这里最好的方法是从app应用片段c8y_Global
创建这个对象{
"name": "testObject3",
"c8y_Global": {},
"custom_values": {
"val1": "abcde",
"val2": "fghij"
}
}
此片段将使此对象可供所有注册用户使用。这是应用元数据的常见做法。