Tous les produits
Search
Centre de documentation

IoT Platform:Fonctions

Dernière mise à jour :Aug 09, 2026

Le moteur de règles met à disposition des fonctions appelables dans les instructions SQL pour le traitement des données.

Fonctions prises en charge par la fonctionnalité de transfert de données

Fonction

Description

abs(number)

Renvoie la valeur absolue du nombre.

asin(number)

Renvoie l'arc sinus du nombre.

attribute(key)

Renvoie la valeur du tag correspondant à la clé spécifiée. Si aucun tag n'est associé à l'appareil avec cette clé, aucune valeur n'est renvoyée. Lors du débogage de votre instruction SQL, une chaîne vide est renvoyée car aucun appareil ni tag réel n'existe.

concat(string1, string2)

Concatène les chaînes et renvoie le résultat.

Exemple : concat(field,'a').

cos(number)

Renvoie le cosinus du nombre.

cosh(number)

Renvoie le cosinus hyperbolique du nombre.

crypto(field,String)

Chiffre la valeur du champ.

Le paramètre String spécifie l'algorithme de chiffrement. Algorithmes pris en charge : MD2, MD5, SHA1, SHA-256, SHA-384 et SHA-512.

deviceName()

Renvoie le nom de l'appareil actuel. Lors du débogage de votre instruction SQL, une chaîne vide est renvoyée car aucun appareil réel n'existe.

endswith(input, suffix)

Vérifie si la chaîne d'entrée se termine par la chaîne spécifiée par le paramètre suffix.

exp(number)

Renvoie la valeur de la constante mathématique e élevée à la puissance d'un nombre spécifié.

floor(number)

Renvoie le plus grand entier inférieur ou égal au nombre.

log(n, m)

Renvoie le logarithme du nombre n en base m.

Si vous ne spécifiez pas m, la base 10 par défaut est utilisée. Dans ce cas, log(n) est renvoyé.

lower(string)

Convertit toutes les lettres d'une chaîne spécifiée en minuscules et renvoie la chaîne en minuscules.

mod(n, m)

Renvoie le reste de la division du nombre n par le diviseur m.

nanvl(value, default)

Renvoie la valeur de la propriété.

Le paramètre value spécifie le nom de la propriété. Si la valeur de la propriété est null, la fonction renvoie la valeur du paramètre default.

newuuid()

Renvoie un identifiant unique universel (UUID) aléatoire.

payload(textEncoding)

Renvoie la charge utile du message envoyée par un appareil. La charge utile est encodée selon le schéma d'encodage spécifié par le paramètre textEncoding.

Le schéma d'encodage par défaut est UTF-8. Cela signifie que les fonctions payload() et payload('utf-8') renvoient le même résultat.

power(n,m)

Renvoie le nombre n élevé à la puissance m.

rand()

Renvoie un nombre aléatoire supérieur ou égal à 0 et inférieur à 1.

replace(source, substring, replacement)

Remplace la sous-chaîne dans la colonne source par la chaîne de remplacement.

Exemple : replace(field,'a','1').

sin(n)

Renvoie le sinus du nombre n.

sinh(n)

Renvoie le sinus hyperbolique du nombre n.

tan(n)

Renvoie la tangente du nombre n.

tanh(n)

Renvoie la tangente hyperbolique du nombre n.

thingPropertyFlatMap(property)

Renvoie les valeurs d'une propriété dans un modèle Thing Specification Language (TSL). Si la propriété possède plusieurs valeurs, celles-ci sont séparées par des traits de soulignement (_). Si un modèle TSL contient plus de 50 propriétés, la fonctionnalité de transfert de données ne peut pas transférer l'intégralité du modèle TSL. Appelez cette fonction pour extraire les données de propriété du modèle TSL. Ainsi, toutes les propriétés du modèle TSL peuvent être transférées vers d'autres services Alibaba Cloud.

Spécifiez plusieurs propriétés pour le paramètre property de la fonction. Si vous ne spécifiez aucune propriété, toutes les valeurs des propriétés sont extraites.

Par exemple, la fonction thingPropertyFlatMap('Power', 'Position') ajoute "Power": "On", "Position_latitude": 39.9, "Position_longitude": 116.38 au corps d'un message.

timestamp(format)

Renvoie l'horodatage de l'heure système actuelle au fuseau horaire GMT+8.

Le paramètre format est facultatif. Si vous ne configurez pas le paramètre format, l'horodatage de l'heure système actuelle est renvoyé. Par exemple, la fonction timestamp() renvoie 1543373798943 et la fonction timestamp('yyyy-MM-dd\'T\'HH:mm:ss\'Z\'') renvoie 2018-11-28T10:56:38Z.

timestamp_utc(format)

Renvoie l'horodatage UTC de l'heure système actuelle dans un format spécifié.

Le paramètre format est facultatif. Si vous ne configurez pas le paramètre format, l'horodatage à 13 chiffres de l'heure système actuelle est renvoyé. Par exemple, la fonction timestamp_utc() renvoie 1543373798943 et la fonction timestamp_utc('yyyy-MM-dd\'T\'HH:mm:ss\'Z\'') renvoie 2018-11-28T02:56:38Z.

topic(number)

Renvoie les informations du topic à un niveau spécifié.

Par exemple, un topic est nommé /alDbcLe**/TestDevice/user/set. La fonction topic() renvoie le nom complet du topic /alDbcLe/TestDevice/user/set. La fonction topic(1) renvoie le premier niveau alDbcLe**. La fonction topic(2) renvoie le deuxième niveau TestDevice.

upper(string)

