Gerätetypen



Unter dem Menüpunkt “Gerätetypen” siehst du eine Liste der Gerätetypen, auf die du mit deinem Konto Zugriff hast. Hier erstellst du mit den entsprechenden Benutzerrechten Vorlagen zur Verwendung und Gruppierung von Geräten mit den selben Funktionen und Datenstrukturen. Du kannst Standards für die Umwandlung von Paketdaten über einen Paket-Parser einsetzen.

Nach Gerätetypen suchen

Auf der Übersichtsseite ist über der Liste mit Gerätetypen eine Suchleiste, in der du nach einem Typ über den Titel suchen kannst. Sobald du einen Buchstaben eingegeben hast, werden dir automatisch die Suchergebnisse angezeigt. Über den Button “DIGIMONDO Zertifiziert” kannst du die Liste nach Gerätetypen filtern, die das Zertifikat “DIGIMONDO Zertifiziert” tragen. Gerätetypen erhalten die DIGIMONDO-Zertifizierung, wenn sie bestimmte Standards erfüllen und sich in Tests und Praxis erprobt haben. Vor zertifizierten Gerätetypen steht ein grünes Icon im Titel.

Über den Button “In Benutzung” kannst du die Liste nach Gerätetypen filtern, denen mindestens ein Gerät zugeordnet ist. Über den “Reset”-Button rechts neben dem “Filter”-Button kannst du die Suche zurücksetzen.

Gerätetyp anlegen

Um einen neuen Gerätetyp anzulegen, klickst du auf den Button “Anlegen” oben rechts. Dann öffnet sich ein neues Fenster, in dem du die Angaben zum Typen eingibst:

  • Von einem Gerätetyp kopieren: Wenn der Typ in derselben Form bereits existiert, kannst du diesen aus der Liste der Typen auswählen.
  • Bild: Füge ein Bild des Gerätetyps hinzu zur eindeutigen Identifizierung.
  • Zertifiziert von: Wenn du die entsprechenden Berechtigungen als Administrator hast, kannst du Gerätetypen zertifizieren und den Namen deines Unternehmens eingeben. Wenn du auf “Zertifiziert” klickst, erscheint das Icon im Titel.
  • Name:* Gib einen einfach zu identifizierenden Namen für den Gerätetyp ein.
  • Sichtbarkeit:* Wähle aus, ob der Gerätetyp nur in dem ausgewählten Konto oder in allen Konten, zu denen du Zugriff hast, erscheint.
  • Konto:* Wähle das Konto oder das Unter-Konto aus, zu dem dieser Typ hinzugefügt werden soll.
  • Beschreibung: Gib eine genauere Beschreibung des Gerätetyps an.
  • Hersteller Gerätename: Gib den genauen Gerätenamen des Herstellers an.
  • Erweiterte Anzahl von Paketen (Lebenszeichen) in 24h: Gib an, wie viele Pakete dieser Gerätetyp mindestens innerhalb von 24 Stunden empfangen soll. Aus diesem Wert ergibt sich der Schwellenwert für den Nennbetrieb.
  • Dateianhänge: Hänge Dateien an, wie z.B. das Datenblatt, Handbuch oder Installationsanleitung des Geräts.
  • Installationshinweise: Hier kannst du Stichpunkte zur Installation angeben.
  • Besonderheiten: Gib zusätzliche Stichwörter oder Schlüsselinformationen zum Gerätetyp an.
  • Technische Spezifikationen: Gib hier zusätzliche nützliche Informationen zum Gerätetyp an wie Modell, Verwendungszweck, Konfiguration, Konnektivität, Frequenz, Sendeleistung, Übertragungsreichweite, Stromversorgung, Betriebstemperatur, Schutzklasse, Integriertes Befestigungssystem, Abmessungen, Gewicht, Normen, Batterie, Batterielebensdauer, Firmware Versionsnummer, Genauigkeit, Installationshöhe, Genauigkeit, Installationshöhe etc.
  • JSON: Alle zuvor eingetragenen Werte unter “Technische Spezifikation” erscheinen im aufklappbaren Menü im JSON-Format.

