Data Integration Center#
Data Integration Center is a feature that allows you to forward device related data to your systems, databases, message brokers etc. There are two kind of events:
- Lifecycle - these are related to device life cycle events like creation, update, deletion.
- Telemetry - these are related to telemetry gathered by device like temperature measurement.
Templating#
Templating feature allows for defining how your payload (or headers) looks like. This enables you to integrate with almost all available services, gathering your data according to your preferences.
You can modify a body template as long as it is proper JSON
. If you want a different content type, you can use the Text
option that has no validation at all.
{
"version": "$version",
"timestamp": $timestamp,
"endpointName": "$endpointName",
"domainId": "$domainId",
"url": "$url",
"value": "$value"
}
version: $version
timestamp: $timestamp
endpointName: $endpointName
domainId: $domainId
url: $url
value: $value
Note that there are values starting with $
e.g. $endpointName
. These are called variables.
Variables#
Variables allow for using some device context in a payload. When sending events, variables are replaced
with actual values e.g. $endpointName
with test-device-47193512895
. There are several variables that can be used,
they are predefined. If a variable does not exist e.g. $notExisting
, then it is sent as a normal text.
version
(type: string) - the version of changes (such as new variables) to the mechanism.timestamp
(type: long) - the time of occurrence of the event in milliseconds.endpointName
(type: string) - the device endpoint name.domainId
(type: string) - the entire ID of the domain with the device.domainName
(type: string) - the name of the last subdomain without slashes.subtype
(type: string) - enumeration type of the event.-
metadata
(type: json|string) - additional details about the event in relation to its subtype.Metadata format
For the
JSON
content type, it is an object with possibly nested fields. Whereas forTEXT
it is a simple string with fields separated by commas.
version
(type: string) - the version of changes (such as new variables) to the mechanism.timestamp
(type: long) - the time of occurrence of the event in milliseconds.endpointName
(type: string) - the device endpoint name.domainId
(type: string) - the entire ID of the domain with the device.domainName
(type: string) - the name of the last subdomain without slashes.url
(type: string) - the lwm2m path (resource id) with changes.-
value
(type: string|number) - the value of the changed LwM2M resource.Value format
Although it can be a number, in the case of the
JSON
content type, it must be enclosed in quotation marks.
Available variables differs from context where they are used. For detailed information, see headers and body.
Headers#
Variables can be used in the Header value
field. You can enter any header value e.g. some token.
If you change the type to $
you will be allowed to easily select available variables.
However, in the abc
mode, variables can also be used with the help of the $
sign.
Note
Variables cannot be used in the header key. Thus, any $
references defined in the Header key
will not be considered.
For device lifecycle events, there are the following variables:
version
timestamp
endpointName
domainId
domainName
subtype
For device telemetry events, there are the following variables:
version
timestamp
endpointName
domainId
domainName
Forbidden headers#
Certain headers can't be overwritten when using a webhook. The following list includes headers that are restricted and can't be modified:
Authorization
Content-Type
Content-Length
User-Agent
Accept
Accept-Encoding
Host
Connection
Origin
Cache-Control
Body#
As mentioned in the Templating section, you can adjust the look of your payload. If you want to return to the default template, click Return to default.
In the webhook integration, you can choose between two content types:
JSON
- It enforces the JSON format. The editor tries to catch any mistakes and point them out.TEXT
- In this case there is no format validation.
For integration with Kafka, only the JSON
content type is allowed.
For device lifecycle events, there are the following variables:
version
timestamp
endpointName
domainId
domainName
subtype
metadata
For device telemetry events, there are the following variables:
version
timestamp
endpointName
domainId
domainName
url
value