Cenário: Fazer Upgrade de uma Instância Digital Twin para uma Versão Compatível do Modelo Digital Twin

Faça upgrade de uma instância de gêmeo digital criando uma versão secundária compatível do modelo de gêmeo digital, criando um novo adaptador de gêmeo digital para essa versão de modelo de gêmeo digital e atualizando a instância de gêmeo digital para usar o novo adaptador de gêmeo digital sem excluir a instância de gêmeo digital.

Use esse cenário quando um dispositivo de substituição ou atualizado enviar uma forma de payload aditiva, como um novo valor de telemetria, e você quiser preservar a continuidade da instância de gêmeo digital existente. O modelo digital twin continua a ser o contrato para dados normalizados. O adaptador de gêmeo digital mapeia a carga útil do dispositivo de entrada para esse contrato.

O OCI IoT suporta a atualização de uma instância de gêmeo digital ativa para outro adaptador de gêmeo digital quando o novo adaptador de gêmeo digital faz referência à mesma versão de modelo de gêmeo digital ou a uma versão secundária superior compatível do mesmo modelo de gêmeo digital. Este cenário mostra como construir em um modelo de gêmeo digital HVAC base e como criar uma nova versão de modelo de gêmeo digital HVAC com um sensor adicional, mantendo o modelo de gêmeo digital anterior intacto.

As principais alterações de versão do modelo de gêmeo digital são incompatíveis para este fluxo de upgrade. Os downgrades não são suportados.

HVAC significa Aquecimento, Ventilação e Ar Condicionado, referindo-se aos diferentes sistemas usados em edifícios para regular a temperatura interna, a umidade e a qualidade geral do ar.

Tarefas

Práticas Recomendadas

  • Adicionando valores a um modelo de gêmeo digital existente: Use as etapas deste cenário para criar uma versão DTMI menor para alterações aditivas do modelo de gêmeo digital, por exemplo, altere a versão número de 1 a 1.1, isso mantém a versão principal do DTMI a mesma ao atualizar uma instância de gêmeo digital existente para um novo adaptador de gêmeo digital, conforme suportado na Especificação DTDL v3:

    dtmi:com:oracle:example:hvac;1 a dtmi:com:oracle:example:hvac;1.1

  • Criando novos valores em seu modelo de gêmeo digital e, em seguida, criar uma nova instância de gêmeo digital: use uma nova versão DTMI principal, quando precisar criar um modelo de gêmeo digital com valores diferentes. Para esse tipo de atualização, você precisa criar uma nova instância de gêmeo digital com uma alteração de versão principal do novo modelo de gêmeo digital, por exemplo:

    dtmi:com:oracle:example:hvac;1 a dtmi:com:oracle:example:hvac;2

  • Herança recomendada: Para atualizações secundárias, adicionando novos valores, é recomendável usar a herança para alterações aditivas no modelo de gêmeo digital, como um modelo de gêmeo digital que estende a versão anterior do modelo de gêmeo digital. Em vez de redefinir atributos básicos como @id, localização ou status principal para cada nova versão de modelo de gêmeo digital, o novo modelo de gêmeo digital herda os valores automaticamente, reduzindo erros e economizando tempo de desenvolvimento.
  • Mantenha a telemetria, as propriedades, os comandos, os relacionamentos e os esquemas existentes compatíveis. Não renomeie, remova, restrinja ou altere os elementos de contrato existentes durante uma pequena atualização.
  • Crie um novo adaptador de gêmeo digital para a nova versão de modelo de gêmeo digital e mantenha o adaptador de gêmeo digital anterior disponível para rollback até que os dispositivos atualizados sejam validados.
  • Testar payloads com telemetria representativa antes de um rollout de produção.

Compreendendo os Arquivos neste Cenário

  • hvac-model.json: Modelo gêmeo digital da base DTDL para a telemetria da temperatura e da umidade.
  • hvac-envelope.json: Envelope do adaptador gêmeo digital base que extrai timeObserved.
  • hvac-routes.json: Mapeamento de rota do adaptador gêmeo digital base para temperatura e umidade.
  • hvac-e-model.json: Versão compatível do modelo digital twin DTDL menor que adiciona telemetria de consumo de energia.
  • hvac-e-envelope.json: Envelope de adaptador de gêmeo digital atualizado que aceita o campo de telemetria extra.
  • hvac-e-routes.json: Mapeamento de rota de adaptador duplo digital atualizado para temperatura, umidade e consumo de energia.

