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)
- {
- "messageId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "header": {
- "message": "DataProviderInfo",
- "bodySchema": "DataProviderInfo-1.0.0",
- "trigger": {
- "type": "EVENT",
- "name": "DATA_PROVIDER_CREATED"
- },
- "createdAt": 1234567899000
- },
- "body": {
- "id": "01234567890abcdef01234567890abcd",
- "customKey": "",
- "title": "Luftqualitätssensor",
- "dataProviderStatus": {
- "status": "",
- "reason": "",
- "since": 0
- },
- "onlineStatus": {
- "status": "",
- "since": 0,
- "lastMessageAt": 0
- },
- "type": "LORA_NODE",
- "typeObject": {
- "lmId": "12345",
- "devEui": "01234567890abcde",
- "article": {
- "articleNumber": "",
- "name": "",
- "imageUrl": ""
- },
- "vendor": {
- "name": "",
- "articleNumber": ""
- },
- "location": ""
- },
- "supportedCommands": [],
- "supportedQueries": [],
- "supportedSystemStreams": [],
- "dataStreams": [
- {
- "id": "01234567890abcdef01234567890abc1",
- "title": "Signal Strength",
- "measurement": {
- "type": "",
- "unit": ""
- },
- "range": {
- "min": 0,
- "max": 0
- },
- "type": ""
- },
- {
- "id": "01234567890abcdef01234567890abc2",
- "title": "Battery Level",
- "measurement": {
- "type": "",
- "unit": ""
- },
- "range": {
- "min": 0,
- "max": 0
- },
- "type": "ANALOG"
- },
- {
- "id": "01234567890abcdef01234567890abc3",
- "title": "Temperatur",
- "measurement": {
- "type": "temperature",
- "unit": "centigrade"
- },
- "range": {
- "min": 0,
- "max": 0
- },
- "type": "ANALOG"
- },
- {
- "id": "01234567890abcdef01234567890abc4",
- "title": "Online Status",
- "measurement": {
- "type": "",
- "unit": ""
- },
- "range": {
- "min": 0,
- "max": 0
- },
- "type": "DIGITAL"
- },
- {
- "id": "01234567890abcdef01234567890abc5",
- "title": "CO2",
- "measurement": {
- "type": "air_quality",
- "unit": "ppm"
- },
- "range": {
- "min": 0,
- "max": 0
- },
- "type": "ANALOG"
- },
- {
- "id": "01234567890abcdef01234567890abc6",
- "title": "Luftfeuchte",
- "measurement": {
- "type": "humidity",
- "unit": "percent"
- },
- "range": {
- "min": 0,
- "max": 0
- },
- "type": "ANALOG"
- }
- ]
- }
- }
-
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)
- {
- "messageId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
- "header": {
- "message": "DataStreamValue",
- "bodySchema": "DataStreamValue-1.0.0",
- "trigger": {
- "type": "EVENT",
- "name": "SENSOR_DATA_SENT"
- },
- "createdAt": 1234567899000
- },
- "body": {
- "id": "01234567890abcdef01234567890abcd",
- "dataProviderId": "01234567890abcdef01234567890abcd",
- "timestamp": 1234567899000,
- "value": {
- "val": 123
- },
- "type": "RAW"
- }
- }
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 ...