tencent cloud

文档反馈

设备影子详情

最后更新时间:2021-08-20 16:27:33

    设备影子文档是服务器端为设备缓存的一份状态和配置数据。它以 JSON 文本形式存储,由以下部分组成:
    thing_shadow

    state

    reported
    设备自身上报的状态。设备可以向本文档部分写入数据,以报告其新状态。应用程序可以读取本文档部分,以获取设备的状态。

    desired
    设备预期的状态。应用程序通过 HTTP RESTful API 向本文档写入数据更新设备状态,设备 SDK 通过注册相关属性和回调,设备影子服务同步影子数据到设备。

    metadata

    设备影子的元数据信息,包括 state 部分每个属性项的最后更新时间等。

    version

    设备影子文档的版本号,每次设备影子文档更新之后,版本号都会递增。版本号由腾讯云后台维护,这可以确保设备的数据与设备影子的数据保持一致。

    timestamp

    设备影子文档的最后一次更新时间。设备影子文档示例如下:

    {
    "state": {
     "reported": {
      "attr_name1": "value1"
     },
     "desired": {
      "attr_name2": "value2"
     }
    },
    "metadata": {
     "reported": {
      "attr_name1": {
       "timestamp": 123456789
      }
     },
     "desired": {
      "attr_name2": {
       "timestamp": 123456789
      }
     }
    },
    "version": 1,
    "timestamp": 123456789
    }
    

    空白部分

    当设备影子文档为空时,此时获取到设备影子文档示例如下:

    {
    "state":{},
    "metadata":{},
    "version":0
    }
    

    当设备影子文档具有预期状态时,才会有 desired 部分,reported 部分可以为空,例如:

    {
    "state": {
     "desired": {
      "attr_name2": "value2"
     }
    },
    "metadata": {
     "desired": {
      "attr_name2": {
       "timestamp": 123456789
      }
     }
    },
    "version": 1,
    "timestamp": 123456789
    }
    

    当设备更新状态成功之后,需要上报最新的状态,并将 desired 部分从文档中删除。要想将 desired 部分从文档中删除,需要将 desired 部分置为 null,例如:

    {
    "state": {
    "reported": {
     "attr_name1": "new_value1",
     "attr_name2": "new_value2"
    },
    "desired": null
    },
    "version": 1
    }
    

    数组

    设备影子文档支持数组,不支持针对数组某个元素进行更新,只能更新整个数组,并且数组元素不能有空值。

    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持