Datenpunkte



Auf der nächsten Registerkarte findest du die Datenpunkte, die die Verbindung für eingehende Daten eines digitalen Zwillings darstellen. Jeder digitale Zwilling kann viele Datenpunkte haben, um Daten aus verschiedenen Quellen zu gruppieren. Quellen können z.B. Daten von Sensoren, aggregierte Daten von anderen digitalen Zwillingen oder zufällig generierte Daten zum Testen sein.

Die Datenpunkte sind ein mächtiges Feature in niotix: Mit den Datenpunkten kannst du digitale Zwillinge nutzen, um verschiedene Daten aus der IoT-Welt (z.B. verschiedene Sensoren mit unterschiedlichen Protokollen) in einem virtuellen logischen Container zu gruppieren, der ein physisches Objekt repräsentiert. Ein Büro kann z. B. durch einen digitalen Zwilling dargestellt werden, der alle verschiedenen Sensoren in jedem Raum für Luftfeuchtigkeit und Temperatur an einem Ort gruppiert.

Auf dieser Registerkarte kannst du einen einzelnen Datenpunkt hinzufügen [1] oder Details zu allen vorhandenen Datenpunkten ansehen [2]. Du kannst die CSV-Datei der eingegangenen Daten der Geräte exportieren [3].

Außerdem kannst du jeden Datenpunkt bearbeiten [4] und löschen [5]. Durch Klicken auf die “Uhr”-Schaltfläche kannst du die Aktualisierungen (geänderte/gemeldete Werte) [6] sehen.

Einzelnen Datenpunkt hinzufügen

Wenn du auf den “+"-Button klickst, kannst du einen einzelnen Datenpunkt hinzufügen. Grundlegende Einstellungen eines Datenpunkts sind:

  • Titel: Titel für diesen Datenpunkt
  • Schlüssel: Ein Schlüssel ohne Sonderzeichen zur Identifizierung dieses Datenpunkts im System (muss pro digitalem Zwilling eindeutig sein). Du kannst einen Status verwenden, um die Geo-Location eines digitalen Zwillings dynamisch zu aktualisieren. Auf diese Weise kann ein digitaler Zwilling ein mobiles Asset darstellen, und die gemeldete Position eines GPS-Geräts kann den digitalen Zwilling aktualisieren. Sobald ein Schlüssel mit “lon” oder “lat” beginnt, wird der Status automatisch mit den Longitute- und Latitute-Feldern verknüpft.
  • Einheit: Die Einheit, die zusammen mit dem von diesem Datenpunkt gelieferten Wert angezeigt wird..
  • Icon: Ein Icon für den Datenpunkt. Um nach anderen Icons zu suchen, gebe einfach ein (englisches) Schlagwort ein und das System schlägt passende Icons vor.
  • Quelle: Wähle die in deinem Konto definierte Quelle für eingehende Daten: “Aggregiert”, um Daten von anderen digitalen Zwillingen zu verwenden, oder “Zufällig”, um Zufallsdaten zu generieren, oder die in deinem Konto konfigurierte Bridge (z. B. niota 1.0; weitere Beschreibung der einzelnen Quellen siehe unten).
  • Typ: Definiere den Typ des Wertes; z. B. ob es sich um eine Zahl, Boolean (wahr/falsch) oder String handelt.
  • Wert: Definiere einen Standardwert - dieser kann durch die eingehenden Daten aus einer ausgewählten Datenquelle überschrieben werden.
  • Ist null: Klicke den Kasten an, wenn der Wert leer sein soll - gebe dafür nicht den Wert “0” in das Wert-Feld ein!
  • Transformator überspringen: Klicke den Kasten an, wenn niotix den Javascript-Transformer beim ersten Speichern des Datenpunkts nicht ausführen soll. Deaktiviere dieses Kästchen, wenn du einen Anfangswert für einen Sensor manuell gesetzt hast und diesen nicht direkt mit dem aktuellen Wert des Geräts überschreiben willst (z. B. wenn das Gerät noch nicht installiert, aber aktiviert ist und daher nicht die richtigen Werte misst).
  • Minimum: Die untere Grenze wird für die Visualisierung auf dem Dashboard verwendet, um die Grenzen von z. B. einem Messgerät zu definieren.
  • Maximum: Die obere Grenze wird für die Visualisierung auf dem Dashboard verwendet, um die Grenzen von z. B. einem Messgerät zu definieren.
  • Javascript Transformer: Definiere eine Transformationsfunktion zur Umwandlung der Eingabedaten in den gewünschten Datenpunktwert. Die Transformation wird jedes Mal ausgeführt, wenn der Datenpunkt aktualisiert wird. Siehe Beschreibung unten für Details.
