Common Profile (1000-1999)

System information, configuration, firmware updates, and diagnostic messages used by all Thingsee devices.

This profile may be used as is, or be used as a basis, by all profiles to implement some generic functions that are typically required by all applications regardless of their actual use cases.

System Information Messages

Thing System Info (1100)

Reports device firmware and identification information.

{
    "swVersion": "String",
    "modelCode": "String",
    "psn": "String"
}
FieldDescription
swVersionCurrently installed firmware version
modelCodeManufacturer-specific product family identifier
psnManufacturer-allocated unique serial number

Example:

[{
    "tsmId": 1100,
    "tsmEv": 11,
    "tsmTs": 1492603998,
    "tsmTuid": "TSPOD6789",
    "tsmGw": "TSGW1234",
    "swVersion": "tspodfw-2017-04-19-1"
}]

Thing Information Request (1101)

Sent from cloud to request specific device information. Uses tsmEv: 32 (Firmware information request).

{
    "requestTsmId": Number  // required
}

The device responds with the requested message using tsmEv: 33. If unsupported, the device sends a Thing Information Unavailable Response (1102).

Thing Battery Info (1110)

Reports battery level and charging status.

{
    "batl": Number,  // required - battery level percentage
    "chrg": Number   // optional - charging state
}

Example:

[{
    "tsmId": 1110,
    "tsmEv": 101,
    "tsmTs": 1492603998,
    "tsmTuid": "TSPOD6789",
    "tsmGw": "TSGW1234",
    "batl": 34.6,
    "chrg": 2
}]

Thing Orientation Info (1111)

Reports device orientation as acceleration values.

{
    "accx": Number,
    "accy": Number,
    "accz": Number
}

Thing Uptime Info (1112)

Reports time since device startup.

{
    "uptime": Number  // seconds since device start-up
}

Network Messages

Wirepas Network Neighbouring Data (1200)

Reports neighboring devices in the Wirepas mesh network.

{
    "wpnode": "String",           // Required - Wirepas Node Id
    "rssi": Number,               // Required - signal strength
    "rssiDbm": Number,            // Optional - signal strength in dBm
    "neighNodeInfo": Number,      // Optional - routing info
    "neighRadioPower": Number,    // Optional - transmission power
    "neighRadioPowerDbm": Number  // Optional - power in dBm
}

neighNodeInfo values:

  • 1: Node is routing traffic TO the sender
  • 2: Node is part of same cluster
  • 3: Node is routing destination FROM the sender

RSSI conversion: rssi(dBm) = (128 * rssi / 255) – 128

Wirepas Node Identification (1201)

Request/response for mapping Wirepas node IDs to TUIDs.

Request (tsmEv: 19):

{
    "wpnode": Number  // required
}

Response (tsmEv: 20):

{
    "wpnode": Number,
    "tuid": "String or null"
}

Sensor Network Neighbouring Data (1202)

Reports neighboring devices using TUID instead of Wirepas node ID.

{
    "tuid": "String",             // Required
    "rssi": Number,               // Required
    "rssiDbm": Number,            // Optional
    "neighNodeInfo": Number,      // Optional
    "neighRadioPower": Number,    // Optional
    "neighRadioPowerDbm": Number  // Optional
}

Bluetooth Node Identification (1203)

Request/response for mapping Bluetooth advertisement names to TUIDs.

Request (tsmEv: 19):

{
    "btid": "String"  // Bluetooth advertisement name
}

Response (tsmEv: 20):

{
    "btid": "String",
    "tuid": "String or null"
}

Sensor Network Identification (1205)

Query device’s sensor network identifiers by TUID.

Response:

{
    "tuid": "String",
    "btid": "String",   // optional - Bluetooth name
    "wpnode": "String"  // optional - Wirepas node ID
}

BLE Beacon Configuration

iBeacon Configuration (1206)

Configure iBeacon advertising parameters.

