Todos os produtos
Search
Central de documentação

IoT Platform:Perguntas frequentes sobre modelos TSL

Última atualização: Jun 26, 2026

Este tópico responde a perguntas frequentes (FAQs) sobre o uso de modelos TSL na comunicação de dispositivos e apresenta as soluções correspondentes.

Adicionar recursos do modelo TSL

Adicione e configure as propriedades, os eventos e os serviços de um modelo TSL no produto que contém o dispositivo. Defina um modelo TSL das seguintes formas:

Falha na verificação do TSL durante importação em lote

Sintomas

Ao importar um modelo TSL para um produto no console do IoT Platform, uma de duas falhas de verificação pode ocorrer na caixa de diálogo Import TSL Model: uma mensagem de erro imediata (The file content is not in a valid JSON format) ou uma exceção de verificação com um link Baixe e Visualize para obter informações detalhadas sobre o erro.

Soluções

As soluções a seguir correspondem aos dois tipos de falha de verificação:

  • Verifique o arquivo do modelo TSL, corrija quaisquer erros de formatação JSON e envie o arquivo novamente.

  • Clique em Download and View para obter o arquivo errors.txt. Use esse arquivo para identificar e resolver o problema.

    Para mais informações sobre o arquivo errors.txt, consulte o exemplo a seguir.

    Exemplo de arquivo de modelo TSL:

    {
        "schema":"https://iotx-tsl.oss-ap-southeast-1.aliyuncs.com/schema.json",
        "profile":{
            "productKey":"a1Jk***"
        },
        "services":[],
        "properties": 1,
        "events": [],
        "functionBlockId": "modulemtest",
        "functionBlockName": "Custom Module 1"
    }

    Arquivo errors.txt baixado:

    [
      {
        "path": [
          "properties"
        ],
        "property": "instance.properties",
        "message": "is not of a type(s) array",
        "schema": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/propertyDefinition"
          }
        },
        "instance": 1,
        "name": "type",
        "argument": [
          "array"
        ],
        "stack": "instance.properties is not of a type(s) array"
      },
      {
        "path": [
          "functionBlockId"
        ],
        "property": "instance.functionBlockId",
        "message": "does not match pattern \"^[_a-zA-Z0-9]{1,30}$\"",
        "schema": {
          "type": "string",
          "pattern": "^[_a-zA-Z0-9]{1,30}$"
        },
        "instance": "module-test",
        "name": "pattern",
        "argument": "^[_a-zA-Z0-9]{1,30}$",
        "stack": "instance.functionBlockId does not match pattern \"^[_a-zA-Z0-9]{1,30}$\""
      }
    ]

    Parâmetro

    Descrição

    path

    Caminho do elemento que causou o erro de verificação. Neste exemplo, há dois erros:

    // O parâmetro properties está configurado incorretamente. Não é um array.
    "path": [
          "properties"
        ]
    // O valor de functionBlockId contém um hífen, o que é inválido.
    "path": [
          "functionBlockId"
        ]

    property

    Objeto específico no caminho que viola a regra.

    Por exemplo, a propriedade para "path": ["functionBlockId" ] é instance.functionBlockId.

    message

    Mensagem de erro específica.

    Por exemplo, para "path": ["functionBlockId" ], a mensagem de erro da propriedade é does not match pattern \"^[_a-zA-Z0-9]{1,30}$\".

    schema

    Nome e conteúdo da regra de verificação.

    Por exemplo, para "path": ["functionBlockId" ], as regras são type e pattern.

    Para mais informações sobre definições de regras, consulte JSON Schema.

    instance

    Objeto específico em verificação.

    Por exemplo, para "path": ["functionBlockId" ], o conteúdo de "functionBlockId": "module-test" no arquivo do modelo TSL é verificado.

    name

    Nome da regra que falhou na verificação.

    Por exemplo, para "path": ["functionBlockId" ], o objeto module-test não está em conformidade com a regra pattern.

    argument

    Definição da regra violada.

    Por exemplo, para "path": ["functionBlockId" ], a regra pattern não atendida é definida como ^[_a-zA-Z0-9]{1,30}$.

    stack

    Mensagem de erro completa que combina os campos property e message.

Para mais informações, consulte a documentação do jsonschema.

Diferenças nos métodos de relatório de dados

Diferenças funcionais

Recurso

Diferença

Relatório de propriedades

Reporta um snapshot dos dados de propriedade do dispositivo. O timestamp é opcional:

  • Se um timestamp for incluído, o IoT Platform o salvará como o horário em que a propriedade foi reportada.

    Um único relatório de dados pode conter dados de apenas um ponto no tempo.

  • Se nenhum timestamp for incluído, o IoT Platform gerará automaticamente um timestamp com base na hora atual e o salvará como o horário do relatório da propriedade.

