CSV-Import für virtuelle Geräte
Bis zu 500 Virtuelle Geräte lassen sich per CSV Datei importieren. Klicke dafür auf den Massenimport-Button (). Wähle dann das Ziel-Konto sowie einen Konnektor aus. Du kannst zusätzlich festlegen, ob die importierten Geräte einem Geräte-Template zugeordnet oder als einzelne Geräte angelegt werden sollen (mit Auswahl des Konnektor-Typs).
Hier zu sind folgende Schritte durchzuführen:
-
Import Variablen definieren: Eine Übersicht der verfügbaren Variablen und deren Bedeutung findest du in der folgenden Tabelle Import Variablen. Außerdem ist es möglich, ein Template für die Import-Datei zu erstellen und herunterzuladen. Wähle über das Dropdown die optionalen Spalten aus, die in der Datei vorhanden sein sollen. Die für den ausgewählten Konnektor definieren Pflichtfelder sind bereits vorausgewählt.
-
Upload der CSV-Datei: Lade nun die fertig vorbereitete Datei hoch. Sollte die CSV Datei Fehlerhaft sein, werden hier die Fehlermeldungen inklusive der zugehörigen Zeile in der Datei angezeigt. Somit kann der Fehler schnell identifiziert werden.
-
Überprüfen und Bestätigen: Nachdem ein Titel eingegeben wurde, kann mit Klick auf den “Erstellen”-Button ein Hintergrundjob angelegt werden. Im Anschluss wird automatisch ein Gerät pro Sekunde angelegt. Dabei werden die einzelnen Jobs systemweit nacheinander ausgeführt. Der Job startet, sobald die vorherigen Jobs abgeschlossen sind. Der Status des Imports kann in den Hintergrundjobs eingesehen werden. Hier werden auch Fehler aufgelistet, sollten Geräten nicht importiert werden können. Nachdem der Import abgeschlossen ist, kann die Seite verlassen werden.
CSV-Format Hinweise:
- Trennzeichen: In der CSV-Datei ist es sowohl möglich Kommas als Trennzeichen zu verwenden, als auch Semikolons.
- UTF-8 Encoding: Die CSV-Datei sollte im UTF-8 Encoding gespeichert werden.
Import Variablen
Die verfügbaren Variablen hängen vom ausgewählten Konnektor-Typ/Gerätetemplate ab. Eine vollständige Übersicht der verfügbaren Variablen wird dir direkt in der Import-Maske angezeigt (Reiter “Anleitung zum Import” ausklappen).
Allgemeine Variablen
| Variable | Beschreibung |
|---|---|
coordinates |
Standortkoordinaten im Format latitude,longitude. |
custom_KEYNAME |
Benutzerdefinierte Eigenschaften. Im Titel wird der Key mit Präfix custom_ benötigt; als Zeilenwert wird der zugehörige Value eingetragen. |
description |
Beschreibungstext des virtuellen Geräts in niotix. |
device_id |
ID des zu importierenden Geräts. Bei Firefly-Geräten entspricht dies der Device EUI. |
deviceType |
ID des niotix Gerätetyps, um die Payload zu parsen. |
deviceDriver |
ID des Gerätetreibers. Dieses Feld kann nur verwendet werden, wenn kein Geräte-Template genutzt wird. |
groups |
Gerätegruppen in niotix. |
faIcon |
Icon für die Anzeige in der UI. Siehe Font Awesome V5 Icon Übersicht. |
isDeviceImport |
Ist dieser Parameter nicht gesetzt, versucht niotix das Gerät im externen System, z. B. Firefly, anzulegen. Sind die Geräte im externen System bereits vorhanden, müssen sie nur importiert werden. Setze den Parameter dafür auf true. |
location |
Postanschrift, an der sich das Gerät befindet. Bitte verwende das Format Adresse, Ort, Land oder mindestens Ort, Land, damit der Coordinate Lookup funktioniert. Beispiel: Bei den Mühren 70, 20457 Hamburg, Deutschland. |
operationalStatus |
Betriebsstatus des virtuellen Geräts in niotix. |
performAddressLookup |
Schlägt beim Import von Koordinaten automatisch die Adresse nach. Nutze dies zusammen mit coordinates. |
performCoordinateLookup |
Schlägt beim Import einer Postanschrift automatisch die Koordinaten nach. Nutze dies zusammen mit location. |
tags |
Tags des virtuellen Geräts in niotix. |
targetReferenceId_KEYNAME |
Referenz-ID für das Dynamische Datenrouting. Ersetze KEYNAME durch den Referenzschlüssel des Ziel-Digitalen-Zwillings, z. B. targetReferenceId_Melo. In der CSV-Zeile steht dann der zugehörige Referenzwert, z. B. MesslokationsnummerWert. |
title |
Anzeigename des virtuellen Geräts in niotix. |
Firefly-spezifische Variablen
| Variable | Beschreibung |
|---|---|
activation |
LoRaWAN Join-Verfahren des Geräts. Wähle OTAA für Join per Application Key oder ABP für manuell gesetzte Session Keys und Device Address. Importiere Geräte mit unterschiedlichen Join-Verfahren in getrennten Imports. |
adr_limit |
LoRaWAN Adaptive Datenrate. |
application_key |
LoRaWAN Application Key. Nur für OTAA relevant. |
application_session_key |
LoRaWAN Application Session Key. Nur für ABP relevant. |
class_c |
Legt fest, ob es sich um ein Class-C-Gerät handelt. |
deduplicate |
Legt fest, wie doppelte Nachrichten behandelt werden. |
dev_status_req |
Legt fest, ob ein LoRaWAN Device-Status-Request an das Gerät gesendet wird. |
address |
LoRaWAN Device Address. Nur für ABP relevant. |
network_session_key |
LoRaWAN Network Session Key. Nur für ABP relevant. |
region |
LoRaWAN-Regionalparameter. Standardwert: EU868. |
rx2_data_rate |
Datenrate mit Spreizfaktor und Bandbreite. |
skip_fcnt_check |
Legt fest, ob der LoRaWAN-Frame-Counter ignoriert werden soll. |
LwM2M-spezifische Variablen
| Variable | Beschreibung |
|---|---|
device_id |
LwM2M-Endpoint-Name des Geräts. Die Bezeichnung ist herstellerspezifisch – manche Hersteller verwenden die IMEI, Elvaco z. B. die serialNumber. (Pflichtfeld; in der Allgemeinen Tabelle gelistet, hier mit LwM2M-Bedeutung.) |
security_mode |
Sicherheitsmodus der LwM2M-Verbindung. Aktuell sind nur nosec (unverschlüsselt, Security Mode deaktiviert) oder psk möglich. Muss in der Regel im Geräte-Template gesetzt sein (siehe Pflichtfelder). |
connection_server_type |
Typ des LwM2M-Servers: bootstrap oder management. In der Regel wird bootstrap verwendet. Muss in der Regel im Geräte-Template gesetzt sein. |
key |
LwM2M Pre-Shared Key (PSK) als Hexstring (64 Zeichen). Bei Elvaco auch als bootstrapTransportKey bezeichnet. |
wM-Bus-spezifische Variablen
| Variable | Beschreibung |
|---|---|
Manufacturer |
Herstellercode, bestehend aus drei Großbuchstaben, zur Identifizierung des Herstellers. |
IdentificationNumber |
Geräteseriennummer des Herstellers (HEX, 8-stellig). |
key |
AES-Gerätekey (HEX, 32-stellig). Nicht erforderlich bei unverschlüsselten Nachrichten. |
Hinweis zum wM-Bus-Konnektor: Die Externe ID wird – anders als bei anderen Konnektoren – nicht angegeben, sondern vom System automatisch nach dem Schema Herstellercode_Seriennummer generiert. Die Option isDeviceImport ist hier daher nicht verfügbar bzw. nicht notwendig. Beim Erreichen des Gerätelimits für den Wireless M-Bus Decoder im Konto können keine weiteren Geräte angelegt werden.
MQTT- und Webhook-spezifische Variablen
Die Konnektoren MQTT und Webhook haben keine spezifischen Variablen. Es werden lediglich title und device_id als Pflichtfelder sowie die Allgemeinen Variablen verwendet.
Minimale Pflichtfelder pro Konnektor
Welche Felder verpflichtend sind, hängt davon ab, ob der Import mit oder ohne Geräte-Template erfolgt:
| Konnektor | Pflichtfelder ohne Template | Pflichtfelder mit Template |
|---|---|---|
| firefly | title, region, device_id, activation |
title, device_id |
| lwm2m | title, device_id, security_mode, connection_server_type |
title, device_id |
| mqtt | title, device_id |
title, device_id |
| webhook | title, device_id |
title, device_id |
| wmbus | title, Manufacturer, IdentificationNumber |
title, Manufacturer, IdentificationNumber |
- Beim Massenimport mit Geräte-Template werden konnektor- und treiberbezogene Felder aus dem Template übernommen; entsprechende Spalten in der CSV-Datei werden ignoriert. Bei firefly stammen so z. B.
regionundactivationaus dem Template. - Einige konnektor-spezifische Pflichtfelder können und müssen ausschließlich im Template gesetzt werden (bei LwM2M
security_modeundconnection_server_type). Sind sie im Template nicht gesetzt, schlägt der Import fehl – die Werte aus der CSV-Datei werden in diesem Fall nicht berücksichtigt. - Die Option
isDeviceImportist nur bei den Konnektoren firefly und lwm2m relevant.
Häufige Fehlerquellen
- UTF-8 und Excel: Wird eine CSV-Datei per Doppelklick in Excel geöffnet, wird sie in der Regel nicht als UTF-8 interpretiert – Umlaute und Sonderzeichen werden dann falsch dargestellt. Importiere die Datei stattdessen über Datei → Importieren → CSV-Datei und wähle dabei explizit das UTF-8-Encoding.
locationundperformCoordinateLookup: Damit der Coordinate-Lookup funktioniert, muss die Anschrift das Land enthalten (z. B.…, Deutschland). Beispiel:Bei den Mühren 70, 20457 Hamburg, Deutschland.- Pflichtfelder, die das Template setzt: Achte auf den Unterschied zwischen Import mit und ohne Geräte-Template. Felder wie
security_modeundconnection_server_type(LwM2M) können nur über das Template gesetzt werden; fehlen sie dort, schlägt der Import fehl. Es wird empfohlen, ein neu erstelltes Template (z. B. für firefly) vor dem ersten Import noch einmal zu öffnen bzw. zu bearbeiten, die mit einem Stern markierten Pflichtfelder (z. B.activation) dort explizit zu setzen und das Template anschließend zu speichern, bevor der erste Import mit diesem Template durchgeführt wird.
Best Practices & nützliche Felder
tags: Hilfreich, um Geräte später über Smart Groups zu gruppieren. Verwende dafür kurze Tags wie z. B.altona. Beispiel: Alle Zähler eines Stadtteils bzw. Bezirks lassen sich so für ein übersichtlicheres Monitoring in einer Smart Group zusammenfassen.custom_<KEYNAME>: Eignet sich für Metadaten und Stammdaten, z. B.custom_InterneZählernummer.targetReferenceId_<KEYNAME>: Steuert das Dynamische Datenrouting auf digitale Zwillinge, z. B.targetReferenceId_Melo. Verwende als Wert eine stabile ID, die sich in der Regel nicht ändert (z. B. Messlokations- oder GIS-ID). So bleiben bei einem Gerätetausch oder Turnuswechsel die Daten demselben digitalen Zwilling zugeordnet (nahtloser Zählertausch).isDeviceImport: Nur für die Konnektoren firefly und lwm2m relevant. Gibt an, ob das Gerät im externen System (z. B. firefly oder LwM2M-Server) bereits existiert und nur importiert werden soll (true) oder ob niotix es dort neu anlegt.