raw_result

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/data point>,
            "err_code": <int>,
            "err_desc": "<textual description of the 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

NamePurposeOptionalDefault value
error_codeError code classifying the whole raw_resultNo
result_dictdictionary with every sensor read, see the next table for more informationNo
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

YesFalse
sensor_gateway_idIdentification of the gateway associated to this sensor groupNo
timestampMessage timestamp in ISO8601 formatYescurrent timestamp

Field result_dict

NamePurposeOptionalDefault value
changedMark the specific sensor as been changed in comparison with the last reading No
valueValue read from the sensor, this can be a number, boolean, string.No
err_codeInteger 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_resultYes0
err_descTextual representation of the errorYes""

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", 
    "partial": false
}