In diesem Beispiel wird erläutert, wie Aktualisierungen eines Datenpunktes direkt über einen MQTT-Konnektor (Incoming) unter Verwendung einer einfachen Nutzdatenstruktur gepusht werden können. Sie können die Vorlage in einem Konnektor anpassen, um komplexere Datenstrukturen zu verwenden.
Konfigurieren des Datenpunktes
Angenommen, ein MQTT (Incoming) Konnektor ist bereits im Konto vorhanden. Erstellen Sie in einem Digitalen Zwilling einen neuen Datenpunkt und wählen Sie als Quelle “KonneKtor” [1]
und Ihren MQTT (Incoming) Konnektor [2]
. Das Datarouting vom Konnektor zu einem Datenpunkt erfolgt durch die Verwendung eines (Device)Identifiers [3]
in Kombination mit einer optionalen geparsten Paketvariable [4]
. Für dieses Beispiel wird der (Geräte)Identifikator auf 42
und die Variable für das geparste Paket auf consumption
gesetzt.
Beispiel für die Verwendung von (Device)Identifier & geparsten Paketvariablen aus der Topic-Struktur
Wenn die Informationen für den (Device)Identifier und die geparste Paketvariable in Ihrem Topic in dieser Struktur ((Device)Identifier/geparstePaketvariable
vorhanden sind (was in unserem obigen Fall 42/consumption
wäre), können Sie das Standard “pass-through” Template [1]
des Konnektors verwenden.
Um den Datenpunkt zu aktualisieren, der wie im obigen Beispiel konfiguriert ist ((Device)Identifier = `42` und geparste Paketvariable = `Verbrauch`), senden Sie die folgende Payload:
{
"value": 6869
}
Beispiel für das Extrahieren von (Device)Identifier und geparsten Paketvariablen aus der Payload
Sind (Device)Identifier & parsed packet nicht Teil des Topics, sondern Teil der Payload, gehen Sie wie folgt vor: in diesem Fall muss das Template für die Datenkonvertierung im Konnektor so geändert werden, so dass sie mit der erwarteten Payloadstruktur übereinstimmt. Dazu öffnen Sie den Konnektor und klicken auf die Registerkarte VERBINDUNGSDATEN [1]
und dort auf das Editiersymbol [2]
Fügen Sie das folgende Javascript ein, um die Daten in das gewünschte Format zu konvertieren und speichern Sie den Konnektor.
module.exports = (packet) => {
return {
identifier: packet.id,
variable: packet.variable,
data: {
value: packet.measurement,
time: packet.timestamp || new Date().toISOString()
}
};
}
Um den Datenpunkt zu aktualisieren, der wie im obigen Beispiel konfiguriert ist ((Device)Identifier = `42` und geparste Paketvariable = `Verbrauch`), senden Sie die folgende Payload an das im Konnektor konfigurierte mqtt-Topic:
{
"timestamp": "2024-12-10T11:2146Z",
"id": "42",
"variable": "consumption",
"measurement": 6869
}