All Collections
Connect your Devices
How to use Helium Connectivity directly from Ubidots
How to use Helium Connectivity directly from Ubidots

Ubidots teams up with Helium so you can buy global IoT connectivity directly from your Ubidots account

Written by Sergio M
Updated over a week ago

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.

    • The device(s) must be deleted from the public Helium console first !

  • 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 Connectivity.

Step 4: Configure your Plugin according to these input settings:

  • Ubidots token: Every plugin requires an Ubidots token to make all the requests that provision and update your device.

  • 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.

Step 5: Finish the process and a new plugin will appear in the Plugins list. 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.

Step 3:

  • Trial & Customer accounts: Apply the device type and enter the LoRaWAN credentials (App EUI, App Key, Device EUI) as properties.

  • 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:

"temperature": 10,
"humidity": 90,
"pressure": 78

5. Questions and troubleshooting

Please send any comments, ideas, or inquiries to:

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.

Other users also looked at:

Did this answer your question?