Mqtt 积雨性smarREST响应模板

Mqtt 积雨性smarREST响应模板,mqtt,cumulocity,Mqtt,Cumulocity,我正在尝试设置Cumulocity smartREST响应模板,以提供应用程序存储的设备对象的信息。我认为这是不可能的,但我想确认一下,因为文件很简短,不清楚 我已经成功地实施了测量后模板之前,但我正试图做库存得到现在。我已经在设备对象中设置了一些值,我可以从tenant.cumulocity.com/inventory/managedObjects/id/查看它们。这可能看起来像: "custom_values": { "val1": "abcde", "val2": "fgh

我正在尝试设置Cumulocity smartREST响应模板,以提供应用程序存储的设备对象的信息。我认为这是不可能的,但我想确认一下,因为文件很简短,不清楚

我已经成功地实施了测量后模板之前,但我正试图做库存得到现在。我已经在设备对象中设置了一些值,我可以从tenant.cumulocity.com/inventory/managedObjects/id/查看它们。这可能看起来像:

"custom_values": {
    "val1": "abcde",
    "val2": "fghij"
}
现在,我转到smartREST模板web界面编辑器,创建一个模板(如t1)并设置一条消息(如m001),然后将其设置为“inventory”和“get”并勾选“includesresponse”。我不确定这里是否需要自定义字段。然后我创建一个响应(例如r001),现在我必须用一个条件和一些其他模式填充基本模式。我假设其中一个字段中有$.custom_values.val1等,但我尝试的所有排列都会导致主题“s/e”中的“无法访问对象”错误

我的理想结果(来自上述示例)是使用“m001”发布到“/s/uc/t1”并接收“r001,abcde”(即custom_values.val1),发布“m002”并接收“r001,fghij”(即custom_values.val2)


感谢您花时间阅读。

您的方法是正确的,但是您的MQTT用户可能只是缺少了应用程序创建的对象的权限(我猜MQTT客户端是设备用户)。 这里最好的方法是给你从应用程序中创建的这个对象一个片段c8y_Global

{
    "name": "testObject3", 
    "c8y_Global": {},
    "custom_values": {
        "val1": "abcde",
        "val2": "fghij"
    }
}
此片段将使此对象可供所有注册用户使用。这是应用程序元数据的常见做法