Etapa 1: Revisar Regras Compatíveis de Controle de Versão do Modelo Digital Twin

Quando você cria um modelo de gêmeo digital, o OCI IoT verifica se já existe um modelo de gêmeo digital ativo para a mesma versão principal.

Se houver um, um novo modelo de gêmeo digital de versão secundária deverá ser estritamente aditivo com um número de versão e valores compatíveis. Quando você atualizar uma instância de gêmeo digital para usar outro adaptador de gêmeo digital, o adaptador deverá fazer referência à mesma versão de modelo de gêmeo digital ou a uma versão secundária superior compatível.

As seguintes verificações de compatibilidade se aplicam entre a versão antiga do modelo de gêmeo digital e a nova versão do modelo de gêmeo digital:

Quando você cria uma interface de gêmeo digital e uma versão de modelo atualizadas, a nova versão secundária deve ser exatamente a versão secundária anterior mais .1, por exemplo:

dtmi:com:oracle:example:hvac;1 a dtmi:com:oracle:example:hvac;1.1

Todos os valores da interface @id, incluindo o esquema e o caminho, devem corresponder; a nova versão secundária, as únicas coisas que podem ser novas, são o número da versão com incrementos menores e quaisquer valores adicionais que sejam adicionados ao modelo existente. As atualizações só são compatíveis quando a versão principal permanece constante e permanece inalterada.

Elemento DTDLRegra de CompatibilidadeObservação
InterfaceOs valores extends existentes devem permanecer iguais. Extensões adicionais são permitidas. Todo o conteúdo do modelo existente deve permanecer com o mesmo nome. Novos conteúdos são permitidos. As coleções de esquemas devem ter o mesmo tamanho e os mesmos caminhos de ID de esquema.A adição de esquemas de interface reutilizáveis não é suportada e rejeitada.
TelemetryA telemetria existente deve manter o mesmo nome, classe DTDL, tipos semânticos ou adjuntos, caminho @id, restrições de unidade, esquema e validação.comment, displayName e description não são comparados.
PropertyAs propriedades existentes devem manter as mesmas regras de conteúdo, definição gravável, esquema, unidade e restrições de validação.Aplica-se a propriedades de interface e propriedades de relacionamento.
CommandOs comandos existentes devem permanecer. A presença de solicitação e resposta, os nomes, os esquemas e as restrições de validação devem corresponder.Adicionar, remover ou alterar uma solicitação ou resposta é incompatível.
RelationshipAs relações existentes devem manter a mesma definição gravável, alvo, multiplicidade mínima, multiplicidade máxima e propriedades de relação existentes.Novas propriedades de relacionamento são permitidas.
ComponentO esquema do componente deve permanecer o mesmo.A interface do componente referenciado não é comparada recursivamente nesta verificação.
SchemaO tipo de esquema concreto deve permanecer o mesmo. Os esquemas primitive, geospatial, array, enum, map, object e field existentes devem manter tipos compatíveis e restrições de validação.Primitive-to-object, enum-to-map e alterações semelhantes são incompatíveis.
EnumOs valores enum existentes devem permanecer com o mesmo nome e valor literal.Novos valores enum são permitidos.
ObjectOs campos existentes devem permanecer. Cada restrição de validação e esquema de campo existente deve corresponder.Novos campos object são permitidos.
Interface schemasCada esquema reutilizável antigo deve existir no novo modelo de gêmeo digital pelo mesmo esquema e caminho DTMI e passar na comparação específica do esquema.A remoção ou alteração de um esquema reutilizável existente é incompatível. Novos esquemas reutilizáveis são permitidos quando suportados.

Etapa 2: Criar o Modelo Gêmeo Digital HVAC Base

