DataProviderInfo und DataStreamValue

DataProviderInfo und DataStreamValue

Im LM1.0.0 Schema gibt es zwei Nachrichten im JSON Format:

 JSON Format
Beschreibung
DataProviderInfo
Enthält Basis-Informationen über einen Sensor wie Hersteller/Name sowie dessen Eingänge bzw. Messwerte.
Diese Nachricht wird nur beim ersten Mal nach Aktivierung des Sensors gesendet, in weiterer Folge werden nur die einzelnen Messwerte per "DataSteamValue" Nachricht übermittelt.
DataStreamValue
Enthält Daten über einen aktuellen Sensorwert, wobei ein Werte in einer Nachricht versendet wird, d.h. ein Sensor erzeugt eine Nachricht pro Eingang pro Zeitintervall.

DataProviderInfo

Enthält Basis-Infos (Stammdaten) des Sensors. Dazu gehören unter anderem die Beschreibungen der Eingänge inkl. interne IDs. Diese werden bei den laufenden Nachrichten (DataStreamInfo Messages) verwendet.

Beispiel (Luftqualitätssensor)

  1. {
  2.     "messageId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
  3.     "header": {
  4.       "message": "DataProviderInfo",
  5.       "bodySchema": "DataProviderInfo-1.0.0",
  6.       "trigger": {
  7.         "type": "EVENT",
  8.         "name": "DATA_PROVIDER_CREATED"
  9.       },
  10.       "createdAt": 1234567899000
  11.     },
  12.     "body": {
  13.       "id": "01234567890abcdef01234567890abcd",
  14.       "customKey": "",
  15.       "title": "Luftqualitätssensor",
  16.       "dataProviderStatus": {
  17.         "status": "",
  18.         "reason": "",
  19.         "since": 0
  20.       },
  21.       "onlineStatus": {
  22.         "status": "",
  23.         "since": 0,
  24.         "lastMessageAt": 0
  25.       },
  26.       "type": "LORA_NODE",
  27.       "typeObject": {
  28.         "lmId": "12345",
  29.         "devEui": "01234567890abcde",
  30.         "article": {
  31.           "articleNumber": "",
  32.           "name": "",
  33.           "imageUrl": ""
  34.         },
  35.         "vendor": {
  36.           "name": "",
  37.           "articleNumber": ""
  38.         },
  39.         "location": ""
  40.       },
  41.       "supportedCommands": [],
  42.       "supportedQueries": [],
  43.       "supportedSystemStreams": [],
  44.       "dataStreams": [
  45.         {
  46.           "id": "01234567890abcdef01234567890abc1",
  47.           "title": "Signal Strength",
  48.           "measurement": {
  49.             "type": "",
  50.             "unit": ""
  51.           },
  52.           "range": {
  53.             "min": 0,
  54.             "max": 0
  55.           },
  56.           "type": ""
  57.         },
  58.         {
  59.           "id": "01234567890abcdef01234567890abc2",
  60.           "title": "Battery Level",
  61.           "measurement": {
  62.             "type": "",
  63.             "unit": ""
  64.           },
  65.           "range": {
  66.             "min": 0,
  67.             "max": 0
  68.           },
  69.           "type": "ANALOG"
  70.         },
  71.         {
  72.           "id": "01234567890abcdef01234567890abc3",
  73.           "title": "Temperatur",
  74.           "measurement": {
  75.             "type": "temperature",
  76.             "unit": "centigrade"
  77.           },
  78.           "range": {
  79.             "min": 0,
  80.             "max": 0
  81.           },
  82.           "type": "ANALOG"
  83.         },
  84.         {
  85.           "id": "01234567890abcdef01234567890abc4",
  86.           "title": "Online Status",
  87.           "measurement": {
  88.             "type": "",
  89.             "unit": ""
  90.           },
  91.           "range": {
  92.             "min": 0,
  93.             "max": 0
  94.           },
  95.           "type": "DIGITAL"
  96.         },
  97.         {
  98.           "id": "01234567890abcdef01234567890abc5",
  99.           "title": "CO2",
  100.           "measurement": {
  101.             "type": "air_quality",
  102.             "unit": "ppm"
  103.           },
  104.           "range": {
  105.             "min": 0,
  106.             "max": 0
  107.           },
  108.           "type": "ANALOG"
  109.         },
  110.         {
  111.           "id": "01234567890abcdef01234567890abc6",
  112.           "title": "Luftfeuchte",
  113.           "measurement": {
  114.             "type": "humidity",
  115.             "unit": "percent"
  116.           },
  117.           "range": {
  118.             "min": 0,
  119.             "max": 0
  120.           },
  121.           "type": "ANALOG"
  122.         }
  123.       ]
  124.     }
  125.   }
  126.   

Schema

Die Beschreibung des Schemas in Form eines JSONSchema findet sich auch in den angehängten Dateien unter DataStreamValue-1.0.0.schema.json

messageId
string
Eindeutige ID der Message (UUID)
header
{ }
message
string
Schema Name

Mögliche Werte:
DataProviderInfo
bodySchema
string
Schema Name/Version

Mögliche Werte:
DataProviderInfo-1.0.0
trigger
{ }
type
string
Trigger Type (dzt. nur 'EVENT')

