Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Nwave Cloud allows clients to inject LoRaWAN messages for further processing. This makes it possible to integrate LoRaWAN parking sensors with Nwave Analytics services without the need to use public LoRaWAN cloudsTo speed up and simplify the end user application development, LoRaWAN network operators and users can push raw data messages from Nwave parking sensors for further processing at Nwave Cloud API services and analytics.

Currently, Nwave Cloud provides an injection ingestion method through the HTTP interface. This is the simplest way for development and debugging.

Nwave provides an HTTP endpoint for the injectioningection: https://in.lorawan.source.nwave.io/v1/injest.ingest

The endpoint receives only POST requests and requires using of an authorization token. Follow this instruction for token generatingYou can follow this guide to generating a token.

The basic request body can contain only required message object fields:

Code Block
languagejson
{	
	"dev_eui": "00E8BF3B00100030",
	"received_at": "2021-12-15T08:09:56.936592Z",
	"uplink_message": {
		"f_port": 2,
		"f_cnt": 81,
		"f_payload": "0A1234"		
	}		
}
Info

received_at ideally must contain be the real time of message reception by a LoRaWAN station. This field is used for data analytics.

Also, Nwave Cloud supports additional message object fields. You can send them to make debugging and analysis easier.

...

. If station reception time is not available (or not precise enough) the LNS broker time reception time shall be used.

Additional and optional message object fields that can also be sent and stored for reference and possible performance optimisation.

The example below demonstrates a message object with required and all additional optional message fields:

Code Block
languagejson
{	
	"dev_eui": "00E8BF3B00100030",
	"received_at": "2021-12-15T08:09:56.936592Z",
	"uplink_message": {
		"f_port": 2,
		"f_cnt": 81,
		"f_payload": "0A1234",
		
		"trace_id": "e07d7812-869a-4f8d-bc17-2cd9c4bde94f",
		
		"bandwidth": 125000,
		"spreading_factor": 9,
		"coding_rate": "4/5",
		"frequency": "868300000",
		"confirmed": true,
		
		"rx_metadata": [
			{
				"gateway_eui": "0000024B0B03157A"
				"rssi": -115,
				"snr": -0.5,
				"location": {
					"latitude": 51.52485927633408,
					"longitude": -0.13254563502660632
				}
			},
			{
				...
			}
		]		
	}		
}

Additional fields do not need to can be sent altogether. You can send only part of them. partially. For example, if you don’t need to the signal strength analytics, but you want to have a chance to can be omitted but in order to easily trace your messages , on both sides you can send only required fields and trace_id:

...

Here is the example of cURL command for injecting that sends a raw data message to the Nwave Cloud:

...