Thingsee MQTT vs Haltian IoT MQTT

Detailed comparison between Thingsee MQTT and Haltian IoT MQTT protocols

This guide provides a detailed comparison between Thingsee MQTT and Haltian IoT MQTT, helping you migrate your MQTT integrations.

Quick Comparison

AspectThingsee MQTTHaltian IoT MQTT
AuthenticationClient certificates (.pem, .key)API key (username/password)
Certificate ManagementRenewed by Haltian (12 months)Self-service via IoT Studio (90 days)
Device IDTUID (in path and data)UUID (in path only)
Topic StructureFlat with region codesHierarchical with event types
Data FormatComplex JSON with metadataStreamlined JSON

Authentication

Thingsee MQTT

  • Uses client certificates (.pem and .key files)
  • Certificates provided by Haltian
  • No username or password required
  • TLS encryption with certificate validation

Haltian IoT MQTT

  • Uses API key authentication
  • API Key ID as username, API Key Token as password
  • No client certificates needed
  • TLS encryption

Credentials Validity

PlatformValidity PeriodRenewal Method
Thingsee12 monthsHaltian renews; old certs remain valid
Haltian IoT90 daysSelf-service via IoT Studio; old token invalidated

Device Identifiers

Thingsee

  • Uses TUID (Thingsee Unique Identifier) at the API level
  • Device QR code and labels show the vendorId (user-friendly identifier)
  • TUID appears in both topic path and message data

Haltian IoT

  • Uses UUID (Haltian IoT internal identifier)
  • UUID is not physically on the device
  • UUID appears in topic path only (not in message data)
  • Use vendorId (printed on QR code and labels) as the user-friendly identifier
  • Use the Service API to map between UUID, vendorId, and TUID

Mapping UUIDs to TUIDs

Use the Service API to query device mappings between UUID and TUID. See the Service API documentation for details.

MQTT Topic Structure

Thingsee Topic Format

cloudext/json/pr/fi/office/TSPR04EZU31901021/2100
SegmentDescription
cloudextFixed prefix
jsonData format
prProduct type
fiRegion code
officeCustomer identifier
TSPR04EZU31901021Device TUID
2100Message profile ID

Subscription: cloudext/json/pr/#

Haltian IoT Topic Format

haltian-iot/events/{integration-id}/{api-key-id}/measurements/ambient_temperature/{device-uuid}
SegmentDescription
haltian-iot/eventsFixed prefix
{integration-id}Integration identifier
{api-key-id}API key identifier
measurementsEvent kind
ambient_temperatureEvent/measurement type
{device-uuid}Device UUID

Subscription: haltian-iot/events/{integration}/{apikey}/#

Data Payload Format

Thingsee Payload

{
  "tsmId": 2100,
  "tsmEv": 7,
  "tsmTs": 1747646772,
  "tsmTuid": "TSPR04EZU31901021",
  "tsmGw": "TSGW01ABC12345678",
  "ambient_temperature": 23.5,
  "humidity": 45.2
}
FieldDescription
tsmIdMessage profile ID
tsmEvEvent type
tsmTsTimestamp (Unix epoch)
tsmTuidDevice identifier
tsmGwGateway identifier
...Measurement values

Haltian IoT Payload

{
  "measured_at": "2025-01-28T08:52:11.626Z",
  "value": 23.5
}
FieldDescription
measured_atISO 8601 timestamp
valueMeasurement value

Key Migration Steps

  1. Get Haltian IoT Credentials

    • Obtain API key ID and token from Haltian IoT Studio
    • Note your integration ID
  2. Get Device Mapping

    • Query GraphQL API for UUID to TUID mapping
    • Store mapping for device correlation
  3. Update Connection Code

    • Replace certificate authentication with API key
    • Update broker hostname and port
  4. Update Topic Subscription

    • Change from cloudext/json/pr/# to haltian-iot/events/{integration}/{apikey}/#
  5. Update Message Processing

    • Extract metadata from topic instead of payload
    • Parse ISO 8601 timestamps instead of Unix epoch
    • Handle streamlined value format
  6. Handle Device Identification

    • Map UUIDs back to TUIDs if needed
    • Update any device lookup logic

Common Pitfalls

Topic Changes

Thingsee uses a single topic for all measurements (cloudext/json/pr/#). Haltian IoT allows filtering by measurement type in the topic path (e.g. haltian-iot/events/.../measurements/ambient_temperature/#).

Timestamp Format

Thingsee uses Unix epoch timestamps (e.g. 1747646772). Haltian IoT uses ISO 8601 format (e.g. 2025-01-28T08:52:11.626Z).

Device ID Location

In Thingsee, the device TUID is included in the message payload. In Haltian IoT, the device UUID is part of the topic path and not included in the payload.

Next Steps