Retail digital transformation in Covid Times

Right now, a consequence of the Covid-19 pandemic, it has presented companies with a sudden paradigm shift in which digital transformation has experienced exponential growth and technology plays an even more fundamental role in managing this complex context. The technology companies also have to serve to give us solutions to struggle against Covid.

There are solutions that allow us to understand the progression of mobility applied both to this sector and to those in which customer service or points of sale are essential, whether they are bank branches, service stations, supermarkets, pharmacies, distribution chains or department stores. 

The information offered helps the client, for example, to adapt the product offer because he knows the profile of the people who pass through his space, stop at the window and enter. That is, you could tailor the storefront offering to the interests of your target audience (for example, women ages 30-45)…

Furthermore, with this solution, the companies will not only understand the new mobility patterns of the users, but will also compare that mobility and the behavior of potential clients in different periods of time: during and in the current stage after Covid-19 or in the new normal to be able to change their strategy and be able to control the capacity in their stores or spaces.


HTTP integration with ESP32-S2

We started a new stage with great enthusiasm and new projects…keep you posted! 🙂

We are working on a new generation of content, we hope you like it!

Let’s start with a juicy snack: how to connect your ESP32-S2- based devices to via HTTP.

You, our devoted followers and valued customers, you are our biggest value. We will be delighted to listen to you: share your ideas and topics you would like us to write about at

We will try to carry them out as much as possible.

And without further ado … let’s get started!


Check out our repo:

In this post we will explain how to connect via HTTP to the platform through ESP32-S2. A high-performance IoT module, with which the Chinese giant Espressif will try to reduce the TTM (time to market) of the new IoT products that are yet to come.

Step by Step tutorial

First of all, check that the terminal has Java SE (11 or higher) and Python (3.5 or higher). Otherwise, install the most recent version by clicking on each of the links.

Download the ESP-IDF Tools Installer package that contains the essential tools for programming and debugging the ESP32-S2. To avoid problems, it is recommended that you install in an address that does not contain blank spaces.

Next, install the Eclipse IDE development environment (version 2020-06 CDT). Download the Eclipse Installer program (here) and install the Eclipse IDE for C / C ++ Developers package. Note: do not change the default address to avoid problems.

If you don’t have the Git version manager, install the most recent version by clicking on the link. Once installed, clone the ESP-IDF 4.2 repository where the ESP32-S2 module libraries are located (here).

From the Eclipse IDE program, first install the plugin, and then the tools. Instructions can be found here.

Take the ESP32-S2-Saola-1 kit from Espressif and connect it via USB to the terminal. From here, you can:

  1. Create a project.
  2. Create a project with a template.
  3. Open a project.


Projects are easily created by selecting the File> New> Espressif IDF Project tab. Enter the name and click Finish.


Template projects are the best option for both novice users, who want to discover first-hand the potential of the ESP32-S2, as well as experts or professionals, who appreciate having  parts of the code already made to quickly move to the testing phase.

Select the File> New> Espressif IDF Project. Give the project a name and click Next>. Mark the top checkbox and choose one of the many examples available. Note: some only work for ESP32, which is the pre-ESP32-S2 chipset.

OPEN A PROJECT has created a sample project (ttio_http_client) to show platform users how to use the ESP32-S2-Saola-1 kit to take temperature samples and upload them to the cloud via HTTP protocol. To download it click here Note: It is important to save the project in the folder configured as a workspace in the Eclipse IDE.

Once downloaded select File> Import…. A new window will appear. Select the option Espressif / Existing IDF Project and click Next>. Indicate the location and click Finish.

Before compiling, the user needs to fill in three code definitions. From the project explorer window (located on the left of the screen) locate and open the main file, main.c. Definitions are at the beginning.

Write the identifier and password of the Wi-Fi from which you want to make the connection and the token number assigned to the thing, which will be responsible for storing the samples received by HTTP. Note: if the Wi-Fi does not have a password, leave the space empty (“”).

New users of the platform who need to create an account can do so at and follow the steps. After registration is complete, create a new IoT product through the Things Manager screen and select JSON as the product type.

