Daten als HTTP-Client senden und weiterleiten

Viele Web-basierte Visualisierungslösungen unterstützen das HTTP-Protokoll, um Daten zu empfangen und dann anzuzeigen. Daher zeigen wir in diesem Beitrag, wie das connect-Gateway erhobene Daten als HTTP-Client an ein Dashboard weiterleitet.
In diesem Beispiel gehen wir davon aus, dass wir die Position der Spindel einer Fräse als Datenpunkte erfasst haben. Die aktuellen Werte der X, Y und Z-Koordinaten wollen wir per HTTP-POST an ein fiktives Dashboard weiterleiten.
Das könnte Sie auch interessieren:
Daten als HTTP-Server verarbeiten
Inhaltsverzeichnis
Konfiguration des HTTP-Client
Wir definieren zuerst einen Endpoint
mit passendem Namen: “Dashboard”. Die Namen helfen uns die gewünschten Elemente innerhalb der Konfigurationsdatei einfach lokalisieren zu können.
<endpoint> <name>Dashboard</name>
HTTP-Client Plugin
Für diesen Endpoint
wählen wir das HTTP_CLIENT
Plugin. Die Konfiguration weiterer Protokollparameter ist in diesem Fall nicht notwendig.
<protocol plugin="HTTP_CLIENT"> <name>HttpClient</name> <parameters/>
Trigger
Wir wollen die Daten im Dashboard so aktuell wie möglich halten. Der hier konfigurierte passive Trigger
lauscht dauerhaft auf neu ankommende Daten von der Fräse. Sobald neue Werte verfügbar sind, sendet das Gateway diese Daten automatisch an unseren Endpoint
.
<trigger> <passive/> </trigger>
Consumer
Nun legen wir innerhalb des Endpoints einen Consumer
an. Der Consumer
ist das Dashboard, an das wir die Daten senden. Per http_method
POST
werden die aktuellen Daten vom Gateway an die konfigurierte endpoint_url
verschickt.
<consumer> <name>cnc_1_axis</name> <parameters> <param key="endpoint_url"> http://127.0.0.1:8088/api/v1/48BZ54YoR1Mv26BoYtrm/telemetry </param> <param key="http_method">POST</param> </parameters>
Encoder
Als nächstes konfigurieren wir den Encoder
. Dieser nimmt verfügbare Werte aus den Datapoints
und bringen sie in das gewünschte Format.
In diesen Fall möchten wir die Daten im JSON-Format weiterleiten. Dazu verwenden wir das JSON_ENCODER
Plugin. Mit ihm können wir beliebige JSON-Dokumente mit unseren Daten erzeugen.
<encoder plugin="JSON_ENCODER"> <parameters/>
Zuerst geben wir im Mapping
den Datenpunkt /cnc1/axis_position_x
an, dessen Wert wir im JSON-Dokument verwenden wollen. Außerdem legen wir den Name des Attributes im JSON-Dokument über den Parameter path
fest. Auf diese Weise lassen sich auch verschachtelte Strukturen erzeugen.
<mapping> <datapoint>/cnc_1/axis_position_x</datapoint> <parameters> <param key="path">/axis_position_x</param> </parameters> </mapping> </encoder> </consumer> </endpoint>
Zur Veranschaulichung zeigen wir hier beispielhaft noch ein generiertes JSON-Dokument, wie es per HTTP POST-Anfrage an das Dashboard gesendet wird.
{ "/axis_position_x": 13.5 }
Ergebnis
Um Maschinendaten effektiv auswerten zu können, ist es notwendig, einen Überblick über alle produzierten Daten zu bekommen. Das connect-Gateway bietet uns die Möglichkeit alle Daten zu erfassen und flexibel weiter zu geben. Dabei ist die grafische Anzeige aller gesammelten Daten ein häufiger Anwendungsfall.
Hierzu müssen die genau die relevanten Daten in der richtigen Struktur übertragen werden. Ansonsten könnte das Dashboard die Daten nicht verarbeiten. Über den JSON_ENCODER
können wir extrem flexibel genau die Daten aufbereiten, die für eine Auswertung sinnvoll sind. Über die REST-Schnittstelle des Dashboards können wir dann mit Hilfe des HTTP_CLIENT
Protokolls per HTTP-POST fortlaufend neue Daten in jedes Web-basierte Dashboard laden.