Alle Pflichtfelder sind mit einem Sternchen gekennzeichnet. Wenn du alle Pflichtfelder ausgefüllt hast, wird der Button “Sichern + Anlegen"aktiviert. Sobald du diesen betätigst, erscheint der Typ in der Übersichtsliste.

Gerätetyp bearbeiten

Wenn du einen Gerätetyp in der Liste anklickst, gelangst du auf die Detailseite des Typs mit den Informationen wie Beschreibung oder Hersteller-Information.

Klickst du auf den Button “Bearbeiten”, öffnet sich ein neues Fenster. Hier kannst neben den im Erstellungsprozess eingestellten Werten zusätzlich die Werte zur Überprüfung des Batteriestands für die Geräteüberwachung eingeben.

  • Batteriestand-Variable: Wähle aus der Liste eine Variable aus, die den Batteriestand aufweist.
  • Batteriestand-Typ: Wenn du eine entsprechende Variable aussuchst, kannst du hier die Einheit einstellen.
  • Batterie-Warnstufe: Setze fest, ab welchen Wert die Batterie-Warnstufe einsetzt. Sie wird sowohl in der Geräte- als auch in der Anwendungsebene als Warnung verwendet. Der Batteriestand des Gerätes, der zur Berücksichtigung des Akkus verwendet wird, funktioniert nicht zu 100%. Diese Stufe ist höher als die Alarmstufe.
  • Batterie-Alarmstufe: Setze fest, ab welchen Wert die Batterie-Alarmstufe einsetzt. Sie wird sowohl auf Geräte- als auch auf Anwendungsebene als kritischer Status verwendet. Der Batteriestand des Gerätes, mit dem die Batterie berücksichtigt wird, ist schwach, kritisch oder beschädigt. Diese Stufe ist niedriger als die Warnstufe.

Unter dem Reiter “Geräte” auf der Detailseite siehst du alle Geräte aus deinem Konto und ggf. auch den Sub-Konten, die dem Gerätetyp zugeordnet sind.

Über das Such-Feld kannst du nach Geräten mit ihrem Titel suchen. Wenn du auf ein Gerät in der Liste klickst, gelangst du auf die Detailseite des Geräts. Du kannst einzelne oder mehrere Geräte auf einmal bearbeiten, in dem du eins oder alle Geräte über die Zeile neben ID anklickst. Damit aktivierst du den “Bearbeiten”-Button. Mit einem Klick darauf öffnet sich ein Fenster und du kannst die Geräte bearbeiten. Mehr erfährst du im Kapitel “Mehrere Geräte in Anwendungen gleichzeitig bearbeiten”.

Paket Parser für Gerätetyp auswählen

Unter dem Reiter “Paket Parser” auf der Detailseite kannst du den Parser für diesen Gerätetyp konfigurieren. Mit Parsern wird die übertragene Payload des Sensors interpretiert und entschlüsselt. Je nach Payload-Typ können unterschiedliche Parser verwendet werden:

  • Einzelparser: Hex-Payload mit einheitlicher Nachrichtenstruktur, z.B. LoRaWAN
  • Multi-Parser: Hex-Payload mit unterschiedlichen Nachrichtentypen mit fester Struktur, z.B. LoRaWAN
  • Funktions-Parser: Hex-Payload oder JSON-Payload mit beliebigen Nachrichtenstrukturen, z.B. LoRaWAN, NB-IoT, LTE

Du findest auf der Seite zur Einstellung eines Parsers eine Kurzanleitung, um die Konfigurationsdetails besser nachzuvollziehen. Du kannst einen Einzel-Parser, Multi-Parser oder einen Funktions-Parser auswählen. Wenn kein Parser ausgewählt wurde, kannst du die Parser-Form auf der Seite auswählen. Dann öffnet sich ein Fenster, in dem du den Parser konfigurieren kannst.

Vordefinierte Parser einsetzen

Für einige Geräte-Typen existieren bereits vordefinierte Parser, die vom DIGIMONDO-Team erstellt wurden. Wähle einen dieser Parser aus, wenn er zu deinem Geräte Typ passt. In diesem Fall musst du nichts weiter einstellen. Du hast die Option, dem Zielvariablen Typen unter “Typ-Definitionen” zuzuordnen . Du kannst zudem den Parser mit einer Beispiel-Payload testen.