Once the main.c file has been modified, click on the hammer icon (above the project explorer) to compile. Verify that the process has finished without errors or warnings.

Next, start recording the kit by clicking on the play icon (located next to the hammer). Once completed, you can see from the Things Details screen how a temperature record has been created, which will be updated every 5 minutes.

Optionally, the application can be tracked via USB by opening the terminal window. Select the Window> Show View> Terminal. A new window will appear with various icons in the upper right. Click the first of all (the one that looks like a screen). A new configuration window will appear. Select the port to which the kit is connected and leave the rest of the default values. Click OK to start communication.

Use thethings.iO, the simplest enterprise IoT platform. If you have any doubts please contact us at


Webinar with Sigfox: Learn how to connect a Sigfox Device at thethings.iO IoT Platform

Last week our CEO Marc Pous was invited to make a webinar at the Sigfox Webinar Series. Marc showcased in about 30 minutes how to connect a really simple Sigfox device to thethings.iO. During the webinar Marc explained how to do Sigfox parsers, dashboards, alerts and jobs on Cloud Code. Feel free to watch it here:

Find here the slides that Marc presented during the webinar:

All the code of the webinar is here.

Probably one of the most interesting part of the video was the Q&A at the end of the webinar. Nevertheless if you have a Sigfox project, feel free to contact us and we will gladly help you to succeed with thethings.iO IoT platform.

Blockchain and Internet of Things

Internet of Things and Blockchain or Blockchain and Internet of Things. These are two hot topics thrown around the industry a lot, but what exactly do they mean and how are they related?

What is the Internet of Things

Internet of Things (IoT) is, simply put, the connection of physical objects, or “things”, to the Internet. Hence, these “things” are able to send and receive data. Maybe this seems like a foreign concept, but in reality most households with broadband connection have IoT-connected devices already, and the number is only continuing to grow. From smart locks, to self-adjusting thermostats, IoT is already here to make our lives more convenient. Its use-cases even extent beyond that, as IoT can be used for smart city concepts, supply chain management, manufacturing, and much more. thethings.iO, in fact, provides a sophisticated, easy-to-use platform for companies or individuals to connect their IoT devices.

IoT has incredible growth potential, but it does have some kinks that need to be worked out. The chief among them: Security. IoT devices are generally more susceptible to hacking than smartphones and other endpoint devices due to their more limited functionality. When considering devices like smart locks for home safety, or even self-driving cars, it is clear that user safety–and privacy–should be paramount.


Blockchain, or Distributed Ledger Technology (DLT for short). Many people think of Blockchain as Bitcoin. However, this is a misconception: Blockchain is the technology behind Bitcoin and other cryptocurrencies, it is what makes them work. To explain, the blockchain is a series of “blocks” of information (in the case of Bitcoin, transaction data) linked together via cryptographic hashes. A distributed network of nodes (nodes generally being the computers of the blockchain users) each has a local copy of the blockchain, and the nodes verify new blocks by reaching a consensus, usually a majority. Hence, blockchain is a public ledger of information verified collectively. The kicker of blockchain is that there is no central authority verifying the ledger (i.e. banks when thinking about bitcoin and transactions).
Because of how it works, blockchain is inherently immutable (or unchangeable), transparent, and secure, as changing it requires the consensus of a distributed network of nodes. In other words, to hack a blockchain, you would have to simultaneously hack a huge network of individual records as opposed to hacking a single, centralized database.

How IoT platforms can help here?

Nowadays (2019) there are still not a lot of Blockchain (DLTs) as a service systems. Actually scaling a Blockchain service is still tricky. An IoT platform such as thethings.iO is working as a service in several projects such as the tracking coffee project and more. Our goal for 2020 is to offer Blockchain services to our customers in case it is needed on their use case.

Integrating Blockchain technology into IoT has huge ramifications as the data sent by IoT-connected devices could be stored in a decentralized ledger in a way that ensures security, transparency and privacy. In fact, many of the security shortcomings of present-day IoT may be overcome with DLT’s inherent transparency and immutability.

