Appearance
Sensor values
An asset carries the current value of each of its virtual sensors in sensors.values, under the sensor's name. Each entry holds the value, the time it was measured in valueTime, and in source the device and the device sensor type it came from:
json
{
"temperature": {
"name": "temperature",
"source": {"nodeName": "30SE50010005332", "sensorType": ["TEMP"]},
"value": 21.7,
"valueTime": "2026-10-05T19:01:11.000Z",
"updateTime": "2026-10-05T19:01:11.000Z"
}
}Which sensors an asset has depends on the devices commissioned onto it. This page lists every virtual sensor in use on the platform, with the form of its value.
The descriptions are illustrative: sensor values are not governed by a formal schema. A sensor can therefore appear in more than one form, depending on the device or integration that supplies it, and units are not carried with the value.
In the examples, <deviceId> stands for a device identifier, such as BLE-C95E26ACC78C.
Movement and position
Movement
Virtual sensor name: movement
Example value:
json
trueWhether the asset is in motion.
Location
Virtual sensor name: location
Example value:
json
{"latitude": 50.8659, "longitude": 7.1427, "accuracy": 12}The position as the device reported it, with its horizontal accuracy in metres. The asset's resolved location, with floor, source and the geofences it matches, is held in the asset's location; see Location.
Inclination
Virtual sensor name: inclination
Example value:
json
{"angleX": 12, "angleY": 87, "angleZ": 3}The inclination of the device on the asset, as the angle of each axis to gravity in degrees, from 0 to 360. Some devices add a state as text, or idle as true or false. Used to detect status, tipping or use.
Usage
Virtual sensor name: usage
Example value:
json
trueWhether the asset is in use.
Activity
Virtual sensor name: activity
Example value:
json
"2026-10-05T19:04:15.000Z"The time of the latest activity: it is updated whenever any other sensor of the asset is updated. For gateways the value is an object instead, with the gateway's status, the time it was last seen in lifecycle.lastSeen, and reception statistics in stats: rxCount, rxBytes, uniqueMACs and the start of the counting period in since.
Idle
Virtual sensor name: idle
Example value:
json
falseWhether the asset is idle.
Device status
Node Battery
Virtual sensor name: nodeBattery
Example value:
json
"GOOD"The battery state of the device. Most devices report it as one of these values; older devices may report it in lower case:
| Value | Meaning |
|---|---|
GOOD | The battery is in good condition |
FAIR | The battery is still sufficient but declining |
REPLACE | The battery or device needs replacement |
DEAD | The device no longer reports |
UNKNOWN | No battery state is known yet |
Detailed form:
json
{"status": "GOOD", "soc": 87, "voltage": 3.02}Devices that report more detail send an object: the status as above, the state of charge in percent in soc and the battery voltage in volts. Some also send the device's mode.
Health
Virtual sensor name: health
Example value:
json
{
"status": "warning",
"devices": {
"<deviceId>": {
"status": "warning",
"action": "Monitor closely",
"statusCodes": [101],
"statusText": ["BatteryHealth: Battery voltage is too low."]
}
}
}The overall health of the asset's devices. status summarises it; devices holds the state of each commissioned device, with an action to take, numeric statusCodes and readable statusText. Some assets also carry an installation entry in the same form.
Battery
Virtual sensor name: battery
Example value:
json
"2816 mV"The battery voltage of the device, with its unit, as a text.
Battery monitor status
Virtual sensor name: batteryMonitorStatus
Example value:
json
{"batteryLevel": 74, "nodeTime": "2026-10-05T18:12:40.000Z"}The charge level of a monitored vehicle battery in percent, with the time the monitor measured it.
Battery monitor charge report
Virtual sensor name: batteryMonitorChargeReport
Example value:
json
{
"startTime": "2026-10-05T06:00:00.000Z",
"endTime": "2026-10-05T09:30:00.000Z",
"soc": {"start": 18, "end": 96},
"nodeTime": "2026-10-05T09:30:02.000Z"
}A completed charging session of a monitored vehicle battery: when it started and ended, and the state of charge in percent at both moments.
Cell information
Virtual sensor name: cellInformation
Example value:
json
{
"type": "LTE-M",
"network": {"mmc": 262, "mnc": 1},
"cell": {"cellId": 12345678, "tac": 4321, "band": 20, "rsrp": -98, "rsrq": -11, "rssi": -70, "snr": 7},
"neighbours": []
}Diagnostic information about the mobile network a cellular device is connected to: the network, the serving cell with its signal quality, and neighbouring cells.
Environment
Temperature
Virtual sensor name: temperature
Example value:
json
21.7The temperature in degrees Celsius.
Temperature logger form:
json
{
"temperatureAtLogTime": 4.5,
"timeFirstReading": "2026-10-05T06:00:00.000Z",
"minutesBetweenReadings": 15,
"tempReadings": [
{"time": "2026-10-05T06:00:00.000Z", "temperature": 4.2},
{"time": "2026-10-05T06:15:00.000Z", "temperature": 4.4}
],
"reason": {"code": 1, "hexCode": "0x01", "value": "Scheduled"}
}Temperature loggers send a series instead: the readings since the first one, the interval between readings, the temperature at the time of logging, and why the log was sent.
Humidity
Virtual sensor name: humidity
Example value:
json
45.5The relative humidity in percent. Some devices send it as an object, {"humidity": 45.5}.
Contact
Virtual sensor name: contact
Example value:
json
{"contact": true}Whether a contact, such as a door or lid, is closed. Older devices send the text "open" instead.
Condition
Virtual sensor name: condition
Example value:
json
"OPEN"The condition of the asset, as one of OPEN, CLOSED or PICKUP.
Door
Virtual sensor name: door
Example value:
json
falseWhether a door of the asset is open, as set by an application.
Load
Loaded
Virtual sensor name: loaded
Example value:
json
{
"loaded": 100,
"sensors": {
"<deviceId>": {
"loaded": true,
"confidence": 0.99,
"index": 1,
"timestamp": "2026-10-05T14:31:35.000Z",
"values": [{"distance": 200, "amplitude": 1020}]
}
}
}How loaded the asset is. loaded is the overall load in percent; sensors holds each load sensor's own verdict, with its confidence from 0 to 1, its index, the time of the measurement, and the radar readings it is based on. A few devices report a plain true or false instead.
Vehicle
Ignition
Virtual sensor name: ignition
Example value:
json
"on"Whether the vehicle's ignition is on or off.
Odometer
Virtual sensor name: odo
Example value:
json
125430The vehicle's total distance driven, as its tracker reports it. The unit depends on the tracker integration.
Running time
Virtual sensor name: runningTime
Example value:
json
4211The vehicle's total engine running time, as its tracker reports it. The unit depends on the tracker integration.
Body
Virtual sensor name: body
Example value:
json
"up"The position of the vehicle's body: up or down.
Belt
Virtual sensor name: belt
Example value:
json
"idle"The state of the vehicle's belt, for example idle.
Energy
Energy, live
Virtual sensor name: energyLive
Example value:
json
{
"a": {
"voltage": {"value": 231.4, "unit": "V"},
"current": {"value": 4.2, "unit": "A"},
"frequency": {"value": 50.0, "unit": "Hz"},
"power": {
"active": {"value": 951, "unit": "W"},
"apparent": {"value": 972, "unit": "VA"},
"powerFactor": {"value": 0.98, "unit": ""}
}
},
"b": {},
"c": {},
"total": {
"current": {"value": 12.1, "unit": "A"},
"power": {"active": {"value": 2730, "unit": "W"}, "apparent": {"value": 2790, "unit": "VA"}}
}
}Live readings of an energy meter, per phase a, b and c and in total: voltage, current, frequency, and active and apparent power with the power factor. Every reading carries its unit. errors lists any errors the meter reports. Phases b and c are shortened in the example.
Energy, total
Virtual sensor name: energyTotal
Example value:
json
{
"a": {"energy": {"active": {"value": 1520.4, "unit": "kWh"}, "activeReturned": {"value": 0, "unit": "kWh"}}},
"b": {},
"c": {},
"total": {"energy": {"active": {"value": 4480.9, "unit": "kWh"}, "activeReturned": {"value": 0, "unit": "kWh"}}}
}The cumulative energy of an energy meter, per phase and in total: the active energy drawn, and the active energy returned. errors lists any errors the meter reports.
Application states
These sensors are set by applications rather than by device measurements.
Maintenance
Virtual sensor name: maintenance
Example value:
json
{"isFlipConfirmed": true, "isFlipLocked": false}The maintenance state of the asset. Some applications set a plain true or false; others an object with application-specific flags.
Journey state
Virtual sensor name: markovState
Example value:
json
"CRUISING"The phase of a journey, as set by an application, for example TAXIING_INBOUND, CRUISING, LANDING, CATERER_OPS, CATERER_WASHING or UNKNOWN.
User event
Virtual sensor name: userEvent
Example value:
json
{"userEventType": "<type>", "dataType": "<type>", "eventData": "<data>"}The latest event a user recorded for the asset in an application: its type, the type of its data, and the data itself.
