Sending measured values
Measured values are values that a device measures continuously, for example a temperature or a rotation speed. They are shown in the measurement chart and evaluated by rules.
Prerequisites
-
The device exists in the configuration with a Technical ID, for example
cnc1-1. -
The measuring points exist and are assigned to the device or its device type, for example
temperatureandrotation-speed. -
A technical client with the permission
measurements:write. See Authentication.
Request
POST /data-ingest/api/v1/tenants/{tenantId}/ingest HTTP/1.1
Host: <sot-host>
Authorization: Bearer <access token>
Content-Type: application/json
X-Message-Type: measurement
X-Api-Version: 1.0
{
"reference": {
"identifier": "cnc1-1",
"type": 0
},
"measurementTimeSeries": [
{
"name": "temperature",
"firstSampleTimestamp": "2026-10-16T10:00:00Z",
"timeOffsets": [0, 1000, 2000],
"values": [47.2, 47.5, 48.1],
"measurementUnit": "°C",
"measurementType": 0
},
{
"name": "rotation-speed",
"firstSampleTimestamp": "2026-10-16T10:00:00Z",
"timeOffsets": [0, 1000, 2000],
"values": [11980, 12010, 12005],
"measurementUnit": "rpm"
}
]
}
The service answers with 202 Accepted. A few seconds later, the values are shown in the measurement chart of the device.
Message format
| Field | Required | Description |
|---|---|---|
|
yes |
Technical ID of the device. Maximum 80 characters. |
|
yes |
Type of the reference. Use |
|
no |
Part that was processed while the values were measured: |
|
yes |
1 to 50 time series per request. |
|
yes |
Name of the measuring point. Must match the name in the configuration. Maximum 128 characters. |
|
yes |
Time of the first value in UTC, ISO 8601, for example |
|
yes |
Time of every value in milliseconds after |
|
yes |
Values, one per time offset. |
|
no |
Unit, for example |
|
no |
|
|
no |
Limits that apply to all values: |
|
no |
Limits per value. Every array has the same length as |
Recommendations
-
Send values in batches instead of one request per value, for example all values of one second or of a few seconds in one request.
-
Use the time of the measurement as
firstSampleTimestamp, not the time of sending. -
Keep the device and its measuring points in the configuration up to date before you send data for new measuring points.
-
If you receive
429or503, wait for the time in theRetry-Afterheader and send the request again.
Verifying the result
-
In the menu, click Devices and open the device.
-
Check that the Measurement Chart shows the new values. See Measured values.
If the values are not shown, check that:
-
reference.identifiermatches the Technical ID of the device exactly, -
namematches the Name of a measuring point of the device exactly, -
the timestamps are in the selected time range of the chart.
Messwerte senden
Messwerte sind Werte, die ein Gerät kontinuierlich misst, zum Beispiel eine Temperatur oder eine Drehzahl. Sie erscheinen im Messwerte Diagramm und werden von Regeln ausgewertet.
Voraussetzungen
-
Das Gerät ist in der Konfiguration angelegt und hat eine Technische ID (Technical ID), zum Beispiel
cnc1-1. -
Die Messpunkte sind angelegt und dem Gerät oder seinem Gerätetyp zugeordnet, zum Beispiel
temperatureundrotation-speed. -
Ein technischer Client mit der Berechtigung
measurements:write. Siehe Authentifizierung.
Anfrage
POST /data-ingest/api/v1/tenants/{tenantId}/ingest HTTP/1.1
Host: <sot-host>
Authorization: Bearer <access token>
Content-Type: application/json
X-Message-Type: measurement
X-Api-Version: 1.0
{
"reference": {
"identifier": "cnc1-1",
"type": 0
},
"measurementTimeSeries": [
{
"name": "temperature",
"firstSampleTimestamp": "2026-10-16T10:00:00Z",
"timeOffsets": [0, 1000, 2000],
"values": [47.2, 47.5, 48.1],
"measurementUnit": "°C",
"measurementType": 0
},
{
"name": "rotation-speed",
"firstSampleTimestamp": "2026-10-16T10:00:00Z",
"timeOffsets": [0, 1000, 2000],
"values": [11980, 12010, 12005],
"measurementUnit": "rpm"
}
]
}
Der Dienst antwortet mit 202 Accepted. Wenige Sekunden später zeigt das Messwerte Diagramm des Geräts die Werte an.
Nachrichtenformat
| Feld | Pflicht | Beschreibung |
|---|---|---|
|
ja |
Technische ID des Geräts. Maximal 80 Zeichen. |
|
ja |
Typ der Referenz. |
|
nein |
Teil, das während der Messung bearbeitet wurde: |
|
ja |
1 bis 50 Zeitreihen je Anfrage. |
|
ja |
Name des Messpunkts. Muss mit dem Namen in der Konfiguration übereinstimmen. Maximal 128 Zeichen. |
|
ja |
Zeitpunkt des ersten Werts in UTC, ISO 8601, zum Beispiel |
|
ja |
Zeitpunkt jedes Werts in Millisekunden nach |
|
ja |
Werte, einer je Zeitversatz. |
|
nein |
Einheit, zum Beispiel |
|
nein |
|
|
nein |
Grenzwerte, die für alle Werte gelten: |
|
nein |
Grenzwerte je Wert. Jedes Array hat dieselbe Länge wie |
Empfehlungen
-
Werte gebündelt senden statt einer Anfrage je Wert, zum Beispiel alle Werte einer Sekunde oder einiger Sekunden in einer Anfrage.
-
Den Zeitpunkt der Messung als
firstSampleTimestampverwenden, nicht den Zeitpunkt des Sendens. -
Gerät und Messpunkte in der Konfiguration aktualisieren, bevor Daten für neue Messpunkte gesendet werden.
-
Bei
429oder503die Zeit aus dem HeaderRetry-Afterabwarten und die Anfrage erneut senden.
Ergebnis prüfen
-
Im Menü auf Geräte (Devices) klicken und das Gerät öffnen.
-
Prüfen, ob das Messwerte Diagramm (Measurement Chart) die neuen Werte zeigt. Siehe Messwerte.
Werden die Werte nicht angezeigt, Folgendes prüfen:
-
reference.identifierstimmt exakt mit dem Wert im Feld Technische ID des Geräts überein, -
namestimmt exakt mit dem Wert im Feld Name eines Messpunkts des Geräts überein, -
die Zeitstempel liegen im gewählten Zeitraum des Diagramms.