Cumulocity smarREST 响应模板

Cumulocity smarREST response templates

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

我之前已经成功实施了 MEASUREMENT POST 模板,但我现在正在尝试执行 INVENTORY GET。我在设备对象中设置了一些值,我可以从 tenant.cumulocity.com/inventory/managedObjects/id/ 中看到它们。这可能看起来像:

"custom_values": {
    "val1": "abcde",
    "val2": "fghij"
}

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

出现 'no access to object' 错误

我的理想结果(来自上面的例子)是用 '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"
    }
}

此片段将使所有注册用户都可以使用此对象。这是应用元数据的常见做法。