{
    "tsmId": 1206,
    "tsmEv": 30,
    "transactionId": Number,
    "beaconData": "Buffer",      // URL/data buffer
    "beaconMajor": Number,       // Major field (1 byte)
    "beaconMinor": Number,       // Minor field (1 byte)
    "beaconChannels": Number,    // Channel mask
    "reportInterval": Number,    // Advertising interval (100-60000 ms)
    "txPower": Number            // dBm: -8, -4, 0, or 4
}

beaconChannels mask:

  • 0 = Channel 37
  • 1 = Channel 38
  • 2 = Channel 39
  • 6 = All channels (37, 38, 39)
  • 255 = Beacon off

Eddystone Configuration (1207)

Configure Eddystone beacon advertising.

{
    "tsmId": 1207,
    "tsmEv": 30,
    "transactionId": Number,
    "beaconFrame": Number,       // 0=UID, 16=URL, 32=TLM, 48=EID
    "beaconData": "Buffer",      // Frame-specific data
    "beaconChannels": Number,
    "reportInterval": Number,
    "txPower": Number
}

Generic Beacon Configuration (1208)

Configure custom beacon advertising with full control.

{
    "tsmId": 1208,
    "tsmEv": 30,
    "transactionId": Number,
    "txPower": Number,
    "reportInterval": Number,
    "index": Number,             // Beacon index 0-2
    "beaconChannels": Number,
    "beaconData": "Buffer"       // Raw advertisement data
}

Cellular Information

Cellular Location Data (1210)

{
    "lat": Number,
    "lon": Number,
    "lacr": Number
}

Cellular RF Data (1211)

{
    "cellRsrp": Number,   // dBm
    "cellRsrq": Number,   // dB
    "cellSinr": Number,   // dB
    "cellRssi": Number,   // dBm
    "cellRscp": Number,   // dBm
    "cellEcn0": Number,   // dB
    "cellLac": Number,
    "cellId": Number,
    "cellTac": Number,
    "cellRat": "String"
}

Cellular Identification (1212)

{
    "imei": "String",
    "imsi": "String",
    "mcc_mnc": "String",
    "operatorName": "String"
}

Wirepas Diagnostics

Wirepas Node Diagnostics (1220)

Comprehensive mesh network diagnostics.

{
    "nodeAccessCycle": Number,
    "nodeRole": Number,
    "nodeVoltage": Number,
    "nodeMaxBufferUsage": Number,
    "nodeAverageBufferUsage": Number,
    "nodeMemAllocFails": Number,
    "nodeScannings": Number,
    "nodeDroppedPackets": Number,
    "nodeDutyCycle": Number,
    "nodeCurrentAntenna": Number
}

nodeRole bitfield:

  • 0x01: Subnode
  • 0x02: Headnode
  • 0x04: Sink
  • 0x10: Low-latency node
  • 0x20: Node in relay mode
  • 0x80: Node in autorole mode

Wirepas Scratchpad Sequence (1221)

{
    "scratchpadSeqNumber": Number
}

Wirepas Traffic Diagnostics (1222)

Network traffic statistics and performance metrics.

{
    "nodeAccessCycle": Number,
    "nodeClusterChannel": Number,
    "nodeChannelReliability": Number,
    "nodeRxAmount": Number,
    "nodeTxAmount": Number,
    "nodeAlohaRxRatio": Number,
    "nodeReservedRxSuccessRatio": Number
}

Firmware Updates

Gateway Firmware Update (1300)

Request firmware update for a gateway device. Sent with tsmEv: 25.

{
    "binaries": [
        {
            "binaryVersion": "String",
            "binaryUrl": "String",
            "binaryType": "String",   // "stm32_mcu" or "nRF52_sink"
            "binarySHA": "String"     // SHA256 checksum
        }
    ]
}

Gateway Firmware Status (1301)

Response to firmware update request.

{
    "result": "String",       // "ok", "fail", or "cancel"
    "resultReason": "String"  // Additional details
}

Wirepas OTAP Update (1302)

Over-the-air programming for Wirepas network devices.