Crie o modelo gêmeo digital base com telemetria de temperatura e umidade.

  • Use a Console para criar o modelo de gêmeo digital HVAC base no domínio IoT.

    1. Na página de lista Domínios IoT, abra o domínio IoT com o qual você deseja trabalhar.
    2. Selecione a guia Modelos gêmeos digitais e selecione Criar.
    3. Faça upload ou cole o JSON DTDL do hvac-model.json.
    4. Selecione Criar.
    hvac-model.json
    {
      "@context": [
        "dtmi:dtdl:context;3"
      ],
      "@id": "dtmi:com:oracle:example:hvac;1",
      "@type": "Interface",
      "displayName": "HVAC",
      "description": "A digital twin model for HVAC",
      "contents": [
        {
          "@type": "Telemetry",
          "name": "temperature",
          "schema": "integer"
        },
        {
          "@type": "Telemetry",
          "name": "humidity",
          "schema": "integer"
        }
      ]
    }
  • Use o comando oci iot digital-twin-model create para criar o modelo de gêmeo digital HVAC base no domínio IoT.

    oci iot digital-twin-model create \
      --iot-domain-id <iot-domain-OCID> \
      --spec file://hvac-model.json
    hvac-model.json
    {
      "@context": [
        "dtmi:dtdl:context;3"
      ],
      "@id": "dtmi:com:oracle:example:hvac;1",
      "@type": "Interface",
      "displayName": "HVAC",
      "description": "A digital twin model for HVAC",
      "contents": [
        {
          "@type": "Telemetry",
          "name": "temperature",
          "schema": "integer"
        },
        {
          "@type": "Telemetry",
          "name": "humidity",
          "schema": "integer"
        }
      ]
    }
  • Execute a operação CreateDigitalTwinModel para criar o modelo de gêmeo digital HVAC base no domínio IoT.

    Use o mesmo payload DTDL mostrado em hvac-model.json quando você chamar a API.

Etapa 3: Criar o Adaptador Gêmeo Digital HVAC Base

Crie um adaptador de gêmeo digital que faça referência à versão de modelo de gêmeo digital HVAC base e mapeie a carga útil do dispositivo para os campos de telemetria de modelo de gêmeo digital.

  • Use a Console para criar o adaptador de gêmeo digital HVAC base e fazer upload ou colar o envelope de entrada e rotear JSON.

    1. Na página de lista Domínios IoT, abra o domínio IoT com o qual você deseja trabalhar.
    2. Selecione a guia Adaptadores gêmeos digitais e, em seguida, selecione Criar.
    3. Informe um nome e uma descrição opcional para o adaptador de gêmeo digital HVAC base.
    4. Selecione o modelo de gêmeo digital HVAC base com o DTMI dtmi:com:oracle:example:hvac;1.
    5. Ative Especificar envelope e rotas de entrada e, em seguida, faça upload ou cole hvac-envelope.json e hvac-routes.json.
    6. Selecione Criar.
    hvac-envelope.json
    {
      "referenceEndpoint": "/telemetry",
      "referencePayload": {
        "dataFormat": "JSON",
        "data": {
          "time": 1773768299143534,
          "temp": 0,
          "hum": 0
        }
      },
      "envelopeMapping": {
        "timeObserved": "$.time"
      }
    }
    hvac-routes.json
    [
      {
        "condition": "*",
        "payloadMapping": {
          "$.temperature": "$.temp",
          "$.humidity": "$.hum"
        }
      }
    ]
  • Use o comando oci iot digital-twin-adapter create para criar o adaptador de gêmeo digital HVAC base.

    oci iot digital-twin-adapter create \
      --iot-domain-id <iot-domain-OCID> \
      --digital-twin-model-spec-uri "dtmi:com:oracle:example:hvac;1" \
      --inbound-envelope file://hvac-envelope.json \
      --inbound-routes file://hvac-routes.json
    hvac-envelope.json
    {
      "referenceEndpoint": "/telemetry",
      "referencePayload": {
        "dataFormat": "JSON",
        "data": {
          "time": 1773768299143534,
          "temp": 0,
          "hum": 0
        }
      },
      "envelopeMapping": {
        "timeObserved": "$.time"
      }
    }
    hvac-routes.json
    [
      {
        "condition": "*",
        "payloadMapping": {
          "$.temperature": "$.temp",
          "$.humidity": "$.hum"
        }
      }
    ]
  • Execute a operação CreateDigitalTwinAdapter para criar o adaptador de gêmeo digital HVAC base no domínio IoT.

    Use os mesmos payloads de envelope de entrada e rotas de entrada mostrados nos arquivos para download.

