Sample Data

Explore real Haltian IoT data from our Oulu office - available for immediate experimentation

Live Sample Dataset

We provide a complete sample dataset from Haltian’s Oulu office that you can explore directly in your browser. This data includes real sensor readings from meeting rooms, demonstrating the full capabilities of the Parquet export format.

Dataset Overview

PropertyValue
LocationHaltian Oulu Office
Time PeriodJanuary 2026
Export FrequencyHourly
Total Duration1 month (744 hours)
Primary Use CaseMeeting room occupancy

Available Data Types

Entity Data

FolderDescriptionRecords
device/IoT sensors installed in meeting roomsPresence sensors
space/Office locations, buildings, floorsHierarchical structure
zone/Individual meeting rooms and areasNamed zones
organization/Organization metadataDemo organization
deviceKeyword/Device tags and labelsRoom assignments

Measurement Data

FolderDescriptionFrequency
measurementOccupancyStatus/Binary occupied/unoccupied stateReal-time events
measurementOccupancySeconds/Duration of occupancy per periodAggregated
measurementOccupantsCount/Number of people detectedReal-time
measurementAmbientTemperature/Room temperaturePeriodic
measurementBatteryPercentage/Sensor battery levelsPeriodic
measurementBatteryVoltage/Battery voltage readingsPeriodic
measurementCO2/Air quality (CO₂ ppm)Periodic
measurementTVOC/Volatile organic compoundsPeriodic
measurementPosition/Device location trackingEvent-driven
measurementPositionZone/Zone-relative positionsEvent-driven

Data Access URLs

The sample data follows the standard folder structure and can be accessed via HTTPS:

https://raw.githubusercontent.com/haltian/dev-demos/main/haltiansalesdemo-parquet/
├── device/
│   └── 2026/
│       └── 01/
├── measurementOccupancyStatus/
│   └── 2026/
│       └── 01/
├── space/
│   └── 2026/
│       └── 01/
├── zone/
│   └── 2026/
│       └── 01/
└── ...

📦 GitHub Repository: haltian/dev-demos

Example URLs

# Single device file
https://raw.githubusercontent.com/haltian/dev-demos/main/haltiansalesdemo-parquet/device/2026/01/2026_01_15_08_device.parquet

# Occupancy measurement
https://raw.githubusercontent.com/haltian/dev-demos/main/haltiansalesdemo-parquet/measurementOccupancyStatus/2026/01/2026_01_15_10_measurementOccupancyStatus.parquet

# Zone definitions
https://raw.githubusercontent.com/haltian/dev-demos/main/haltiansalesdemo-parquet/zone/2026/01/2026_01_15_08_zone.parquet

Quick Start with Python

Load the sample data directly from our website:

import pandas as pd

# Read device inventory
devices_url = "https://raw.githubusercontent.com/haltian/dev-demos/main/haltiansalesdemo-parquet/device/2026/01/2026_01_15_08_device.parquet"
devices = pd.read_parquet(devices_url)
print(f"Found {len(devices)} devices")

# Read occupancy data
occupancy_url = "https://raw.githubusercontent.com/haltian/dev-demos/main/haltiansalesdemo-parquet/measurementOccupancyStatus/2026/01/2026_01_15_10_measurementOccupancyStatus.parquet"
occupancy = pd.read_parquet(occupancy_url)
print(f"Found {len(occupancy)} occupancy events")

# Read zone definitions  
zones_url = "https://raw.githubusercontent.com/haltian/dev-demos/main/haltiansalesdemo-parquet/zone/2026/01/2026_01_15_08_zone.parquet"
zones = pd.read_parquet(zones_url)
print(f"Found {len(zones)} zones (meeting rooms)")

Quick Start with DuckDB

Query the sample data directly with SQL:

import duckdb

# Analyze occupancy patterns across all January 2026 data
result = duckdb.query("""
    SELECT 
        DATE_TRUNC('day', ts) as date,
        COUNT(*) as total_events,
        SUM(status) as occupied_events,
        ROUND(100.0 * SUM(status) / COUNT(*), 1) as occupancy_rate
    FROM 'https://raw.githubusercontent.com/haltian/dev-demos/main/haltiansalesdemo-parquet/measurementOccupancyStatus/2026/01/*.parquet'
    GROUP BY DATE_TRUNC('day', ts)
    ORDER BY date
""").df()

print(result)

What to Explore

Meeting Room Usage

The primary use case demonstrated is meeting room occupancy monitoring:

  1. Zones represent individual meeting rooms
  2. Devices are presence sensors installed in each room
  3. Occupancy measurements show real usage patterns

Analysis Ideas

  • Daily utilization - Which rooms are used most frequently?
  • Peak hours - When are meeting rooms busiest?
  • Booking efficiency - How often are booked rooms actually used?
  • Capacity planning - Do you need more/fewer meeting rooms?

Next Steps