Additionally, it is important to address user privacy. While blockchains like Bitcoin are public DLT, there are other types. When working with customers, private blockchains accessible to specific people may be more useful by restricting access. Moreso, different groups of people can be given different permissions: For example, group A may be able to view a blockchain, group B may manipulate certain aspects of the data being sent, and group C may simply have no access at all. Furthermore, blockchains can be constructed with anonymity such that user identity is ambiguous–enhancing privacy. Our key point: The flexibility of blockchains allow for greater control over user data privacy.

The Internet of Things is only getting bigger, and as agriculture, connected homes, asset tracking, smart cities and more become more of a reality. With great potential comes greater risk -and this is exactly why Blockchain’s use case for IoT technology should be fully researched.

Here at thethings.iO IoT platform, we are doing just that. We are constantly thinking about how we can improve security for our customers, and if Blockchain could be used in a way that provides greater transparency for the data that we provide. If you have any questions or comments, feel free to reach out to us. We would love to hear your thoughts on this exciting field of new tech!

PD: This is a blogpost written by Kieffer Gilman-Strickland during his internship at thethings.iO.

Work with ComputedLocation and visualize on a map your Sigfox devices

Locate assets it is key in some use cases. This is why Sigfox is improving their techniques to locate assets. Sigfox brings the Atlas geolocation, which is kind of the GSM cell tower triangulation with Sigfox base stations. The Sigfox Atlas location from the new API version on the DATA ADVANCED services uses the concept of computedLocation. At thethings.iO sigfox parser on Cloud Code it is very simple to parse the Sigfox computedlocation.

Sigfox made a smart movement using machine learning techniques in order to calculate location of assets with Sigfox base station triangulations. In case of base stations dense locations, the computedLocation can be “kind of” precise (about 1KM). However in places with not a lot of Sigfox base stations, it’s possible that the computedLocation error brings about 10 or 15 kms or error.

How Sigfox computedLocation works

In case that you have the Sigfox Atlas location activated on your Sigfox contract, then you can introduce a DATA_ADVANCED callback. The computedLocation structure is a JSON object and it looks like this:


This is the structure of the computedLocation JSON:

  • The lat is the latitude and the lng is the longitude.
  • The radius means the distance in meters that potentially the device really is located from the latitude and longitude computed. Understand the radius as the aproximate error on the location detected.
  • The source indicates the source of the location computed, if it’s Atas, WiFi or GPS. If the source is set to 0 the location is computed by legacy mode using RSSI and position of the Sigfox base station. If the source is set to 1 the location is computed using the GPS inside the data payload on the uplink. If the source is set to 2 the location is computed by Atlas Network. If the source is set to 3 the location is computed by Atlas POI and 4 by Atlas HD.
  • The status is set to 1 when a position has been computed and 0 when no position has been computed.

How to visualize computedLocation on a thethings.iO map

First of all, it is important to set up a SERVICE and DATA ADVANCED callback on the Sigfox backend.

Once there introduce thethings.iO Sigfox callback URL available on your product details and paste it there as a POST callback. Usually thethings.iO Sigfox Callback URL looks like this:[your ID]/[your hash]?id={device}&data={data}&snr={snr}&station={station}&avgSnr={avgSnr}&rssi={rssi}&seqNumber={seqNumber}

Delete some parameters and leave it like this:[your ID]/[your hash]?id={device}

Then paste the URL on the URL pattern and go to the Body and introduce {computedLocation}. Just like the image below.

At this moment, every time there is a message from your Sigfox device, thethings.iO will receive automatically the computedLocation by Sigfox. To make it easy we automagically store all the JSON object from Sigfox at the device as a resource, so you can see the latitude and longitude plus the radius, status and source. It’s simple!

At this point you can start playing with the dashboards from thethings.iO IoT platform. thethings.iO is the most simple enterprise IoT platform, so feel free to test it during 15 days here.

PERSOSER project – The personalisation of the services for the improvement of the User Experience with IoT

Since last year thethings.iO takes part of the consortium of the PERSOSER project. The PERSOSER (Personalització de serveis per la millora de l’experiència del client) is a Catalan R&D project leaded by the RIS3CAT Utilities 4.0 community in Catalonia. The project started on March 2018 and will finish on March 2021.