Einzel-Parser einsetzen

Wähle diesen Parser für Simple-Payloads aus, für die keine komplexen Transformationen erforderlich sind.

  1. Klicke auf der Übersichtsseite auf “Einzel-Parser”. So gelangst du auf die Seite mit den Konfigurationsdetails.
  2. Oben findest du eine Kurz-Anleitung sowie die Möglichkeit, einen vordefinierten Einzel-Parser einzusetzen.
  3. Lege im Feld “Parser” die Bits und Typen (Integer, Boolean, String, Float) für die Zielvariablen fest (z. B. Temperatur). Weitere Zielvariablen fügst du mit einem Klick auf das “Plus”-Icon hinzu. Mit dem “Papierkorb”-Icon entfernst du Variablen.
  4. Definiere im Feld “Berechnungsvariablen” Transformationsformeln oder eine Berechnung für die Zielvariablen. Weitere Berechnungen für Zielvariablen fügst du mit einem Klick auf das “Plus”-Icon hinzu. Mit dem “Papierkorb”-Icon entfernst du diese.
  5. Lege im Feld “Typ-Definition” den Typ der Zielvariablen im Parser fest. Wenn Messwerte in der InfluxDB indiziert und mit Grafana visualisiert werden sollen, ist es notwendig, den Variablen Typen zuzuordnen. Die Liste ist automatisch mit den Zielvariablen aus den vorherigen Abschnitten befüllt. Wähle einen Typ aus der Liste aus, die sich im Feld “Typ” öffnet, der zur Variable passt. Sollte kein Typ passen, wähle “Number” aus.
  6. Teste im Feld “Parser Test”, ob die Definitionen funktionieren, indem du eine Beispiel-Payload verwendest (als Hexadezimalcode codiert). Gebe diese Payload in das angegebene Textfeld ein. Klicke auf den Button “Parsen” und prüfe das Ergebnis.
  7. Klicke rechts oben auf den Button “Sichern”, um die Parser-Einstellungen zu speichern.
  8. Wenn du die Parser-Form wechseln willst, klicke auf den roten Button “Parser wechseln”. Du wirst auf die Übersichtsseite der Parser-Typen weitergeleitet. Alle zuvor eingegebenen Daten werden gelöscht.

Multi-Parser einsetzen

Wähle diesen Parser für die Interpretation komplexerer Payloads mithilfe eines Switch-Parsers aus. Hier werden verschiedene Einzel-Parser miteinander kombiniert.

  1. Klicke auf “Switchparser editieren”, um den Switchparser zu konfigurieren. Es öffnet sich ein Fenster.
  2. Oben findest du eine Kurz-Anleitung sowie die Möglichkeit, einen vordefinierten Einzel-Parser einzusetzen.
  3. Lege im Feld “Parser” die Bits und Typen (Integer, Boolean, String, Float) für die Zielvariablen fest (z. B. Temperatur). Weitere Zielvariablen fügst du mit einem Klick auf das “Plus”-Icon hinzu. Mit dem “Papierkorb”-Icon entfernst du Variablen.
  4. Definiere im Feld “Ziel Parser Berechnung” Transformationsformel oder eine Berechnung für die Zielvariablen. Weitere Berechnungen für Zielvariablen fügst du mit einem Klick auf das “Plus”-Icon hinzu. Mit dem “Papierkorb”-Icon entfernst du diese.
  5. Teste im Feld “Parser Test”, ob die Definitionen funktionieren, indem du eine Beispiel-Payload verwendest (als Hexadezimalcode codiert). Gebe diese Payload in das angegebene Textfeld ein. Klicke auf den Button “Parsen” und prüfe das Ergebnis.
  6. Klicke rechts oben auf den Button “Sichern”, um die Parser-Einstellungen zu speichern.
  7. Klicke auf “Standardparser editieren”, um den Standardparser zu konfigurieren. Es öffnet sich ein Fenster. Wenn die Payload keinem der Einzel-Parser im Switchparser entspricht, wird auf den Standardparser zugewiesen.
  8. Erstelle den Standardparser wie oben in der Anleitung für den Einzel-Parser beschrieben.
  9. Wenn du die Parser-Form wechseln willst, klicke auf den roten Button “Parser wechseln”. Du wirst auf die Übersichtsseite der Parser-Typen geleitet. Alle zuvor eingegebenen Daten werden gelöscht.

