Tous les produits
Search
Centre de documentation

IoT Platform:CreateThingModel

Dernière mise à jour :Aug 09, 2026

Ajoute une fonctionnalité du langage de spécification des objets (TSL) à un produit donné. Vous pouvez également spécifier les informations étendues relatives à cette fonctionnalité.

Limites

  • Si le produit est publié, appelez l'opération CancelReleaseProduct pour annuler sa publication avant d'appeler la présente opération.

  • Avant d'appeler l'opération, utilisez la bibliothèque json-schema pour valider les paramètres d'entrée contenus dans ThingModelJson. Pour plus d'informations, consultez la rubrique Structure des données de ThingModelJson.

  • Cette opération permet d'ajouter au maximum 10 fonctionnalités TSL, qui incluent les propriétés, les services et les événements.

  • Chaque compte Alibaba Cloud peut effectuer au maximum 5 requêtes par seconde (QPS).

    Remarque

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

Débogage

OpenAPI Explorer calcule automatiquement la valeur de signature. Pour plus de commodité, nous vous recommandons d'appeler cette opération dans OpenAPI Explorer. OpenAPI Explorer génère dynamiquement un exemple de code pour différents SDK.

Paramètres de requête

ParamètreTypeObligatoireExempleDescription
ActionStringOuiCreateThingModel

Opération à exécuter. Définissez la valeur sur CreateThingModel.

ProductKeyStringOuia1BwAGV****

Le ProductKey du produit.

Vous pouvez afficher le ProductKey sur la page Détails du produit de la console IoT Platform. Vous pouvez également obtenir le ProductKey en appelant l'opération QueryProductList.

IotInstanceIdStringNoniot-cn-0pp1n8t****

ID de l'instance. Vous pouvez consulter l'ID de l'instance sur la page Overview de la console IoT Platform.

Important
  • Si votre instance possède un ID, vous devez configurer ce paramètre. Si vous ne définissez pas ce paramètre, l'appel échouera.
  • Si votre instance ne possède pas de Overview page ou ID, il n'est pas nécessaire de définir ce paramètre.

Pour plus d'informations, consultez la rubrique Overview.

ThingModelJsonStringNon{ "properties":[ { "identifier": "SimCardType", "extendConfig":"{...}", "dataSpecs": { "max": "1", "dataType": "INT", "unit": "mmHg", "min": "0", "step": "1" }, "std": false, "custom": true, "dataType": "INT", "rwFlag": "READ_ONLY", "productKey": "a1bPo9p****", "required": false, "customFlag": true, "name": "SIM card type" } ], "services":[...], "events":[...] }

Détails des nouvelles fonctionnalités.

Remarque Vous pouvez spécifier au maximum 10 fonctionnalités.

Exemple :


{
  "properties": [
    {
      "custom": true,
      "dataSpecsList": [
        {
          "childDataType": "TEXT",
          "childName": "CCID number of the device SIM card",
          "dataSpecs": {
            "custom": true,
            "dataType": "TEXT",
            "length": 20
          },
          "dataType": "STRUCT",
          "identifier": "CCID",
          "name": "CCID number of the device SIM card"
        },
        {
          "childDataType": "INT",
          "childName": "Battery power",
          "dataSpecs": {
            "custom": true,
            "dataType": "INT",
            "max": "60000",
            "min": "0",
            "step": "1"
          },
          "dataType": "STRUCT",
          "identifier": "battery",
          "name": "Battery power"
        },
        {
          "childDataType": "TEXT",
          "childName": "Other information",
          "dataSpecs": {
            "custom": true,
            "dataType": "TEXT",
            "length": 1024
          },
          "dataType": "STRUCT",
          "identifier": "other_info",
          "name": "Other information"
        }
      ],
      "dataType": "STRUCT",
      "identifier": "DEV_INFO",
      "name": "Device information",
      "productKey": "a1T***",
      "propertyId": 18786548,
      "required": false,
      "rwFlag": "READ_ONLY"
    },
    {
      "custom": true,
      "dataSpecs": {
        "childDataType": "INT",
        "custom": true,
        "dataType": "ARRAY",
        "size": 1,
        "dataSpecs": {
          "custom": true,
          "dataType": "INT",
          "max": "65535",
          "min": "0",
          "step": "1",
          "unit": "ppm",
          "unitName": "Parts per million"
        }
      },
      "dataType": "ARRAY",
      "identifier": "airRH_SR",
      "name": "Dehumidifier humidity",
      "productKey": "a1T***",
      "propertyId": 18786551,
      "required": false,
      "rwFlag": "READ_ONLY"
    }
  ],
  "services": [...],
  "events": [...]
}
                                

Dans la structure properties du paramètre ThingModelJson, vous pouvez utiliser le paramètre extendConfig pour définir les informations étendues du modèle TSL. Pour plus d'informations, consultez la rubrique Data structure of ThingModelJson.

FunctionBlockIdStringNonBatteryModule

Identifiant du module TSL personnalisé. Chaque identifiant doit être unique au sein d'un produit. Il doit contenir entre 1 et 30 caractères et peut inclure des lettres, des chiffres et des traits de soulignement (_).

Ce paramètre doit être utilisé conjointement avec le paramètre FunctionBlockName. Si vous ne spécifiez pas ce paramètre, le système importe le module par défaut.

FunctionBlockNameStringNonBattery_Module

Nom du module personnalisé. Il doit contenir entre 4 et 30 caractères et peut inclure des lettres, des chiffres et des traits de soulignement (_).

Ce paramètre doit être utilisé conjointement avec le paramètre FunctionBlockId. Si vous ne spécifiez pas ce paramètre, le système importe le module par défaut.

Outre les paramètres de requête spécifiques à l'opération présentés ci-dessus, vous devez spécifier les paramètres de requête communs lors de l'appel à cette opération. Pour plus d'informations sur les paramètres de requête communs, consultez la rubrique Paramètres communs.

Paramètres de réponse

ParamètreTypeExempleDescription
CodeStringiot.system.SystemException

Code d'erreur renvoyé en cas d'échec de l'appel. Pour plus d'informations, consultez la rubrique Codes d'erreur.

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.

SuccessBooleantrue

Indique si l'appel a réussi.

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

Exemples

Exemple de requête

https://iot.cn-shanghai.aliyuncs.com/?Action=CreateThingModel
&ProductKey=a1bPo9p****
&ThingModelJson={"properties":[{"identifier": "SimCardType","dataSpecs": {"max": "1", "dataType": "INT","unit": "mmHg","min": "0","step": "1"},"std": false,"custom": true,"dataType": "INT","rwFlag": "READ_ONLY","productKey": "a1bPo9p****","required": false,"customFlag": true, "name": "SIM card type"}]}
&<Common request parameters>

Exemple de réponse en cas de succès

Format XML

<CreateThingModelResponse>
  <RequestId>9E76053E-26ED-4AB4-AE58-8AFC3F1E7E8E</RequestId>
  <Success>true</Success>
</CreateThingModelResponse>

Format JSON

{
  "RequestId": "9E76053E-26ED-4AB4-AE58-8AFC3F1E7E8E",
  "Success": true
}

Codes d'erreur

Pour obtenir la liste des codes d'erreur, consultez le Centre d'erreurs de l'API.