How we designed a plugin for Ubidots

Oscar Morales
3 min readMar 24, 2021

--

This month, we released a plugin for Ubidots that we have been working on for two months. This plugin lets Ubidots users extract, transform and load its data from Ubidots to AWS Timestream and the possibility to connect with other Amazon Web Services and external tools that let user make better powerful manipulation of its data.

I would like to share the development process that I made with Laura Alvarez, Luis Calderon, Luis Carvajal and Fabian Carmona, all students from Holberton School, and with the support of Benjamin Heinke, Fullstack engineer from Ubidots.

Currently, data has become a very valuable resource for decision-making. Most devices, such as a cell phone, a smartwatch, temperature and humidity sensors, among others, are connected through the internet to store information that is later used for the optimization, automation of processes and the interpretation of data for strategic decision making, this is known as IoT. We were excited about to know how can be linked this data with services that can manipulate it and bring to the Ubidots user the opportunity to use this services, that was the reason why we choose to develop this project.

How the plugin works?

Basically, the plugin makes a periodical backup of the user data from Ubidots to AWS S3 also configures an AWS Lambda function that writes the data stored in AWS S3 into AWS Timestream each time that a backup is made.

This is an example of the plugin architecture:

Challenges

It is good to know that AWS has a SDK for most demanded programming languages, for example, we used boto3 SDK due to all the backend of this plugin was written in Python, but there was something challenging here… AWS policies. We spend a good amount of time finding the right policies for each action that the plugin makes in the AWS user account.

Once this problem was overcome another comes... AWS quotas. Developing software with tools that you just start to know should be a task of great patience, reading, tests, errors, see logs…etc. A good documentation of these tools makes their use very easy, so it is important to document each piece of code that you write.

We finally made the plugin work and it was so exciting to see it work after hours of hard work. This was a good opportunity to strengthen our knowledge in Python and now a little about AWS. Also, we hope that this plugin should be useful for Ubidots users.

References

Soon you could use this and more plugins in Ubidots.

You can see here the landing page of our product.

You can follow me in GitHub

You can see here my LinkedIn profile

--

--

Oscar Morales
Oscar Morales

Written by Oscar Morales

Chemical engineer. Software developer student.

No responses yet