Registre los dispositivos en IoT Platform antes de que se conecten.
Métodos de registro
IoT Platform admite dos métodos de registro:
-
Un dispositivo, un secreto: Registre el dispositivo en IoT Platform para obtener su certificado de dispositivo (ProductKey, DeviceName y DeviceSecret). Grabe el certificado en el firmware del dispositivo. Una vez conectado, el dispositivo podrá enviar datos a IoT Platform. One Device, One Secret.
Protocolos de registro compatibles:
Dispositivo
Protocolos compatibles
Desarrollo de registro en el dispositivo
Referencias
Dispositivo conectado directamente
MQTT
HTTPS
Subdispositivo de gateway
MQTT
Registration and authentication for gateways and sub-devices
-
Un producto, un secreto: Los dispositivos del mismo producto comparten un certificado de producto (ProductKey y ProductSecret). Habilite el registro dinámico para el producto.
Métodos de registro dinámico:
Preregistro: Registre primero el dispositivo en IoT Platform. El dispositivo obtiene un DeviceSecret mediante el registro dinámico.
-
Sin registro: Omita el registro del dispositivo en IoT Platform. El dispositivo obtiene un ClientID y un DeviceToken mediante el registro dinámico.
NotaHTTPS no es compatible con el método sin registro.
One Product, One Secret describe el proceso completo. Los subdispositivos de gateway solo admiten el método de preregistro. Gateways and sub-devices.
Protocolos de registro compatibles:
Dispositivo
Protocolos compatibles
Desarrollo de registro en el dispositivo
Descripción del formato de datos
Dispositivo conectado directamente
MQTT
HTTPS
Subdispositivo de gateway
MQTT
Registro dinámico MQTT para subdispositivos
Topic de solicitud:
/sys/${productKey}/${deviceName}/thing/sub/registerTopic de respuesta:
/sys/${productKey}/${deviceName}/thing/sub/register_reply
Formato de datos de la solicitud:
{
"id": "123",
"version": "1.0",
"sys":{
"ack":0
},
"params": [
{
"deviceName": "deviceName1234",
"productKey": "a1234******"
}
],
"method": "thing.sub.register"
}
Formato de datos de la respuesta:
{
"id": "123",
"code": 200,
"data": [
{
"iotId": "12344",
"productKey": "a1234******",
"deviceName": "deviceName1234",
"deviceSecret": "xxxxxx"
}
]
}
Parámetros:
|
Parámetro |
Tipo |
Descripción |
|
id |
String |
ID del mensaje. Debe ser una cadena numérica única por dispositivo. Valores válidos: de 0 a 4294967295. |
|
version |
String |
Versión del protocolo. El único valor válido es 1.0. |
|
sys |
Object |
Parámetros de funciones extendidas. Nota
Si utiliza un SDK del dispositivo sin configurar las funciones extendidas, este parámetro se omite y se aplican los valores predeterminados. |
|
ack |
Integer |
Indica si la nube devuelve una respuesta. Campo ubicado dentro de sys.
Importante
Thing Specification Language model usage examples. Si no se configura, este parámetro se omite y se devuelve una respuesta de forma predeterminada. |
|
params |
List |
Parámetros para el registro dinámico de un subdispositivo. |
|
deviceName |
String |
Nombre del subdispositivo. |
|
productKey |
String |
ProductKey del subdispositivo. |
|
iotId |
String |
ID único del dispositivo. |
|
deviceSecret |
String |
Secreto del dispositivo. |
|
method |
String |
Método de la solicitud. Establézcalo en |
|
code |
Integer |
Código de resultado. |
Códigos de error:
|
Código de error |
Mensaje |
Descripción |
|
460 |
request parameter error |
Los parámetros de la solicitud no son válidos. |
|
6402 |
topo relation cannot add by self |
Un dispositivo no puede agregarse como su propio subdispositivo. |
|
401 |
request auth error |
La verificación de la firma falló. |
Registro dinámico HTTPS para dispositivos conectados directamente
Plantilla de URL:
https://iot-auth.${YourRegionId}.aliyuncs.com/auth/register/device-
Método HTTP: POST
Formato de datos de la solicitud:
POST /auth/register/device HTTP/1.1 Host: iot-auth.cn-shanghai.aliyuncs.com Content-Type: application/x-www-form-urlencoded Content-Length: 123 productKey=a1234******&deviceName=deviceName1234&random=567345&sign=adfv123hdfdh&signMethod=HmacMD5Formato de la respuesta:
{ "code": 200, "data": { "productKey": "a1234******", "deviceName": "deviceName1234", "deviceSecret": "adsfw******" }, "message": "success" }Parámetros:
Parámetro
Tipo
Descripción
Method
String
Método de la solicitud. Solo se admite POST.
Host
String
Endpoint de registro dinámico HTTPS:
iot-auth.${YourRegionId}.aliyuncs.com.${YourRegionId}: ID de región de su instancia de IoT Platform.-
Regiones compatibles: todas las regiones excepto China (Beijing) y China (Shenzhen).
-
ID de región: Supported regions.
Content-Type
String
Formato de codificación para los datos enviados del dispositivo a la nube.
productKey
String
Identificador del producto.
deviceName
String
Nombre del dispositivo.
random
String
Número aleatorio.
sign
String
Firma.
Método de firma:
-
Ordene todos los parámetros, excepto sign y signMethod, en orden alfabético; luego concatene los nombres y valores sin delimitadores.
-
Firme la cadena concatenada mediante el signMethod y el ProductSecret del producto.
Ejemplo de firma:
hmac_sha1(productSecret, deviceNamedeviceName1234productKeya1234******random123)signMethod
String
Algoritmo de firma. Valores válidos: hmacmd5, hmacsha1, hmacsha256.
code
Integer
Código de resultado.
deviceSecret
String
Secreto del dispositivo.
-