Publisher
Publisher ermöglichen es, die Werte von Datenpunkten an einen externen Dienst zu senden, sobald sie sich ändern.
Broker
- Broker-Typ
Wählen Sie den Typ des externen Dienstes aus, an den Sie die Werte von Datenpunkten senden möchten.
Derzeit werden nur MQTT-Broker 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 danebenstehende Symbol Broker-Verbindungen verwalten.
Weitere Informationen zur Verwaltung von Broker-Verbindungen finden Sie unter Externe MQTT-Broker-Verbindungen verwalten.
- Übertragungsstatistik
In diesem Abschnitt werden die Übertragungsstatistiken für die gesendeten MQTT-Nachrichten angezeigt. Auf der rechten Seite sehen Sie die Anzahl der erfolgreich verarbeiteten Nachrichten sowie die Anzahl der Nachrichten, 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 gesendeten Nachrichten an.
Veröffentlichte Eigenschaften
In dieser Liste können Sie alle Datenpunkt-Eigenschaften auswählen, die Sie veröffentlichen möchten.
Anmerkungen
Geben Sie bei Bedarf zusätzliche Informationen zum Zweck dieses Publishers an.
Encoder-Konfiguration
Definieren Sie im Feld Encoder die Kodierungsfunktion. Die JavaScript-Funktion nimmt eine Zeichenfolge mit dem serialisierten JSON-Datenpunktobjekt entgegen und muss ein Objekt mit den Feldern topic und payload zurückgeben, wobei payload den Namen einer Datenpunkt-Eigenschaft (z. B. battery, temperature, humidity usw.) als Schlüssel und den Wert der entsprechenden Datenpunkt-Eigenschaft als Wert enthält.
// Example input:
// {
// "systemName": "TEMPERATURE_SYSTEM_NAME",
// "properties": {
// "Present_Value": 23
// }
// }
function encoder(input) {
let data;
try {
data = JSON.parse(input);
} catch (e) {
return;
}
if (data.systemName.includes("TEMPERATURE") && data.properties.hasOwnProperty('Present_Value')) {
return {
topic: 'home/livingroom/temperature',
payload: '{"temperature":' + data.properties.Present_Value + '}'
};
}
}
{
topic: '<topic>',
payload: '{"<property>":<value>}'
}
<topic>sollte durch das tatsächliche MQTT-Topic ersetzt werden.<property>sollte durch den Namen der Datenpunkt-Eigenschaft ersetzt werden, die der Empfänger erwartet.<value>sollte durch den korrekten Wert der Eigenschaft ersetzt werden, welcher aus deminput-Parameter abgeleitet werden kann.
Beachten Sie, dass payload eine bereits serialisierte JSON-Zeichenfolge enthalten muss, z. B. '{"value":21}'. Sie können JSON.stringify() verwenden, um diese Zeichenfolge aus einem Objekt zu generieren, z. B. payload: JSON.stringify({value:21}).
Encoder-Test
Um Ihren Encoder zu testen, wählen Sie einen Datenpunkt aus der Auswahlliste Datenpunkt aus. Beachten Sie, dass diese Auswahlliste nur Datenpunkte enthält, die der Tabelle Datenpunkte am unteren Bildschirmrand zugewiesen wurden.
Für jede Datenpunkt-Eigenschaft, die Sie oben auf der Kachel Veröffentlichte Eigenschaften aktiviert haben, können Sie einen Testwert eingeben. Klicken Sie anschließend auf Test, um den Test zu starten.
Die Datenpunkt-Eigenschaften und Testwerte werden serialisiert und an die Encoder-Funktion übergeben, und ihr Rückgabewert wird unten ausgegeben, sofern das Skript erfolgreich ausgeführt wurde.
Datenpunkte
Der Publisher kann nur Werte von Datenpunkten übermitteln, 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.