{
    "binaryUrl": "String",
    "binaryVersion": "String",
    "binarySHA": "String",
    "binaryFlags": Number,           // 1 = contains stack update
    "scratchpadSeqNumber": Number,   // 1-254
    "targetNodeIds": [Number]        // Target devices
}

Wirepas OTAP Status (1303)

{
    "result": "String",
    "resultReason": "String"
}

Firmware Binary Version (1312)

{
    "binaryType": "String",
    "binaryVersion": "String"
}

Hardware Identification (1313)

{
    "hwid": "String"
}

Diagnostics and Commands

Diagnostics Info (1400)

{
    "diagGroup": Number,
    "diagType": "String",
    "diagData": "String"
}

diagGroup values:

  • 0: System diagnostics
  • 1: Mobile network diagnostics
  • 2: Sensor network diagnostics
  • 3: Gateway diagnostics
  • 4: Sensor diagnostics
  • 5: FOTA diagnostics

Enable Diagnostics (1401)

Sent with tsmEv: 27 to enable diagnostic reporting.

{
    "diagGroup": Number,
    "diagExpiry": Number,    // UTC timestamp
    "diagInterval": Number,  // optional - seconds
    "diagLevel": Number      // optional - verbosity
}

Remote Command (1402)

Generic command interface. Sent with tsmEv: 35.

Request:

{
    "command": "String",
    "payload": "String",
    "transactionId": Number
}

Response (tsmEv: 36):

{
    "result": Number,
    "payload": "String",
    "transactionId": Number
}

result codes:

  • 0: OK
  • -1: Generic error
  • -2: Unsupported command

Error Info (1403)

Error information sent with tsmEv: 29.

{
    "errorType": "String",
    "errorCause": "String"
}

Remote Reset Request (1404)

Sent with tsmEv: 23 to request device reset.


Sensor Configuration

Sensor Application Interval Configuration (1500)

Configure measurement and reporting intervals. Sent with tsmEv: 30.

[{
    "tsmId": 1500,
    "tsmEv": 30,
    "tsmDstTuid": "TSPOD6789",
    "transactionId": 1,
    "measurementInterval": 10,
    "reportInterval": 60
}]

The device responds with the applied configuration using tsmEv: 31.

Wirepas Node Role Configuration (1501)

Configure device role in the mesh network.

{
    "transactionId": Number,
    "nodeRole": Number,    // 0=Headnode, 1=Subnode
    "autoRole": Number,    // 0=Disabled, 1=Enabled
    "lowLatency": Number   // 0=Disabled, 1=Enabled (mains-powered only)
}

Wirepas Access Cycle Configuration (1502)

Configure network responsiveness vs. battery life trade-off.

{
    "transactionId": Number,
    "nodeAccessCycle": Number
}

nodeAccessCycle values:

  • 0: Automatic (2000-8000 ms)
  • 1: 2000 ms (fastest, highest power)
  • 2: 4000 ms
  • 3: 8000 ms (slowest, lowest power)

Battery Profile Configuration (1503)

Configure battery type for accurate level reporting.

{
    "transactionId": Number,
    "profileId": Number
}

profileId values:

  • 0: Default for device type
  • 1: Two alkaline AA/AAA batteries in series
  • 2: Two lithium AA/AAA batteries in series
  • 3: Single lithium CR2032 battery

Low-Power Storage Mode (1504)

Put device into deep sleep for storage. Sent with tsmEv: 30.

{
    "transactionId": Number,
    "enabled": Number  // 0=Normal mode, 1=Enter low-power mode
}

Sensor LED Control (1505)

Control device LED for identification.

{
    "transactionId": Number,
    "profileId": Number,   // 0=Off, 1=Blink every 2 seconds
    "duration": Number     // Seconds before auto-off
}

Ping Request (1600)

Test device connectivity. Sent with tsmEv: 35.

{
    "transactionId": Number,
    "wpnode": Number  // optional - Wirepas node ID filter
}

If wpnode is provided, the device only responds if it matches its own node ID.