Platform Overview

Introduction to Haltian IoT platform architecture and core concepts

Overview

Haltian IoT is a versatile, cloud-based, and self-host capable IoT data-collection platform.

The platform primarily supports the Wirepas ecosystem IoT devices but is also equipped to integrate other radio technologies and third-party devices through project-specific integrations.

It offers a comprehensive set of APIs, tools, and services designed to facilitate the development of IoT solutions.

%%{init: {'theme':'base', 'themeVariables': {'primaryColor':'#73f9c1','primaryTextColor':'#143633','primaryBorderColor':'#143633','secondaryColor':'#ff8862','tertiaryColor':'#f6fafa','lineColor':'#143633','textColor':'#143633','edgeLabelBackground':'#ffffff'}}}%%
flowchart BT
    subgraph DeviceLayer["Devices"]
        subgraph Devices["Sensors"]
            direction LR
            D1["<b>Presence</b><br/><i>Sensors</i>"]
            D2["<b>Environmental</b><br/><i>Sensors</i>"]
            D3["<b>Distance</b><br/><i>Sensors</i>"]
            D4["<b>Orientation</b><br/><i>Sensors</i>"]
            D5["<b>Beam</b><br/><i>Sensors</i>"]
        end

        subgraph Mesh["Mesh Network"]
            direction LR
            WM["<b>Wirepas Mesh 5.3</b><br/><i>Protocol</i>"]
            WM2["<b>Wirepas Mesh 5.0</b><br/><i>Protocol</i>"]
            WM3["<b>Wirepas Mesh 3.4</b><br/><i>Protocol</i>"]
        end

        subgraph Network["Gateways"]
            direction LR
            GW["<b>Thingsee Global</b><br/><i>LTE Cat M1</i>"]
            GW2["<b>Haltian IoT XS</b><br/><i>LTE and LAN</i>"]
            GW3["<b>Haltian IoT N8</b><br/><i>LTE and LAN</i>"]
        end
    end

    subgraph Platform["Haltian IoT Platform"]
        direction TB
        Core["<b>Core Services</b><br/><i>Kubernetes</i>"]
        DB["<b>Data Store</b><br/><i>Time-Series DB</i>"]
        Core --> DB
        
        subgraph APIs["Haltian IoT APIs"]
            direction LR
            MQTT["<b>Stream API</b><br/><i>MQTT</i>"]
            GQL["<b>Service API</b><br/><i>GraphQL</i>"]
            DATA["<b>Data API</b><br/><i>Parquet</i>"]
        end
        
        subgraph DataProc["Data Processing"]
            direction LR
            DS["<b>Data Storage</b><br/><i>Operative Data</i>"]
            DE1["<b>Data Engine</b><br/><i>Position</i>"]
            DE2["<b>Data Engine</b><br/><i>Occupancy</i>"]
        end
        
        DB --> MQTT & GQL & DATA
    end

    subgraph Clients["Clients Layer"]
        subgraph Applications["Applications"]
            direction LR
            Studio["<b>Studio Apps</b><br/><i>Web & Mobile</i>"]
            EndUser["<b>End-User Apps</b><br/><i>Client Applications</i>"]
        end
        subgraph Clouds["External Services"]
            direction LR
            Analytics["<b>Analytics</b><br/><i>Batch Processing</i>"]
            DataLake["<b>Data Lakes</b><br/><i>Cloud Storage</i>"]
            AIML["<b>AI/ML</b><br/><i>ML Models</i>"]
        end
    end

    D1 & D2 & D3 & D4 & D5 --> WM
    WM --> GW & GW2 & GW3
    GW & GW2 & GW3 --> Core
    Studio --> GQL
    EndUser --> MQTT & GQL
    EndUser --> Analytics & DataLake & AIML
    Analytics --> DATA
    DataLake --> MQTT

    %% Device layer styling
    style DeviceLayer fill:#f6fafa,stroke:#143633,stroke-width:3px,color:#143633
    style Devices fill:#f6fafa,stroke:#143633,stroke-width:2px,color:#143633
    style D1 fill:#ff8862,stroke:#143633,stroke-width:2px,color:#fff
    style D2 fill:#ff8862,stroke:#143633,stroke-width:2px,color:#fff
    style D3 fill:#ff8862,stroke:#143633,stroke-width:2px,color:#fff
    style D4 fill:#ff8862,stroke:#143633,stroke-width:2px,color:#fff
    style D5 fill:#ff8862,stroke:#143633,stroke-width:2px,color:#fff
    
    %% Network styling
    style Network fill:#f6fafa,stroke:#143633,stroke-width:2px,color:#143633
    style GW fill:#73f9c1,stroke:#143633,stroke-width:2px,color:#143633
    
    %% Platform styling
    style Platform fill:#f6fafa,stroke:#143633,stroke-width:3px,color:#143633
    style Core fill:#73f9c1,stroke:#143633,stroke-width:2px,color:#143633
    style DB fill:#ff8862,stroke:#143633,stroke-width:2px,color:#fff
    
    %% API styling
    style APIs fill:#cfe3e0,stroke:#143633,stroke-width:3px,color:#143633
    style MQTT fill:#73f9c1,stroke:#143633,stroke-width:2px,color:#143633
    style GQL fill:#73f9c1,stroke:#143633,stroke-width:2px,color:#143633
    style DATA fill:#73f9c1,stroke:#143633,stroke-width:2px,color:#143633
    
    %% Clients styling
    style Clients fill:#f6fafa,stroke:#143633,stroke-width:3px,color:#143633
    style Applications fill:#fff,stroke:#143633,stroke-width:2px,color:#143633
    style Clouds fill:#fff,stroke:#143633,stroke-width:2px,color:#143633
    style Studio fill:#ff8862,stroke:#143633,stroke-width:2px,color:#fff
    style EndUser fill:#ff8862,stroke:#143633,stroke-width:2px,color:#fff
    style Analytics fill:#cfe3e0,stroke:#143633,stroke-width:2px,color:#143633
    style DataLake fill:#cfe3e0,stroke:#143633,stroke-width:2px,color:#143633
    style AIML fill:#cfe3e0,stroke:#143633,stroke-width:2px,color:#143633

