Establece varias relaciones topológicas al mismo tiempo.
Notas de uso
Puede vincular hasta 10 subdispositivos a una puerta de enlace en una sola llamada.
Quien invoque la operación de la API debe ser el propietario de la puerta de enlace.
Si especifica un subdispositivo que ya está vinculado a una puerta de enlace, esta se reemplaza por la puerta de enlace especificada.
Si uno de los subdispositivos especificados no logra establecer una relación topológica con la puerta de enlace, el sistema revierte la operación y ninguno de los subdispositivos establece dicha relación.
Después de invocar esta operación para establecer relaciones topológicas entre los subdispositivos y la puerta de enlace, IoT Platform utiliza el tema
/sys/${productKey}/${deviceName}/thing/topo/changepara enviar información a la puerta de enlace, incluido el resultado de la operación. Para obtener más información, consulte Notificar cambios en las relaciones topológicas a las puertas de enlace.
Límites de QPS
Puede invocar esta operación de la API hasta 10 veces por segundo por cuenta de Alibaba Cloud.
Los usuarios RAM de una cuenta de Alibaba Cloud comparten la cuota de dicha cuenta.
Depuración
Parámetros de solicitud
| Parámetro | Tipo | Obligatorio | Ejemplo | Descripción |
| Action | String | Sí | BatchAddThingTopo | La operación que desea ejecutar. Establezca el valor como BatchAddThingTopo. |
| GwDeviceName | String | Sí | gateway | El nombre de la puerta de enlace. |
| GwProductKey | String | Sí | a1vL7cp**** | La clave del producto al que pertenece la puerta de enlace. |
| TopoAddItem.N.DeviceName | String | Sí | light | El nombre de cada subdispositivo. |
| TopoAddItem.N.ProductKey | String | Sí | a1BwAGV**** | La clave del producto al que pertenece el subdispositivo. |
| TopoAddItem.N.Sign | String | Sí | C1C1606D61884C5F16C9EA6622E5**** | La firma del subdispositivo. Establezca el parámetro Sign con el resultado de la función SignMethod(deviceSecret,content). Para obtener el parámetro content, ordene alfabéticamente todos los parámetros del subdispositivo que se envían al servidor, excepto Sign y SignMethod. Luego, concatene los parámetros y sus valores en secuencia. No se requiere ningún símbolo de concatenación para separar estos parámetros y valores. Por ejemplo, si desea especificar los siguientes parámetros para un subdispositivo: ClientId=868575026974305, DeviceName=868575026974305, ProductKey=a1PB5fp1234, SignMethod=hmacmd5, timestamp=1646277090411 y deviceSecret=1234. En este caso, la función de firma es Nota En el ejemplo anterior, ClientId indica el ID de cliente del subdispositivo. Puede especificar un ID de cliente personalizado. Para obtener más información sobre cómo calcular el valor de la firma, consulte ¿Cómo obtengo los parámetros MQTT para la autenticación?. El valor de la firma corresponde al valor calculado del parámetro passwd. |
| TopoAddItem.N.SignMethod | String | Sí | hmacMd5 | El algoritmo de firma. Valores válidos: hmacSha1, hmacSha256, hmacMd5 y Sha256. El valor no distingue entre mayúsculas y minúsculas. |
| IotInstanceId | String | No | iot_instc_pu****_c*-v64******** | El ID de la instancia. En la página Overview de la consola de IoT Platform, puede consultar el ID de la instancia. Importante
Para obtener más información, consulte Descripción general. |
| TopoAddItem.N.Timestamp | String | No | 1579335899000 | La marca de tiempo en formato UTC. Este parámetro es opcional. Importante Si este parámetro se incluye en el valor del parámetro TopoAddItem.N.Sign, debe especificarlo obligatoriamente. |
| TopoAddItem.N.ClientId | String | No | a1BwAGV****device1 | El ID de cliente del subdispositivo. El ID puede ser el número de serie (SN) o la dirección de control de acceso al medio (MAC) del dispositivo. Este parámetro es opcional. Importante Si este parámetro se incluye en el valor del parámetro TopoAddItem.N.Sign, debe especificarlo obligatoriamente. |
Además de los parámetros de solicitud específicos de la operación mencionados anteriormente, debe especificar los parámetros de solicitud comunes al invocar esta operación. Para obtener más información, consulte Parámetros comunes.
Parámetros de respuesta
| Parámetro | Tipo | Ejemplo | Descripción |
| Code | String | iot.system.SystemException | El código de error devuelto si la llamada falla. Para obtener más información, consulte Códigos de error. |
| ErrorMessage | String | A system exception occurred. | El mensaje de error devuelto si la llamada falla. |
| RequestId | String | E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565 | El ID de la solicitud. |
| Success | Boolean | true | Indica si la llamada fue exitosa.
|
Ejemplos
Solicitudes de ejemplo
https://iot.cn-shanghai.aliyuncs.com/?Action=BatchAddThingTopo
&GwProductKey=a1duisa****
&GwDeviceName=tydhnay16shc6
&TopoAddItem.1.ProductKey=a1rYuVF****
&TopoAddItem.1.DeviceName=SR8FiTu1R9tlUR2V1bmi
&TopoAddItem.1.Sign=dgj1609rD6IUGFCRkJKKdNKAE67h8****
&TopoAddItem.1.SignMethod=hmacMd5
&TopoAddItem.2.ProductKey=a1yrZMH****
&TopoAddItem.2.DeviceName=RkQ8CFtNpDok4BEunymt
&TopoAddItem.2.Sign=C1C1606D61884C5F16C9EA6622E5****
&TopoAddItem.2.SignMethod=hmacMd5
&<Common request parameters>
Respuestas exitosas de ejemplo
Formato XML
<BatchAddThingTopoResponse>
<RequestId>2E19BDAF-0FD0-4608-9F41-82D230CFEE38</RequestId>
<Success>true</Success>
</BatchAddThingTopoResponse>
Formato JSON
{
"RequestId": "2E19BDAF-0FD0-4608-9F41-82D230CFEE38",
"Success": true
}
Códigos de error
Para consultar la lista de códigos de error, visite el Centro de errores de la API.