Scheme LM1.0.0

Scheme LM1.0.0

2 different types of messages are sent:
  1. DataProviderInfo
    Contains basic information about a sensor such as manufacturer/name as well as its inputs or measured values.
    This message is only sent the first time after activating the sensor, subsequently only the individual measured values are transmitted via "DataSteamValue" message.
  2. DataStreamValue
    Contains data about a current sensor value, whereby a value is sent in a message, i.e. a sensor generates one message per input per time interval.

DataProviderInfo

Contains basic information (master data) of the sensor. This includes the descriptions of the inputs including internal IDs. These are used for the current messages (DataStreamInfo Messages).

Example (air quality sensor)

  1. {
  2. "messageId": "aaaaaaaaaa-bbb-cccc-ddd-eeeeeeeeeeeeeeeeee",
  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": "air quality sensor",
  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": "ANALOGUE"
  70. },
  71. {
  72. "id": "01234567890abcdef01234567890abc3",
  73. "title": "temperature",
  74. "measurement": {
  75. "type": "temperature",
  76. "unit": "centigrade"
  77. },
  78. "range": {
  79. "min": 0,
  80. "max": 0
  81. },
  82. "type": "ANALOGUE"
  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": "ANALOGUE"
  109. },
  110. {
  111. "id": "01234567890abcdef01234567890abc6",
  112. "title": "humidification",
  113. "measurement": {
  114. "type": "humidity",
  115. "unit": "percent"
  116. },
  117. "range": {
  118. "min": 0,
  119. "max": 0
  120. },
  121. "type": "ANALOGUE"
  122. }
  123. ]
  124. }
  125. }

Scheme

The description of the scheme in the form of aJSONSchemacan also be found in the attached files underDataStreamValue-1.0.0.schema.json

messageId
string
Unique message ID (UUID)
header
{ }
message
string
Scheme Name

Possible values:
DataProviderInfo
bodySchema
string
Schema Name/Version

Possible values:
DataProviderInfo-1.0.0
trigger
{ }
type
string
Trigger Type (dzt. only 'EVENT')

Possible values:
Events
name
string
Trigger Type (dzt. only 'DATA_PROVIDER_CREATED' (sensor created)

Possible values:
Data_provider_created
createdAt
number
Timestamp of the sensor system (Unix Timestamp in ms)
body
{ }
id
string
Unique ID of the message
customKey
string
Sensor self-assigned ID
title
string
Sensor name
dataProviderStatus
{ }
status
string
Not yet implemented
reason
string
Not yet implemented
since
number
Not yet implemented
online status
{ }
status
string
Not yet implemented
since
number
Not yet implemented
lastMessageAt
number
Not yet implemented
type
string
Type of sensor

Possible values:
Lora_node
typeObject
{ }
lmId
string
linemetrics sensor ID
devEui
string
Unique sensor ID awarded by the manufacturer
article
{ }
articleNumber
Not yet implemented
name
Not yet implemented
imageUrl
Not yet implemented
vendor
{ }
name
Not yet implemented
articleNumber
Not yet implemented
location
string
Not yet implemented
supportedCommands
Not yet implemented
supportedQueries
Not yet implemented
supportedSystemStreams
Not yet implemented
dataStreams
[ { } ]
id
string
Unique ID of sensor value
title
string
Unique name of sensor value
measurement
{ }
type
string
Type of sensor value (e.g. temperature)
unit
string
Unit of sensor value (e.g. centigrade)
range
{ }
min
number
Not yet implemented
max
number
Not yet implemented
type
string
Type of sensor value

Possible values:
Analogue, digital

DataStreamValue

Example (air quality sensor)

  1. {
  2. "messageId": "aaaaaaaaaa-bbb-cccc-ddd-eeeeeeeeeeeeeeeeee",
  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. }

Scheme

The description of the scheme in the form of aJSONSchemacan also be found in the attached files underDataStreamValue-1.0.0.schema.json
messageId
string
Unique message ID (UUID v4)
header
{ }
message
string
Scheme Name

Possible values:
DataStreamValue
bodySchema
string
Schema Name/Version

Possible values:
DataStreamValue-1.0.0
trigger
{ }
type
string
Trigger Type (dzt. only 'EVENT')

Possible values:
Events
name
string
Trigger Type (dzt. only 'SENSOR_DATA_SENT' (sensor data sent)

Possible values:
Sensor_data_sent
createdAt
number
Message creation timestamp (Unix timestamp in milliseconds)
body
{ }
id
string
Stream ID
dataProviderId
string
Dataprovider (sensor) ID
timestamp
number
Time stamp of recording the value (Unix timestamp in milliseconds)
value
{ }
valves
number
Sensor value
rssi
number
optional
Signal Strength/RSSI (Only for 'Signal Strength' Streams)
snr
number
optional
Signal/Noise Ratio (SNR)
type
string
Type of value (currently only 'RAW')

Possible values:
Raw

    • Related Articles

    • Scheme ExtendedDataStreamValueV001

      In this format, both metadata and data are sent in a shared message - the distinction between "DataproviderInfo" and "DataStreamValue" as in LM100 format is not available. Example (temperature sensor) { "dataProvider": { "devEui": "01234567890abcde", ...
    • Webhook

      Payload Example {"data": {"dataProvider": {"devEui": "12345abcdef","lmId": "12345"},"dataStream": {"measurement": "temperature"},"dataPoint": {"timestamp": 1704897825000,"value": {"value": 123,"min": 123,"max": 123}}}} Scheme data protection { } ...
    • Mqtt

      The MQTT integration allows sensor data to be received via the Linemetrics MQTT broker (access data is passed when integration is created). Formats The following formats are available when using the MQTT integration: Json ...