Supported Devices and Sensors

Haltian IoT supports a wide range of sensor devices for IoT measurements and telemetry. The system can handle hybrid use cases, allowing simultaneous asset tracking and telemetry data collection.

The Haltian device portfolio includes sensors for:

  • Parking detection
  • People detection and counting
  • Vibration and orientation
  • TVOC and CO2
  • Ambient light
  • Air pressure
  • Humidity and temperature

For more details, see the device catalog.

Data Connection

  • MQTT Connectivity: Haltian IoT supports MQTT connections from various device hardware, including gateway devices and other MQTT-compatible devices.

  • Native Integrations: The system can be extended with native integrations to other IoT platforms, such as Azure IoT Hub, where Haltian IoT telemetry devices can connect as real-time data sources.

  • Custom APIs: For large queries and bulk data, the platform offers APIs suited for AI/ML, data lake, and analytics integrations. These APIs are designed for periodic or scheduled read-only access.

  • Primary APIs: Haltian IoT provides two primary APIs for client use:

    • Stream API (MQTT): For fetching live telemetry data from devices
    • Service API (GraphQL): For fetching device information and metadata

Applications and Use Cases

  • Studio Applications: Tailored for field and remote operations, targeting specific user roles. The platform supports various data sources, including LwM2M, CoAP/CBOR, and HTTPS for data uplink integrations.

  • End-User Applications: Focus on specific domains or use cases, such as reporting, occupancy analytics, and inventory monitoring.

  • Asset Tracking and Inventory: Supports non-real-time tracking use cases, with configurable active and passive states to optimize energy consumption and tag lifetime.

Next Steps