Indoor Positioning System

How Haltian IoT indoor positioning works — architecture, data flow, and positioning modes

The Haltian Inventory Tracking Solution (HITS) provides real-time indoor positioning for tracking assets and devices within buildings. The system uses Wirepas mesh networks and RSSI-based patented positioning algorithms to calculate device positions, delivering location data through the platform’s standard APIs. Energy-harvesting locators enable wireless installation with no changes to existing buildings or networks.

How Positioning Works

%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#F6FAFA', 'primaryTextColor': '#143633', 'primaryBorderColor': '#143633', 'lineColor': '#143633', 'secondaryColor': '#C7FDE6', 'tertiaryColor': '#73F9C1', 'clusterBkg': '#ffffff', 'clusterBorder': '#143633', 'edgeLabelBackground': '#ffffff'}}}%%
flowchart TB
    subgraph North["fa:fa-desktop Applications"]
        Finder["Haltian Finder"]
        Studio["Haltian IoT Studio"]
        Custom["Custom Applications"]
    end

    subgraph Cloud["fa:fa-cloud Haltian IoT Cloud"]
        Ingest["Ingestion"]
        PosEngine["Haltian Positioning Engine"]
        Store["Data Store"]
        StreamAPI["Stream API<br/><i>MQTT</i>"]
        ServiceAPI["Service API<br/><i>GraphQL</i>"]
        DataAPI["Data API<br/><i>Parquet</i>"]
        Ingest --> PosEngine --> Store
        Store --> StreamAPI
        Store --> ServiceAPI
        Store --> DataAPI
    end

    subgraph GW["fa:fa-server Gateway"]
        Sink["Wirepas Sink"]
        Proc["Gateway Processor<br/><i>CBOR → JSON</i>"]
        Sink --> Proc
    end

    subgraph South["fa:fa-broadcast-tower Positioning Infrastructure"]
        direction LR
        L1["EH Locator<br/><i>Router mode</i>"]
        L2["EH Locator<br/><i>Beacon mode</i>"]
        L3["EH Locator<br/><i>Router mode</i>"]
    end

    subgraph Tags["fa:fa-tag Tracked Devices"]
        direction LR
        T1["NANO Tag"]
        T2["NANO Tag"]
        T3["NANO Tag"]
    end

    T1 & T2 & T3 -->|"BLE DA<br/>broadcast"| L1 & L2 & L3
    L1 & L3 -->|"Wirepas Mesh<br/>AES-128"| Sink
    Proc -->|"LTE / Ethernet<br/>TLS"| Ingest
    StreamAPI & ServiceAPI & DataAPI --> Finder & Studio & Custom

    style North fill:#ffffff,stroke:#143633,stroke-width:2px,color:#143633
    style Cloud fill:#ffffff,stroke:#143633,stroke-width:2px,color:#143633
    style GW fill:#ffffff,stroke:#143633,stroke-width:2px,color:#143633
    style South fill:#ffffff,stroke:#143633,stroke-width:2px,color:#143633
    style Tags fill:#ffffff,stroke:#143633,stroke-width:2px,color:#143633
    style PosEngine fill:#73F9C1,stroke:#143633,stroke-width:2px,color:#143633
    style L1 fill:#F6FAFA,stroke:#143633,stroke-width:2px,color:#143633
    style L2 fill:#C7FDE6,stroke:#143633,stroke-width:2px,color:#143633
    style L3 fill:#F6FAFA,stroke:#143633,stroke-width:2px,color:#143633
    style T1 fill:#F6FAFA,stroke:#143633,stroke-width:2px,color:#143633
    style T2 fill:#F6FAFA,stroke:#143633,stroke-width:2px,color:#143633
    style T3 fill:#F6FAFA,stroke:#143633,stroke-width:2px,color:#143633
    style Sink fill:#F6FAFA,stroke:#143633,stroke-width:2px,color:#143633
    style Proc fill:#F6FAFA,stroke:#143633,stroke-width:2px,color:#143633
    style Ingest fill:#F6FAFA,stroke:#143633,stroke-width:2px,color:#143633
    style Store fill:#F6FAFA,stroke:#143633,stroke-width:2px,color:#143633
    style StreamAPI fill:#F6FAFA,stroke:#143633,stroke-width:2px,color:#143633
    style ServiceAPI fill:#F6FAFA,stroke:#143633,stroke-width:2px,color:#143633
    style DataAPI fill:#F6FAFA,stroke:#143633,stroke-width:2px,color:#143633
    style Finder fill:#F6FAFA,stroke:#143633,stroke-width:2px,color:#143633
    style Studio fill:#F6FAFA,stroke:#143633,stroke-width:2px,color:#143633
    style Custom fill:#F6FAFA,stroke:#143633,stroke-width:2px,color:#143633

