Common Profile (1000-1999)
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"
}
| Field | Description |
|---|---|
swVersion | Currently installed firmware version |
modelCode | Manufacturer-specific product family identifier |
psn | Manufacturer-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 sender2: Node is part of same cluster3: 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 371= Channel 382= Channel 396= 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: Subnode0x02: Headnode0x04: Sink0x10: Low-latency node0x20: Node in relay mode0x80: 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 diagnostics1: Mobile network diagnostics2: Sensor network diagnostics3: Gateway diagnostics4: Sensor diagnostics5: 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 ms3: 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 type1: Two alkaline AA/AAA batteries in series2: Two lithium AA/AAA batteries in series3: 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
}
Wake-up method varies by device type. See the device reference manual.
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.