Assets
The Asset resource represents complex machines, appliances, or logical entities whose state is derived from one or more connected devices. Assets provide a higher-level abstraction for managing equipment within your IoT infrastructure.
Overview
An asset represents a domain object that does not produce measurements by itself, such as a building, a production line or an electric power line. Its state is built from the properties of the devices that monitor it: for example, a building can expose the consumed energy measured by its general energy meter and the temperature measured by an indoor sensor. Assets let you model and monitor equipment as a whole instead of managing individual sensors separately.
Key Properties
Basic Information
- name (required): A meaningful name for the asset (e.g., “Production Line A”, “HVAC System Building 1”)
- description: Description of the asset and its purpose
- projectId (required): The project this asset belongs to
- assetTypeId: Reference to the asset type that describes this category of assets
Hierarchy and Organization
- plantId: The plant where this asset is physically located
- parentId: The parent assets, as a list of asset ids. Enables hierarchical asset structures
- location: Geographical coordinates of the asset
- tags: Array of tags for categorization and filtering. Each tag has at least 3 characters and contains only letters, numbers,
-and_
State
- propertyMappings: Binds asset properties to device properties. See Property mappings
- state, stateUpdatedAt: Computed by the platform when the asset is read; not set by clients
Metadata and Custom Properties
- metadata: Flexible key-value storage for custom attributes and properties specific to the asset
Property Mappings
Property mappings bind each property of the asset to a property of a device. In the following example, the asset is bound to two properties coming from different devices: its energy is the importedEnergy measured by an energy meter, and its temperature is the externalTemperature measured by a sensor.
{
"projectId": "my-project-id",
"name": "Building 1",
"propertyMappings": {
"energy": {
"propertyName": "importedEnergy",
"resourceType": "devices",
"resourceId": "my-energy-meter-uuid"
},
"temperature": {
"propertyName": "externalTemperature",
"resourceType": "devices",
"resourceId": "my-temperature-sensor-uuid"
}
}
}Each mapping has:
- resourceType: The kind of resource that provides the value. Currently only
devices - resourceId: The uuid of the device
- propertyName: The name of the device property
When you read an asset, individually or in a list, the platform adds a state object with the current value of each mapped property, and a stateUpdatedAt object with the time each value was last updated, taken from the state of the mapped devices:
GET /projects/my-project-id/assets/my-asset-uuid
{
"projectId": "my-project-id",
"name": "Building 1",
"propertyMappings": {
"energy": {
"propertyName": "importedEnergy",
"resourceType": "devices",
"resourceId": "my-energy-meter-uuid"
},
"temperature": {
"propertyName": "externalTemperature",
"resourceType": "devices",
"resourceId": "my-temperature-sensor-uuid"
}
},
"state": {
"energy": 10,
"temperature": 22
},
"stateUpdatedAt": {
"energy": "2026-10-01T10:15:00.000Z",
"temperature": "2026-10-01T10:14:30.000Z"
}
}The state contains the latest values only. To read the history of an asset property, query the timeseries of the mapped device property, for example devices/my-energy-meter-uuid/importedEnergy.
Asset Hierarchies
Assets support hierarchical relationships through the parentId field, allowing you to model complex equipment structures:
Manufacturing Plant (Asset)
├── Production Line A (Asset)
│ ├── Conveyor System (Asset)
│ ├── Assembly Station 1 (Asset)
│ └── Quality Control Unit (Asset)
└── Production Line B (Asset)
├── Packaging System (Asset)
└── Labeling Machine (Asset)Asset Types
The assetTypeId field links an asset to an asset type, a template that describes a category of assets: name, manufacturer, model, category and description. When you read an asset, its asset type is included in the assetType field.
Asset types can optionally define the properties of their assets, in the same way device types do. This is useful to assign a label and a unit of measurement to each property:
{
"name": "Office building",
"category": "Building",
"properties": {
"energy": {
"displayName": "Consumed energy",
"uom": "kWh",
"type": "number"
},
"temperature": {
"displayName": "Indoor temperature",
"uom": "°C",
"type": "number"
}
}
}Resource Management
Base Resource Properties
All assets inherit standard resource properties:
- uuid: Unique identifier (auto-generated if not provided)
- createdAt: Resource creation timestamp
- updatedAt: Last modification timestamp
- metadata: Flexible key-value storage for custom attributes
Project Association
Every asset must be associated with a project through the projectId field, enabling:
- Access control and permissions management
- Resource organization and billing
- Multi-tenant isolation