Schema Reference

Complete column definitions for all Parquet entities and measurements

Data Types

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

TypeDescription
stringUTF-8 encoded text
int88-bit signed integer
int3232-bit signed integer
uint3232-bit unsigned integer
float32-bit floating point
decimal128(10, 0)128-bit decimal, precision 10, scale 0
timestamp[ms, tz=UTC]Millisecond-precision UTC timestamp

Entity Schemas

Organization

Organization metadata.

ColumnTypeNullableDescription
idstringUnique identifier (UUID)
namestringOrganization name
createdTstimestampCreation timestamp
updatedTstimestampLast update timestamp

Device

IoT device inventory and properties.

ColumnTypeNullableDescription
idstringUnique identifier (UUID)
namestringDevice name
organizationIdstringReference to organization
modelstringDevice model (e.g., com.haltian.device.tsar02)
externalIdstringExternal system identifier
tuidstringThingsee Unique Identifier
installationStatusstringStatus: new, installed, etc.
manufacturingDatetimestampManufacturing date
shippingDatetimestampShipping date
warrantyDatetimestampWarranty expiration
createdTstimestampCreation timestamp
updatedTstimestampLast update timestamp
lastSeentimestampLast communication time
wirepasNodeIduint32Wirepas mesh node ID
wirepasNetworkIduint32Wirepas mesh network ID
imeistringIMEI (cellular devices)
iccidstringSIM card ICCID
bluetoothMacstringPrimary Bluetooth MAC
bluetoothMac2stringSecondary Bluetooth MAC
lanMacstringLAN MAC address
wifiMacstringWiFi MAC address
customerLabelIdstringCustomer-assigned label
vendorSerialstringVendor serial number

Device Group

Logical groupings of devices.

ColumnTypeNullableDescription
idstringUnique identifier (UUID)
organizationIdstringReference to organization
modelstringGroup model (e.g., com.haltian.device-group)
externalIdstringExternal system identifier
installationStatusstringInstallation status
manufacturingDatetimestampManufacturing date
shippingDatetimestampShipping date
warrantyDatetimestampWarranty expiration
createdTstimestampCreation timestamp
updatedTstimestampLast update timestamp

Device Group Devices

Junction table linking devices to device groups.

ColumnTypeNullableDescription
deviceGroupIdstringReference to device group
deviceIdstringReference to device
organizationIdstringReference to organization

Device Keyword

Tags and labels assigned to devices.

ColumnTypeNullableDescription
deviceIdstringReference to device
organizationIdstringReference to organization
keywordstringKeyword/tag value
createdTstimestampCreation timestamp
updatedTstimestampLast update timestamp

Space

Spatial hierarchy: locations, buildings, floors.

ColumnTypeNullableDescription
idstringUnique identifier (UUID)
namestringSpace name
organizationIdstringReference to organization
parentSpaceIdstringParent space (hierarchical)
typestringType: location, building, floor
positionGlobalstringGeoJSON Point coordinates
northVectorfloatNorth direction angle (degrees)
createdTstimestampCreation timestamp
updatedTstimestampLast update timestamp

Zone

Defined areas within spaces.

ColumnTypeNullableDescription
idstringUnique identifier (UUID)
organizationIdstringReference to organization
spaceIdstringParent space reference
namestringZone name
polygonGlobalstringGeoJSON polygon boundaries
createdTstimestampCreation timestamp
updatedTstimestampLast 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
tstimestampMeasurement timestamp
organizationIdstringReference to organization

measurementAmbientTemperature

Ambient temperature readings.

ColumnTypeNullableDescription
ambientTemperaturefloatTemperature in degrees Celsius

measurementBatteryPercentage

Battery charge level.

ColumnTypeNullableDescription
batteryPercentagefloatBattery level (0–100%)

measurementBatteryVoltage

Battery voltage readings.

ColumnTypeNullableDescription
batteryVoltagefloatVoltage in volts

measurementBootCount

Device restart events.

ColumnTypeNullableDescription
bootCountint32Cumulative boot count
bootReasonstringReason for restart

measurementCO2

Carbon dioxide concentration.

ColumnTypeNullableDescription
co2floatCO₂ level in ppm

measurementDirectionalMovement

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

ColumnTypeNullableDescription
entriesint32Number of entries
exitsint32Number of exits

measurementDistance

Distance measurements.

ColumnTypeNullableDescription
distancedecimal128(10,0)Distance (typically mm)

measurementOccupancySeconds

Duration of occupancy within measurement period.

ColumnTypeNullableDescription
occupancySecondsfloatOccupancy duration in seconds

measurementOccupancyStatus

Binary occupancy state.

ColumnTypeNullableDescription
statusint80 = unoccupied, 1 = occupied

measurementOccupantsCount

Number of people detected.

ColumnTypeNullableDescription
occupantsCountint32Number of occupants

measurementPosition

Device location tracking.

ColumnTypeNullableDescription
isStaticint80 = moving, 1 = stationary
spaceIdstringSpace where device is located
positionGlobalstringGeoJSON Point coordinates

measurementPositionZone

Zone-relative device position.

ColumnTypeNullableDescription
zoneIdstringZone where device is located

measurementTVOC

Total Volatile Organic Compounds.

ColumnTypeNullableDescription
tvocfloatTVOC 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.