Position calculation follows five steps:

  1. Tag broadcasts — A NANO Tag attached to an asset transmits BLE advertisement packets using Wirepas 5.2 Direct Advertisement (DA) protocol
  2. Locators receive — Multiple EH Locators in range receive the signal and measure RSSI (Received Signal Strength Indicator)
  3. Data forwarded — RSSI data is sent through the Wirepas mesh network to the gateway
  4. Cloud calculates — The Haltian Positioning Engine calculates the tag’s coordinates using collected RSSI values and patented positioning algorithms
  5. Position delivered — Calculated position is available via MQTT (real-time), GraphQL (query), or Parquet (historical export)

System Components

The positioning system requires three hardware components. Each has its own detailed documentation page.

ComponentRole in PositioningDetails
NANO TagAttached to tracked assets. Broadcasts BLE signal. Reports every 2 minutes while moving, every 24 hours when stationary.Up to 5 years battery life
EH LocatorFixed anchor that receives tag signals and provides RSSI data for position calculation. Operates in Router mode (routes mesh + beacons) or Beacon mode (beacons only).Powered by indoor light (energy harvesting) or USB-C
IoT GatewayBridges the Wirepas mesh to the cloud via LTE or Ethernet. One or more per site.Global LTE connectivity out of the box

Use Cases

Where Is My Equipment Right Now?

Tags on equipment and tools report their position while being moved between workstations. Staff locate assets instantly through the Finder app or custom applications, reducing search times across the facility.

Which Section Holds Each Asset?

Real-time position tracking across warehouse floors provides visibility into asset utilization. Zone-based tracking identifies which section holds each item, enabling real-time inventory management and minimizing equipment downtime.

Positioning Modes

Haltian IoT provides two complementary approaches to location tracking:

Precise Positioning (Coordinates)

Returns calculated coordinates based on RSSI positioning, available as global WGS84 coordinates (latitude/longitude). Each position includes an accuracy estimate in meters. Use for map visualization, movement tracking, and heat maps.

Zone-Based Positioning

Reports which named zone (room, area) contains the device, based on zone polygon boundaries configured in the platform. Returns zone name, identifier, entry timestamp, and detection confidence. Use for room-level tracking and occupancy by area.

Coordinate Systems

SystemFormatStatusUse Case
Global (WGS84)GeoJSON Point [longitude, latitude]PrimaryAll positioning — indoor and outdoor
Local (Cartesian)X/Y/Z in meters, building-relativeDeprecated — removed in R3 (end of summer 2026)Legacy indoor positioning
ZoneNamed area with polygon boundaryActiveRoom-level location

Accuracy

Positioning accuracy depends on the number and placement of EH Locators, physical environment, and tag reporting frequency.

Accuracy RangeTypical Scenario
1–3 mWirepas Mesh with adequate locator density
3–5 mStandard BLE with fewer reference points
Room-levelZone-based positioning (device within zone polygon)

Factors that reduce accuracy:

  • Insufficient locator density (fewer than 3 locators in range)
  • Metal obstructions and thick concrete walls blocking RF signals
  • Low tag battery reducing transmission power or update frequency

Deployment

Required Components

ComponentQuantity
NANO TagsOne per tracked asset
EH LocatorsMultiple per area (3+ recommended for best accuracy)
IoT GatewayOne or more per site

Installation Guidelines

  • Mount EH Locators at a minimum height of 2.5 m from the floor
  • Avoid metal surfaces and obstructions that block RF signals
  • Deploy locators following the Locator Grid — the recommended maximum spacing between devices for optimal positioning accuracy
  • No wires or changes to existing buildings required — EH Locators harvest power from indoor lighting
  • The system operates independently and does not interfere with existing IT networks

Security

LayerProtection
Mesh radioAES-128 encryption for all wireless traffic between tags, locators, and gateway
Gateway → CloudX.509 certificate-based TLS authentication
API accessAPI key authentication with role-based access control
PrivacyNo image capture or biometric data — positioning uses radio signal strength only

Tags and locators have no IP connectivity and are not addressable from the internet. They communicate exclusively through the Wirepas mesh radio, with the gateway as the only internet-facing component.

Accessing Position Data

Position data is available through all three Haltian IoT APIs:

APIProtocolPosition Data
Stream APIMQTTReal-time position events as they occur
Service APIGraphQLLatest position, position history, zone assignment
Data APIParquetHistorical position time-series for analytics and AI/ML

Two measurement types carry position data: position (precise coordinates with accuracy) and position_zone (zone name, type, and confidence).

For built-in visualization, Haltian Finder provides device search and interactive floor plan maps. Infrastructure is configured through Haltian IoT Studio.

Next Steps