子设备上线
子设备上线
子设备可以逐个上下线,也可以批量上下线。子设备上线之前,需在物联网平台为子设备注册身份,建立子设备与网关的拓扑关系。子设备上线时,物联网平台会根据拓扑关系进行子设备身份校验,以确定子设备是否具备使用网关通道的能力。
子设备上下线、批量上下线消息,只支持QoS=0,不支持QoS=1。
一个网关下,同时在线的子设备数量不能超过1000。在线子设备数量达到1000个后,新的子设备上线请求将被拒绝。
发送子设备批量上下线请求时,单个批次上下线的子设备数量不超过50个。
设备批量上下线请求结果为全部成功或全部失败,失败时的data响应参数中会包含具体的设备信息。
子设备上线
数据上行:
请求Topic:
/ext/session/${productKey}/${deviceName}/combine/login响应Topic:
/ext/session/${productKey}/${deviceName}/combine/login_reply
因为子设备通过网关通道与物联网平台通信,以上Topic为网关设备的Topic。Topic中变量${productKey}和${deviceName}需替换为网关设备的对应信息。
请求数据格式:
{
  "id": "123",
  "params": {
    "productKey": "al12345****",
    "deviceName": "device1234",
    "clientId": "al12345****&device1234",
    "timestamp": "1581417203000",
    "signMethod": "hmacmd5",
    "sign": "9B9C732412A4F84B981E1AB97CAB****",
    "cleanSession": "true"
  }
}消息体中,参数productKey和deviceName的值是子设备的对应信息。
参数说明:
参数  | 类型  | 说明  | 
id  | String  | 消息ID号。String类型的数字,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。  | 
params  | Object  | 请求入参,包含的具体参数见下表params。  | 
params参数说明:
参数  | 类型  | 说明  | 
deviceName  | String  | 子设备的设备名称。  | 
productKey  | String  | 子设备所属的产品的ProductKey。  | 
sign  | String  | 子设备签名。签名方法与直连设备签名方法相同。 签名方法: 
 计算结果作为sign的取值。 sign值计算方法示例如下:  | 
signMethod  | String  | 签名方法,支持hmacSha1、hmacSha256、hmacMd5和Sha256。  | 
timestamp  | String  | 毫秒级时间戳。  | 
clientId  | String  | 设备端标识。可以为 。  | 
cleanSession  | String  | 
  | 
Alink响应数据格式:
{
  "id":"123",
  "code":200,
  "message":"success"
  "data":{
      "deviceName": "device1234",
      "productKey": "al12345****"
    }
}请求参数说明:
参数  | 类型  | 说明  | 
id  | String  | 消息ID,String类型的数字,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。  | 
code  | Integer  | 返回结果,200代表成功。  | 
message  | String  | 返回结果信息。  | 
data  | Object  | 请求成功或失败时返回的子设备信息,具体参数请参见下表data。  | 
参数  | 类型  | 说明  | 
deviceName  | String  | 子设备的设备名称。  | 
productKey  | String  | 子设备所属产品的密钥。  | 
错误信息:
错误码  | 错误信息  | 描述  | 
460  | request parameter error  | 请求参数错误。  | 
429  | rate limit, too many subDeviceOnline msg in one minute  | 单个设备认证过于频繁被限流。  | 
428  | too many subdevices under gateway  | 网关下同时在线子设备过多。  | 
6401  | topo relation not exist  | 网关和子设备没有拓扑关系。  | 
6100  | device not found  | 子设备不存在。  | 
521  | device deleted  | 子设备已被删除。  | 
522  | device forbidden  | 子设备已被禁用。  | 
6287  | invalid sign  | 子设备密码或者签名错误。  | 
子设备批量上线
单次最多可请求50个子设备上线。
数据上行:
请求Topic:
/ext/session/${productKey}/${deviceName}/combine/batch_login响应Topic:
/ext/session/${productKey}/${deviceName}/combine/batch_login_reply
因为子设备通过网关通道与物联网平台通信,以上Topic为网关设备的Topic。Topic中变量${productKey}和${deviceName}需替换为网关设备的对应信息。
请求数据格式:
{
  "id": "123",
  "params":{ 
    "deviceList":[{
      "productKey": "al12345****", 
      "deviceName": "device1234",
      "clientId": "al12345****&device1234",
      "timestamp": "1581417203000", 
      "cleanSession": "false",
      "signMethod": "hmacmd5",
      "sign": "9B9C732412A4F84B981E1AB97CAB****",
    }, {
      "productKey": "al12345****", 
      "deviceName": "device4321",
      "clientId": "al12345****&device4321",
      "timestamp": "1581417203000", 
      "cleanSession": "true",
      "signMethod": "hmacmd5",
      "sign": "9B9C732412A4F84B981E1AB97CAB****",
    }]
  }
}消息体中,参数productKey和deviceName的值是子设备的对应信息。
参数  | 类型  | 说明  | 
id  | String  | 消息ID号。String类型的数字,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。  | 
params  | Object  | 请求入参,其中deviceList参数包含要上线的子设备认证参数列表,包含的具体参数见下表deviceList。  | 
参数  | 类型  | 说明  | 
deviceName  | String  | 子设备的设备名称。  | 
productKey  | String  | 子设备所属的产品的ProductKey。  | 
sign  | String  | 子设备签名。签名方法与直连设备签名方法相同。 签名方法: 
 计算结果作为sign的取值。 sign值计算方法示例如下: 
  | 
signMethod  | String  | 签名方法,支持hmacSha1、hmacSha256、hmacMd5和Sha256。  | 
timestamp  | String  | 毫秒级时间戳。  | 
clientId  | String  | 设备端标识。可以为 。  | 
cleanSession  | String  | 
  | 
响应数据格式:
{
  "id":"123",
  "code":"200",
  "message":"success",
  "data":[{
    "productKey": "al12345****",
    "deviceName": "device1234"
  },{
    "deviceName": "device4321",
    "productKey": "al12345****"
  }]
}参数说明:
参数  | 类型  | 说明  | 
id  | String  | 消息ID,String类型的数字,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。  | 
code  | Integer  | 返回结果,200代表成功。  | 
message  | String  | 返回结果信息。  | 
data  | Object  | 请求成功或失败时返回的子设备信息,具体参数请参见下表data。  | 
data参数说明:
参数  | 类型  | 说明  | 
deviceName  | String  | 子设备的设备名称。  | 
productKey  | String  | 子设备所属产品的密钥。  | 
错误信息:
错误码  | 错误信息  | 描述  | 
460  | request parameter error  | 请求参数错误。  | 
429  | rate limit, too many subDeviceOnline msg in one minute  | 单个设备认证过于频繁被限流。  | 
428  | too many subdevices under gateway  | 网关下同时在线子设备过多。  | 
6401  | topo relation not exist  | 网关和子设备没有拓扑关系。  | 
6100  | device not found  | 子设备不存在。  | 
521  | device deleted  | 子设备已被删除。  | 
522  | device forbidden  | 子设备已被禁用。  | 
6287  | invalid sign  | 子设备密码或者签名错误。  |