verify data ingestion

In this step we will use an MQTT Test client in the AWS management console to simulate an invocation of AWS IoT Rule, and see the outcome of binary transformation published to the MQTT topic lorawanworkshop/transformed:

1. Open MQTT Test Client
Please use this link or navigate to AWS IoT, Test and MQTT Client.

AWS Management Console

2. Subscribe to topic

Please input the topic name dt/workshop_lorawanmessages in “Subscription topic” field and click on “Subscribe to topic”. Please ensure to use exactly the same topic name you created in Lab 6, part “Create IoT Rule”.

AWS Management Console

3. Trigger your device to send telemetry

Please consult your device’s user manual to learn how initiate a sending of a message from your LoRaWAN device.

4. Review the incoming message from your LoRaWAN device

Please find below an explanation for some of the attributes:

  • PayloadData: Base64-encoded payload from the device
  • WirelessMetadata.FPort: FPort used by the device
  • WirelessMetadata.LoRaWAN.DevEui: EUI of the device sending the data
  • WirelessMetadata.LoRaWAN.Gateways: Information on RSSI and SNR per gateway

AWS Management Console

5. Optional: decode Base64 data into hexadecimal representation

You can run the following command in your shell to decode Base64 payload data into their hexadecimal representation.

MacOS:

echo -n "<Value of PayloadData>" | base64 -D | hexdump -v -e '/1 "%02x"'

Linux

echo -n "<Value of PayloadData>" | base64 -d | hexdump -v -e '/1 "%02x"'

Example:

$ echo -n "7WkoOEfwfTTioxG6CatHBw==" | base64 -D | hexdump -v -e '/1 "%02x"'
ed69283847f07d34e2a311ba09ab4707

6. Congratulations!
You have successfully built a private LoRaWAN network and connected your gateway and device to it.

As you see, the data from the LoRaWAN device is binary-encoded and needs to decoded (e.g. into JSON) before it can be further processed. In the next step, you will learn how to build and deploy a binary decoder in an IoT Rule, ss an example for one of possible approaches for binary decoding.