Measurement Types Reference

Complete reference of all Haltian IoT measurement types verified against production schema

This page provides a complete reference of all measurement types available in Haltian IoT.

Overview

Measurements are sensor data values sent by Haltian IoT devices. Each measurement entry contains:

  • deviceId - UUID of the device that generated the measurement
  • measuredAt - Timestamp when the measurement was taken (timestamptz)
  • [measurementField] - The measurement value (type varies by measurement)

Environmental Measurements

ambient_temperature

Ambient air temperature from environment sensors.

Schema Type: measurementAmbientTemperature

PropertyValue
GraphQL FieldambientTemperature
Data Typenumeric
UnitDegrees Celsius (°C)
Typical Range-40 to +85
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "ambientTemperature": 23.5
}

humidity

Relative humidity percentage from environment sensors.

Schema Type: measurementHumidity

PropertyValue
GraphQL Fieldhumidity
Data Typenumeric
UnitPercent (%)
Typical Range0 to 100
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "humidity": 45.2
}

barometric_pressure

Atmospheric pressure reading from barometric sensors.

Schema Type: measurementBarometricPressure

PropertyValue
GraphQL FieldbarometricPressure
Data Typenumeric
UnitHectopascals (hPa)
Typical Range870 to 1084
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "barometricPressure": 1013.25
}

co2

Carbon dioxide concentration from air quality sensors.

Schema Type: measurementCo2

PropertyValue
GraphQL Fieldco2
Data Typenumeric
UnitParts per million (ppm)
Typical Range400 to 5000
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "co2": 850
}

tvoc

Total Volatile Organic Compounds from air quality sensors.

Schema Type: measurementTvoc

PropertyValue
GraphQL Fieldtvoc
Data Typenumeric
UnitParts per billion (ppb)
Typical Range0 to 60000
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "tvoc": 125
}

ambient_light

Ambient light level from light sensors.

Schema Type: measurementAmbientLight

PropertyValue
GraphQL FieldambientLight
Data Typenumeric
UnitLux
Typical Range0 to 100000
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "ambientLight": 450
}

Occupancy Measurements

occupancy_status

Boolean occupancy status for spaces.

Schema Type: measurementOccupancyStatus

PropertyValue
GraphQL FieldisOccupied
Data TypeBoolean
Valuestrue (occupied), false (vacant)
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "isOccupied": true
}

occupants_count

Number of occupants detected in a space.

Schema Type: measurementOccupantsCount

PropertyValue
GraphQL FieldoccupantsCount
Data TypeInt
Typical Range0 to N (space capacity)
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "occupantsCount": 5
}

occupancy_seconds

Duration of occupancy in seconds (occupancy detection engine output).

Schema Type: measurementOccupancySeconds

PropertyValue
GraphQL FieldoccupancySeconds
Data Typenumeric
UnitSeconds
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "occupancySeconds": 3600
}

directional_movement

Entry and exit counts from directional people counters.

Schema Type: measurementDirectionalMovement

PropertyValue
GraphQL Fieldsentries, exits
Data TypeInt each
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "entries": 12,
  "exits": 8
}

movement_detections

PIR or other motion sensor trigger count.

Schema Type: measurementMovementDetections

PropertyValue
GraphQL FieldmovementDetections
Data TypeInt
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "movementDetections": 47
}

Position & Movement Measurements

position

Device geographic and local coordinates.

Schema Type: measurementPosition

PropertyValue
GraphQL FieldspositionGlobal, positionLocal, isStatic, spaceId
Data Typesgeography, geometry, Boolean, uuid
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "positionGlobal": {
    "type": "Point",
    "coordinates": [24.9384, 60.1699]
  },
  "positionLocal": {
    "type": "Point",
    "coordinates": [12.5, 8.3, 0.0]
  },
  "isStatic": true,
  "spaceId": "550e8400-e29b-41d4-a716-446655440001"
}

position_zone

Zone-based position (which zone the device is in).

Schema Type: measurementPositionZone

PropertyValue
GraphQL FieldzoneId
Data Typeuuid
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "zoneId": "550e8400-e29b-41d4-a716-446655440001"
}

position_confidence

Confidence score for position measurements.

Schema Type: measurementPositionConfidence

PropertyValue
GraphQL FieldpositionConfidence
Data Typenumeric
Range0 to 100 (%)
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "positionConfidence": 85.5
}

device_orientation

Device orientation from accelerometer readings.

Schema Type: measurementDeviceOrientation

PropertyValue
GraphQL Fieldsaccx, accy, accz
Data Typenumeric each
Unitg (gravitational acceleration)
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "accx": 0.02,
  "accy": -0.01,
  "accz": 1.0
}

vibration

Vibration detection from accelerometer.

Schema Type: measurementVibration

PropertyValue
GraphQL Fieldslevel, total
Data Typenumeric each
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "level": 0.05,
  "total": 1.2
}

Device Status Measurements

battery_percentage

Battery charge level as percentage.

Schema Type: measurementBatteryPercentage

PropertyValue
GraphQL FieldbatteryPercentage
Data Typenumeric
UnitPercent (%)
Typical Range0 to 100
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "batteryPercentage": 85
}