Etapa 4: Criar a Instância Digital Twin

Crie uma instância de gêmeo digital que use o adaptador de gêmeo digital HVAC base. A chave externa é o nome de usuário que o dispositivo usa quando se conecta.

  • Use a Console para criar a instância de gêmeo digital para o dispositivo HVAC.

    1. Na página de lista Domínios IoT, abra o domínio IoT com o qual você deseja trabalhar.
    2. Selecione a guia Instâncias gêmeas digitais e, em seguida, Criar.
    3. Informe LG HVAC 1 como o nome para exibição.
    4. Selecione o adaptador de gêmeo digital HVAC base criado na Etapa 3.
    5. Selecione o ID de autenticação ou cole o OCID do certificado ou segredo.
    6. Informe hvac1 como a chave externa.
    7. Selecione Criar.
  • Use o comando oci iot digital-twin-instance create para criar a instância de gêmeo digital.

    oci iot digital-twin-instance create \
      --iot-domain-id <iot-domain-OCID> \
      --display-name "LG HVAC 1" \
      --auth-id <certificate-or-secret-OCID> \
      --digital-twin-adapter-id <base-digital-twin-adapter-OCID> \
      --external-key hvac1
  • Execute a operação CreateDigitalTwinInstance para criar a instância de gêmeo digital.

    Use o OCID do adaptador de gêmeo digital HVAC base e o ID de autenticação para as credenciais do dispositivo.

Etapa 5: Enviar Telemetria para a Instância Digital Twin Base

Envie um payload que corresponda ao mapeamento do adaptador de gêmeo digital base e, em seguida, obtenha o conteúdo da instância de gêmeo digital para verificar a telemetria normalizada.

  • Use MQTTX para enviar telemetria sobre MQTTS.

    mqttx pub \
      -t "data" \
      -m '{
        "temp": 70,
        "hum": 60
      }' \
      -u hvac1 \
      -P '<secret-contents>'
  • Use curl para enviar telemetria por HTTPS. Este exemplo usa a autenticação básica HTTP com a chave externa da instância do gêmeo digital e o conteúdo do segredo de texto sem formatação.

    curl -i -u "hvac1:<secret-contents>" \
      -H "Content-Type: application/json" \
      -X POST \
      "https://<domain-short-id>.device.iot.<region>.oci.oraclecloud.com/data" \
      -d '{
        "temp": 70,
        "hum": 60
      }'

Obtenha o conteúdo da instância do gêmeo digital para verificar os valores normalizados mais recentes.

  • Na guia Instâncias gêmeas digitais, abra a página de detalhes da instância de gêmeos digitais para LG HVAC 1 e revise os valores de conteúdo mais recentes.

  • Use o comando oci iot digital-twin-instance get-content para obter conteúdo da instância de gêmeo digital.

    oci iot digital-twin-instance get-content \
      --digital-twin-instance-id <lg-hvac-1-OCID>
  • Execute a operação GetDigitalTwinInstanceContent para obter conteúdo da instância de gêmeo digital.

Etapa 6: Criar uma Versão de Modelo de Gêmeo Digital HVAC Menor Compatível