Funktions-Parser einsetzen

Wähle diesen Parser aus, um einen benutzerdefinierten Parser in Javascript oder Elixir zu definieren oder zur Umwandlung der Payload einen externen Parser (URL Payload Parser) zu benutzen.

  1. Oben findest du eine Kurz-Anleitung mit Beispielen, wie der Parser in Javascript oder Elixir geschrieben wird.
  2. In das Befehlsfeld unter “Parser” trägst du den Parser-Code ein. Über das Fenster über dem Feld kannst du zwischen Elixir und Javascript oder dem URL Payload Parser wechseln. Die Funktion des URL Payload Parsers ist im nächsten Kapitel beschrieben.
  3. Definiere im Feld “Berechnungsvariablen” Transformationsformeln oder eine Berechnung für die Zielvariablen. Weitere Berechnungen für Zielvariablen fügst du mit einem Klick auf das “Plus”-Icon hinzu. Mit dem “Papierkorb”-Icon entfernst du diese.
  4. Lege im Feld “Typ-Definition” den Typ und das Layout der Zielvariablen im Parser fest. Wenn Messwerte in InfluxDB indiziert- und mit Grafana visualisiert werden sollen, ist es notwendig, den Variablen Typen zuzuordnen. Die Liste wird automatisch mit den Zielvariablen aus den vorherigen Abschnitten befüllt. Wähle einen Typ aus der Liste aus, die sich im Feld “Typ” öffnet, der zur Variable passt. Sollte kein Typ passen, wähle “Number” aus.
  5. Teste im Feld “Parser Test”, ob die Definitionen funktionieren, indem du eine Beispiel-Payload verwendest (als Hexadezimalcode codiert). Gebe diese Payload in das angegebene Textfeld ein. Klicke auf den Button “Parsen” und prüfe das Ergebnis.
  6. Klicke rechts oben auf den Button “Sichern”, um die Parser-Einstellungen zu speichern.
Extended Return Structure

Virtuelle Geräte haben besondere neue Funktionen im Zusammenspiel mit Javascript und Elixir Function Parsern. Es kann vom Parser ein Ergebnisobjekt oder eine Liste von Ergebnisobjekten (Array) zurückgegeben werden. Die Struktur dieser Objektliste wird unten beispielhaft erklärt. Mit dieser Objektliste ist es möglich, mehrere Werte pro Paket zu unterschiedlichen Zeitpunkten zurückzugeben. Dies ist interessant, wenn es sich z.B. um einen Wasserzähler handelt, der täglich 24 Messungen durchführt und die Messungen dann mit den entsprechenden Ablesezeitstempeln einmal am Tag überträgt. Diese 24 Werte können nun am Datenpunkt des Virtuellen Geräts mit dem entsprechenden Zeitstempel hinterlegt werden.

Das funktioniert auch bei MQTT und WebHook Inbound Virtuellen Geräten, hier kann bei z.B. bereits geparster Payload eine Liste von geparsten Payload Objekten übergeben werden.
Das meta Object der erweiterten Rückgabestruktur kann in den Objekten angegeben werden und sorgt dann dafür, dass die Werte mit einem beliebigen Zeitpunkt an den State geschrieben werden können.

module.exports = function (payload, meta) {
  const port = meta.lora.fport;
    
  const buf = Buffer.from(payload, 'hex');
  const battery = buf.readUInt16BE(0);  // parse 2 bytes with offset 0
  const temperature = buf.readFloatBE(2); // parse 4 bytes with offset 2
    
  return [
    {
      battery: battery,
      temperature: temperature,
      meta: {                           // meta tag is optional
        time: "2020-01-01T12:34:56Z"
      },
    },
    {
      battery: battery,
      temperature: temperature,
      meta: {                           // meta tag is optional
        time: "2020-01-01T12:34:56Z"
      },
      }
  ]
}