Quellen
Quelle “Zufällig”

Verwende die Quelle “Zufällig”, um Zufallswerte eines Datenpunktes zu erzeugen. Du kannst die untere und obere Grenze eines Wertes in den Textfeldern definieren.

Wenn du z. B. die untere Grenze auf 1 und die obere Grenze auf 5 setzt, erzeugt niotix jedes Mal, wenn du diese Seite öffnest (neu laden), Zufallswerte im Bereich von 1 und 5 (z. B. 4,3345345).

Quelle “Aggregiert”

Mit “Aggregiert” kannst du die vorhandene Datenpunkte aus anderen Datenpunkte auswählen und kombinieren. Auf diese Weise kannst du z. B. die Durchschnittstemperatur in einem Gebäude auf der Grundlage seiner Unter-Zwillinge berechnen, die einen mit einem Temperatursensor ausgestatteten Räume im Gebäude darstellen. Jedes Mal, wenn ein ausgewählter Datenpunkt aus einem anderen digitalen Zwilling aktualisiert wird, wird auch der aggregierte Datenpunkt aktualisiert.

Um einen Aggregatzustand zu definieren, wähle “Aggregiert” als Quelle. Navigiere durch die angezeigte Hierarchie der Zwillinge und wähle die gewünschten Datenpunkte aus [1]. niotix listet die ausgewählten Datenpunkte unter der Hierarchie auf [2], um den Überblick zu behalten und nicht benötigte Datenpunkte in der Aggregation schnell zu entfernen. Unten, im Abschnitt “Aggregierter Wert Vorschau”, kannst du auch überprüfen, wie die eingehenden Daten des aggregierten Datenpunkts aussehen.

Quelle “Aggregated timeseries”

Über die Quelle “Aggregated timeseries” kannst du aus einen bestehenden Datenpunkt mit seinen historischen Daten einen neuen Datenpunkt berechnen.

Dies ist z.B. nützlich, wenn Du den Maximalwert der letzten Stunde oder den Verbrauch von gestern berechnen willst.

Folgende Optionen stehen Dir allgemein zur Konfiguration zur Verfügung:

  • zeitlich aggregierter Datenpunkt [1] : wähle hier den für die Berechnung zu verwendenden Datenpunkt aus
  • Operation [2]: wähle aus, was mit den historischen Daten des Datenpunkts passieren soll:
    • AVG: Berechne den Durchschnitt
    • MIN: Bestimme das Minimum
    • MAX: Bestimme das Maximum
    • SUM: Berechne die Summe
    • MEDIAN: Bestimme den Median
    • COUNT: Zähle die Anzahl der Datenpunkte
    • Differenz zu letzte Periode: Bestimme die Differenz der Maximalwerte von der ausgewählten und vorherigen Periode
    • Differenz zum letzten Wert: Ermitteln Sie die Differenz der beiden zuletzt eingegangenen Werte. Hilfreich ist diese Funktion beispielsweise um Lastgänge zu berechnen.

Für einfache Anwendungsfälle kann im ersten grauen Kasten (“Vordefinierte Zeiträume”) folgende Einstellung vorgenommen werden:

  • Aggregation Dauer [3]: wähle den Zeitraum für die historischen Daten des Datenpunkts aus. Dieser wird berechnet ausgehend von der aktuellen Uhrzeit. D.h. wenn es 13:00 Uhr ist und eine Aggregation Dauer von 1 Stunde ausgewählt wird, werden alle Datenpunkte bis 12:00 Uhr für die Berechnung herangezogen.

  • Fester Zeitstempel [4]: wähle hier, ob die Aggregationsdauer relativ zum aktuellen Zeitpunkt sein soll (z.B. eine in die Vergangenheit ab dem Zeitpunkt, zu dem die Aggregation ausgelöst wird) oder ob ein fester Zeitstempel genutzt werden soll (um z.B. Werte immer zur vollen Stunde zu berechnen). Bitte beachte, dass bei der Option “Fester Zeitstempel” nur eine Berechnung stattfindet, wenn ein Ereignis eintritt, welches die Berechnung auslöst. Dies ist eine Änderung am aggregierten Datenpunkt [1], durch den Empfang eines Sensorpackets oder eine Regel mit zeitlichem Auslöser, welche eine Auswertung dieses Datenpunktes triggert. Werden im Zeitraum keine Daten gefunden so ist als Ergebnis null zu erwarten (nicht 0).

