I have LoRa sensors which send measures with Cayenne LPP format payload. My Gateway(LOrank8v1) catches these packets and converts them to UDP. In the gateway there is a service(lora-gateway-bridge) which converts the packets from UDP to TCP/MQTT.
Then the MQTT packets are published to the mosquitto MQTT broker in the cloud. Then i run lora-server and lora-app-server services in order to decrypt,decode and deduplicate the packets.
Then i publish the decrypted information to the MQTT broker again. Here is an example of a publication after all these operations: application/1/node/0000000000000000/rx
{
"applicationID":"1",
"applicationName":"Temperature-Humidity",
"deviceName":"Temperature-Humidity",
"devEUI":"0000000000000 000",
"rxInfo":[
{
"mac":"1dee18c14948a955",
"rssi":-27,
"loRaSNR":9.5,
"name":"1dee18 c14948a955",
"latitude":0,
"longitude":0,
"altitude":0
}
],
"txInfo": {
"frequency":8685 00000,
"dataRate": {
"modulation":"LORA",
"bandwidth":125,
"spreadFactor":9
},
"adr":false,
"codeRate":"4/5"
},
"fCnt":2,
"fPort":1,
"data":"AGcAxQFojA==",
"object": {
"temperatureSensor": {
"0":19.7
},
"humiditySensor": {
"1":70
}
}
}
Now i want to use Fiware's JSON/MQTT IOT agent to convert MQTT to NGSI in order to publish data to the Context Broker.
The data should be publised like this to be readable :
$ mosquitto_pub -h $HOST_IOTAGENT_MQTT -u theUser -P thePassword -t /myapikey/mydevicemqtt/attrs -m '{ "t": 19,7, "h": 70}'
Has anyone the same problem? Should i make a JSON parser and republish the data to another format into the MQTT Broker? How could i deal with this problem?