LoRaWAN Custom Decoder
The LoRaWAN Custom Device Decoder allows you to write your own decoder function to process incoming LoRaWAN uplink messages.
Overview
The LoRaWAN Custom Device Decoder allows you to write your own decoder function to process incoming LoRaWAN uplink messages.
This provides flexibility to handle custom payload formats that are not available as pre-built templates.
How It Works
If a Transformation Function is enabled, data will be processed before storage. The decoder applies first, and then any defined transformation function modifies the data before it is stored in Qubitro.
Tips
JavaScript payload formatters allow you to write functions to encode or decode messages. These functions are executed using a JavaScript ECMAScript 5.1 runtime.
Avoid non-trivial logic or polyfills; they may not be supported.
Use arithmetic operations and bit shifts to convert binary data into readable fields.
Keep payload formatters simple and lightweight.
Need help reviewing your custom formatter? Our team can assist in checking your code for compatibility. Reach out via the Support Page.
Function Schema
A decoder function processes raw uplink messages and returns a JSON object containing the decoded fields.
function decoder(input) {
// Your decoding logic here
}The function name and parameter name cannot be modified.
Function Parameters
The decoder function has a single parameter: input. Qubitro automatically provides this parameter, which contains three properties:
Metadata: A dynamic object containing metadata from the LNS provider (e.g., RSSI, SNR, timestamp). The structure varies depending on the provider.
fPort: The LoRaWAN fPort used for the uplink.
Bytes: A byte array representing the raw payload from the uplink message.
Example: Accessing Function Parameters
Return Values
To ensure compatibility with Qubitro’s no-code suite, the output should be a key-value JSON object.
For example, if the payload represents temperature, the function can extract and return it as follows:
Creating a Custom Decoder Function
Select the Function Type
Open the device details page in the Qubitro Portal.
Click the Functions tab.
Click Create function and select Decoder Function.
Choose LoRaWAN Custom Device as the formatter type.
Write the Decoder Code
Enter your custom decoder function in the editor.
Modify the formatter code to match your device’s payload.

Save and Apply the Function
Click Save and complete to apply the decoder function.
The function will now process all incoming data for this device automatically.
FAQs
I created the function, but my device data is not decoded correctly. What should I do?
If your function is active but the data is not decoded correctly, check the following:
Ensure that the payload format matches your decoder logic.
Use the Test feature in the function editor to validate sample data.
Check the device logs to see if raw data is being received.
If you need assistance, our team can review your custom formatter code. Open a ticket from the Support Page.
I don’t see my device listed. Can Qubitro help me?
Absolutely! If your device does not appear after setting up the integration, open a support ticket, and our team will assist you in troubleshooting the issue.
Can I use a custom decoder with any LNS provider?
Yes! Qubitro’s LoRaWAN Custom Device Decoder works with any LNS provider, including Loriot, The Things Stack, and ChirpStack. As long as the device sends data, your decoder function will process it.
Can the Qubitro team help me write a custom decoder?
While Qubitro provides flexibility for writing custom decoders, our team can review your formatter code to ensure compatibility and suggest improvements. Feel free to reach out via the Support Page.
Last updated