Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

3.1 Datensätze und allgemeines Abfrageschema

...

Geben Sie Ihren API-Autorisierungscode im Anfrage-Header als Schlüssel und Wert an: 

EAPI-ELCLV2

123a45b67_SAMPLE_f12345ab6c789d0 

Im Falle eines Fehlens oder einer Nichtübereinstimmung wird eine Fehlermeldung mit dem HTTP-Status 401 "Unauthorized" zurückgegeben.

...

Die abgerufenen Daten fallen in den Bereich der Organisation des authentifizierten API-Benutzers. Sie werden mit dem HTTP-Statuscode 200 (Success) zurückgegeben.

3.1.3 Http-Fehler-Codes

400 Bad request

z.B. fehlender obligatorischer Parameter

401 Unauthorized

Ungültiger oder fehlender API-Schlüssel

404 Resource not found

Ungültige Seriennummer oder ID

406 Not Acceptable

Accept Header sollte nur application/json lauten

410 License exhausted

Anzahl der verbrauchten Abfragen oder Datentransfers

500 Server Error

Unerwartete interne Ausnahme

503 Service Temporarily Unavailable

Dienst aufgrund von Wartung oder Update nicht verfügbar

3.2 Konfigurations-API

Die REST-Schnittstelle bietet einen sehr einfachen Endpunkt für die Konfiguration von LIBERO Gx-Geräten.

Konfigurationsvorlage erstellen und hochladen

  • Verwenden Sie den Wizard in elproCLOUD, um eine Konfigurationsvorlage für einen LIBERO Gx zu erstellen

  • Wählen Sie den richtigen LIBERO Gx-Typ (die ersten drei Ziffern der Seriennummer sind wichtig)

  • Füllen Sie die Formulare des Wizard aus, bis Sie die Übersichtsseite erreicht haben

    • Alt+Klick auf die Schaltfläche "Sensor kaufen und starten".

    • Ein Dateidownload wird angezeigt

    • Speichern Sie die Datei unter einem passenden Namen (z.B. LIBERO_GH_longlive_freezer.json)

  • Verwenden Sie den Endpunkt POST /api/v1/Templates, um den Inhalt der gespeicherten Konfigurations-JSON-Datei hochzuladen

    • Wichtig: Die Konfiguration muss JSON-escaped sein. Tun Sie dies programmatisch oder verwenden Sie ein Online-Tool

    • Das Anfrageobjekt wird in der Swagger UI beschrieben

  • Optional: Verwenden Sie den Endpunkt GET /api/v1/Templates, um alle verfügbaren Vorlagen aufzulisten

Konfigurieren Sie die Vorlagen

  • Verwenden Sie den Endpunkt PUT /api/v1/Device/{deviceSerialNumber} zur Konfiguration der Geräte

    • Ein Aufruf pro Gerät, verwenden Sie ein Skript, um diesen Prozess zu automatisieren

    • Drei mögliche Nutzdaten, die durch $type angegeben werden

      • Weitere Informationen zu den spezifischen Objekten finden Sie in der Swagger UI

      • DeviceConfigurationRequestByTemplateId und DeviceConfigurationRequestByTemplateName können zur Konfiguration eines Geräts verwendet werden

        • Optional: Bereitstellung von Metadaten, siehe Swagger UI für weitere Informationen zu Platzhaltern

      • DeviceConfigurationRequestClearPending kann verwendet werden, um eine ausstehende Konfiguration für Geräte zu löschen, die noch nicht mit der Organisation gepaart worden sind

3.3 Version der REST-API

Für die REST-API ist ein Versionierungsmechanismus implementiert.

...

Die Warteschlangen-Nachrichten haben folgende grundlegende Nutzdaten im JSON-Format:

Feldname

Typ

Beschreibung

type

String

Mögliche Nachrichtentypen:

  • eapi_measurement_new

  • eapi_geodata_new

  • eapi_Ereignis_neu

  • eapi_deviation_enter

  • eapi_deviation_leave

data

JSON-Object

