Interroge les appareils en exécutant une instruction de type SQL. Cette opération renvoie les appareils répondant aux conditions spécifiées dans l'instruction.
Description
-
L'interrogation des appareils sur les instances Enterprise Edition est uniquement disponible dans les régions Chine (Shanghai),Japon (Tokyo)
, Chine du Nord 2 (Pékin) et Chine du Sud 1 (Shenzhen).
L'opération QueryDeviceBySQL renvoie jusqu'à 10 000 appareils par appel. Pour plus d'informations, consultez la section «
Syntax of LIMIT clauses» de cette rubrique.
Limites de QPS
Vous pouvez appeler cette opération API jusqu'à 10 fois par seconde par compte.
Les utilisateurs RAM d'un compte Alibaba Cloud partagent le quota du compte.
Débogage
Paramètres de requête
| Parameter | Type | Required | Example | Description |
| Action | String | Yes | QueryDeviceBySQL | Opération à effectuer. Définissez la valeur sur QueryDeviceBySQL. |
| SQL | String | Yes | SELECT * FROM device where product_key = "a1*********" limit 100, 20 | Instruction de type SQL à exécuter pour interroger les appareils. Pour plus d'informations sur les exigences spécifiques et des exemples, consultez la section suivante. |
| IotInstanceId | String | No | iot-cn-0pp1n8t**** | ID de l'instance. Vous pouvez afficher l'ID de l'instance sur la page Instance Overview de la console IoT Platform. Important
Pour plus d'informations, consultez Overview. |
Pour appeler l'opération QueryDeviceBySQL afin d'interroger des appareils, vous devez spécifier une instruction de type SQL. Cette instruction doit contenir une clause SELECT et une clause WHERE. Elle peut également inclure une clause ORDER BY et une clause LIMIT. La longueur de chaque instruction ne doit pas dépasser 400 caractères.
Exemples :
SELECT FROM device WHERE product_key = "a1****" order by active_time limit 0,10
| Clause SQL | Description |
|
Clauses SELECT
| SELECT [field]/[count(*)] FROM device
Le paramètre field spécifie les champs à obtenir. Le tableau suivant décrit ces champs. Pour obtenir tous les champs, spécifiez un astérisque (*).
Pour obtenir le nombre de lignes correspondant aux conditions spécifiées, indiquez count(*).
|
|
Clauses WHERE
| WHERE [condition1] AND [condition2]
Vous pouvez spécifier jusqu'à cinq conditions. L'imbrication n'est pas prise en charge. Le tableau suivant décrit les champs et les opérateurs.
Utilisez l'opérateur logique AND ou OR pour connecter les conditions. Vous pouvez utiliser jusqu'à cinq opérateurs logiques.
|
|
Clauses ORDER BY (facultatif)
|
La clause ORDER BY permet de trier les champs. Les champs suivants peuvent être triés : gmt_create, gmt_modified et active_time.
Cette clause est facultative. Si vous ne la spécifiez pas, les résultats sont triés de manière aléatoire.
|
|
Clauses LIMIT (facultatif)
|
La clause LIMIT spécifie le nombre maximal de lignes à renvoyer par page et le nombre total de lignes à renvoyer. Pour plus d'informations, consultez la section « Syntax of LIMIT clauses » de cette rubrique.
Si vous ne spécifiez pas de clause LIMIT, la valeur limit 20 est appliquée par défaut.
|
Syntaxe des clauses LIMIT
| Syntaxe | Description |
|
limit k
|
La valeur de k doit être inférieure ou égale à 50, ce qui signifie que le nombre de lignes renvoyées par page ne peut pas dépasser 50. Exemples :
SELECT * FROM device WHERE product_key = "a1*****" limit 10 |
|
limit n,k
|
La somme des valeurs de n et de k doit être inférieure ou égale à 10 000, et la valeur de k doit être inférieure ou égale à 50. Cela signifie que le nombre total de lignes renvoyées ne peut pas dépasser 10 000 et que le nombre maximal de lignes renvoyées par page ne peut pas dépasser 50. Exemples :
SELECT * FROM device WHERE product_key = "a1*****" limit 40,10 |
Champs
Champ | Type | Description |
product_key | text | ProductKey du produit auquel appartient l'appareil. |
iot_id | text | ID de l'appareil. Par défaut, iot_id est renvoyé. |
name | text | Nom de l'appareil. |
active_time | date | Date et heure d'activation de l'appareil. Le format est yyyy-MM-dd HH:mm:ss.SSS, avec une précision à la milliseconde. |
nickname | text | Alias de l'appareil. |
gmt_create | date | Date et heure de création de l'appareil. Le format est yyyy-MM-dd HH:mm:ss.SSS, avec une précision à la milliseconde. |
gmt_modified | date | Date et heure de la dernière mise à jour des informations de l'appareil. Le format est yyyy-MM-dd HH:mm:ss.SSS, avec une précision à la milliseconde. |
status | text | Statut de l'appareil. Valeurs possibles : ONLINE : l'appareil est en ligne. OFFLINE : l'appareil est hors ligne. UNACTIVE : l'appareil n'est pas activé. DISABLE : l'appareil est désactivé. |
group.group_id | text | ID du groupe d'appareils. |
tag.tag_name | text | Clé de tag de l'appareil. |
tag.tag_value | text | Valeur de tag de l'appareil. |
ota_module.name | text | Nom du module OTA (Over-The-Air). Nous vous recommandons d'utiliser ce champ conjointement avec le champ ota_module.version pour spécifier le module OTA correspondant au numéro de version OTA actuel de l'appareil. Si vous ne configurez pas le champ ota_module.version, vous ne pourrez pas interroger les appareils par nom de module OTA. |
ota_module.version | text | Version du firmware du module OTA. |
Opérateurs
| Opérateur | Type de données pris en charge |
|
=
|
number, date et text
|
|
!=
|
number, date et text
|
|
>
|
number et date
|
|
<
|
number et date
|
|
LIKE
|
text
|
Description :
= et != : si vous utilisez ces opérateurs, les valeurs des champs que vous souhaitez interroger peuvent être nulles.
-
LIKE : si vous utilisez cet opérateur, seule la correspondance de préfixe est prise en charge. Le préfixe doit comporter au moins quatre caractères et ne peut pas contenir de caractères spéciaux, tels que les barres obliques inverses (\), les barres obliques (/), les esperluettes (&), les signes plus (+), les traits d'union (-), les points d'exclamation (!), les parenthèses (), les deux-points (:), les tildes (~), les accolades {}, les astérisques (*) et les points d'interrogation (?). Le préfixe doit se terminer par un signe pourcentage (
%).Exemple :
SELECT * FROM device where product_key = "a1*********" and name LIKE "test%" limit 10.
Outre les paramètres de requête spécifiques à l'opération mentionnés ci-dessus, vous devez configurer les paramètres de requête communs lors de l'appel de cette opération. Pour plus d'informations sur les paramètres de requête communs, consultez Common parameters.
Paramètres de réponse
| Parameter | Type | Example | Description |
| Code | String | iot.system.SystemException | Code d'erreur renvoyé en cas d'échec de l'appel. Pour plus d'informations, consultez Error codes. |
| Data | Array of SimpleDeviceSearchInfo | Informations sur l'appareil renvoyées en cas de réussite de l'appel. | |
| ActiveTime | String | 2020-04-04 16:38:18.607 | Date et heure d'activation de l'appareil. Le format est GMT. |
| DeviceName | String | light | Nom de l'appareil. |
| GmtCreate | String | 2020-04-04 16:38:17.000 | Date et heure de création de l'appareil. Le format est GMT. |
| GmtModified | String | 2020-04-04 16:38:19.000 | Date et heure de la dernière mise à jour des informations de l'appareil. Le format est GMT. |
| Groups | Array of SimpleDeviceGroupInfo | Informations sur les groupes auxquels appartient l'appareil. | |
| GroupId | String | a1d21d2fas | ID du groupe. |
| IotId | String | Q7uOhVRdZRRlDnTLv****00100 | ID de l'appareil. Il s'agit d'un identifiant unique attribué par IoT Platform à l'appareil. |
| Nickname | String | Smart light | Alias de l'appareil. |
| OTAModules | Array of OTAModuleInfo | Informations sur le firmware de chaque module de l'appareil. | |
| FirmwareVersion | String | a1-dads2-dad2 | Numéro de version de chaque module OTA. |
| ModuleName | String | SomeSampleModule | Nom du module OTA. |
| ProductKey | String | a1BwAGV**** | ProductKey du produit auquel appartient l'appareil. |
| Status | String | ONLINE | Statut de l'appareil. Valeurs possibles :
|
| Tags | Array of TagInfo | Informations sur les tags de l'appareil. | |
| TagName | String | Color | Clé du tag. |
| TagValue | String | Red | Valeur du tag. |
| ErrorMessage | String | A system exception occurred. | Message d'erreur renvoyé en cas d'échec de l'appel. |
| RequestId | String | E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565 | ID de la requête. |
| TotalCount | Long | 100 | Si vous spécifiez |
| Success | Boolean | true | Indique si l'appel a réussi. Valeurs possibles :
|
Exemples
Exemple de requête
https://iot.cn-shanghai.aliyuncs.com/?Action=QueryDeviceBySQL
&IotInstanceId=iot-cn-0pp1n8t****
&SQL=SELECT * FROM device where product_key = "a1*********" limit 100, 20
&<Common request parameters>
Exemple de réponse réussie
Format XML
<QueryDeviceBySQLResponse>
<RequestId>501CFABA-2C48-468D-B88C-3AA8E3B3A8F3</RequestId>
<Data>
<Status>OFFLINE</Status>
<IotId>ii1*******</IotId>
<GmtCreate>2020-04-04 16:38:17.000</GmtCreate>
<ActiveTime>2020-04-04 16:38:18.607</ActiveTime>
<GmtModified>2020-04-04 16:38:19.000</GmtModified>
<ProductKey>a1*********</ProductKey>
<DeviceName>testDevcieae7f3a</DeviceName>
</Data>
<Data>
<Status>UNACTIVE</Status>
<IotId>5wt*******</IotId>
<GmtCreate>2020-04-04 16:37:32.000</GmtCreate>
<Groups>
<GroupId>Ix4*******</GroupId>
</Groups>
<Groups>
<GroupId>Xrn*******</GroupId>
</Groups>
<Groups>
<GroupId>J9l*******</GroupId>
</Groups>
<OTAModules>
<ModuleName>SomeSampleModule</ModuleName>
<FirmwareVersion>a1-dads2-dad2</FirmwareVersion>
</OTAModules>
<OTAModules>
<ModuleName>SampleModule</ModuleName>
<FirmwareVersion>a1-dads2-dad1</FirmwareVersion>
</OTAModules>
<GmtModified>2020-04-04 16:37:32.000</GmtModified>
<ProductKey>a1*********</ProductKey>
<DeviceName>testDevcie676a22</DeviceName>
</Data>
<Success>true</Success>
</QueryDeviceBySQLResponse>
Format JSON
{
"RequestId": "501CFABA-2C48-468D-B88C-3AA8E3B3A8F3",
"Data": [
{
"Status": "OFFLINE",
"IotId": "ii1*******",
"GmtCreate": "2020-04-04 16:38:17.000",
"ActiveTime": "2020-04-04 16:38:18.607",
"GmtModified": "2020-04-04 16:38:19.000",
"ProductKey": "a1*********",
"DeviceName": "testDevcieae7f3a"
},
{
"Status": "UNACTIVE",
"IotId": "5wt*******",
"GmtCreate": "2020-04-04 16:37:32.000",
"Groups": [
{
"GroupId": "Ix4*******"
},
{
"GroupId": "Xrn*******"
},
{
"GroupId": "J9l*******"
}
],
"OTAModules": [
{
"ModuleName": "SomeSampleModule",
"FirmwareVersion": "a1-dads2-dad2"
},
{
"ModuleName": "SampleModule",
"FirmwareVersion": "a1-dads2-dad1"
}
],
"GmtModified": "2020-04-04 16:37:32.000",
"ProductKey": "a1*********",
"DeviceName": "testDevcie676a22"
}
],
"Success": true
}
Codes d'erreur
Pour obtenir la liste des codes d'erreur, consultez Service error codes.