Alternativ steht auch im zweiten grauen Kasten darunter der “Expertenmodus” zur Verfügung, mit dem Du noch detaillierter Einstellungen vornehmen kannst. Im Gegensatz zu der “Aggregation Dauer” zuvor lässt sich hier einstellen, dass ausgehend von vollen Kalendertagen, -monaten etc. zurückgerechnet wird (anstatt von der aktuellen Uhrzeit).

  • Offset: Gibt an, wie viele Einheiten (z.B. Tage, Monate) zurückgegangen werden soll. Ein Wert von 0 entspricht dabei der aktuellen Einheit (z.B. aktueller Tag, aktueller Monat). Negative Werte sind hierbei nicht zulässig.
  • Offset Einheit: Gibt die Einheit für den Offset an
  • Zeitdauer: Gibt den Zeitraum an, ab dem - ausgehend vom Offset - vorwärts die Daten aggregiert werden sollen
  • Zeiteinheit: Gibt die Einheit für die Zeitdauer an

Hinweis 1: Die Aggregation funktioniert nur korrekt, falls alle Werte numerisch sind, also keine Zeichenketten, boolesche Werte oder JSON-Werte in der Historie vorkommen.

Hinweis 2: Unabhängig von dem ausgewählten Zeitraum werden maximal die neusten 5000 Werte aggregiert.

Hinweis 3: Die zeitlich aggregierten Datenpunkte speichern einen eigenen Wert in der Datenbank und werden immer dann neu berechnet, wenn der verbundene Datenpunkt sich aktualisiert. D.h. wird die Konfiguration des zeitlich aggregierten Datenpunkts nachträglich geändert, werden die bereits berechneten Werte nicht neu berechnet.

Hinweis 4: Wird für den zeitlich aggregierten Datenpunkt eine Aggregationsdauer ausgewählt, die kleiner ist als das Sendeintervall des Sensors, kann es passieren, dass in einem Aggregationsintervall kein Paket einging. Dann wird für dieses Intervall eine 0 für die Berechnung in der Operation verwendet.

Hinweis 5: Sobald die “Aggregation Dauer” ausgewählt wird, füllen sich automatisch die Felder im Bereich “Expertenmodus”. Umgekehrt deaktiviert sich die “Aggregation Dauer”, wenn die Felder aus dem “Expertenmodus” manuell ausgefüllt werden.

Hinweis 6: Je nach Wahl der Aggregation Dauer wird der Startpunkt der Aggregation unterschiedlich gesetzt.

  • Bei Auswahl “Diese Woche” wird der Startzeitpunkt montags um 00:00:00 Uhr gesetzt und die Status-Updates ab diesem Zeitpunkt zurückgegeben. Beispiel: wenn jetzt der 8. Februar um 13:37:37.020 UTC+2 ist, werden alle Status-Updates ab dem 1. Februar 13:37:37.020 UTC+2 zurückgegeben

  • Bei Auswahl “7 Tage” werden die Status-Updates der letzten 7 Tage auf die Sekunde genau zurückgegeben. Beispiel: wenn jetzt Mittwoch, der 8. Februar um 13:37:37.020 UTC+2 ist, werden die Status-Updates ab Montag, dem 6. Februar um 00:00:00.000 UTC+2 zurückgegeben

  • Bei Auswahl “7 Tage” im Expertenmodus werden die letzten vollen 7 Tage zurückgegeben. Beispiel: Wenn jetzt der 8. Februar um 13:37:37.020 UTC+2 ist, werden die Zustandsänderungen ab dem 1. Februar 00:00:00.000 UTC+2 zurückgegeben

Beispiel 1 zu den Konfigurationsmöglichkeiten

Um die vielfältigen Konfigurationsmöglichkeiten zu verdeutlichen, hier ein Beispiel:

Ausgangssituation ist ein Datenpunkt mit den in den ersten beiden Spalten aufgeführten, eingegangenen Temperaturen.

