设备影子

SDK提供的设备影子主要保存接入设备的在线状态与配置信息,配置信息包括云端的期望配置与接入设备的实际配置。

接入设备认证

边缘节点上线时会通过代理应用获取H3C物联网平台添加的接入设备信息,之后不管节点在线还是离线,都能与SDK应用进行交互,处理SDK应用发送的接入设备上下线请求。

接入设备上线

接入设备上线,需要通过SDK应用向边缘节点的代理应用发送topic请求消息,代理应用接收到请求消息后,会响应topic消息以告知SDK应用接入设备的上线请求结果。

接入设备上线请求

主题:{srcApp}/request/oasis/online
消息:

{
    "deviceInfo":[
        {
            "productKey":"xxxxxxxxxx",
            "deviceID":"xxxxxxxxxx"
        }
    ],
    "token":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "timestamp":"2020-01-01T00:00:00Z"
}

接入设备上线响应

主题:oasis/response/{destApp}/online
消息:

{
    "deviceInfo":[
        {
            "productKey":"xxxxxxxxxx",
            "deviceID":"xxxxxxxxxx",
            "state":"online"
        }
    ],
    "token":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "timestamp":"2020-01-01T00:00:00Z"
}

接入设备下线

接入设备下线,需要通过SDK应用向边缘节点的代理应用发送topic请求消息,代理应用接收到请求消息后,会响应topic消息以告知SDK应用接入设备的下线请求结果。

接入设备下线请求

主题:{srcApp}/request/oasis/offline
消息:

{
    "deviceInfo":[
        {
            "productKey":"xxxxxxxxxx",
            "deviceID":"xxxxxxxxxx"
        }
    ],
    "token":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "timestamp":"2020-01-01T00:00:00Z"
}

接入设备下线响应

主题:oasis/response/{destApp}/offline
消息:

{
    "deviceInfo":[
        {
            "productKey":"xxxxxxxxxx",
            "deviceID":"xxxxxxxxxx",
            "state":"offline"
        }
    ],
    "token":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "timestamp":"2020-01-01T00:00:00Z"
}

接入设备在线保活

接入设备在线时,需要通过SDK应用向边缘节点的代理应用发送topic保活消息,代理应用接收到请求消息后,会响应topic消息以告知SDK应用接入设备的保活请求结果。

接入设备在线保活请求

主题:{srcApp}/request/oasis/keepalive
消息:

{
    "deviceInfo":[
        {
            "productKey":"xxxxxxxxxx",
            "deviceID":"xxxxxxxxxx"
        }
    ],
    "token":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "timestamp":"2020-01-01T00:00:00Z"
}

接入设备在线保活响应

主题:oasis/response/{destApp}/keepalive
消息:

{
    "deviceInfo":[
        {
            "productKey":"xxxxxxxxxx",
            "deviceID":"xxxxxxxxxx",
            "state":"online"
        }
    ],
    "token":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "timestamp":"2020-01-01T00:00:00Z"
}

参数说明

参数名称 类型 说明
deviceInfo Array 接入设备列表信息
productKey String 接入设备产品类型标识
deviceID String 接入设备标识
state String 设备状态更新响应
在线:online
离线:offline
禁用:disabled
未发现:not-found
token String 消息ID,符合UUID定义规范
timestamp String 消息时间戳,符合ISO8601时间格式

接入设备配置

更新接入设备的期望配置

接入设备上线成功后,边缘节点的代理应用会主动发送topic消息,将节点存储的云端期望配置及时更新到接入设备上。

更新接入设备的期望配置通知消息

主题:oasis/notify/{destApp}/updateShadow
消息:

{
    "productKey":"xxxxxxxxxx",
    "deviceID":"xxxxxxxxxx",
    "state":{
        "desired":{
            "attribute1":"xxxxxxxxxx"
        }
    },
    "metadata":{
        "desired":{
            "attribute1":{
                "timestamp":1579181557363
            }
        }
    },
    "token":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "timestamp":"2020-01-01T00:00:00Z"
}

当边缘节点上线时,代理应用会获取云端的接入设备期望配置信息并保存;当云端通过在线的边缘节点更新接入设备的配置信息时,代理应用也会更新存储的接入设备配置信息。当代理应用发现存储的在线接入设备的期望配置信息发生变化时,也会发送上述Topic消息,以更新接入设备的期望配置信息。

接入设备的实际配置上报请求

当SDK应用收到更新期望配置的通知消息或者接入设备的实际配置信息发生变化时,SDK应用需要发送topic消息告知代理应用更新接入设备的实际配置信息,代理应用接收到更新接入设备的实际配置消息后,会响应topic消息以告知SDK应用存储的设备影子更新结果。

主题:{srcApp}/request/oasis/updateShadow
消息:

{
    "productKey":"xxxxxxxxxx",
    "deviceID":"xxxxxxxxxx",
    "state":{
        "reported":{
            "attribute1":"xxxxxxxxxx"
        }
    },
    "metadata":{
        "reported":{
            "attribute1":{
                "timestamp":1579181557363
            }
        }
    },
    "token":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "timestamp":"2020-01-01T00:00:00Z"
}

接入设备的实际配置上报响应

当接入设备的实际配置信息发生变化时,SDK应用需要发送topic消息告知代理应用更新接入设备的实际配置信息,代理应用接收到更新接入设备的实际配置消息后,会响应topic消息以告知SDK应用存储的设备影子更新结果。

主题:oasis/response/{destApp}/updateShadow
消息:

{
    "productKey":"xxxxxxxxxx",
    "deviceID":"xxxxxxxxxx",
    "statusCode":200,
    "statusStr":"OK",
    "timestamp":"2020-01-01T00:00:00Z",
    "token":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "version":1
}

参数说明

参数名称 类型 说明
productKey String 接入设备产品类型标识
deviceID String 接入设备标识
statusCode String 状态码
statusStr String 状态字符串
timestamp String 时间戳
· 标识消息的时间戳符合ISO8601时间格式
· 元数据时间戳精确到毫秒
token String 消息ID,符合UUID定义规范
version Number 设备影子版本号
state Object 设备属性值集合
reported Object 接入设备属性上报值集合
desired Object 接入设备属性期望值集合
metadata Object 接入设备属性元数据集合
attribute1 String 接入设备属性名称

API接口

函数名 说明
SHADOW_Init 设备影子存储内容初始化
SHADOW_Connect_Req 接入设备连接状态修改请求
SHADOW_Connect_Rsp 接入设备连接状态修改响应
SHADOW_Set_Req 接入设备更新影子实际配置请求
SHADOW_Set_Rsp 接入设备更新影子实际配置响应
SHADOW_Update 节点代理应用更新接入设备期望配置消息通知
SHADOW_Destroy 设备影子存储内容释放
© H3C IoT all right reserved,powered by Gitbook更新时间: 2023-11-08 11:19:35

results matching ""

    No results matching ""