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:
raw_result message structure
{ "error_code": <int>, "result_dict": { "sensor_1": { "changed": <true | false>, "value": <value read from sensor/datapoint>, "err_code": <int>, "err_desc": "<description of an 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 from the sensor, this can be a number, 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
{ "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": 1, "err_desc": "too 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 }