Ziel ist es, mittels eines zeitlich aggregierten Datenpunkts die Maximaltemperatur der letzten 15 min. herauszufinden.

Wähle hierzu über die Fläche “Zeitlich aggregierter Datenpunkt” den entsprechenden Datenpunkt (in diesem Beispiel wäre “Temperatur”) aus, von dem eine Aggregation über einen Zeitraum erstellt werden soll. Wähle unter “Operation” den Maximalwert (“MAX”), danach unter “Aggregation Dauer” einen Zeitraum von 15 Minuten und im Feld “Typ” den Typ “Number” für die Visualisierung. Du kannst im Feld “Wert” optional den ersten Wert festlegen (der Wert wird bei der ersten Aktualisierung von der Datenquelle überschrieben). Klicke auf “sichern”, dann erscheint der zeitlich aggregierte Datenpunkt im Dashboard und in der Liste der Datenpunkte.

In unserem Beispiel von oben wird der Wert 22 °C als maximale Temperatur in den letzten 15 Minuten gezeigt (vgl. Spalte 3: aus den Daten von 10:00 Uhr bis 09:45 wird das Maximum genommen). Das gleiche Prinzip kannst du mit anderen Operationen durchführen (z.B. “MIN”).

Wenn du hingegen bei dem gleichen Beispiel die Operation “Differenz zur letzten Periode” und einen Zeitraum von 15 Minuten auswählst, dann wird hier die Differenz der Maximaltemperaturen zwischen den letzten beiden Intervallen gezeigt.

Für unser Beispiel wären das die Differenz aus:

  • Dem 1. Intervall (von 9:45 bis 10:00), wo die maximale Temperatur 22 °C ist.
  • Dem 2. Intervall (von 9:30 bis 9:45), wo die maximale Temperatur 35 °C ist.

Angezeigt wird die Differenz beider Temperaturen; d.h. 22°C-35°C = 13°C.

Beispiel 2 zu den Konfigurationsmöglichkeiten

Wenn das Ziel hingegen ist, für die oben angegebenen Temperaturwerte die maximale Temperatur von vor 2 Tagen von dem gesamten (Kalender-)Tag zu erfahren, dann musst Du den Expertenmodus wähle.

Mit dem “Offset” von 2 und der Offset-Einheit “Tag” wählst Du den vorgestrigen Tag (vor 2 Tagen) aus. Nachfolgende Tabelle gibt ein Beispiel für die Funktion des Offsets:

Als Zeitdauer wählst Du 1 und Zeiteinheit “Tag”, um den gesamten Kalendertag als Zeitraum für die Auswertung zu berücksichtigen.

Quelle “IoT Data Hub Aggregation”

Über die Quelle “IoT Data Hub Aggregation” besteht die Möglichkeit, mehrere Variablen eines Gerätes zur selben Zeit als einen aggregierten Datenpunkt weiterzuverarbeiten.
Diese Funktion ist besonders hilfreich, wenn du GPS-Koordinaten (Längen- und Breitengrad) aus einem Gerät direkt und einfach in einem Schritt mit der Koordinate des Digitalen Zwillings verknüpfen möchtest.

Darüber hinaus dient diese Funktion dazu, z.B. in einer Regel den Luftfeuchtigkeit- und Temperaturwert, die aus demselben Gerät stammen, in einer Bedingung verknüpfen möchtest. Anhand der Bedingung kann die Regel anschließend ausgelöst werden.

Um den Verlauf von aufgezeichneten GPS-Daten in der Detailansicht eines Zwillings auf einer Karte darzustellen, kannst du den Datenpunkt nach dieser Anleitung anlegen:

  1. Wähle hierzu die Quelle “IoT Data Hub Aggregation” aus und ein Gerät aus dem IoT Data Hub, von dem Daten empfangen werden sollen.
  2. Wähle dann alle gewünschten Variablen aus, deren Werte alle zu einem JSON-Objekt aggregiert werden.
  3. Der Datenpunkt-Typ ist ein JSON.
  4. Definiere im Javaskript-Transformer die beiden Variablen lat und lon, z.B.:
module.exports = (data) => {
 	return {lat: data.gpsLatitude, lon: data.gpsLongitude};
}
  1. Verknüpfe anschließend diesen Datenpunkt mit den Geokoordinaten des Zwillings.

  2. Mit dem nächsten eingehenden Datenpaket wird die Position des Zwillings direkt aktualisiert.