Relatório de dados históricos

Reporta valores de diferentes propriedades no mesmo ponto no tempo. Este recurso é baseado em tempo e exige um timestamp.

Um único relatório de dados pode incluir dados de vários pontos no tempo.

Relatório de propriedades em lote

Reporta valores da mesma propriedade em diferentes pontos no tempo. Este recurso é baseado em propriedades e exige um timestamp.

Um único relatório de dados pode incluir dados de várias propriedades em vários pontos no tempo.

Após o relatório de dados de propriedades, dados históricos ou dados de propriedades em lote para o IoT Platform, a plataforma gera registros de dados históricos com base nos timestamps.

Diferenças em tópicos de comunicação e formatos de dados

O tópico e o formato de dados variam conforme o método. Para mais informações, consulte Dispositivo reporta propriedades, Reportar dados históricos do modelo TSL e Dispositivo reporta propriedades em lote.

Exemplo

Este exemplo utiliza um dispositivo que reporta dados de temperatura.

  • Relatório de propriedades:

    1. O dispositivo reporta dados de snapshot com timestamps sequencialmente da esquerda para a direita, conforme a tabela a seguir.

      13:00

      14:00

      15:00

      15:10

      60

      70

      80

      90

    2. Em seguida, o dispositivo reporta outro valor de snapshot de 100. A atualização dos dados varia dependendo da inclusão de um timestamp:

      • Sem timestamp: O horário assume como padrão a hora atual (por exemplo, 15:30). Nesse caso, o valor de snapshot exibido no console do IoT Platform é 100 às 15:30, e a entrada mais recente na lista de dados históricos também é 100 às 15:30.

      • Com timestamp: Se o timestamp for 15:00, os dados das 15:00 serão atualizados para 100. O valor de snapshot exibido no console do IoT Platform passará a ser 100 às 15:00, mas a entrada mais recente na lista de dados históricos permanecerá 90 às 15:10.

  • Relatório de dados históricos:

    1. O dispositivo reporta os seguintes dados históricos simultaneamente.

      13:00

      14:00

      15:00

      15:10

      60

      70

      80

      90

    2. Posteriormente, o dispositivo reporta os seguintes dados históricos simultaneamente.

      13:10

      14:10

      100

      200

      Nesse cenário, o valor de snapshot exibido no console do IoT Platform será 100 às 13:10 ou 200 às 14:10, dependendo de qual valor foi gravado por último no banco de dados. A entrada mais recente na lista de dados históricos permanece 90 às 15:10.

Dados TSL não atualizados com tópico personalizado

Reporte os dados do modelo TSL do dispositivo usando um tópico de comunicação do modelo TSL. Para mais informações, consulte Categorias de tópicos e comunicação.

Recuperar dados do modelo TSL

Recupere dados do modelo TSL do dispositivo das seguintes maneiras:

  • Assinatura do lado do servidor: Use o recurso de assinatura do lado do servidor do IoT Platform para assinar mensagens de Device Upstream Notification. O IoT Platform encaminha essas mensagens de todos os dispositivos do produto para o seu servidor com base nas configurações de assinatura. Há suporte para dois métodos de assinatura do lado do servidor:

  • Encaminhamento de Dados: Use o recurso de Encaminhamento de Dados do mecanismo de regras para criar regras que encaminhem dados específicos do dispositivo para outros serviços de nuvem, como Simple Message Queue (formerly MNS), ApsaraDB for RDS, Tablestore, Function Compute, Time Series Database (TSDB), Lindorm, DataHub e Message Queue for Apache RocketMQ. Para mais informações, consulte Encaminhamento de Dados (Legado) e Encaminhamento de Dados (Novo).

  • APIs da Nuvem:

    API

    Descrição

    QueryDevicePropertyStatus

    Consulta todos os snapshots de propriedades de um dispositivo especificado.

    QueryDeviceOriginalPropertyStatus

    Consulta os snapshots originais de propriedades reportados por um dispositivo especificado. Inclui todas as propriedades, independentemente de terem passado pela verificação do modelo TSL.

    QueryDeviceOriginalPropertyData

    Consulta os registros originais de propriedades reportados por um dispositivo especificado. Inclui todas as propriedades, independentemente de terem passado pela verificação do modelo TSL.

    QueryDeviceOriginalEventData

    Consulta os registros originais de eventos reportados por um dispositivo especificado. Inclui todos os eventos, independentemente de terem passado pela verificação do modelo TSL.

    QueryDeviceOriginalServiceData

    Consulta os registros originais de chamadas de serviço de um dispositivo especificado. Inclui todos os serviços, independentemente de terem passado pela verificação do modelo TSL.

    QueryDeviceDesiredProperty

    Consulta os valores desejados das propriedades de um dispositivo especificado.

    QueryDevicePropertyData

    Consulta os dados de uma única propriedade para um dispositivo especificado dentro de um intervalo de tempo definido.

    QueryDevicePropertiesData

    Consulta os dados de várias propriedades para um dispositivo especificado dentro de um intervalo de tempo definido.

    QueryDeviceEventData

    Consulta os registros de eventos de um dispositivo especificado.

    QueryDeviceServiceData

    Consulta os registros de chamadas de serviço de um dispositivo especificado.