Mögliche Werte:
EVENT
name
string
Trigger Type (dzt. nur 'DATA_PROVIDER_CREATED' (Sensor erstellt)

Mögliche Werte:
DATA_PROVIDER_CREATED
createdAt
number
Zeitstempel der Anlage des Sensors (Unix Timestamp in ms)
body
{ }
id
string
Eindeutige ID der Message
customKey
string
Selbstvergebene ID des Sensors
title
string
Name des Sensors
dataProviderStatus
{ }
status
string
Noch nicht implementiert
reason
string
Noch nicht implementiert
since
number
Noch nicht implementiert
onlineStatus
{ }
status
string
Noch nicht implementiert
since
number
Noch nicht implementiert
lastMessageAt
number
Noch nicht implementiert
type
string
Art des Sensors

Mögliche Werte:
LORA_NODE
typeObject
{ }
lmId
string
linemetrics ID des Sensors
devEui
string
Eindeutige, vom Hersteller vergebene ID des Sensors
article
{ }
articleNumber
Noch nicht implementiert
name
Noch nicht implementiert
imageUrl
Noch nicht implementiert
vendor
{ }
name
Noch nicht implementiert
articleNumber
Noch nicht implementiert
location
string
Noch nicht implementiert
supportedCommands
Noch nicht implementiert
supportedQueries
Noch nicht implementiert
supportedSystemStreams
Noch nicht implementiert
dataStreams
[ { } ]
id
string
Eindeutige ID des Sensorwerts
title
string
Eindeutiger Name des Sensorwerts
measurement
{ }
type
string
Type des Sensorwerts (zB temperature)
unit
string
Einheit des Sensorwerts (zB centigrade)
range
{ }
min
number
Noch nicht implementiert
max
number
Noch nicht implementiert
type
string
Art des Sensorwerts

Mögliche Werte:
ANALOG, DIGITAL

DataStreamValue 

Enthält Daten über einen aktuellen Sensorwert, wobei ein Werte in einer Nachricht versendet wird, d.h. ein Sensor erzeugt eine Nachricht pro Eingang pro Zeitintervall.

Beispiel (Luftqualitätssensor)

  1. {
  2.     "messageId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
  3.     "header": {
  4.       "message": "DataStreamValue",
  5.       "bodySchema": "DataStreamValue-1.0.0",
  6.       "trigger": {
  7.         "type": "EVENT",
  8.         "name": "SENSOR_DATA_SENT"
  9.       },
  10.       "createdAt": 1234567899000
  11.     },
  12.     "body": {
  13.       "id": "01234567890abcdef01234567890abcd",
  14.       "dataProviderId": "01234567890abcdef01234567890abcd",
  15.       "timestamp": 1234567899000,
  16.       "value": {
  17.         "val": 123
  18.       },
  19.       "type": "RAW"
  20.     }
  21.   }
  

Schema

Die Beschreibung des Schemas in Form eines JSONSchema findet sich auch in den angehängten Dateien unter DataStreamValue-1.0.0.schema.json

messageId
string
Eindeutige ID der Message (UUID v4)
header
{ }
message
string
Schema Name

Mögliche Werte:
DataStreamValue
bodySchema
string
Schema Name/Version

Mögliche Werte:
DataStreamValue-1.0.0
trigger
{ }
type
string
Trigger Type (dzt. nur 'EVENT')

Mögliche Werte:
EVENT
name
string
Trigger Type (dzt. nur 'SENSOR_DATA_SENT' (Sensor Daten gesendet)

Mögliche Werte:
SENSOR_DATA_SENT
createdAt
number
Zeitstempel der Erstellung der Message (Unix Timestamp in Millisekunden)
body
{ }
id
string
Stream ID
dataProviderId
string
Dataprovider (Sensor) ID
timestamp
number
Zeitstempel der Erfassung des Werts (Unix Timestamp in Millisekunden)
value
{ }
val
number
Sensorwert
rssi
number
optional
Signalstärke/RSSI (Nur bei 'Signal Strength' Streams)
snr
number
optional
Signal/Noise Ratio (SNR) (Nur bei 'Signal Strength' Streams)
type
string
Type des Werts (aktuell nur 'RAW')

Mögliche Werte:
RAW

    • Related Articles

    • ExtendedDataStreamValue

      Im LM0.0.1 Schema gibt es nur eine Nachricht im JSON Form, welche sowohl Metadaten vom Gerät als auch Messdaten in einer gemeinsamen Nachricht sendet. Die Unterscheidung zwischen "DataproviderInfo" und "DataStreamValue" wie beim Format LM 1.0.0, ist ...
    • MQTT

      MQTT (Message Queuing Telemetry Transport) ist ein leichtgewichtiges, publish/subscribe-basiertes Protokoll, das speziell für die zuverlässige Übertragung von Nachrichten in Umgebungen mit begrenzter Bandbreite und hoher Latenz entwickelt wurde. Es ...
    • Confluent Kafka

      Confluent Kafka ist eine auf Apache Kafka basierende Plattform, die entwickelt wurde, um Unternehmen eine leistungsstarke und skalierbare Lösung für das Streaming von Daten in Echtzeit zu bieten. Apache Kafka selbst ist ein verteiltes ...
    • Microsoft Azure Event Hub

      Einleitung Microsoft Azure Event Hub ist ein Cloud-basierter Service, der für die Verarbeitung und Analyse großer Mengen an Ereignisdaten in Echtzeit entwickelt wurde. Dieser Dienst ist besonders nützlich für Szenarien, in denen große Mengen an ...
    • REST API

      Die LineMetrics REST API bietet die Möglichkeit Daten via REST JSON API auszulesen bzw. Objekte in der Objektstruktur zu erstellen. Alle REST API Endpunkte sowie Beschreibung der einzelnen Endpunkte finden Sie in unserer Postman Collection welche ...