Konnektoren als Datenquellen

Abhängig von den in deinem Konto konfigurierten Konnektoren kannst du diese auch auswählen, um deinen digitalen Zwilling über Datenpunkte mit anderen Quellen (z. B. niota 1.0) zu verbinden.

Die notwendigen Textfelder für die Konfiguration eines Datenpunktes hängen von der Art des Konnektors ab, die du verwendest. Die folgenden Felder sind ein Beispiel für ein niota 1.0-Konnektor:

  • niotix Datenquellen: Wähle die konkrete Instanz aus, die du verwenden möchtest. Die hier angezeigten Namen basieren auf dem Feld “Instanzname” des jeweiligen Konnektors in der Kontenverwaltung.
  • niotix Geräte: Beginne mit der Eingabe des gesuchten Gerätenamens aus dem IoT Data Hub - niotix wird automatisch Ergebnisse vorschlagen.

Nach der Auswahl des Geräts wähle die Werte, die du an diesen Datenpunkt binden möchtest, indem du einfach das Kästchen auf der linken Seite markierst.

Visualisierung

Für jeden Datenpunkt kannst du unterschiedliche Visualisierungen einstellen, die im Dashboard und in der Kartenansicht erscheint. Folgende Visualisierungen stehen zur Auswahl:

Standard: Wenn du keine andere Visualisierung auswählst, erscheint automatisch das Zählwerk.
Messuhr: Einsetzbar für Temperatur oder Lichtintensität. Bei einer Messuhr werden mit Wertangaben und unterschiedlichen Farben kritische Grenzwerte angezeigt. Definiere diese Werte über die Felder Minimalwert und Maximalwert sowie einen oder mehrere kommagetrennte Schwellenwerte. Diese Werte werden in der Messuhr angezeigt. Zudem kannst du definieren, in welchen Farben die Werte angezeigt werden sollen.
Donut: Diese Visualisierung eignet sich u.a. zur Darstellung einzelner Prozentwerte, z.B. bei Personenzählung. Im Donut werden Teilwerte eines Ganzen als Teile eines Kreises visualisiert.
Zählwerk: Einsetzbar für Metering. Beim Zählwerk kannst du die Visualisierung auf deine Bedürfnisse zuschneiden: Bestimme minimale Zeichenlänge und die Nachkommastellen.
Batterie: Hier wird der Ladezustand von z.B. einem Gerät durch Balken in einer Batterie visualisiert.
Liniendiagramm: Die historischen Daten eines Datenpunkts werden in einem Graphen angezeigt. Du kannst den niedrigsten, den höchsten, den durchschnittlichen, oder den letzten Wert auf der X-Achse angeben, sowie den Zeitraum.

Um mehrere Diagramme in einem Dashboard miteinander vergleichen zu können, kann es sinnvoll sein, die Werte der y-Achse zu fixieren. Für jedes Diagramm ist es nun möglich, einen Minimum-Wert und einen Maximum-Wert der y-Achse zu bestimmen. Im Dashboard wird daraufhin die y-Achse fixiert. Werte die über dem Maximum bzw. unter dem Minimum liegen, werden in der Visualisierung abgeschnitten. Ist kein Wert Minimum- oder Maximum-Wert definiert, bleibt die Achse an diesem Achsenabschnitt variabel.

Da in einem Liniendiagramm häufig ein längerer Zeitraum betrachtet werden soll, ist es zudem hilfreich, dieser Visualisierung einen größeren Platz im Dashboard einzuräumen.

Daher ist es möglich, den Platz den diese im Dashboard einnehmen, sowie die Zeitspanne und das Interval die angezeigt werden sollen, zu definieren.


Boolean: Mit dieser Visualisierung ist es möglich, Wahrheitswerte anzuzeigen. Für jeden Zustand (Wahr oder Falsch) muss hierfür ein Titel, ein Symbol und die Farbe des Symbols ausgewählt werden.

Boolean-Button:

Es gibt die Möglichkeit, im Dashboard eines Digitalen Zwillings einen Button anzulegen, mit dem die Boolean-Werte True und False erzeugt werden können, um sie in Regeln zu verwenden, und Downlinks an Geräte senden zu können.