Dados do modelo TSL ausentes no console

Quando um dispositivo reporta dados do modelo TSL, o IoT Platform verifica esses dados com base no modelo TSL definido e no método de validação de dados configurado. Dados que falham na verificação ou cuja validação é ignorada não aparecem na aba TSL Model Data da página Device Details do dispositivo no console do IoT Platform. Para mais informações, consulte Validar dados do modelo TSL.

Defina o método de validação de dados ao criar um produto. Para mais informações, consulte Criar um produto.

Status dos dados TSL não atualizado após comandos

Para solucionar o problema, investigue os seguintes aspectos:

  • Lado do dispositivo: Certifique-se de que o dispositivo esteja conectado corretamente ao IoT Platform. Para informações sobre como conectar um dispositivo, consulte Baixar SDKs de dispositivo.

    Importante

    Um comando bem-sucedido do IoT Platform confirma apenas que a solicitação 'defina' foi enviada da nuvem; isso não garante a execução pelo dispositivo. Para que a propriedade seja considerada definida com sucesso, o dispositivo deve aplicar o novo valor e, em seguida, reportar esse valor de volta à plataforma.

    Use o emulador de dispositivo ou a ferramenta MQTT.fx para simular um dispositivo online e, em seguida, use o recurso de depuração online para testar as capacidades de comunicação do dispositivo. Para mais informações, consulte:

  • Lado da nuvem do IoT Platform:

    • Certifique-se de que a propriedade para a qual você deseja set um valor ou um desired value tenha acesso de leitura/gravação.

    • Garanta que as mensagens do modelo TSL sejam analisadas corretamente.

      Os dados aparecem no estado de execução do modelo TSL somente se as mensagens do modelo TSL forem analisadas corretamente. Para mais informações, consulte Modelos TSL e Analisar mensagens do modelo TSL.

    Faça login no console do IoT Platform. Na instância, acesse a página Maintenance > Device Log > Cloud run log para visualizar logs e verificar se o dispositivo recebeu a mensagem com sucesso. Para mais informações, consulte Cloud run log.

Dados de temperatura ausentes no console

Os dados do modelo TSL não aparecerão se a propriedade do modelo TSL não estiver definida ou se o formato dos dados reportados estiver incorreto.

Siga estas etapas para garantir que os dados sejam exibidos corretamente:

  1. Defina uma propriedade do modelo TSL chamada Temperature para o produto que contém o dispositivo. Para mais informações, consulte Adicionar recursos do modelo TSL.

  2. O dispositivo deve reportar dados de propriedades usando o tópico de comunicação do modelo TSL e o formato de dados corretos. Para mais informações sobre o desenvolvimento no lado do dispositivo, consulte Conexão do dispositivo.

    • Se você selecionou ICA Standard Data Format (Alink JSON) como formato de dados ao criar o produto, o dispositivo deve usar o tópico /sys/${productKey}/${deviceName}/thing/event/property/post e reportar dados no seguinte formato:

      {
          "id": "123",
          "version": "1.0",
          "sys":{
              "ack":0
          },
          "params": {
              "temperature": {
                  "value": 35,
                  "time": 1524448722000
              }
          },
          "method": "thing.event.property.post"
      }

      Para mais informações sobre os campos, consulte Dispositivo reporta propriedades.

    • Se você selecionou Passthrough/Custom como formato de dados ao criar o produto, configure um script para analisar as mensagens do modelo TSL.

      O dispositivo deve usar o tópico /sys/${productKey}/${deviceName}/thing/model/up_raw para transmitir dados em formato hexadecimal. Para mais informações, consulte Dispositivo reporta propriedades e Analisar mensagens do modelo TSL.

Importar recursos do modelo TSL rapidamente

Sim. O IoT Platform oferece os seguintes métodos para adicionar recursos do modelo TSL em lote:

  • Adicionar modelos TSL em lote: No console do IoT Platform, copie recursos do modelo TSL de outro produto em lote ou importe um arquivo TSL.

  • CreateThingModel: Use um SDK do lado do servidor para chamar esta API da nuvem e adicione recursos do modelo TSL usando o parâmetro ThingModelJson. Para mais informações sobre o formato de dados ThingModelJson, consulte Formato de dados ThingModelJson.