客户应用服务器可以通过调用串口云IoT平台提供的远程调用接口,很便捷的实现远程控制设备。串口云IoT平台提供异步调用和同步调用的两种方式,两种方式的调用会有所不同

1、异步调用

异步调用是指第三方服务通过异步调用接口,给设备下发命令,接口响应的结果并不是设备返回的结果,而设备上报的结果需要通过另外的方式(如数据推送、消息推送、数据调用)获得设备被调用之后的结果。 远程调用 - 图1具体流程如下:
(1)串口云平台收到来自用户服务器的异步调用请求,响应客户服务器后下发一条请求消息给智能终端。消息体为客户传入的ujson格式的数据,Topic为串口云平台定义的Topic,其中含有唯一的消息ID(msgid)。
(2)智能终端收到串口云下发消息后,把msgid保存起来,如果有需要的通过回调回复客户服务器则使用次msgid回复;同时把数据通过串口下发给客户设备
后续全部使用新版本api,功能更加完善

接口post

/iot/v1/application/device/rpc/async

请求参数

param参数

参数名 必填 示例值 说明
apikey 2313123
product_uuid krPVmHSxi35cjzp1
device_uuid O59wNZiK

Body 参数 (application/json)

参数名 说明
method 在创建物模型时,平台生成
cmd 根据不同协议而定
groupid 创建物模型的功能组id
para 数据点

示例

  1. {
  2. "method": "",
  3. "datapoint": {
  4. "cmd": "irure sed",
  5. "groupid": "12",
  6. "para": {
  7. "key1": 9,
  8. "key2": 70,
  9. "keyn": 80
  10. }
  11. }
  12. }

响应参数

  1. {
  2. "code": 200,
  3. "msg": "OK",
  4. "type": 34,
  5. "data": {
  6. "msgid": "2a16LUTGsErS",
  7. "topic": "sub-raw-private"
  8. },
  9. "ts": 1606101246445
  10. }

2、同步调用

同步调用是指第三方服务通过异步调用接口,给设备下发命令,设备端上报的处理结果直接响应给第三方。
具体流程如下:
(1)串口云屏台收到来自客户服务器的同步调用,下发一条同步调用请求消息给智能终端。消息体为客户传入的ujson数据,Topic为串口云平台定义的Topic,其中含有唯一的msgid。
(2)智能终端收到串口云平台下发消息后,把msgid保存起来,并且把数据通过串口下发给客户设备。
(3)客户设备5秒内执行完命令后,要回复智能终端,智能终端把msgid带上被上报串口云平台
(4)平台根据上报的msgid匹配调用消息,并响应给客户服务器。
如果调用时智能终端不在线,串口云平台会给客户服务器返回设备不在线的错误;如果设备端没有在超时时间内(5秒内)回同步调用响应消息,串口云平台会给客户服务器返回超时错误。

接口post

/iot/v1/application/device/rpc/synch

请求参数

param参数

参数名 必填 示例值 说明
apikey 2313123
product_uuid krPVmHSxi35cjzp1
device_uuid O59wNZiK

Body 参数 (application/json)

ujson1.0.1数据结构

参数名 说明
method 根据模型而定
cmd 根据不同协议而定
groupid 创建物模型的功能组id
para 数据点

示例

  1. {
  2. "method": "",
  3. "datapoint": {
  4. "cmd": "irure sed",
  5. "groupid": "12",
  6. "para": {
  7. "key1": 9,
  8. "key2": 70,
  9. "keyn": 80
  10. }
  11. }
  12. }

响应参数

  1. {
  2. "code": 200,
  3. "msg": "OK",
  4. "type": 16,
  5. "data": {
  6. "cmd": "82",
  7. "groupid": "a017b6f46745",
  8. "para": {
  9. "int32": 4,
  10. "int16": 3
  11. }
  12. },
  13. "ts": 1606965000482
  14. }