Use Aliases, Metadata and Labels

Aliases

When integrating the Tracking backend with an external system, a tracker device often needs to be associated with an external system ID. It can be, for example, an external management system asset ID or a human-readable name.

The Tracking API allows associating arbitrary type-externalId pairs with a trackingId. These associations are known as 'Aliases'.

You can specify an alias type and an externalId to be stored alongside the device data. You can then retrieve a device record by referencing its alias.

In the examples requests below the alias type is testType and externalId is testExternalId.

Aliases are created via the aliases endpoint:

curl -X PUT \
  https://tracking.api.here.com/aliases/v2/HERE-dummyTrackingId/testType/testExternalId

This creates an alias.

Once the alias is created, you can retrieve the details of the device using its alias:

curl -X GET
  https://tracking.api.here.com/aliases/v2/trackingId?type=testType&externalId=testExternalId
{
  "trackingId": "HERE-dummyTrackingId"
}

This returns the device trackingId.

Metadata

It can also be useful to store more data about a device or a geofence that isn't directly related to the identity or telemetry of the device. The icon to be displayed on a web interface, for instance, or detailed notes about a particular geofence. For this, we can use the Metadata service.

To store metadata about a device, send an arbitrary JSON object to the metadata endpoint:

curl -X PUT \
  https://tracking.api.here.com/metadata/v2/devices/{trackingId} \
  -H 'Authorization: Bearer {userToken}' \
  -H 'Content-Type: application/json' \
  -d '{
    "deviceIcon": "car-icon.png"
}'

Metadata can be associated with geofences the same way but on a different path:

curl -X PUT \
  https://tracking.api.here.com/metadata/v2/geofences/{geofenceId} \
  -H 'Authorization: Bearer {userToken}' \
  -H 'Content-Type: application/json' \
  -d '{
    "geofenceIcon": "office-icon.png"
}'

Labels

A label is a key-value pair that can be associated with the following resource types:

  • device
  • geofence
  • sensor
  • rule
  • location
  • shipment

For example, if we need to group devices into different groups, we can associate devices with a label "group", where the label value is the group name.

Labels are created by specifying a resource type, a resource ID and a label key-value pair in the path of the PUT request of the labels endpoint. The example below is creating a device label, where the label key is group and the label value is group-01.

curl -X PUT \
  https://tracking.api.here.com/labels/v4/device/HERE-dummyTrackingId/group/group-01 \
  -H 'Authorization: Bearer {userToken}' \
  -H 'Content-Type: application/json'

All labels associated with a specific resource type can be fetched via the labels endpoint containing the resource type in the path. If the user is a member of multiple projects, the target project ID needs to be specified in the projectId query parameter.

curl -X GET \
  https://tracking.api.here.com/labels/v4/device?projectId=`projectId` \
  -H 'Authorization: Bearer {userToken}' \
  -H 'Content-Type: application/json'
{
 "limit":100,
 "count":1,
 "items":[{
  "resourceId":"HERE-dummyTrackingId",
  "resourceType":"device",
  "labels":{
      "group":["group-01"]
  }
 }]
}

The labels associated with a specific resource can be fetched via the labels endpoint containing the resource type and the resource ID:

curl -X GET \
  https://tracking.api.here.com/labels/v4/device/HERE-dummyTrackingId \
  -H 'Authorization: Bearer {userToken}' \
  -H 'Content-Type: application/json'
{
  "resourceId":"HERE-dummyTrackingId",
  "resourceType":"device",
  "labels":
  {
    "group":["group-01"],
    "priority":["high"]
  }
}

results matching ""

    No results matching ""