ThingsBoard · Schema

ThingsBoard DeviceProfile

A JSON value representing the device profile.

IoTInternet of ThingsDevice ManagementTelemetryOpen SourceApache 2.0MQTTLwM2MCoAPRule EngineDashboardsEdgeMulti-tenantJavaSpring

Properties

Name Type Description
id object JSON object with the device profile Id. Specify this field to update the device profile. Referencing non-existing device profile Id will cause error. Omit this field to create new device profile.
createdTime integer Timestamp of the profile creation, in milliseconds
tenantId object JSON object with Tenant Id that owns the profile.
name string Unique Device Profile Name in scope of Tenant.
description string Device Profile description.
image string Either URL or Base64 data of the icon. Used in the mobile application to visualize set of device profiles in the grid view.
type string Type of the profile. Always 'DEFAULT' for now. Reserved for future use.
transportType string Type of the transport used to connect the device. Default transport supports HTTP, CoAP and MQTT.
provisionType string Provisioning strategy.
defaultRuleChainId object Reference to the rule chain. If present, the specified rule chain will be used to process all messages related to device, including telemetry, attribute updates, etc. Otherwise, the root rule chain wi
defaultDashboardId object Reference to the dashboard. Used in the mobile application to open the default dashboard when user navigates to device details.
defaultQueueName string Rule engine queue name. If present, the specified queue will be used to store all unprocessed messages related to device, including telemetry, attribute updates, etc. Otherwise, the 'Main' queue will
provisionDeviceKey string Unique provisioning key used by 'Device Provisioning' feature.
firmwareId object Reference to the firmware OTA package. If present, the specified package will be used as default device firmware.
softwareId object Reference to the software OTA package. If present, the specified package will be used as default device software.
defaultEdgeRuleChainId object Reference to the edge rule chain. If present, the specified edge rule chain will be used on the edge to process all messages related to device, including telemetry, attribute updates, etc. Otherwise,
version integer
default boolean Used to mark the default profile. Default profile is used when the device profile is not specified during device creation.
profileData object Complex JSON object that includes addition device profile configuration (transport, alarm rules, etc).
View JSON Schema on GitHub

JSON Schema

thingsboard-deviceprofile-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/thingsboard/refs/heads/main/json-schema/thingsboard-deviceprofile-schema.json",
  "title": "ThingsBoard DeviceProfile",
  "description": "A JSON value representing the device profile.",
  "type": "object",
  "properties": {
    "id": {
      "$ref": "#/components/schemas/DeviceProfileId",
      "description": "JSON object with the device profile Id. Specify this field to update the device profile. Referencing non-existing device profile Id will cause error. Omit this field to create new device profile."
    },
    "createdTime": {
      "type": "integer",
      "format": "int64",
      "description": "Timestamp of the profile creation, in milliseconds",
      "example": 1609459200000,
      "readOnly": true
    },
    "tenantId": {
      "$ref": "#/components/schemas/TenantId",
      "description": "JSON object with Tenant Id that owns the profile.",
      "readOnly": true
    },
    "name": {
      "type": "string",
      "description": "Unique Device Profile Name in scope of Tenant.",
      "example": "Moisture Sensor"
    },
    "description": {
      "type": "string",
      "description": "Device Profile description. "
    },
    "image": {
      "type": "string",
      "description": "Either URL or Base64 data of the icon. Used in the mobile application to visualize set of device profiles in the grid view. "
    },
    "type": {
      "type": "string",
      "description": "Type of the profile. Always 'DEFAULT' for now. Reserved for future use.",
      "enum": [
        "DEFAULT"
      ]
    },
    "transportType": {
      "type": "string",
      "description": "Type of the transport used to connect the device. Default transport supports HTTP, CoAP and MQTT.",
      "enum": [
        "DEFAULT",
        "MQTT",
        "COAP",
        "LWM2M",
        "SNMP"
      ]
    },
    "provisionType": {
      "type": "string",
      "description": "Provisioning strategy.",
      "enum": [
        "DISABLED",
        "ALLOW_CREATE_NEW_DEVICES",
        "CHECK_PRE_PROVISIONED_DEVICES",
        "X509_CERTIFICATE_CHAIN"
      ]
    },
    "defaultRuleChainId": {
      "$ref": "#/components/schemas/RuleChainId",
      "description": "Reference to the rule chain. If present, the specified rule chain will be used to process all messages related to device, including telemetry, attribute updates, etc. Otherwise, the root rule chain will be used to process those messages."
    },
    "defaultDashboardId": {
      "$ref": "#/components/schemas/DashboardId",
      "description": "Reference to the dashboard. Used in the mobile application to open the default dashboard when user navigates to device details."
    },
    "defaultQueueName": {
      "type": "string",
      "description": "Rule engine queue name. If present, the specified queue will be used to store all unprocessed messages related to device, including telemetry, attribute updates, etc. Otherwise, the 'Main' queue will be used to store those messages."
    },
    "provisionDeviceKey": {
      "type": "string",
      "description": "Unique provisioning key used by 'Device Provisioning' feature."
    },
    "firmwareId": {
      "$ref": "#/components/schemas/OtaPackageId",
      "description": "Reference to the firmware OTA package. If present, the specified package will be used as default device firmware. "
    },
    "softwareId": {
      "$ref": "#/components/schemas/OtaPackageId",
      "description": "Reference to the software OTA package. If present, the specified package will be used as default device software. "
    },
    "defaultEdgeRuleChainId": {
      "$ref": "#/components/schemas/RuleChainId",
      "description": "Reference to the edge rule chain. If present, the specified edge rule chain will be used on the edge to process all messages related to device, including telemetry, attribute updates, etc. Otherwise, the edge root rule chain will be used to process those messages."
    },
    "version": {
      "type": "integer",
      "format": "int64"
    },
    "default": {
      "type": "boolean",
      "description": "Used to mark the default profile. Default profile is used when the device profile is not specified during device creation."
    },
    "profileData": {
      "$ref": "#/components/schemas/DeviceProfileData",
      "description": "Complex JSON object that includes addition device profile configuration (transport, alarm rules, etc)."
    }
  }
}