Crie uma versão compatível do modelo de gêmeo digital secundário que extends o modelo de gêmeo digital HVAC base e adicione telemetria para consumo de energia. A versão principal permanece 1 e a versão secundária aumenta para 1.1.

  • Use a Console para criar a versão secundária compatível do modelo de gêmeo digital HVAC no domínio IoT.

    1. Na página de lista Domínios IoT, abra o domínio IoT com o qual você deseja trabalhar.
    2. Selecione a guia Modelos gêmeos digitais e selecione Criar.
    3. Faça upload ou cole o JSON DTDL do hvac-e-model.json.
    4. Selecione Criar.
    hvac-e-model.json
    {
      "@context": [
        "dtmi:dtdl:context;3"
      ],
      "@id": "dtmi:com:oracle:example:hvac;1.1",
      "@type": "Interface",
      "extends": "dtmi:com:oracle:example:hvac;1",
      "displayName": "HVACe",
      "description": "A digital twin model for HVACe",
      "contents": [
        {
          "@type": "Telemetry",
          "name": "energyConsumption",
          "schema": "integer"
        }
      ]
    }
  • Use o comando oci iot digital-twin-model create para criar a versão secundária do modelo de gêmeo digital HVAC compatível.

    oci iot digital-twin-model create \
      --iot-domain-id <iot-domain-OCID> \
      --spec file://hvac-e-model.json
    hvac-e-model.json
    {
      "@context": [
        "dtmi:dtdl:context;3"
      ],
      "@id": "dtmi:com:oracle:example:hvac;1.1",
      "@type": "Interface",
      "@extends": "dtmi:com:oracle:example:hvac;1",
      "displayName": "HVACe",
      "description": "A digital twin model for HVACe",
      "contents": [
        {
          "@type": "Telemetry",
          "name": "energyConsumption",
          "schema": "integer"
        }
      ]
    }
  • Execute a operação CreateDigitalTwinModel para criar a versão secundária compatível do modelo de gêmeo digital HVAC no domínio IoT.

    Use o mesmo payload DTDL mostrado em hvac-e-model.json quando você chamar a API.

Etapa 7: Criar um Adaptador Digital Twin para a Nova Versão do Modelo Digital Twin

Crie um novo adaptador de gêmeo digital que faça referência à versão de modelo de gêmeo digital HVAC menor compatível e mapeie o campo de telemetria adicional.

  • Use a Console para criar o adaptador de gêmeo digital HVAC atualizado e fazer upload ou colar o envelope de entrada e rotear JSON.

    1. Na página de lista Domínios IoT, abra o domínio IoT com o qual você deseja trabalhar.
    2. Selecione a guia Adaptadores gêmeos digitais e, em seguida, selecione Criar.
    3. Informe um nome e uma descrição opcional para o adaptador de gêmeo digital HVAC atualizado.
    4. Selecione a versão do modelo de gêmeo digital HVAC com o DTMI dtmi:com:oracle:example:hvac;1.1.
    5. Ative Especificar envelope e rotas de entrada e, em seguida, faça upload ou cole hvac-e-envelope.json e hvac-e-routes.json.
    6. Selecione Criar.
    hvac-e-envelope.json
    {
      "referenceEndpoint": "/telemetry",
      "referencePayload": {
        "dataFormat": "JSON",
        "data": {
          "time": 1773768299143534,
          "temp": 0,
          "hum": 0,
          "ec": 0
        }
      },
      "envelopeMapping": {
        "timeObserved": "$.time"
      }
    }
    hvac-e-routes.json
    [
      {
        "condition": "*",
        "payloadMapping": {
          "$.temperature": "$.temp",
          "$.humidity": "$.hum",
          "$.energyConsumption": "$.ec"
        }
      }
    ]
  • Use o comando oci iot digital-twin-adapter create para criar o adaptador de gêmeo digital HVAC atualizado.

    oci iot digital-twin-adapter create \
      --iot-domain-id <iot-domain-OCID> \
      --digital-twin-model-spec-uri "dtmi:com:oracle:example:hvac;1.1" \
      --inbound-envelope file://hvac-e-envelope.json \
      --inbound-routes file://hvac-e-routes.json
    hvac-e-envelope.json
    {
      "referenceEndpoint": "/telemetry",
      "referencePayload": {
        "dataFormat": "JSON",
        "data": {
          "time": 1773768299143534,
          "temp": 0,
          "hum": 0,
          "ec": 0
        }
      },
      "envelopeMapping": {
        "timeObserved": "$.time"
      }
    }
    hvac-e-routes.json
    [
      {
        "condition": "*",
        "payloadMapping": {
          "$.temperature": "$.temp",
          "$.humidity": "$.hum",
          "$.energyConsumption": "$.ec"
        }
      }
    ]
  • Execute a operação CreateDigitalTwinAdapter para criar o adaptador de gêmeo digital HVAC atualizado no domínio IoT.

    Use os mesmos payloads de envelope de entrada e rotas de entrada mostrados nos arquivos para download.

