When using the Cayenne integration from The Things Network, I am forced to follow the payload format specified by Cayenne’s LPP. I am however using my own payload format, because my device also talks to other systems.
For simplicity I am using the TTN payload functions on their dashboard to parse my payload. The data then appears in a payload_fields
json object when I receive the data through the normal channels (MQTT).
I expected that Cayenne also received this same json object, not only the raw payload. Why does Cayenne not plot the values of all the fields under payload_fields
, without trying to parse the raw payload itself?
An example of the JSON my other systems receive from TTN when a packet is received from one of my LoRaWAN devices:
{
"app_id": "jpm_temp_hum",
"dev_id": "1284p_dht22_001",
"hardware_serial": "002B13946D4F67CA",
"port": 1,
"counter": 13,
"payload_raw": "AZ8A54c=",
"payload_fields": {
"humidity": 41.5,
"temperature": 23.1
},
"metadata": {
"time": "2017-04-03T15:14:43.072975408Z",
"frequency": 868.1,
"modulation": "LORA",
"data_rate": "SF7BW125",
"coding_rate": "4/5",
"gateways": [{
"gtw_id": "eui-aa555a000806053f",
"timestamp": 3016629843,
"time": "2017-04-03T15:14:42.750351Z",
"channel": 0,
"rssi": -115,
"snr": 2.5,
"rf_chain": 1,
"latitude": 52.22121,
"longitude": 6.8857374,
"altitude": 66
}, {
"gtw_id": "eui-1dee039aac75c307",
"timestamp": 2828515563,
"time": "",
"channel": 0,
"rssi": -115,
"snr": 3.2,
"rf_chain": 1,
"latitude": 52.216637,
"longitude": 6.9006734,
"altitude": 100
}]
}
}