Send Telemetry

📘

Use the hub_url received in the registration response as your base URL.

📘

This API requires the device to authenticate, see Device Authentication.

Update the server with the current device state.

See the Quickstart guide for a detailed explanation of Telemetry.

Telemetry Data

NameTypeDescription
statusstringDevice status: online, offline, or error.

Note: This field is automatically injected into the the telemetries object below.
timestampdatetimeOptional: Time when the telemetry was taken (a string based on ISO_8601 format). If this field is not provided, the server sets the telemetry's time to the current server time.

Example:
2022-01-01T01:00:00.000Z
telemetriesobjectOptional: Telemetry key & value pairs.
overridebooleanOptional: Sending this key with the value set to true will cause this telemetry object to override the current state. Any keys previously set and not included in this telemetry object will be removed.

This is useful after events such as a restart, for the first telemetry sent.
{
    "status": "online",
    "timestamp": "2021-08-04T07:45:44.122Z",
    "telemetries": {
        "fan_speed": 100.1,
        "connection": "4g",
        "usbc": true
    }
}
{
    "status": "error",
    "telemetries": {
      "input": "Unknown"
    },
    "message": "Unknown input connected"
}

Return Data

NameTypeDescription
config_versionintegerCurrent version of the configuration on the server.

The device developer should save locally the last version of the configuration downloaded and applied to the device. If the locally saved version number is lower than that returned by this API, the device should call the Get Config API and apply the new configuration.
commandbooleanIf true, there is a pending command the server needs the device to run. The device should call the Get Command API to get the command that needs to be executed.

When the command has been executed, the device should send an update using the Update Command API.
new_licensesbooleanIf true, there are license updates pending. The device should call the Get Licenses API and to enable new licenses or update/disable existing ones.
successbooleanIf true, the telemetry was successfully sent.
info_versionintegerCurrent version of the info tab of the device.
latest_fw_versionstringVersion of the latest firmware file.
latest_fw_file_idstringID of the latest firmware file.
space_data_versionintegerCurrent version of the space configuration.

This field can be used to indicate whether the device is claimed or not. When the value is 0, the device is not yet claimed; otherwise, it is claimed.
{
    "config_version": 0,
    "command": false,
    "info_version": 0,
    "new_licenses": true,
    "latest_fw_version": "1.3.4",
    "latest_fw_file_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "space_data_version": 4,
    "success": true
}

Managing new firmware version notifications

Devices keep two variables:

  • curr_ver - Current firmware version
  • latest_ver - Last known latest available version (set to curr_ver at initialization)

Every time a device calls the Send Telemetry API, it should check the latest_fw_version field returned in the server's reply. If it's higher than latest_ver, it should show a notification and offer the user the choice to upgrade. The device should overwrite its local latest_ver with latest_fw_version to prevent the notification from popping up again.

Language
Credentials
Header
URL
Click Try It! to start a request and see the response here!