Etapa 8: Atualizar a Instância Digital Twin para Usar o Novo Adaptador Digital Twin

Atualize a instância de gêmeo digital existente para fazer referência ao adaptador de gêmeo digital para a versão de modelo de gêmeo digital secundário compatível. A instância de gêmeo digital mantém a mesma identidade, chave externa e continuidade de dados enquanto começa a aceitar cargas úteis para o novo contrato de modelo de gêmeo digital.

Observação

Use uma nova instância de gêmeo digital em vez de atualizar a instância de gêmeo digital existente quando o modelo de gêmeo digital de substituição usar uma nova versão principal, remover elementos existentes, renomear campos, restringir restrições ou alterar o contrato de modelo de gêmeo digital de maneira não aditiva.
  • Use a Console para atualizar a instância de gêmeo digital existente para usar o adaptador de gêmeo digital HVAC atualizado.

    1. Na página de lista Domínios IoT, abra o domínio IoT com o qual você deseja trabalhar.
    2. Selecione a guia Instâncias gêmeas digitais.
    3. Abra a página de detalhes da instância do gêmeo digital para LG HVAC 1.
    4. Selecione Editar.
    5. Altere o adaptador de gêmeo digital para o adaptador de gêmeo digital HVAC atualizado criado na Etapa 7.
    6. Salve as alterações.
  • Use o comando oci iot digital-twin-instance update para atualizar a instância do gêmeo digital.

    oci iot digital-twin-instance update \
      --digital-twin-instance-id <lg-hvac-1-OCID> \
      --digital-twin-adapter-id <upgraded-digital-twin-adapter-OCID>
  • Execute a operação UpdateDigitalTwinInstance para atualizar a instância do gêmeo digital.

    Defina o ID do adaptador de gêmeo digital como o OCID do adaptador de gêmeo digital HVAC atualizado.

Etapa 9: Validar a Telemetria da Instância Digital Twin Após o Upgrade

Envie um payload que inclua o novo campo de telemetria e verifique se o conteúdo da instância de gêmeo digital inclui os valores mapeados pelo adaptador de gêmeo digital atualizado.

Se a validação falhar, compare o modelo de gêmeo digital DTMI, o adaptador de gêmeo digital --digital-twin-model-spec-uri, o mapeamento de envelope e o mapeamento de payload de rota. O adaptador de gêmeo digital atualizado deve fazer referência à versão do modelo de gêmeo digital secundário compatível e mapear os campos de payload para os nomes definidos por esse modelo de gêmeo digital.

  • Use MQTTX para enviar telemetria sobre MQTTS.

    mqttx pub \
      -t "data" \
      -m '{
        "temp": 70,
        "hum": 60,
        "ec": 38
      }' \
      -u hvac1 \
      -P '<secret-contents>'
  • Use curl para enviar telemetria por HTTPS. Este exemplo usa a autenticação básica HTTP com a chave externa da instância do gêmeo digital e o conteúdo do segredo de texto sem formatação.

    curl -i -u "hvac1:<secret-contents>" \
      -H "Content-Type: application/json" \
      -X POST \
      "https://<domain-short-id>.device.iot.<region>.oci.oraclecloud.com/data" \
      -d '{
        "temp": 70,
        "hum": 60,
        "ec": 38
      }'

Etapa Opcional: Obter Conteúdo

Obtenha o conteúdo da instância do gêmeo digital para verificar os valores normalizados mais recentes.

  • Na guia Instâncias gêmeas digitais, abra a página de detalhes da instância de gêmeos digitais para LG HVAC 1 e revise os valores de conteúdo mais recentes.

  • Use o comando oci iot digital-twin-instance get-content para obter conteúdo da instância de gêmeo digital.

    oci iot digital-twin-instance get-content \
      --digital-twin-instance-id <lg-hvac-1-OCID>
  • Execute a operação GetDigitalTwinInstanceContent para obter conteúdo da instância de gêmeo digital.