battery_voltage

Battery voltage reading.

Schema Type: measurementBatteryVoltage

PropertyValue
GraphQL FieldbatteryVoltage
Data Typenumeric
UnitVolts (V)
Typical Range2.0 to 4.2
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "batteryVoltage": 3.7
}

battery_current

Battery current draw.

Schema Type: measurementBatteryCurrent

PropertyValue
GraphQL FieldbatteryCurrent
Data Typenumeric
UnitAmperes (A)
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "batteryCurrent": 0.015
}

rss

Received Signal Strength (RSSI) with device mobility context.

Schema Type: measurementRss

PropertyValue
GraphQL Fieldsrss, isStatic, mode, moveCount, sourceDeviceId
Data Typesnumeric, Boolean, device_mode_type, Int, uuid
UnitdBm (for rss)
Typical Range-100 to 0 (for rss)
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "rss": -65,
  "isStatic": false,
  "mode": "active",
  "moveCount": 3,
  "sourceDeviceId": "550e8400-e29b-41d4-a716-446655440002"
}

system_temperature

Internal device/system temperature.

Schema Type: measurementSystemTemperature

PropertyValue
GraphQL FieldsystemTemperature
Data Typenumeric
UnitDegrees Celsius (°C)
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "systemTemperature": 28.5
}

boot_count

Number of times device has booted/restarted and the reason for the last boot.

Schema Type: measurementBootCount

PropertyValue
GraphQL FieldsbootCount, bootReason
Data TypesInt, String
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "bootCount": 42,
  "bootReason": "power_on"
}

Distance & Sensing Measurements

distance

Distance measurement from ToF or ultrasonic sensors.

Schema Type: measurementDistance

PropertyValue
GraphQL Fielddistance
Data Typenumeric
UnitMillimeters (mm)
Typical Range0 to 4000
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "distance": 1250
}

echo

Echo/reflection measurement.

Schema Type: measurementEcho

PropertyValue
GraphQL Fieldecho
Data Typenumeric
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "echo": 150
}

magnetic_state

Magnetic field detection (hall effect/reed switch sensors). Typically used for door/window open/close detection.

Schema Type: measurementMagneticState

PropertyValue
GraphQL FieldisOpen
Data TypeBoolean
Valuestrue (open / no magnet), false (closed / magnet detected)
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "isOpen": false
}

magnetic_state_changes

Count of magnetic state changes (door/window open/close cycles).

Schema Type: measurementMagneticStateChanges

PropertyValue
GraphQL FieldmagneticStateChanges
Data TypeInt
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "magneticStateChanges": 15
}

Power & Energy Measurements

solar_panel_voltage

Solar panel voltage reading for energy harvesting devices.

Schema Type: measurementSolarPanelVoltage

PropertyValue
GraphQL FieldsolarPanelVoltage
Data Typenumeric
UnitVolts (V)
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "solarPanelVoltage": 3.2
}

harvester_storage_voltage

Energy harvester storage capacitor voltage.

Schema Type: measurementHarvesterStorageVoltage

PropertyValue
GraphQL FieldharvesterStorageVoltage
Data Typenumeric
UnitVolts (V)
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "harvesterStorageVoltage": 2.8
}

usb_voltage

USB power supply voltage.

Schema Type: measurementUSBVoltage

PropertyValue
GraphQL FieldusbVoltage
Data Typenumeric
UnitVolts (V)
Typical Range4.5 to 5.5
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "usbVoltage": 5.1
}

Other Measurements

electrical_resistance

Electrical resistance measurement.

Schema Type: measurementElectricalResistance

PropertyValue
GraphQL FieldelectricalResistance
Data Typenumeric
UnitOhms (Ω)
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "electricalResistance": 10000
}

device_role

Device role configuration.

Schema Type: measurementDeviceRole

PropertyValue
GraphQL FielddeviceRole
Data TypeString
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "deviceRole": "gateway"
}

diagnostics_interval

Diagnostics reporting interval setting.

Schema Type: measurementDiagnosticsInterval

PropertyValue
GraphQL FielddiagnosticsInterval
Data TypeInt
UnitSeconds
{
  "deviceId": "550e8400-e29b-41d4-a716-446655440000",
  "measuredAt": "2026-02-05T10:30:00.000Z",
  "diagnosticsInterval": 3600
}

Last Measurements

The schema also includes “last measurement” types (e.g., measurementLastAmbientTemperature) which represent the most recent value for each measurement type. These are used for efficient queries when you only need the current state.

Querying Measurements

Get Device Measurements

query GetDeviceMeasurements($deviceId: uuid!, $from: timestamptz!, $to: timestamptz!) {
  measurementAmbientTemperature(
    where: {
      deviceId: { _eq: $deviceId }
      measuredAt: { _gte: $from, _lte: $to }
    }
    orderBy: { measuredAt: DESC }
    limit: 100
  ) {
    measuredAt
    ambientTemperature
  }
}

Get Last Measurement Value

query GetLastTemperature($deviceId: uuid!) {
  measurementLastAmbientTemperature(
    where: { deviceId: { _eq: $deviceId } }
  ) {
    measuredAt
    ambientTemperature
  }
}

Next Steps