Wichtig: bei der Extended Return Structure kann es aufgrund der schnellen Verarbeitung der Werte aus dem Array bei hoher Systemauslastung zu Inkonsistenzen bei der Ausführung von Regeln kommen (Regelauswertung mit falschem Wert). Dies ist äußerst selten. Dennoch wird davon abgeraten Sensoren die mehrere Messwerte in einen Paket schicken zu nutzen, wenn der Use Case kritisch ist und Regeln basierend auf den gelieferten Daten ausgeführt werden sollen.

URL Payload Parser

Diese Art Parser kommt zum Einsatz, wenn du einen über HTTP erreichbaren externen Parser einsetzen möchtest. In diesem Fall wird die Payload zum umwandeln an die spezifizierte URI als HTTP POST im “Body” als JSON Objekt gesendet, die Antwort enthält dann die umgewandelte Payload. Ein Beispiel JSON findest du in der Parser Kurzanleitung im System.

Im Reiter “Downlinks” kannst du Standard-Downlinks für Gerätetypen konfigurieren. Hiermit lassen sich aus den Geräten in niotix heraus einfache Downlink-Nachrichten an Geräte verschicken, z.B. für den Reset oder das An- oder Ausschalten. Momentan werden nur firefly-Geräte unterstützt. Die Downlinks kannst du nur für Gerätetypen einsetzen, die nicht digimondo-zertifiziert sind. Kontaktiere deinen DIGIMONDO-Ansprechpartner, wenn du einen Downlink für einen zertifizierten Gerätetyp erstellen möchtest.

Konfiguriere im Feld “Konfiguration” einen Downlink, in dem du auf den Plus-Button klickst und folgende Angaben einträgst:
Name: * Gib den Namen des Downlinks an.
Port: * Wähle den Port zwischen -1 und 9 über die Pfeile aus.
Payload: * Gib die Payload an, die versendet werden soll.
Enconding: * Wähle zwischen den Codierungen base16, base64 oder utf8.
Gateways IDs: Gib die ID des Gateway an.

Bei Feldern mit Sternchen handelt es sich um Pflichtfelder.
Klicke auf den Button “Sichern”. Dieser Standard-Downlink ist jetzt verfügbar für alle Geräte dieses Gerätetyps. Auf der Detail-Seite eines Geräts kannst du einen Downlink auswählen und versenden.

Geräte

In dieser Liste werden die Geräte angezeigt, die den gerätetyp zugeordnet haben. Achtung hier werden aktuell nur Geräte aus dem IoT-Data-Hub angezeigt, keine virtuellen Geräte!

Gerätestatuskonfig

Diese Funktion findet ausschließlich in den virtuellen Geräten Anwendung. Hier wird eingestellt welche Variablen bei der Berechnung des System Status eines virtuellen Gerätes eine Rolle spielen. Zunächst können in der Listen Ansicht die variablen ausgewählt werden, welche dann in einem zweiten Schritt mit einer Berechnungslogik versehen werden, um den System Status zu berechnen.

Nachdem die variablen ausgewählt wurden, kann über die Schaltfläche hinzufügen eine Berechnungslogik definiert werden. Nachdem die Berechnungslogiken fertig definiert und gespeichert wurden dient die vorgenommene Konfiguration als Vorlage für alle virtuellen Geräte die zukünftig diesen Gerätetyp zugewiesen bekommen.

Die konkrete Konfiguration zur Ermittlung des Systemstatus am virtuellen Gerät wird also aus dieser Vorlage erstellt, kann jedoch vom Benutzer auf Ebene des virtuellen Gerätes individuell angepasst werden.

Gerätetyp löschen

Auf der Übersichtsseite findest du hinter jedem Gerätetyp zwei Icons zum Bearbeiten und zum Löschen. Klicke auf das “Papierkorb”-Icon, um einen Typ zu löschen. Bei erfolgreicher Löschung erscheint eine grün gefärbte Bestätigungsmeldung “Gerätetyp gelöscht”.