Perguntas Frequentes

Esta seção de Perguntas Frequentes descreve as atualizações compatíveis do modelo de gêmeo digital e as formas de carga útil aditiva.

O que é uma forma de carga útil aditiva?
Uma forma de payload aditiva mantém os campos de payload existentes e adiciona novos campos sem alterar os nomes de campo, tipos de dados, significado, unidades ou restrições existentes. Nesse cenário, o payload base { "temp": 70, "hum": 60 } se torna { "temp": 70, "hum": 60, "ec": 38 }. A carga útil é aditiva porque temp e hum ainda significam a mesma coisa e o dispositivo só adiciona ec para consumo de energia.
Como uma forma de carga útil aditiva se relaciona com a versão do modelo digital twin?
A carga útil do dispositivo e o modelo de gêmeo digital devem evoluir juntos. A nova versão do modelo de gêmeo digital adiciona energyConsumption enquanto mantém a telemetria temperature e humidity compatível. O adaptador de gêmeo digital atualizado mapeia o novo campo de payload ec para o novo campo de modelo de gêmeo digital energyConsumption.
O que não é aditivo?
Uma alteração não será aditiva se renomear um campo existente, remover um campo existente, alterar um tipo de esquema, alterar unidades ou significado, restringir restrições de validação, alterar contratos de solicitação de comando ou resposta ou mover para uma versão diferente do modelo gêmeo digital principal. Por exemplo, alterar hum para humidityPct ou alterar temp de um inteiro para uma string não é aditivo.
Os dispositivos antigos podem continuar enviando a carga útil original?
Sim, os dispositivos antigos podem continuar enviando os campos originais se o mapeamento do adaptador de gêmeo digital atualizado ainda os tratar. O novo campo só é preenchido quando o dispositivo atualizado o envia e o adaptador de gêmeo digital o mapeia para o novo campo de modelo de gêmeo digital.

Diagnóstico e Solução de Problemas

A solicitação de criação do modelo de gêmeo digital foi rejeitada

A nova versão secundária do modelo de gêmeo digital pode ter alterado um elemento de contrato existente em vez de apenas adicionar novo conteúdo. Compare os modelos de gêmeos digitais DTDL antigos e novos. As restrições de telemetria, propriedades, comandos, relacionamentos, esquemas e validação existentes devem permanecer compatíveis.

A solicitação de atualização da instância do gêmeo digital foi rejeitada

O novo adaptador de gêmeo digital pode fazer referência a uma versão de modelo de gêmeo digital incompatível, a uma versão principal diferente ou a um downgrade. Confirme se o adaptador de gêmeo digital usa a mesma versão de modelo de gêmeo digital ou a próxima versão secundária superior compatível, como dtmi:com:oracle:example:hvac;1.1.

O upgrade foi bem-sucedido, mas o novo campo não foi armazenado

A instância de gêmeo digital ainda pode usar o adaptador de gêmeo digital antigo ou o mapeamento de rota atualizado pode não mapear o novo campo de payload. Verifique o OCID do adaptador de gêmeo digital da instância de gêmeo digital e verifique se o hvac-e-routes.json mapeia $.energyConsumption para $.ec.

A telemetria existente está ausente após o upgrade

O mapeamento do adaptador digital twin atualizado pode ter eliminado os mapeamentos de payload existentes ou alterado o caminho do payload. Mantenha os mapeamentos existentes para temperature e humidity e adicione o novo mapeamento para energyConsumption.

Os dispositivos antigos falham depois que a instância de gêmeo digital é movida para o adaptador de gêmeo digital atualizado

O adaptador de gêmeos digitais atualizado pode exigir o novo campo ou não suportar mais a forma de payload original. Torne o mapeamento do adaptador gêmeo digital tolerante a cargas úteis que não incluam o novo campo ou mova dispositivos em grupos menores após validar cada forma de carga útil do dispositivo.