Bie diesem Button handelt es sich um einen Datenpunkt mit der Visualisierung für Boolean-Werte. Demzufolge wird er wie folgt angelegt: Da der Button auf keine Datenquelle zurückgreift, muss die Quelle “keine” ausgewählt werden, und als Typ “boolean”. Anschließend ist es möglich, als Visualisierung “Taste” auszuwählen. Durch Speichern wird der Boolean-Button als Dashboard Tile angelegt.

Soll in einem anderen Datenpunkt auf den Status des Boolean-Buttons zurückgegriffen werden, ist das durch einen aggregierten Datenpunkt mit dem folgenden Transformator möglich, wobei “button_identifier” durch den jeweiligen Schlüssel des Datenpunktes in dem der Boolean-Button angelegt wurde, getauscht werden muss:

module.exports = (data) => {
 	return data.button_identifier.value;
}

Verknüpfung von Datenpunkten mit Geokoordinaten eines Zwillings

Um den Verlauf von aufgezeichneten GPS-Daten aus anderen Konnektoren (nicht IoT Data Hub) in der Kartenansicht darzustellen, kannst du die Datenpunkte nach dieser Anleitung anlegen:

  1. Lege zwei separate Datenpunkte/ States an für deinen Twin, und zwar Longitude und Latitude. Pro State kann nur eine Variable ausgewählt werden.
  2. Für die Dashboard-Visualisierung der beiden States kannst du “versteckt” wählen, da sie nicht unbedingt angezeigt werden müssen.
  3. Erstelle einen weiteren State der Quelle “Aggregiert” und wähle für die Aggregation die beiden zuvor angelegten States aus.
  4. Setze den State-Typ als ”json” fest.
  5. Füge folgendes in den Transformer ein:
module.exports = (data) => {
 	return {lat: data.gpsLatitude, lon: data.gpsLongitude};
}
  1. Aktiviere die obere Checkbox “Mit Geo-Koordinate verknüpfen”.

  2. Definiere im Javaskript-Transformer die Variablen lat und lon

  3. Nach Aktualisierung des Datenpunktes wird dein Zwilling in der Kartenansicht anhand des aggregierten Datenpunktes positioniert.

Outbound Konfiguration

Um Daten an den IEC Server senden zu können, müssen die einzelnen Datenpunkte konfiguriert werden.

  • Common Address (Gemeinsame Adresse; ca): Die Adresse wird als gemeinsame Adresse bezeichnet, da sie mit allen in der ASDU enthaltenen Objekten verbunden ist. Vergabe der Common-Address max: 1, min: 65534.

  • Information Object Address (Informationsobjektadresse; ioa): Jedes Informationsobjekt wird durch eine Informations-Objekt-Adresse (IOA) adressiert, die die jeweiligen Daten innerhalb einer bestimmten Station identifiziert. Ihre Länge beträgt 3 Byte für IEC 104. Die Adresse wird als Zieladresse in Steuerrichtung und als Quelladresse in Überwachungsrichtung verwendet. Vergabe der Information-Objekt-Adresse min: 1, max: 16777215

  • Type (Datentyp; type): Hier muss der Standard IEC Datentyp ausgewählt werden.

    Unterstützte Typen:

    Type Identification Type Identifier ASDU Read Type
    1 M_SP_NA Single-point information
    3 M_DP_NA Double-point information
    13 M_ME_NC Short floating point number
    15 M_IT_NA Integrated totals
    30 M_SP_TB Single-point -> with time tag
    31 M_DP_TB Double-point -> with time tag
    36 M_ME_TF Short floating point number -> with time tag
    37 M_IT_TB Integrated totals -> with time tag
  • Dead Band (db): Setzt den Schwellwert für jeden gemessenen Datenpunkt. Eine Wertänderung muss größer sein als das Dead-Band, um als event-getriebenes Ereignis gemeldet zu werden. Die Einstellung ist optional (Standardwert= 0,0) und nur für Messwerte relevant. Zulässige Typen sind int und float (z.B. “deadband”: 3.0)

Javascript Transformer