Convertit toutes les lettres d'une chaîne spécifiée en majuscules et renvoie la chaîne en majuscules.

Par exemple, la fonction upper(alibaba) renvoie ALIBABA.

to_base64(*)

Convertit la charge utile du message de données binaires en une chaîne encodée en Base64 et renvoie la charge utile après conversion. Si la charge utile du message d'origine est de type binaire, appelez cette fonction.

messageId()

Renvoie l'ID du message généré par IoT Platform.

substring(target, start, end)

Renvoie une partie d'une chaîne spécifiée.

Description des paramètres

  • target : la chaîne d'origine. Ce paramètre est obligatoire.

  • start : la position à partir de laquelle les caractères renvoyés commencent. Le caractère à cette position est également renvoyé. Ce paramètre est obligatoire.

  • end : la position à laquelle les caractères renvoyés se terminent. Le caractère à cette position n'est pas renvoyé. Ce paramètre est facultatif.

Remarque
  • Seuls les types de données string et integer sont pris en charge. Un entier est converti en chaîne avant traitement.

  • Entourez une chaîne constante de guillemets simples (''). Les données entourées de guillemets doubles (") sont analysées comme des entiers.

  • Si un paramètre d'entrée n'est pas valide, par exemple si le type de données n'est pas pris en charge, l'analyse SQL échoue et les règles ne sont pas déclenchées.

Exemples :

  • substring('012345', 0) = "012345"

  • substring('012345', 2) = "2345"

  • substring('012345', 2.745) = "2345"

  • substring(123, 2) = "3"

  • substring('012345', -1) = "012345"

  • substring(true, 1.2) error

  • substring('012345', 1, 3) = "12"

  • substring('012345', -50, 50) = "012345"

  • substring('012345', 3, 1) = ""

to_hex(*)

Convertit la charge utile du message de données binaires en une chaîne hexadécimale et renvoie la charge utile après conversion. Si la charge utile du message d'origine est de type binaire, appelez cette fonction.

user_property()

Obtient la valeur du paramètre UserProperty lorsqu'un appareil utilise MQTT 5.0.

  • Appelez la fonction user_property() pour obtenir toutes les données de propriété.

  • Appelez la fonction user_property('${Key}') pour obtenir les données d'une clé spécifiée.

Par exemple, la valeur du paramètre UserProperty signalée par un appareil est {"a": "1", "b": "2"}.

  • La fonction user_property() renvoie "{\"a\": \"1\", \"b\": \"2\"}".

  • La fonction user_property('a') renvoie "{\"a\": \"1\"}".

things_function_type()

Interroge le type des données TSL signalées. Cette fonction s'applique uniquement aux événements TSL et aux services TSL. La valeur de retour de cette fonction varie selon le type de fonctionnalité TSL interrogée.

  • Si vous interrogez un événement, l'identifiant de l'événement est renvoyé.

  • Si vous interrogez un service, l'identifiant du service est renvoyé.

Par exemple, le topic /SdfgeW***/device1/thing/event/BrokenInfo/post est utilisé pour transférer l'événement BrokenInfo. Si vous appelez la fonction things_function_type() pour interroger l'événement, l'identifiant de l'événement signalé BrokenInfo est renvoyé.

things_property('${Parameter name}')

Interroge la valeur d'une propriété, d'un service ou d'un événement TSL. Cette fonction s'applique uniquement aux données TSL.

Par exemple, le topic /${productKey}/${deviceName}/thing/event/property/post est utilisé pour transférer la propriété CurrentTemperature. La fonction things_property('CurrentTemperature') renvoie la valeur signalée de la propriété CurrentTemperature.

Exemples

Appelez des fonctions pour obtenir ou traiter des données dans les clauses SELECT et WHERE des instructions SQL.

Par exemple, un produit de capteur de température possède la propriété Temperature. Le script suivant montre les données de propriété TSL soumises par un appareil.

{
    "deviceType": "Custom",
    "iotId": "H5KURkKdibnZvSls****000100",
    "productKey": "a1HHrkm****",
    "gmtCreate": 1564569974224,
    "deviceName": "TestDevice1",
    "items": {
        "Temperature": {
            "value": 23.5,
            "time": 1564569974229
        }
    }
}

Ce produit de capteur de température comprend plusieurs appareils. Les données de la propriété Temperature doivent être transférées vers Function Compute pour traitement uniquement lorsque la température signalée est supérieure à 38 et que l'appareil est TestDevice1, TestDevice2 ou TestDevice3. L'instruction SQL suivante filtre les données signalées par les appareils.

Instruction SQL :

SELECT deviceName() as deviceName,things_property('Temperature') as Temperature 
FROM "/g5or0***/+thing/event/property/post" 
WHERE things_property('Temperature')>38 and deviceName() in ('TestDevice1', 'TestDevice2', 'TestDevice3')

Dans cet exemple, les fonctions deviceName() et things_property('Temperature') sont appelées.

  • Les fonctions sont configurées dans la clause SELECT pour filtrer les données soumises afin d'obtenir un nom d'appareil et la valeur du paramètre Temperature.

  • Ces fonctions sont configurées dans la clause WHERE pour spécifier une condition. >38 et in ('TestDevice1', 'TestDevice2', 'TestDevice3') indiquent que les données de propriété sont transférées uniquement si la température est supérieure à 38 degrés Celsius et que le nom de l'appareil est TestDevice1, TestDevice2 ou TestDevice3.

Pour plus d'informations sur la rédaction des clauses SELECT et WHERE dans une instruction SQL et sur les expressions conditionnelles prises en charge par le moteur de règles, consultez Instructions SQL.