Szenario: Upgrade einer digitalen Zwillingsinstanz auf eine kompatible digitale Zwillingsmodellversion
Aktualisieren Sie eine digitale Zwillingsinstanz, indem Sie eine kompatible Nebenversion des digitalen Zwillingsmodells erstellen, einen neuen digitalen Zwillingsadapter für diese digitale Zwillingsmodellversion erstellen und dann die digitale Zwillingsinstanz aktualisieren, um den neuen digitalen Zwillingsadapter zu verwenden, ohne die digitale Zwillingsinstanz zu löschen.
Verwenden Sie dieses Szenario, wenn ein Ersatzgerät oder ein aktualisiertes Gerät eine additive Payload-Ausprägung sendet, wie einen neuen Telemetriewert, und Sie die Kontinuität für die vorhandene Instanz des digitalen Zwillings beibehalten möchten. Das digitale Zwillingsmodell bleibt der Vertrag für normalisierte Daten. Der digitale Zwillingsadapter ordnet die eingehende Geräte-Payload diesem Vertrag zu.
OCI IoT unterstützt die Aktualisierung einer aktiven digitalen Zwillingsinstanz auf einen anderen digitalen Zwillingsadapter, wenn der neue digitale Zwillingsadapter dieselbe digitale Zwillingsmodellversion oder eine kompatible kleinere Version desselben digitalen Zwillingsmodells referenziert. Dieses Szenario zeigt, wie man auf einem digitalen HLK-Zwillingsmodell aufbaut und wie man eine neue digitale HLK-Zwillingsmodellversion mit einem zusätzlichen Sensor erstellt, während das vorherige digitale Zwillingsmodell intakt bleibt.
Änderungen an wichtigen Versionen des digitalen Zwillingsmodells sind für diesen Upgradeablauf nicht kompatibel. Downgrades werden nicht unterstützt.
HVAC steht für Heizung, Lüftung und Klimaanlage und bezieht sich auf die verschiedenen Systeme, die in Gebäuden verwendet werden, um Innentemperatur, Luftfeuchtigkeit und Gesamtluftqualität zu regulieren.
Aufgaben
- Überprüfen Sie kompatible Modellversionierungsregeln für digitale Zwillinge.
- Erstellen Sie das digitale Basismodell für HVAC.
- Erstellen Sie den digitalen Zwillingsadapter für HVAC.
- Erstellen Sie die Digital Twin-Instanz.
- Senden Sie die Telemetrie an die Basisinstanz des digitalen Zwillings.
- Erstellen Sie eine kompatible Version eines kleineren digitalen Zwillingsmodells.
- Erstellen Sie einen digitalen Zwillingsadapter für die neue Modellversion des digitalen Zwillings.
- Aktualisieren Sie die digitale Zwillingsinstanz, um den neuen digitalen Zwillingsadapter zu verwenden.
- Telemetrie der digitalen Zwillingsinstanz nach dem Upgrade validieren.
- Häufig gestellte Fragen anzeigen.
- Beheben Sie Probleme beim Upgrade des digitalen Zwillingsmodells.
Best Practices
- Werte zu einem vorhandenen digitalen Zwillingsmodell hinzufügen: Mit den Schritten in diesem Szenario können Sie eine kleine DTMI-Version für Modelländerungen additiver digitaler Zwillinge erstellen, z.B. die Version ändern Durch die Nummer von
1bis1.1bleibt die DTMI-Hauptversion beim Aktualisieren einer vorhandenen digitalen Zwillingsinstanz auf einen neuen digitalen Zwillingsadapter gleich, wie in der DTDL v3-Spezifikation unterstützt:dtmi:com:oracle:example:hvac;1bisdtmi:com:oracle:example:hvac;1.1 - Neue Werte in Ihrem digitalen Zwillingsmodell erstellen und dann eine neue digitale Zwillingsinstanz erstellen: Verwenden Sie eine neue größere DTMI-Version, wenn Sie ein digitales Zwillingsmodell mit verschiedenen Werten erstellen müssen. Für diesen Aktualisierungstyp müssen Sie eine neue Instanz für digitale Zwillinge mit einer Hauptversionsänderung für das neue digitale Zwillingsmodell erstellen. Beispiel:
dtmi:com:oracle:example:hvac;1bisdtmi:com:oracle:example:hvac;2 - Vererbung empfohlen: Bei geringfügigen Aktualisierungen, bei denen neue Werte hinzugefügt werden, wird empfohlen, die Vererbung für Modelländerungen additiver digitaler Zwillinge zu verwenden, wie z.B. ein Modell des digitalen Zwillings, das die vorherige Modellversion des digitalen Zwillings erweitert. Anstatt grundlegende Attribute wie
@id, Standort oder Core-Status für jede neue Modellversion des digitalen Zwillings neu zu definieren, erbt das neue digitale Zwillingsmodell die Werte automatisch, wodurch Fehler reduziert und Entwicklungszeit eingespart wird. - Halten Sie vorhandene Telemetrie, Eigenschaften, Befehle, Beziehungen und Schemas kompatibel. Bei einer geringfügigen Aktualisierung dürfen Sie vorhandene Vertragselemente nicht umbenennen, entfernen, eingrenzen oder ändern.
- Erstellen Sie einen neuen digitalen Zwillingsadapter für die neue digitale Zwillingsmodellversion, und halten Sie den vorherigen digitalen Zwillingsadapter für das Rollback verfügbar, bis die aktualisierten Geräte validiert sind.
- Testen Sie Payloads mit repräsentativer Telemetrie vor einem Produktions-Rollout.
Dateien in diesem Szenario
hvac-model.json: Digitales Basis-DTDL-Doppelmodell für Temperatur- und Feuchtigkeitstelemetrie.hvac-envelope.json: Digitaler Basis-Doppeladapter-Umschlag, dertimeObservedextrahiert.hvac-routes.json: Basis-Digital-Doppeladapter-Routenzuordnung für Temperatur und Feuchtigkeit.hvac-e-model.json: Kompatible kleine DTDL digitale Zwillingsmodellversion, die Energieverbrauchstelemetrie hinzufügt.hvac-e-envelope.json: Upgrade des digitalen Zwillingsadapters, der das zusätzliche Telemetriefeld akzeptiert.hvac-e-routes.json: Upgrade der Routenzuordnung des digitalen Doppeladapters für Temperatur, Feuchtigkeit und Energieverbrauch.
Schritt 1: Compatible Digital Twin Model Versioning Rules überprüfen
Wenn Sie ein digitales Zwillingsmodell erstellen, prüft OCI IoT, ob für dieselbe Hauptversion bereits ein aktives digitales Zwillingsmodell vorhanden ist.
Wenn eines vorhanden ist, muss ein digitales Zwillingsmodell der neuen Nebenversion ein ausschließlich additiver mit einer kompatiblen Versionsnummer und kompatiblen Werten sein. Wenn Sie eine digitale Zwillingsinstanz aktualisieren, um einen anderen digitalen Zwillingsadapter zu verwenden, muss der Adapter dieselbe Version des digitalen Zwillingsmodells oder eine kompatible höhere Nebenversion referenzieren.
Folgende Kompatibilitätsprüfungen gelten zwischen der alten digitalen Zwillingsmodellversion und der neuen digitalen Zwillingsmodellversion:
Wenn Sie eine aktualisierte digitale Zwillingsschnittstelle und Modellversion erstellen, muss die neue Nebenversion genau die vorherige Nebenversion plus .1 sein. Beispiel:
dtmi:com:oracle:example:hvac;1 bis dtmi:com:oracle:example:hvac;1.1
Alle @id-Werte der Schnittstelle, einschließlich Schema und Pfad, müssen übereinstimmen. Die neue Nebenversion kann nur neu sein: die Versionsnummer mit kleineren Inkrementen und alle zusätzlichen Werte, die dem vorhandenen Modell hinzugefügt werden. Upgrades sind nur kompatibel, wenn die Hauptversion konstant bleibt und unverändert bleibt.
| DTDL-Element | Kompatibilitätsregel | Hinweis |
|---|---|---|
Interface | Vorhandene extends-Werte müssen gleich bleiben. Zusätzliche Erweiterungen sind zulässig. Alle vorhandenen Modellinhalte müssen denselben Namen aufweisen. Neue Inhalte sind erlaubt. Schema-Collections müssen dieselbe Größe und dieselben Schema-ID-Pfade aufweisen. | Das Hinzufügen wiederverwendbarer Schnittstellenschemas wird nicht unterstützt und abgelehnt. |
Telemetry | Vorhandene Telemetrie muss denselben Namen, DTDL-Klasse, semantische oder ergänzende Typen, @id-Pfad, Einheit, Schema und Validierungs-Constraints beibehalten. | comment, displayName und description werden nicht verglichen. |
Property | Vorhandene Eigenschaften müssen dieselben Inhaltsregeln, beschreibbare Einstellungen, Schema-, Einheiten- und Validierungs-Constraints beibehalten. | Gilt für Schnittstelleneigenschaften und Beziehungseigenschaften. |
Command | Vorhandene Befehle müssen beibehalten werden. Anforderungs- und Antwortpräsenz, Namen, Schemas und Validierungs-Constraints müssen übereinstimmen. | Das Hinzufügen, Entfernen oder Ändern einer Anforderung oder Antwort ist nicht kompatibel. |
Relationship | Vorhandene Beziehungen müssen dieselbe beschreibbare Einstellung, dasselbe Ziel, dieselbe minimale Multiplizität, dieselbe maximale Multiplizität und dieselben vorhandenen Beziehungseigenschaften beibehalten. | Neue Beziehungseigenschaften sind zulässig. |
Component | Das Komponentenschema muss gleich bleiben. | Die referenzierte Komponentenschnittstelle wird in dieser Prüfung nicht rekursiv verglichen. |
Schema | Der konkrete Schematyp muss gleich bleiben. Die vorhandenen Schemas primitive, geospatial, array, enum, map, object und field müssen kompatible Typen und Validierungs-Constraints beibehalten. | Primitive-to-object, enum-to-map und ähnliche Änderungen sind nicht kompatibel. |
Enum | Vorhandene enum-Werte müssen denselben Namen und Literalwert aufweisen. | Neue enum-Werte sind zulässig. |
Object | Vorhandene Felder müssen beibehalten werden. Jedes vorhandene Feldschema und Validierungs-Constraint muss übereinstimmen. | Neue object-Felder sind zulässig. |
Interface schemas | Jedes alte wiederverwendbare Schema muss im neuen digitalen Zwillingsmodell durch dasselbe DTMI-Schema und denselben Pfad existieren und seinen schemaspezifischen Vergleich bestehen. | Das Entfernen oder Ändern eines vorhandenen wiederverwendbaren Schemas ist nicht kompatibel. Neue wiederverwendbare Schemas sind zulässig, wenn sie unterstützt werden. |
Schritt 2: Erstellen des digitalen Basis-HVAC-Zwillingsmodells
Erstellen Sie das digitale Basismodell mit Temperatur- und Feuchtigkeitstelemetrie.
Verwenden Sie die Konsole, um das digitale HVAC-Basismodell in der IoT-Domain zu erstellen.
- Öffnen Sie auf der Listenseite IoT-Domains die IoT-Domain, mit der Sie arbeiten möchten.
- Wählen Sie die Registerkarte Digitale Zwillingsmodelle und dann Erstellen aus.
- Laden Sie die DTDL-JSON von
hvac-model.jsonhoch, oder fügen Sie sie ein. - Wählen Sie Erstellen.
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" } ] }Verwenden Sie den Befehl oci iot digital-twin-model create, um das digitale HVAC-Basismodell in der IoT-Domain zu erstellen.
oci iot digital-twin-model create \ --iot-domain-id <iot-domain-OCID> \ --spec file://hvac-model.jsonhvac-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" } ] }Führen Sie den Vorgang CreateDigitalTwinModel aus, um das digitale Basiszwillingsmodell HVAC in der IoT-Domain zu erstellen.
Verwenden Sie dieselbe DTDL-Payload, die in
hvac-model.jsonangezeigt wird, wenn Sie die API aufrufen.
Schritt 3: Erstellen Sie den HVAC Digital Twin Adapter
Erstellen Sie einen digitalen Zwillingsadapter, der die Basisversion des digitalen Zwillingsmodells HVAC referenziert und die Geräte-Payload den Telemetriefeldern des digitalen Zwillingsmodells zuordnet.
Verwenden Sie die Konsole, um den digitalen HVAC-Basisadapter für Zwillinge zu erstellen und den eingehenden Envelope hochzuladen oder einzufügen und JSON weiterzuleiten.
- Öffnen Sie auf der Listenseite IoT-Domains die IoT-Domain, mit der Sie arbeiten möchten.
- Wählen Sie die Registerkarte Digital Twin Adapter und dann Erstellen aus.
- Geben Sie einen Namen und eine optionale Beschreibung für den digitalen HVAC-Basisadapter ein.
- Wählen Sie mit dem DTMI
dtmi:com:oracle:example:hvac;1das digitale Basismodell HVAC aus. - Aktivieren Sie Eingehenden Envelope und Routen angeben, und laden Sie
hvac-envelope.jsonundhvac-routes.jsonhoch oder fügen Sie sie ein. - Wählen Sie Erstellen.
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" } } ]Verwenden Sie den Befehl oci iot digital-twin-adapter create, um den digitalen Zwillingsadapter des HVAC-Basismoduls zu erstellen.
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.jsonhvac-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" } } ]Führen Sie den Vorgang CreateDigitalTwinAdapter aus, um den digitalen Zwillingsadapter für HVAC in der IoT-Domain zu erstellen.
Verwenden Sie dieselben eingehenden Envelope- und eingehenden Routen-Payloads, die in den herunterladbaren Dateien angezeigt werden.
Schritt 4: Erstellen der digitalen Zwillingsinstanz
Erstellen Sie eine digitale Zwillingsinstanz, die den digitalen HVAC-Basisdoppeladapter verwendet. Der externe Schlüssel ist der Benutzername, den das Gerät bei der Verbindung verwendet.
Verwenden Sie die Konsole, um die digitale Zwillingsinstanz für das HVAC-Gerät zu erstellen.
- Öffnen Sie auf der Listenseite IoT-Domains die IoT-Domain, mit der Sie arbeiten möchten.
- Wählen Sie die Registerkarte Digitale Zwillingsinstanzen und dann Erstellen aus.
- Geben Sie LG HVAC 1 als Anzeigenamen ein.
- Wählen Sie den in Schritt 3 erstellten digitalen HVAC-Basisadapter.
- Wählen Sie die Authentifizierungs-ID aus, oder fügen Sie das Zertifikat oder die Secret-OCID ein.
- Geben Sie hvac1 als externen Schlüssel ein.
- Wählen Sie Erstellen.
Verwenden Sie den Befehl oci iot digital-twin-instance create, um die digitale Zwillingsinstanz zu erstellen.
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 hvac1Führen Sie den Vorgang CreateDigitalTwinInstance aus, um die digitale Zwillingsinstanz zu erstellen.
Verwenden Sie die OCID des HVAC-Digital Twin-Basisadapters und die Authentifizierungs-ID für die Gerätezugangsdaten.
Schritt 5: Senden der Telemetrie an die Basis-Digital-Twin-Instanz
Senden Sie eine Payload, die mit der Zuordnung des Basisadapters für digitale Zwillinge übereinstimmt, und rufen Sie dann den Inhalt der digitalen Zwillingsinstanz ab, um die normalisierte Telemetrie zu prüfen.
Verwenden Sie MQTTX, um Telemetrie über MQTTS zu senden.
mqttx pub \ -t "data" \ -m '{ "temp": 70, "hum": 60 }' \ -u hvac1 \ -P '<secret-contents>'Verwenden Sie
curl, um Telemetrie über HTTPS zu senden. In diesem Beispiel wird die HTTP-Basisauthentifizierung mit dem externen Schlüssel der digitalen Zwillingsinstanz und dem Klartext-Secret-Content verwendet.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 }'
Rufen Sie den Inhalt der digitalen Zwillingsinstanz ab, um die neuesten normalisierten Werte zu prüfen.
Öffnen Sie auf der Registerkarte Digitale Zwillingsinstanzen die Detailseite für die digitale Zwillingsinstanz für LG HVAC 1, und prüfen Sie die neuesten Inhaltswerte.
Mit dem Befehl oci iot digital-twin-instance get-content können Sie Inhalte aus der Instanz des digitalen Zwillings abrufen.
oci iot digital-twin-instance get-content \ --digital-twin-instance-id <lg-hvac-1-OCID>Führen Sie den Vorgang GetDigitalTwinInstanceContent aus, um Inhalt aus der Instanz des digitalen Zwillings abzurufen.
Schritt 6: Erstellen Sie eine kompatible Version des digitalen HVAC-Doppelmodells
Erstellen Sie eine kompatible kleinere digitale Zwillingsmodellversion, die das digitale Basismodell HVAC extends und Telemetrie für den Energieverbrauch hinzufügt. Die Hauptversion bleibt 1, und die Nebenversion wird auf 1.1 erhöht.
Verwenden Sie die Konsole, um die kompatible Version des kleineren digitalen HVAC-Doppelmodells in der IoT-Domain zu erstellen.
- Öffnen Sie auf der Listenseite IoT-Domains die IoT-Domain, mit der Sie arbeiten möchten.
- Wählen Sie die Registerkarte Digitale Zwillingsmodelle und dann Erstellen aus.
- Laden Sie die DTDL-JSON von
hvac-e-model.jsonhoch, oder fügen Sie sie ein. - Wählen Sie Erstellen.
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" } ] }Verwenden Sie den Befehl oci iot digital-twin-model create, um die kompatible Version des digitalen HVAC-Mollzwillingsmodells zu erstellen.
oci iot digital-twin-model create \ --iot-domain-id <iot-domain-OCID> \ --spec file://hvac-e-model.jsonhvac-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" } ] }Führen Sie den Vorgang CreateDigitalTwinModel aus, um die kompatible Version des kleineren digitalen HVAC-Twin-Modells in der IoT-Domain zu erstellen.
Verwenden Sie dieselbe DTDL-Payload, die in
hvac-e-model.jsonangezeigt wird, wenn Sie die API aufrufen.
Schritt 7: Erstellen Sie einen Digital Twin Adapter für die neue Digital Twin Model Version
Erstellen Sie einen neuen digitalen Zwillingsadapter, der die kompatible Version des digitalen Zwillingsmodells HVAC referenziert und das zusätzliche Telemetriefeld abbildet.
Verwenden Sie die Konsole, um den aktualisierten digitalen HVAC-Zwillingsadapter zu erstellen und den eingehenden Envelope hochzuladen oder einzufügen und JSON weiterzuleiten.
- Öffnen Sie auf der Listenseite IoT-Domains die IoT-Domain, mit der Sie arbeiten möchten.
- Wählen Sie die Registerkarte Digital Twin Adapter und dann Erstellen aus.
- Geben Sie einen Namen und eine optionale Beschreibung für den aktualisierten digitalen HVAC-Doppeladapter ein.
- Wählen Sie mit dem DTMI
dtmi:com:oracle:example:hvac;1.1die HVAC-Version des digitalen Zwillingsmodells. - Aktivieren Sie Eingehenden Envelope und Routen angeben, und laden Sie
hvac-e-envelope.jsonundhvac-e-routes.jsonhoch oder fügen Sie sie ein. - Wählen Sie Erstellen.
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" } } ]Verwenden Sie den Befehl oci iot digital-twin-adapter create, um den aktualisierten digitalen Zwillingsadapter für HVAC zu erstellen.
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.jsonhvac-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" } } ]Führen Sie den Vorgang CreateDigitalTwinAdapter aus, um den aktualisierten digitalen Zwillingsadapter für HVAC in der IoT-Domain zu erstellen.
Verwenden Sie dieselben eingehenden Envelope- und eingehenden Routen-Payloads, die in den herunterladbaren Dateien angezeigt werden.
Schritt 8: Aktualisieren Sie die Digital Twin Instance, um den neuen Digital Twin Adapter zu verwenden
Aktualisieren Sie die vorhandene digitale Zwillingsinstanz, um den digitalen Zwillingsadapter für die kompatible Version des digitalen Zwillingsmodells zu referenzieren. Die digitale Zwillingsinstanz behält die gleiche Identität, den gleichen externen Schlüssel und die gleiche Datenkontinuität bei, während sie beginnt, Payloads für den neuen Vertrag über das digitale Zwillingsmodell zu akzeptieren.
Verwenden Sie eine neue Instanz des digitalen Zwillings, anstatt die vorhandene Instanz des digitalen Zwillings zu aktualisieren, wenn das digitale Zwillingsmodell eine neue Hauptversion verwendet, vorhandene Elemente entfernt, Felder umbenannt, Constraints eingeschränkt oder der Vertrag des digitalen Zwillingsmodells anderweitig nicht additiv geändert wird.
Verwenden Sie die Konsole, um die vorhandene digitale Zwillingsinstanz zu aktualisieren und den aktualisierten digitalen Zwillingsadapter für HVAC zu verwenden.
- Öffnen Sie auf der Listenseite IoT-Domains die IoT-Domain, mit der Sie arbeiten möchten.
- Wählen Sie die Registerkarte Digital Twin Instances aus.
- Öffnen Sie die Detailseite der digitalen Zwillingsinstanz für LG HVAC 1.
- Wählen Sie Bearbeiten aus.
- Ändern Sie den digitalen Zwillingsadapter in den aktualisierten digitalen Zwillingsadapter für HVAC, der in Schritt 7 erstellt wurde.
- Speichern Sie die Änderungen.
Verwenden Sie den Befehl oci iot digital-twin-instance update, um die digitale Zwillingsinstanz zu aktualisieren.
oci iot digital-twin-instance update \ --digital-twin-instance-id <lg-hvac-1-OCID> \ --digital-twin-adapter-id <upgraded-digital-twin-adapter-OCID>Führen Sie den Vorgang UpdateDigitalTwinInstance aus, um die digitale Zwillingsinstanz zu aktualisieren.
Stellen Sie die ID des digitalen Zwillingsadapters auf die OCID des aktualisierten digitalen Zwillingsadapters für HVAC ein.
Schritt 9: Digital Twin Instance-Telemetrie nach dem Upgrade validieren
Senden Sie eine Payload, die das neue Telemetriefeld enthält, und prüfen Sie, ob der Inhalt der digitalen Zwillingsinstanz die vom aktualisierten digitalen Zwillingsadapter zugeordneten Werte enthält.
Wenn die Validierung fehlschlägt, vergleichen Sie das digitale Zwillingsmodell DTMI, den digitalen Zwillingsadapter --digital-twin-model-spec-uri, das Envelope-Mapping und das Routing-Payload-Mapping. Der aktualisierte digitale Zwillingsadapter muss die kompatible Version des kleinen digitalen Zwillingsmodells referenzieren und Nutzlastfelder den Namen zuordnen, die von diesem digitalen Zwillingsmodell definiert werden.
Verwenden Sie MQTTX, um Telemetrie über MQTTS zu senden.
mqttx pub \ -t "data" \ -m '{ "temp": 70, "hum": 60, "ec": 38 }' \ -u hvac1 \ -P '<secret-contents>'Verwenden Sie
curl, um Telemetrie über HTTPS zu senden. In diesem Beispiel wird die HTTP-Basisauthentifizierung mit dem externen Schlüssel der digitalen Zwillingsinstanz und dem Klartext-Secret-Content verwendet.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 }'
Optionaler Schritt: Inhalt abrufen
Rufen Sie den Inhalt der digitalen Zwillingsinstanz ab, um die neuesten normalisierten Werte zu prüfen.
Öffnen Sie auf der Registerkarte Digitale Zwillingsinstanzen die Detailseite für die digitale Zwillingsinstanz für LG HVAC 1, und prüfen Sie die neuesten Inhaltswerte.
Mit dem Befehl oci iot digital-twin-instance get-content können Sie Inhalte aus der Instanz des digitalen Zwillings abrufen.
oci iot digital-twin-instance get-content \ --digital-twin-instance-id <lg-hvac-1-OCID>Führen Sie den Vorgang GetDigitalTwinInstanceContent aus, um Inhalt aus der Instanz des digitalen Zwillings abzurufen.
Häufig gestellte Fragen (FAQ)
In dieser FAQ werden kompatible digitale Zwillingsmodellupgrades und additive Nutzlastformen beschrieben.
- Was ist eine zusätzliche Payload-Form?
- Eine zusätzliche Payload-Ausprägung behält die vorhandenen Payload-Felder bei und fügt neue Felder hinzu, ohne die vorhandenen Feldnamen, Datentypen, Bedeutung, Einheiten oder Constraints zu ändern. In diesem Szenario wird die Basis-Payload
{ "temp": 70, "hum": 60 }zu{ "temp": 70, "hum": 60, "ec": 38 }. Die Payload ist additiv, datempundhumimmer noch dasselbe bedeuten und das Gerät nurecfür den Energieverbrauch hinzufügt. - Wie hängt eine additive Payload-Form mit der Modellversion des digitalen Zwillings zusammen?
- Die Geräte-Nutzlast und das digitale Zwillingsmodell müssen sich gemeinsam weiterentwickeln. Die neue Version des digitalen Zwillingsmodells fügt
energyConsumptionhinzu, während die vorhandene Telemetrietemperatureundhumiditykompatibel bleibt. Der aktualisierte digitale Zwillingsadapter ordnet das neue Payload-Feldecdem neuen digitalen ZwillingsmodellfeldenergyConsumptionzu. - Was ist nicht additiv?
- Eine Änderung ist nicht additiv, wenn sie ein vorhandenes Feld umbenennt, ein vorhandenes Feld entfernt, einen Schematyp ändert, Einheiten oder Bedeutung ändert, Validierungs-Constraints eingrenzt, Befehls- oder Antwortverträge ändert oder zu einer anderen digitalen Hauptmodellversion wechselt. Beispiel: Wenn Sie
huminhumidityPctändern odertempvon einer Ganzzahl in eine Zeichenfolge ändern, ist dies nicht additiv. - Können alte Geräte weiterhin die ursprüngliche Nutzlast senden?
- Ja, alte Geräte können die ursprünglichen Felder weiterhin senden, wenn das aktualisierte digitale Zwillingsadapter-Mapping sie noch verarbeitet. Das neue Feld wird nur ausgefüllt, wenn das aktualisierte Gerät es sendet und der digitale Zwillingsadapter es dem neuen Feld des digitalen Zwillingsmodells zuordnet.
Fehlerbehebung
Die Anforderung zur Erstellung des digitalen Zwillingsmodells wurde abgelehnt
Die Aktualisierungsanforderung für die digitale Zwillingsinstanz wurde abgelehnt
dtmi:com:oracle:example:hvac;1.1.Das Upgrade ist erfolgreich, aber das neue Feld ist nicht gespeichert
hvac-e-routes.json $.energyConsumption $.ec zuordnet.Vorhandene Telemetrie fehlt nach dem Upgrade
temperature und humidity bei, und fügen Sie dann die neue Zuordnung für energyConsumption hinzu.