Du kannst eigene Transformatoren definieren, um eingehende Daten in das gewünschte Format und die gewünschten Werte umzuwandeln. Um diese leistungsstarke Funktion zu nutzen, sind Grundkenntnisse in Javascript erforderlich.

  • Sample scripts: niotix provides some basic javascripts as examples how to work with the transformer. Select one of the examples from the dropdown list to see the javascript code.
  • Beispielskripte: niotix stellt einige grundlegende Javascripte als Beispiele für die Arbeit mit dem Transformer zur Verfügung. Wähle eines der Beispiele aus der Dropdown-Liste, um den Javascript-Code zu sehen.
  • Hilfsmethoden: Hier siehst du eine Liste von häufig verwendeten und unterstützten Javascript-Bibliotheken, die du zum Schreiben von Transformatoren verwenden kannst. Bitte werfe einen Blick auf die entsprechende Dokumentation der einzelnen Bibliotheken.
  • Beispielwert: Um einen Transformer zu testen, kannst du hier einen Wert einfügen. Die Schaltfläche “Vorschau” wird diesen Wert als Eingangsdaten für den Transformator verwenden und das Ergebnis im Feld “Transformator Ergebnis Vorschau” anzeigen.

Im Allgemeinen verwendet der Javascript-Transformer eine ähnliche Annotation wie NPM-Pakete. Ein Transformator wird wie ein Modul behandelt und muss das exportierte Ergebnis explizit definieren (module.exports). Du kannst den Variablennamen der eingehenden Daten definieren, indem du die Pfeilfunktion (...= (IncomingData) => { ... }). Das Ergebnis musst du mit return(TransformedResult) zurückgeben.

module.exports = (data) => {
 	return (TransformedResult);
}

Datenpunkte von Digitalen Zwillingen kopieren

In den digitalen Zwillingen besteht zudem die Möglichkeit bereits erstellte Datenpunkte zu kopieren und dessen Attribute für die Neuanlage eines weiteren Datenpunktes vom selben oder eines anderen Zwillings zu verwenden. Diese Funktion ermöglicht somit ein einfaches und schnelleres Anlegen von mehreren Datenpunkten mit ähnlichen Eigenschaften aus den gleichen oder unterschiedlichen (Geräte-) Quellen.

Um einen Datenpunkt zu kopieren, gehst du zunächst auf den “Bearbeitung”-Symbol des zu kopierenden Datenpunktes. In der oberen Zeile der Bearbeitungsansicht findest du den Button “Konfiguration kopieren” [1], den du anschließend anklickst und das Fenster wieder schließt.

Für die Neuanlage eines weiteren Datenpunktes in demselben oder in einem anderen Zwilling klickst du nun auf das Plus-Symbol oben rechts [2].

Nun gehst du auf den Button “Konfiguration anwenden” [3].

Es öffnet sich danach ein neues Fenster, wo alle Attribute (Titel, Schlüsssel, Einheit, Visualisierung, etc.) bereits automatisch ausgewählt werden für den nächsten Schritt der Übertragung. Die Auswahl der Attribute kannst du jedoch beliebig nach deinen Bedürfnissen anpassen. Nach der Auswahl klickst du anschließend auf “Konfiguration anwenden” [4].

Die Felder bzw. Einstellungen des neuen Datenpunktes werden nun anhand der zuvor auserwählten Informationen vom ursprünglichen Datenpunkt konfiguriert und ausgefüllt. Bitte beachte, dass du als letzten Schritt der Anlage die Datenquelle hinzufügen und evtl. den Schlüssel ändern musst (wenn der gleiche Titel bestehen bleibt), da dieser für jeden Zwilling nur einmalig vorkommen darf.

CSV-Export der historischen Datenpunkte

Auch in den digitale Zwillingen lassen sich die eingegangenen Daten als CSV-Datei exportieren.

Um das einfach durchzuführen, klickst du auf Datenpunkte. Über das CSV-Symbol kannst du den Export konfigurieren [1].

Wenn du auf das CSV-Symbol klickst, öffnet sich ein neues Fenster, in dem du den Zeitraum und die zu exportierenden Datenpunkte auswählen kannst. Du kannst auch einen Name und eine E-Mail-Adresse angeben, an die nach beendetem Download ein Download-Link versendet wird. Sobald Datenpunkte ausgewählt wurden, kannst du mit dem “Export”-Button die CSV-Datei generieren.

Du findest die CSV-Datei, in dem du auf den Button “CSV” oben rechts in der Menüleiste klickst. Anschließend öffnet sich die Seite “CSV-Export”, in der du die Datei herunterladen kannst. Hier klickst du entweder direkt auf das Symbol, das sich auf der rechten Seite von der Zeile befindet [2], oder du wählst die Datei aus und klickst du auf das Download-Symbol.