Subscriber

Subscriber ermöglichen es, eine Datenquelle zu abonnieren, um die Werte von Datenpunkten zu empfangen, sobald diese von der Quelle versendet werden.

../../_images/subscriber.de.webp

Broker

Broker-Typ

Wählen Sie den Typ der Datenquelle aus.

Derzeit werden nur MQTT-Broker als Datenquellen unterstützt.

Broker-Verbindung

Wählen Sie die gewünschte Broker-Verbindung aus der Liste aus. Wenn Sie eine neue Broker-Verbindung hinzufügen oder eine bestehende bearbeiten möchten, klicken Sie auf das daneben­­stehende Symbol Broker-Verbindungen verwalten.

Weitere Informationen zum Verwalten von Broker-Verbindungen finden Sie unter Externe MQTT-Broker-Verbindungen verwalten.

Übertragungsstatistik

In diesem Abschnitt werden die Übertragungsstatistiken für die empfangenen MQTT-Nachrichten angezeigt. Auf der rechten Seite können Sie die Anzahl der erfolgreich verarbeiteten Nachrichten sowie die Anzahl der Nachrichten sehen, die aufgrund einer Verletzung unserer MQTT-Beschränkungen verworfen wurden. Die Zahl innerhalb des Kreises zeigt den Anteil der erfolgreich verarbeiteten Nachrichten im Verhältnis zur Gesamtzahl der empfangenen Nachrichten an.

Abonnierte Eigenschaften

In dieser Liste können Sie alle Datenpunkt-Eigenschaften auswählen, die Sie abonnieren möchten.

Anmerkungen

Geben Sie bei Bedarf zusätzliche Informationen zum Zweck dieses Subscribers an.

Konfiguration des Dekodierers

Definieren Sie im Feld Dekodierer die Dekodierungsfunktion. Die JavaScript-Funktion nimmt eine Zeichenfolge mit der serialisierten JSON-Nachricht vom MQTT-Broker und eine Zeichenfolge mit dem Topic entgegen und muss ein Array von Objekten mit den Feldern systemName und value zurückgeben.

Beispiel-Dekodierer
// Example payload:
// {
//   "type": "temperature",
//   "opc": 192,
//   "payload": {
//     "temperature": 23
//   }
// }

function decode(jsonString, topic) {
  let data;
  try {
    data = JSON.parse(jsonString);
  } catch (e) {
    return [];
  }

  const objects = [];

  if (data.type === 'temperature') {
    objects.push({
      systemName: 'TEMPERATURE_SYSTEM_NAME',
      value: data.payload.temperature
    });
  }

  return objects;
}
Erwarteter Rückgabewert
[{
  systemName: 'SYSTEM_NAME_1',
        value: 123
}, {
  systemName: 'SYSTEM_NAME_2',
        value: 456
}, {
  systemName: 'SYSTEM_NAME_3',
        value: 789
},
/* ... */
]

Dekodier-Test

Um Ihren Dekodierer zu testen, geben Sie eine Test-Nutzlast im JSON-Format in das Feld Test-Nutzlast ein, geben Sie ein Topic in das darunterliegende Feld Topic ein und klicken Sie auf Test.

Beispiel-Nutzlast im JSON-Format
{
  "type": "temperature",
  "opc": 192,
  "payload": {
    "battery": 97.1,
    "humidity": 63.3,
    "temperature": 23.5,
    "pressure": 989.4
  }
}

Die serialisierte Test-Nutzlast und das Topic werden anschließend an die Dekodierungsfunktion übergeben, und ihr Rückgabewert wird unten ausgegeben, sofern das Skript erfolgreich ausgeführt wurde.

Datenpunkte

Der Subscriber kann nur auf Datenpunkte schreiben, die der Tabelle Datenpunkte am unteren Bildschirmrand zugewiesen wurden.

Um Datenpunkte zuzuweisen, ziehen Sie diese von der Datenpunkt-Seitenleiste auf der rechten Seite in die Tabelle am unteren Bildschirmrand.