【问题标题】:Cumulocity smarREST response templatesCumulocity smarREST 响应模板
【发布时间】:2018-07-04 05:16:03
【问题描述】:

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

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

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

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

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

感谢您抽出宝贵时间阅读。

【问题讨论】:

    标签: mqtt cumulocity


    【解决方案1】:

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

    {
        "name": "testObject3", 
        "c8y_Global": {},
        "custom_values": {
            "val1": "abcde",
            "val2": "fghij"
        }
    }
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-14
      • 2013-08-18
      • 2015-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-23
      • 1970-01-01
      相关资源
      最近更新 更多