The main goal of the project is to create dynamical and personalized services por Utilities customers with customer engagement and an improved User Experience with technologies such as the Internet of Things, Machine Learning and more. The integration, exploitation and filtering of heterogeneous data will be key in order to obtain new results from Utilities data. And collaborative design of advanced and personalized services depending on the specific needs of customers. All of these with pilots and tests running with IoT devices and thethings.iO IoT platform.

At thethings.iO we will focus our efforts as well on the Connected Home new services and business models that will appear in the near future. Our goal will be to design and test new services tailored to each client integrated on their home to increase awareness and transparency.

The partners working on the project are Bemobile, Cetaqua (Suez), Dexma, Eurecat, I2Cat and thethings.iO.

The PERSOSER project (COMRDI16-1-0058) has been financed by the European Union through the European Regional Development Fund, ERDF, with the support of ACCIÓ – Government of Catalonia.

At thethings.iO we are open to participate in any kind of R&D European or National project. Feel free to contact us.

thethings.iO IoT Startup Program

At thethings.iO IoT platform we are supporting some of the most exciting early-stage IoT startups. Nowadays some of them are changing the world with their amazing Internet of Things products and with our humbly help with thethings.iO IoT platform. One of the goals of thethings.iO is to help companies, like yours, to build your IoT solution in the most agile, efficient and scalable possible manner. We can help you with our experience and our technology. I’m sure we can.

Since we launched our IoT service some years ago, many enterprises have arrived at thethings.iO IoT platform but also quite a lot of early-stage companies and IoT startups with amazing projects. They usually have some characteristics like small budgets, looking to connect their products fast, and so on. Sadly, some of them decide to build a non-scalable IoT platform themselves and other solutions that are less efficient. We wrote about this at this ebook IoT platforms for dummies. Feel free to read it.

thethings.iO Advanced Plan is one of the most cost-effective ways to get started at the IoT ecosystem. It comprises a complete IoT platform up to 1.000 things cost only only 399€/month and covers all the infrastructure components, dashboards, apps, cloud code and more.

We think that offering is quite accessible, nevertheless we know as founders ourselves that some IoT startups just getting started may still find it hard to set up such accounts when they are kicking off pilots with their customers. So we have decided to offer a brand new free tier for 2 months.

This new free tier is now called the thethings.iO IoT Startup Program an initiative to support startups working with Internet of Things projects to succeed by offering access to our tools and IoT platform.

The benefits of thethings.iO IoT Startup Program

  • Two months of a free Advanced Plan license with thethings.iO
  • Joint marketing and PR.
  • On-line support.
  • Early access to new features.

If you are starting an Internet of Things company or know a fellow founder please share this page about thethings.iO IoT Startup Program with thethings.iO. We would love to connect more devices from you!

How to set up thethings.iO Blinders for your retailers

At thethings.iO IoT platform we have a security solution to protect your retailers, partners and distributor. The goal of thethings.iO Blinders IoT platform for retailers is to keep their clients data private from customer information leaked through your digital products. Meet thethings.iO Blinders IoT platform for retailers.

Learn on this post how to set up thethings.iO Blinders. As you probably know, we love simplicity.
[note: we used to call the Blinders tool as Galaxy tool]

Setting up the Blinders tool

Adding a new retailer

Go to Organizations Manager in the sidebar, then click (1)Create New Organization. The email and password you enter can be anything. Then (2)click create!

Note: This email and password will be the login information when logging into the retailer’s dashboard.

Note: This email will also be an admin by default, but can be deleted later. For example, once you set up your retailer’s dashboard and hand over control, they can delete your email from the list of users with access (under “Users Manager” in the sidebar). It is also important to note that you cannot delete a user you are currently logged in under.

Adding Tags

Using tags allows you to specify what products a certain retailer sees. It works by giving a tag name to the product and the same tag to a retailer. The retailer will only see the products with the same tag(s) as it has.

Giving Products tags: Click “Things” in the sidebar, then click “Details” next to one of the products. Once on this screen, scroll down to the bottom section and click details next to one of the things. On this screen, there is a box in the upper left called “Details.” Here you can manage your tags next to “Thing Tags.” You can delete a tag by clicking the red x, or you can add a new tag by clicking “+Add Tag.”

