Tous les produits
Search
Centre de documentation

IoT Platform:QueryDeviceBySQL

Dernière mise à jour :Aug 10, 2026

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.

Remarque

Les utilisateurs RAM d'un compte Alibaba Cloud partagent le quota du compte.

Débogage

OpenAPI Explorer calcule automatiquement la valeur de signature. Nous vous recommandons d'utiliser OpenAPI Explorer pour appeler cette opération. OpenAPI Explorer génère dynamiquement des exemples de code pour différents SDK.

Paramètres de requête

ParameterTypeRequiredExampleDescription
ActionStringYesQueryDeviceBySQL

Opération à effectuer. Définissez la valeur sur QueryDeviceBySQL.

SQLStringYesSELECT * 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.

IotInstanceIdStringNoiot-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
  • Si votre instance possède un ID, vous devez spécifier cet ID pour ce paramètre. Sinon, l'appel échoue.
  • Si aucune page Overview ou aucun ID n'est généré pour votre instance, vous n'avez pas besoin de configurer ce paramètre.

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

ParameterTypeExampleDescription
CodeStringiot.system.SystemException

Code d'erreur renvoyé en cas d'échec de l'appel. Pour plus d'informations, consultez Error codes.

DataArray of SimpleDeviceSearchInfo

Informations sur l'appareil renvoyées en cas de réussite de l'appel.

ActiveTimeString2020-04-04 16:38:18.607

Date et heure d'activation de l'appareil. Le format est GMT.

DeviceNameStringlight

Nom de l'appareil.

GmtCreateString2020-04-04 16:38:17.000

Date et heure de création de l'appareil. Le format est GMT.

GmtModifiedString2020-04-04 16:38:19.000

Date et heure de la dernière mise à jour des informations de l'appareil. Le format est GMT.

GroupsArray of SimpleDeviceGroupInfo

Informations sur les groupes auxquels appartient l'appareil.

GroupIdStringa1d21d2fas

ID du groupe.

IotIdStringQ7uOhVRdZRRlDnTLv****00100

ID de l'appareil. Il s'agit d'un identifiant unique attribué par IoT Platform à l'appareil.

NicknameStringSmart light

Alias de l'appareil.

OTAModulesArray of OTAModuleInfo

Informations sur le firmware de chaque module de l'appareil.

FirmwareVersionStringa1-dads2-dad2

Numéro de version de chaque module OTA.

ModuleNameStringSomeSampleModule

Nom du module OTA.

ProductKeyStringa1BwAGV****

ProductKey du produit auquel appartient l'appareil.

StatusStringONLINE

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é.
TagsArray of TagInfo

Informations sur les tags de l'appareil.

TagNameStringColor

Clé du tag.

TagValueStringRed

Valeur du tag.

ErrorMessageStringA system exception occurred.

Message d'erreur renvoyé en cas d'échec de l'appel.

RequestIdStringE55E50B7-40EE-4B6B-8BBE-D3ED55CCF565

ID de la requête.

TotalCountLong100

Si vous spécifiez SELECT count(*) FROM device dans l'instruction de type SQL, le nombre de lignes correspondant aux conditions spécifiées est renvoyé.

SuccessBooleantrue

Indique si l'appel a réussi. Valeurs possibles :

  • true : l'appel a réussi.
  • false : l'appel a échoué.

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.