Vous pouvez connecter ou déconnecter les sous-dispositifs individuellement ou par lots. Avant de connecter un sous-dispositif, vous devez l'enregistrer dans IoT Platform afin d'établir une relation topologique entre le sous-dispositif et la passerelle. Lorsque le sous-dispositif est connecté, IoT Platform vérifie son identité sur la base de cette relation topologique pour déterminer s'il peut accéder à la passerelle.
Seuls les messages avec une qualité de service (QoS) 0 peuvent être transmis entre les sous-dispositifs et IoT Platform.
Le nombre de sous-dispositifs connectés à IoT Platform ne peut pas dépasser 2 000 pour une passerelle. Si ce seuil est atteint, IoT Platform rejette toutes les demandes de connexion ultérieures.
Le nombre de sous-dispositifs connectés ou déconnectés par lot ne peut pas dépasser 50.
Si une demande de connexion ou de déconnexion multiple aboutit, tous les sous-dispositifs sont connectés ou déconnectés comme prévu. En cas d'échec de la demande, aucun sous-dispositif n'est connecté ou déconnecté, et le paramètre de réponse data contient les informations relatives aux dispositifs.
Connecter un sous-dispositif à IoT Platform
Données ascendantes :
Sujet de la demande :
/ext/session/${productKey}/${deviceName}/combine/loginSujet de la réponse :
/ext/session/${productKey}/${deviceName}/combine/login_reply
Les sous-dispositifs utilisent la passerelle pour communiquer avec IoT Platform. Les sujets mentionnés ci-dessus concernent les passerelles. Remplacez les variables
${productKey}
et
${deviceName}
dans les sujets par les informations relatives à la passerelle.
Exemple de demande au format JSON Alink :
{
"id": "123",
"params": {
"productKey": "al12345****",
"deviceName": "device1234",
"clientId": "al12345****&device1234",
"timestamp": "1581417203000",
"signMethod": "hmacmd5",
"sign": "9B9C732412A4F84B981E1AB97CAB****",
"cleanSession": "true"
}
}
Remplacez les valeurs des paramètres
productKey
et
deviceName
dans le corps du message par les informations correspondantes relatives au sous-dispositif.
| Paramètre | Type | Description |
| id | String | ID du message. Valeurs valides : 0 à 4294967295. Chaque ID de message doit être unique pour le dispositif. |
| params | Object | Paramètres de la demande. Pour plus d'informations, consultez le tableau params ci-dessous. |
| Paramètre | Type | Description |
| deviceName | String | Nom du sous-dispositif. |
| productKey | String | Clé du produit auquel appartient le sous-dispositif. |
| sign | String | Signature du sous-dispositif. La procédure de signature est identique à celle d'un dispositif connecté directement. Procédure :
Exemple de calcul de la valeur du paramètre sign : |
| signMethod | String | Algorithme de signature. Valeurs valides : hmacSha1, hmacSha256, hmacMd5 et Sha256. |
| timestamp | String | Horodatage en millisecondes. |
| clientId | String | ID du dispositif. Vous pouvez définir ce paramètre en combinant la clé du produit et le nom du dispositif selon la syntaxe suivante : productKey&deviceName. |
| cleanSession | String |
|
Exemple de réponse au format JSON Alink :
{
"id":"123",
"code":200,
"message":"success"
"data":{
"deviceName": "device1234",
"productKey": "al12345****"
}
}
| Paramètre | Type | Description |
| id | String | ID du message. Valeurs valides : 0 à 4294967295. Chaque ID de message doit être unique pour un dispositif. |
| code | Integer | Code d'état. La valeur 200 indique que la demande a abouti. |
| message | String | Message de réponse. |
| data | Object | Informations relatives au sous-dispositif renvoyées, que la demande ait réussi ou échoué. Pour plus d'informations, consultez le tableau data ci-dessous. |
| Paramètre | Type | Description |
| deviceName | String | Nom du sous-dispositif. |
| productKey | String | Clé du produit auquel appartient le sous-dispositif. |
Messages d'erreur :
| Code d'erreur | Message d'erreur | Remarques |
| 460 | request parameter error | Le message d'erreur indique que les paramètres de la demande ne sont pas valides. |
| 429 | rate limit, too many subDeviceOnline msg in one minute | Le message d'erreur indique que le nombre de demandes d'authentification envoyées par le dispositif dépasse la limite. Le dispositif est limité en débit. |
| 428 | too many subdevices under gateway | Le message d'erreur indique que le nombre de sous-dispositifs connectés dépasse la limite. |
| 6401 | topo relation not exist | Le message d'erreur indique qu'aucune relation topologique n'existe entre la passerelle et le sous-dispositif. |
| 6100 | device not found | Le message d'erreur indique que le sous-dispositif n'existe pas. |
| 521 | device deleted | Le message d'erreur indique que le sous-dispositif a été supprimé. |
| 522 | device forbidden | Le message d'erreur indique que le sous-dispositif est désactivé. |
| 6287 | invalid sign | Le message d'erreur indique que le mot de passe ou la signature du sous-dispositif n'est pas valide. |
Connecter des sous-dispositifs par lots
Vous pouvez connecter un maximum de 50 sous-dispositifs à IoT Platform simultanément.
Données ascendantes :
Sujet de la demande :
/ext/session/${productKey}/${deviceName}/combine/loginSujet de la réponse :
/ext/session/${productKey}/${deviceName}/combine/batch_login_reply
Les sous-dispositifs utilisent la passerelle pour communiquer avec IoT Platform. Les sujets mentionnés ci-dessus concernent les passerelles. Remplacez les variables
${productKey}
et
${deviceName}
dans les sujets par les informations relatives à la passerelle.
Exemple de demande au format JSON Alink :
{
"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****",
}]
}
}
Remplacez les valeurs des paramètres
productKey
et
deviceName
dans le corps du message par les informations correspondantes relatives au sous-dispositif.
| Paramètre | Type | Description |
| id | String | ID du message. Valeurs valides : 0 à 4294967295. Chaque ID de message doit être unique pour le dispositif. |
| params | Object | Paramètres de la demande. Le paramètre deviceList inclut les paramètres requis pour authentifier les sous-dispositifs que vous souhaitez connecter. Pour plus d'informations, consultez le tableau deviceList ci-dessous. |
Exemple de réponse au format JSON Alink :
{
"id":"123",
"code":"200",
"message":"success",
"data":[{
"productKey": "al12345****",
"deviceName": "device1234"
},{
"deviceName": "device4321",
"productKey": "al12345****"
}]
}
| Paramètre | Type | Description |
| id | String | ID du message. Valeurs valides : 0 à 4294967295. Chaque ID de message doit être unique pour un dispositif. |
| code | Integer | Code d'état. La valeur 200 indique que la demande a abouti. |
| message | String | Message de réponse. |
| data | Object | Informations relatives au sous-dispositif renvoyées, que la demande ait réussi ou échoué. Pour plus d'informations, consultez le tableau data ci-dessous. |
| Paramètre | Type | Description |
| deviceName | String | Nom du sous-dispositif. |
| productKey | String | Clé du produit auquel appartient le sous-dispositif. |
Messages d'erreur :
| Code d'erreur | Message d'erreur | Remarques |
| 460 | request parameter error | Le message d'erreur indique que les paramètres de la demande ne sont pas valides. |
| 429 | rate limit, too many subDeviceOnline msg in one minute | Le message d'erreur indique que le nombre de demandes d'authentification envoyées par le dispositif dépasse la limite. Le dispositif est limité en débit. |
| 428 | too many subdevices under gateway | Le message d'erreur indique que le nombre de sous-dispositifs connectés dépasse la limite. |
| 6401 | topo relation not exist | Le message d'erreur indique qu'aucune relation topologique n'existe entre la passerelle et le sous-dispositif. |
| 6100 | device not found | Le message d'erreur indique que le sous-dispositif n'existe pas. |
| 521 | device deleted | Le message d'erreur indique que le sous-dispositif a été supprimé. |
| 522 | device forbidden | Le message d'erreur indique que le sous-dispositif est désactivé. |
| 6287 | invalid sign | Le message d'erreur indique que le mot de passe ou la signature du sous-dispositif n'est pas valide. |
Déconnecter un sous-dispositif d'IoT Platform
Données ascendantes :
Sujet de la demande :
/ext/session/${productKey}/${deviceName}/combine/logoutSujet de la réponse :
/ext/session/${productKey}/${deviceName}/combine/logout_reply
Les sous-dispositifs utilisent la passerelle pour communiquer avec IoT Platform. Les sujets mentionnés ci-dessus concernent les passerelles. Remplacez les variables
${productKey}
et
${deviceName}
dans les sujets par les informations relatives à la passerelle.
Exemple de demande au format JSON Alink :
{
"id": "123",
"params": {
"productKey": "al12345****",
"deviceName": "device1234"
}
}
Remplacez les valeurs des paramètres
productKey
et
deviceName
dans le corps du message par les informations correspondantes relatives au sous-dispositif.
| Paramètre | Type | Description |
| id | String | ID du message. Valeurs valides : 0 à 4294967295. Chaque ID de message doit être unique pour le dispositif. |
| params | Object | Paramètres de la demande. Ces paramètres spécifient les informations relatives au sous-dispositif que vous souhaitez déconnecter. |
| Paramètre | Type | Description |
| deviceName | String | Nom du sous-dispositif. |
| productKey | String | Clé du produit auquel appartient le sous-dispositif. |
Exemple de réponse au format JSON Alink :
{
"id": "123",
"code": 200,
"message": "success",
"data": {
"deviceName": "device1234",
"productKey": "al12345****"
}
}
| Paramètre | Type | Description |
| id | String | ID du message. Valeurs valides : 0 à 4294967295. Chaque ID de message doit être unique pour un dispositif. |
| code | Integer | Code d'état. La valeur 200 indique que la demande a abouti. |
| message | String | Message de réponse. |
| data | Object | Informations relatives au sous-dispositif renvoyées, que la demande ait réussi ou échoué. Pour plus d'informations, consultez le tableau data ci-dessous. |
| Paramètre | Type | Description |
| deviceName | String | Nom du sous-dispositif. |
| productKey | String | Clé du produit auquel appartient le sous-dispositif. |
Messages d'erreur :
| Code d'erreur | Message d'erreur | Remarques |
| 460 | request parameter error | Le message d'erreur indique que les paramètres de la demande ne sont pas valides. |
| 520 | device no session | Le message d'erreur indique que la session du sous-dispositif n'existe pas. |
Déconnecter plusieurs sous-dispositifs par lots
Vous pouvez déconnecter un maximum de 50 sous-dispositifs d'IoT Platform simultanément.
Données ascendantes :
Sujet de la demande :
/ext/session/${productKey}/${deviceName}/combine/batch_logoutSujet de la réponse :
/ext/session/${productKey}/${deviceName}/combine/batch_logout_reply
Les sous-dispositifs utilisent la passerelle pour communiquer avec IoT Platform. Les sujets mentionnés ci-dessus concernent les passerelles. Remplacez les variables
${productKey}
et
${deviceName}
dans les sujets par les informations relatives à la passerelle.
Exemple de demande au format JSON Alink :
{
"id": "123",
"params":[{
"productKey": "al12345****",
"deviceName": "device1234"
},{
"productKey": "al12345****",
"deviceName": "device4321"
}]
}
Remplacez les valeurs des paramètres
productKey
et
deviceName
dans le corps du message par les informations correspondantes relatives au sous-dispositif.
| Paramètre | Type | Description |
| id | String | ID du message. Valeurs valides : 0 à 4294967295. Chaque ID de message doit être unique pour le dispositif. |
| params | Object | Paramètres de la demande. Ces paramètres spécifient les informations relatives au sous-dispositif que vous souhaitez déconnecter. |
| Paramètre | Type | Description |
| deviceName | String | Nom du sous-dispositif. |
| productKey | String | Clé du produit auquel appartient le sous-dispositif. |
Exemple de réponse au format JSON Alink :
{
"id":"123",
"code":"200",
"message":"success",
"data":[{
"productKey": "al12345****"
"deviceName": "device1234"
},{
"deviceName": "device4321",
"productKey": "al12345****"
}]
}
| Paramètre | Type | Description |
| id | String | ID du message. Valeurs valides : 0 à 4294967295. Chaque ID de message doit être unique pour un dispositif. |
| code | Integer | Code d'état. La valeur 200 indique que la demande a abouti. |
| message | String | Message de réponse. |
| data | Object | Informations relatives au sous-dispositif renvoyées, que la demande ait réussi ou échoué. Pour plus d'informations, consultez le tableau data ci-dessous. |
| Paramètre | Type | Description |
| deviceName | String | Nom du sous-dispositif. |
| productKey | String | Clé du produit auquel appartient le sous-dispositif. |
Messages d'erreur :
| Code d'erreur | Message d'erreur | Description |
| 460 | request parameter error | Le message d'erreur indique que les paramètres de la demande ne sont pas valides. |
| 520 | device no session | Le message d'erreur indique que la session du sous-dispositif n'existe pas. |
Références
Pour plus d'informations sur la connexion des sous-dispositifs à IoT Platform, consultez Enregistrement des dispositifs.
Pour plus d'informations sur les codes d'erreur et les solutions, consultez Codes d'erreur reçus par les dispositifs.