Giving Retailers tags: Click “Organizations Manager” in the sidebar, then click “edit” next to one of the retailers. Halfway down the page, you should see a section titled “Manage Product Visibility.” Here, you can click “+Add Tag.” Make sure whatever tags you give has the exact same name as the products tags you wish to assign to it.

Note: By default, the retailer will have access to all the same products as its parent retaielr in the “tree”. Once you add some tags, it will only have access to the products with the same tags as it has.

Understanding the “Visibility Settings”

The “Visibility Settings” affect how much your retailer will be able to see and do in their dashboard. You can get to these settings by clicking “Organizations Manager” in the sidebar, then “edit” next to one of your retailers. Once on this screen, you will see the “Visibility Settings” button in the top right. Here are explanations of some of the different setting options you have under “Visibility settings”:

Note: The following examples of what the visibility settings will do are all assuming you are logged in as “you,” the customer and adjusting the visibility settings under one of your retailers.

  • Create organizations
    • If you choose yes, this creates the “Create Organizations” tab in the sidebar of this retailer’s Dashboard. The new tab allows this retailer to create sub-retailers of itself. For example, Amazon would have the ability to create Amazon US and Amazon Europe as two smaller organizations.
  • Authorize create organizations delegation
    • If you choose no, this retailer’s sub-retailers will not be able to create its own sub-retailers. For example, Amazon still has the ability to create Amazon US, but it cannot adjust what Amazon US’s dashboard will look like and Amazon US will not be able to create sub-retailers such as Amazon Texas. In other words, it will remove the “Visibility Settings” button from Amazon US.
  • Prefix
    • A shorter version of this retailers name. For example, Walmart’s could be Wal.
  • The following are all things that you can choose to enable to show up in this retailer’s sidebar.
    • Show Things Manager
    • Show Apps Manager
    • Show Users Manager
    • Show Custom Brand
      • This says in Custom Brand will show up in Walmart’s Sidebar or not. Example: you can make it show up to edit Walmart’s dashboard look, save the look and then take this ability away so that it can not be changed.

Using the Blinders Tool

Logging into the Retailer’s Dashboard

Go to “Custom Brand” in the sidebar on your dashboard. The domain name there is where you will go to log into your retailer’s dashboard initially. You will be able to change this link in the future. Remember, your username and password are the ones you used to create the retailers.

Note: You can always use the “parent” organization to log in for the “child” (using the child’s username and password).

Editing the Dashboard

You can get to the dashboard by clicking “Dashboard” in the sidebar. The Dashboard will have automatically generated widgets. You can edit the dashboard by clicking the “Edit Dashboard” icon in the lower right corner and delete these widgets if you choose. Below is a picture of how to create a map:

Note: Above (under “Giving Retailers tags”), I added a tag to my Walmart retailer called “companyA” which 25 of my products also have. Now, when I view my things under Walmart’s dashboard, I only see those 25 with tag “companyA.”

Customizing your dashboard

You may want to style your dashboard to look more like your or your retailer’s company. To do this, click “Custom Brand” in the sidebar.

Here is how the styling changes will come into play:

The domain name is the link you use to get to your retailer’s login screen as well as the domain name of your retailer’s dashboard site. You can change your domain name to: …?

You will see “Primary Color” and “Primary Big Logo” in the top bar of the main dashboard.

You will see the “Brand Name”, “Secondary Color” and “Secondary Big Logo” on the retailer’s login screen.

The “Logo Small” is the icon in the tab of your browser.

Note: You can enter colors in the form of hex code(#000000), hsl(hsl(0, 0%, 0%)), or rgb(rgb(0, 0, 0)). 

Seeing the visibility settings in action

If you gave your retailer the “Create Organizations” ability when adjusting its visibility settings, then within the retailer’s dashboard, you can create sub-retailers. These sub-retailers work in the same way that your retailers did. You can log in under their own dashboard, give them tags so that they can only see certain products, and you can adjust their visibility settings to specialize the view they see in their dashboard.



I hope you enjoyed this tutorial! Feel free to contact us if you have any questions on thethings.iO IoT platform and thethings Blinders.