Innere JSON-Darstellung einer Info-Nachricht, siehe Info-Datenmodelle weiter unten in diesem Dokument

4.2 Nachrichtentyp

Jeder Typ repräsentiert eine spezielle JSON-Nutzlast innerhalb des Data JSON-Objekts. So weiß ein Verbraucher, welches Datenmodell verwendet wird.

...

Die Daten-Nutzdaten sind für jeden Typ unterschiedlich.

4.3.1 Messwerte

Feldname

Typ

Beschreibung

sensorId

Int64

Id für die Sensordaten, die eine Datensenke darstellen.

deviceId

String

Kennung des Geräts

value

Decimal

Numerischer Wert der Maßnahme

timeStamp

DateTimeOffset

DateTime der Messung als Zeitzone utc

unit

String

Einheit Token

Mögliche Werte:

K,°C,°F, %

unitType

String

Typ der Einheit als Text:

  • Temperatur

  • relative_Luftfeuchtigkeit

4.3.1.1 Beispiel-Messungen

...

Code Block
languagejson
{
    "type": "eapi_measurement_new",
    "data": {
        "timeStamp": "2022-10-11T16:21:27+00:00",
        "value": 24.6,
        "unit": "°C",
        "unitType": “temperature",
        "deviceId": "951FF00000340",
        "sensorId": "5368"  
    }
}

4.3.2 GeoDaten

Feldname

Typ

Beschreibung

sensorId

Int64

ID für die Sensordaten, die eine Datensenke darstellen.

deviceId

String

Kennung des Geräts

latitude

Double

Breitengrad mit 8 Ziffern Genauigkeit

longitude

Double

Längengrad mit 8 Ziffern Genauigkeit

timestamp

DateTimeOffset

datetime in der Zeitzone UTC

accuracy

Decimal

Genauigkeit in Metern

4.3.2.1 Beispiel GeoDaten

...

Code Block
{
    "type": "eapi_geodata_new",
    "data": {
        "timeStamp": "2022-10-11T15:21:24+00:00",
        "latitude": 47.19999075,
        "longitude": 9.50875282,
        "accuracy": 2316,
        "deviceId": "951FF00000340",
        "sensorId": "5369"
    }
}

4.3.3 Occurence

Feldname

Typ

Beschreibung

sensorId

Int64

ID für die Sensordaten, die eine Datensenke darstellen.

deviceId

String

Identifikation des Geräts

timeStamp

DateTime

Datumund Zeitpunkt des Auftretens als Zeitzone UTC

typeName

String

"LoggerStatusChange"

previousState

String

Mögliche Werte:

"Undefined", "Init", "Shelflife", "Pairing", "Start", "LogDelayed", "LogTransit", LogPaused", "LogArrived", "StopStopped", "StopSleep", "Calibration", "EmergencyReadOut", "FatalError", "ProductionCalibration"

newState

String

4.3.3.1 Beispiel Occurence

...

Code Block
languagejson
{
    "type": "eapi_occurrence_new",
    "data": {
        "timeStamp": "2022-10-11T15:21:24+00:00",
        "typeName": "LoggerStatusChange",
        "previousState": "Start",
        "newState": "LogDelayed",
        "deviceId": "951FF00000340",
        "sensorId": "5369"
    }
}

4.3.4 Abweichung

Feldname

Typ

Beschreibung

sensorId

Int64

Id für die Sensordaten, die eine Datensenke darstellen.

deviceId

String

Kennung des Geräts

timestamp

DateTimeOffset

DateTime der Abweichung als Zeitzone utc

historyType

String

Typ der Abweichung beschreibt den Beginn oder das Ende der Abweichung.

Mögliche Werte:

"enter"
"leave"

deviationType

String

Abweichungstyp, mögliche Werte:

"battery",
"failure",
"missing",
"radio",
"limit"

reason

String

Abweichung Erklärung Code

limitzone

String (opt.)

Grenzwert Zonencode für eine Grenzwertabweichung

Mögliche Werte:

L1,L2,L3, H1,H2,H3...

4.3.4.1 Beispiel Abweichung aufgetreten

...