This plugin is in BETA version
This plugin allows you to use Helium LoRaWAN connectivity available in your city, without having to:
Manage a Helium Console account
Add devices manually in Helium
Set up Helium integrations
Deal with Data Credits
Instead, Ubidots will provision the Helium devices on your behalf, within a private Helium server, and configure a webhook integration to your Ubidots account, where you can decode the data at will.
An active Ubidots account
At least one LoRaWAN device with the right frequency for your region, along with its Dev EUI, App Key, and App EUI.
Make sure you're registered in our BETA cohort, otherwise this feature won't appear in your account.
Table of contents
1. Creating a Helium Plugin
Step 1: Go to your Ubidots account.
Step 2: Click on the Plugins option under the Devices navbar menu.
Step 3: Click on the + icon in the upper right corner and select Helium.
Step 4: Configure your Plugin according to these input settings:
Network Server type: Select "Ubidots private".
For your reference:
Ubidots private: Uses our internal server, where we provide worldwide LoRaWAN connectivity through The People's Network - no need to have a Helium account.
Public: For those who prefer to have a console account directly with Helium. See this guide.
Device Type label: An Ubidots device type with this API label will be associated with this plugin. This allows you to provision devices in bulk, or edit them in batches.
Ubidots token: Every plugin requires an Ubidots token to make all the requests that provision and update your device.
Step 5: Finish the process and a new plugin will appear in the Plugins list.
Step 6: An Ubidots device type will be created and linked to this Plugin.
2. Creating an Ubidots Device
Step 1: Go to your Devices.
Step 2: Click the + icon in the top right corner of the Device's section to create a blank device.
Trial & Customer accounts: Apply the device type and enter the LoRaWAN credentials (App EUI, App Key, Device EUI) as properties.
Pro tip: You can create several devices in bulk by uploading a CSV file with properties as columns. See Devices Types: Bulk device creation using a CSV file to learn more.
Free STEM accounts: Device types is not supported, so please manually add the properties to the device:
"app-eui" in text format, containing the App EUI of your device.
"dev-eui" in text format, containing the Dev EUI of your device.
"app-key" in text format, containing the App Key of your device.
"helium" in boolean format, with the value "true".
3. Sync Ubidots devices with Helium
Now we need to tell our internal Helium server to create the device(s). This logic is built into the plugin, and luckily, there's a way to send manual commands to the plugin using the "Test run" button in the decoder section.
To do so, go to the Helium plugin, then click "Test run". For your convenience, we've pre-filled the required payload to send.
Step 1: Go to the Plugins option under the Devices navbar menu.
Step 2: Click on the Helium connectivity plugin created in the first section.
Step 3: Go to the Decoder tab and run the test payload. At this point, Ubidots will provision the device in The People's Network.
This could take up to 20 minutes! Although we're working on a way to speed it up.
If the process was successful, you should see a message like this in the logs:
If the process was unsuccessful, the logs will likely remain blank.
4. Verifying the Plugin logs
At this point, please make sure your device is operational and within range of a Helium hotspot, then perform a reset.
At this point, please reset your device so it can join the network!
After the device boots up, you should see plugin activations happening. The best way to check this is by going to the Plugin Logs section. There, you will see a list of the latest executions. Click on the last one and check its contents.
You can use the arguments being received from Helium to detect the raw payload of your device and start decoding it using Python.
Every device is different, so we don't plan to do preset decoders soon. Just make sure the resulting variable "decoded_payload" is a dictionary compatible with Ubidots API, for example:
5. Questions and troubleshooting
Please send any comments, ideas, or inquiries to: email@example.com
6. Future Work
In parallel to the beta testing period, we'll be working on the following:
Making the sync from Ubidots to Helium automatic, immediately after a device is created, erasing section 3 of this guide.
Exposing Helium console events in the Ubidots UI, as a way to provide feedback about the status of the device
(i.e Is my device getting data? Did it join the network?)
Defining the pricing model and incorporating it into Ubidots monthly invoice.