A raw_result is a type of MQTT message published by almost every data acquisition module of the SiteController to the MQTT topic raw_result/<gateway_id>, it contains the values read by the module, normally (but not restricted to) as numbers or strings, without any processing applied. A raw_result message can contain the value read from 1 or more sensors, the used format is always JSON. This type of messages are not retained in internal storage nor sent to the cloud.
A raw_result should comply with the following structure:
Code Block |
---|
language | js |
---|
title | raw_result message structure |
---|
|
{
"error_code": <int>,
"result_dict": {
"sensor_1": {
"changed": <true | false>,
"value": <value read from sensor/datapoint>data point>,
"err_code": <int>,
"err_desc": "<description<textual description of anthe error>"
},
"sensor_2": {
......
},
"sensor_3": {
......
}
},
"partial": <true means this raw_result can contain just some sensors associated to the sensor_gateway, false or absent means all sensor are present in every raw_result message>,
"sensor_gateway_id": "<identification of the gateway associated to this sensor group>",
"timestamp": "<message timestamp in ISO8601 format>"
} |
Field definition
Name | Purpose | Optional | Default value |
---|
error_code | Error code classifying the whole raw_result | No |
|
result_dict | dictionary with every sensor read, see the next table for more information | No |
|
partial | true means this raw_result can contain just some sensors associated to the sensor_gateway, false or absent means all sensor are present in every raw_result message | Yes | False |
sensor_gateway_id | Identification of the gateway associated to this sensor group | No |
|
timestamp | Message timestamp in ISO8601 format | Yes | current timestamp |
Field result_dict
Name | Purpose | Optional | Default value |
---|
changed | Mark the specific sensor as been changed in comparison with the last readingĀ | No |
|
value | Value |
readed read from the sensor, this can be a number, boolean, string |
or any other other valid JSON structure. | No |
|
err_code | Integer value representing a error about this specific sensor, 0 means no error, any other value means a error specific for the device, this value have higher relevance than error_code from raw_result | Yes | 0 |
err_desc | Textual representation of the error | Yes | "" |
Example
Code Block |
---|
{
"error_code": 0,
"result_dict": {
"accuracy": {
"changed": true,
"value": 1.1061637275660097
},
"mac": {
"changed": false,
"value": "d9:cc:ba:9a:88:db"
},
"major": {
"changed": false,
"value": 4463
},
"minor": {
"changed": false,
"value": 12099
},
"proximity": {
"changed": false,
"value": 1.0,
"err_code": 01,
"err_desc": "neartoo close"
},
"rssi": {
"changed": true,
"value": -77
},
"tx_power": {
"changed": false,
"value": -76
},
"type": {
"changed": false,
"value": "IBeaconAdvertisement"
},
"uuid": {
"changed": false,
"value": "b9407f30-f5f8-466e-aff9-25556b57fe6d"
}
},
"sensor_gateway_id": "ble_ibeacon",
"timestamp": "2018-05-18T15:04:35.097Z",
"valueType": "beaconRaw",
"partial": false
} |