Schema Reference

Complete column definitions for all Parquet entities and measurements (current v1 schema)

Data Types

All Parquet files use these Apache Arrow/Parquet data types:

TypeDescription
stringUTF-8 encoded text
boolBoolean (true / false)
int6464-bit signed integer
decimal128(38, 20)128-bit decimal, precision 38, scale 20 (default for numeric columns)
decimal256256-bit decimal (used when inferred precision exceeds 38)
timestamp[us, tz=UTC]Microsecond-precision UTC timestamp

Entity Schemas

Organization

Organization metadata.

ColumnTypeNullableDescription
idstringUnique identifier (UUID)
namestringOrganization name
createdAttimestampCreation timestamp
updatedAttimestampLast update timestamp

Device

IoT device inventory and properties.

ColumnTypeNullableDescription
idstringUnique identifier (UUID)
namestringDevice name
modelTypestringDevice model (e.g., com.haltian.device.tsar02)
externalIdstringExternal system identifier
tuidstringThingsee Unique Identifier
manufacturingDatetimestampManufacturing date
shippingDatetimestampShipping date
warrantyDatetimestampWarranty expiration
createdAttimestampCreation timestamp
updatedAttimestampLast update timestamp
lastSeentimestampLast communication time
wirepasNodeIdint64Wirepas mesh node ID
wirepasNetworkIdint64Wirepas mesh network ID
imeistringIMEI (cellular devices)
iccidstringSIM card ICCID
bleMacstringPrimary Bluetooth MAC
bleMac2stringSecondary Bluetooth MAC
lanMacstringLAN MAC address
wifiMacstringWiFi MAC address
customerLabelIdstringCustomer-assigned label
vendorSerialstringVendor serial number
spaceIdstringSpace where device is installed
fixedPositionGlobalstringGeoJSON Point of fixed installation position

Device Group

Logical groupings of devices.

ColumnTypeNullableDescription
idstringUnique identifier (UUID)
modelTypestringGroup model (e.g., com.haltian.device-group)
externalIdstringExternal system identifier
manufacturingDatetimestampManufacturing date
shippingDatetimestampShipping date
warrantyDatetimestampWarranty expiration
createdAttimestampCreation timestamp
updatedAttimestampLast update timestamp

Device Group Devices

Junction table linking devices to device groups.

ColumnTypeNullableDescription
deviceGroupIdstringReference to device group
deviceIdstringReference to device

Device Keyword

Tags and labels assigned to devices.

ColumnTypeNullableDescription
deviceIdstringReference to device
keywordstringKeyword/tag value
createdAttimestampCreation timestamp
updatedAttimestampLast update timestamp

Device Note

Freeform notes attached to devices.

ColumnTypeNullableDescription
deviceIdstringReference to device
notestringNote text
createdAttimestampCreation timestamp
updatedAttimestampLast update timestamp

Space

Spatial hierarchy: locations, buildings, floors.

ColumnTypeNullableDescription
idstringUnique identifier (UUID)
namestringSpace name
parentIdstringParent space (hierarchical)
typestringType: location, building, floor
positionGlobalstringGeoJSON Point coordinates
northVectordecimal128(38, 20)North direction angle (degrees)
createdAttimestampCreation timestamp
updatedAttimestampLast update timestamp

Zone

Defined areas within spaces.

ColumnTypeNullableDescription
idstringUnique identifier (UUID)
spaceIdstringParent space reference
namestringZone name
polygonGlobalstringGeoJSON polygon boundaries
createdAttimestampCreation timestamp
updatedAttimestampLast update timestamp

Measurement Schemas

All measurement tables share common columns plus measurement-specific values.

Common Columns

Every measurement table includes:

ColumnTypeNullableDescription
deviceIdstringDevice that reported the measurement
measuredAttimestampMeasurement timestamp

measurementAmbientTemperature

Ambient temperature readings.

ColumnTypeNullableDescription
ambientTemperaturedecimal128(38, 20)Temperature in degrees Celsius

measurementBatteryPercentage

Battery charge level.

ColumnTypeNullableDescription
batteryPercentagedecimal128(38, 20)Battery level (0–100%)

measurementBatteryVoltage

Battery voltage readings.

ColumnTypeNullableDescription
batteryVoltagedecimal128(38, 20)Voltage in volts

measurementBootCount

Device restart events.

ColumnTypeNullableDescription
bootCountint64Cumulative boot count
bootReasonstringReason for restart

measurementCO2

Carbon dioxide concentration.

ColumnTypeNullableDescription
co2decimal128(38, 20)CO₂ level in ppm

measurementDirectionalMovement

Entry and exit counts (e.g., doorway sensors).

ColumnTypeNullableDescription
entriesint64Number of entries
exitsint64Number of exits

measurementDistance

Distance measurements.

ColumnTypeNullableDescription
distancedecimal128(38, 20)Distance (typically mm)

measurementOccupancySeconds

Duration of occupancy within measurement period.

ColumnTypeNullableDescription
occupancySecondsdecimal128(38, 20)Occupancy duration in seconds

measurementOccupancyStatus

Binary occupancy state.

ColumnTypeNullableDescription
isOccupiedboolfalse = unoccupied, true = occupied

measurementOccupantsCount

Number of people detected.

ColumnTypeNullableDescription
occupantsCountint64Number of occupants

measurementPosition

Device location tracking.

ColumnTypeNullableDescription
isStaticboolfalse = moving, true = stationary
spaceIdstringSpace where device is located
positionGlobalstringGeoJSON Point coordinates

measurementPositionZone

Zone-relative device position.

ColumnTypeNullableDescription
zoneIdstringZone where device is located

measurementSystemTemperature

Device internal (system) temperature readings.

ColumnTypeNullableDescription
systemTemperaturedecimal128(38, 20)Internal temperature in degrees Celsius

measurementTVOC

Total Volatile Organic Compounds.

ColumnTypeNullableDescription
tvocdecimal128(38, 20)TVOC level (ppb or index)

GeoJSON Formats

Point (position data)

{
  "type": "Point",
  "coordinates": [longitude, latitude]
}

Example: {"type":"Point","coordinates":[25.4686, 65.0592]}

Polygon (zone boundaries)

{
  "type": "Polygon",
  "coordinates": [[[lon1, lat1], [lon2, lat2], [lon3, lat3], [lon1, lat1]]]
}

UUID Format

All identifiers use lowercase hyphenated UUID format:

550e8400-e29b-41d4-a716-446655440000

Timestamp Format

All timestamps are:

  • Timezone: UTC
  • Precision: Milliseconds
  • Storage: Arrow timestamp type

When reading in most languages, timestamps convert automatically to native datetime types.