IoT and open source

by Javier Puerto
Tags: Open Source , IoT

IoT or Internet of Things is becoming the new revolution in many fields. It is the beginning of smart hardware, where controlling and monitoring can be done from everywhere.

Undestanding IoT, the future is now

IoT has a multitude of applications which can be separated into consumer, business and infrastructure applications.

Consumer applications are those we can see every day, a thermostat, lights, appliances... All those devices share information and react on events. The possibilities are enormous.

For companies applications are specific to it's products. For example a car park operator will have sensors on every parking spot to determine the number of free spots. Or a company that produces washing machines can track loading weights, water temperatures, water hardness and so on. IoT enables these companies to evaluate and adjust their business models based on objective data.

For the infrastructure, the applications are apparently less visible but are essential for reliable and cost-efficient infrastructure such as bridges, railways, roads, solar or wind generators... Having updated information on these aspects in real time without the need for human intervention is a big step for the connected society.

IoT devices. Image by Tumisu, under Pixbay license.

How does the IoT affect us?

There are people who still see IoT as a technology that won't help and will make us lazy. In my point of view, it's up to each individual to decide how to use it, the fact that you can control the devices quietly from the couch doesn't mean you're less active. It gets you more comfort and more time to spend on things outside of your everyday life.

Have you ever been on a trip and suddenly remembered that you left the X appliance on? Now you can be more relaxed because you can control it from home. And when you return, you can set the air conditioning and cleaning robot before you arrive so that when you get back the house is cozy and clean. Want to watch a movie? Set up a movie mode and when you activate it the lights, speakers and TV profile are adjusted to your liking for perfect viewing. One command and your living room becomes a movie theatre - all you need is the popcorn.

Are all these things necessary? Absolutely not, we can live without them as we have always been doing but it is indisputable that many of these technologies are practical and comfortable. Besides, we are not talking about the future anymore, but about the present.

IoT with free software

At BeCompany we are committed to open source software and would like to explore some of the options for this new technological revolution. DIY (do it yourself) is a growing trend and it can't be less so with IoT.

Free software IoT devices

Today, IoT devices with free software are popular among hobbyists. With Arduino or a Raspberry PI it is possible to develop connected devices. Developers can integrate support for one or more services to manage them. Some are well-known brands but others can be services maintained by the network administrator. Arduino includes libraries to work with IoT, other solutions allow loading open source firmwares into devices like Tasmota or ESPEasy.

Non-free IoT devices

Although this article focuses on open source devices, most commercial devices do not release their software code. However we can enjoy in many cases open APIs with which we can interact with the devices. It is worth mentioning IoT Standards and Protocols, an initiative that was created recently to unify these APIs into a free protocol.

Manage the devices

Nowadays there are many open source integration services, some more known than others. Knowing what to expect from such a service is key in finding the best service for an application. Some characteristics to consider:

Device management

Device management is a very important quality. For home applications the number of devices is usually moderate, but in business environments this number can quickly grow so that its management can become challenging. It is necessary to look for a service that allows a simple administration for our use case.

Compatibility with devices

The system has to be compatible with as many devices as possible. It should also allow the deployment of new devices. The system should not condition the choice of devices. Recently an initiative of the large companies in the sector has started in an attempt to standardize communications with IoT devices and also open source. Project Connected Home over IP

Also important is the compatibility with the different communication protocols at any level. This guarantees a wider range of compatibility. Communication over IP and the data transport protocol MQTT are the most common. You can find a summary in IoT Standards and Protocols.

Sample capture and representation

To collect a history of data that is sent from various sensors is another key point. Being able to visualize data and create customized views in a simple way allows a faster integration of the devices.

Rules and triggers

Most systems include the possibility to define tasks by means of rules and triggers. For example if the temperature is above 30ºC, turn on the air conditioning. As a rule of thumb: The more flexible a system can handle rules and its definitions, the better.

Scalability

The number of connected devices can grow a lot. A good system scales with the number of devices. It must also be fault tolerant, able to detect faults and respond according to the needs of the system.

DIY

Now we know the main aspects to consider when choosing the software to handle our IoT devices. But why should we even consider the DIY approach for IoT? We have many devices produced by companies with competitive prices including warranty that simply work out of the box. So why should we even care? In my opinion the most important reason for building your own IoT applications is privacy.

Privacy overall

As mentioned previously companies that produce and sell IoT devices most certainly have an interest in getting your data. These statistics could be gathered anonymously or not but to take full advantage of these devices we usually have to use provided services and therefore we have to expose our usage information.

Use open software to handle the communications is a good idea to keep our privacy. We can generate our own usage statistics so we can analyze the information and create new macros or triggers that fits our needs. We do not need to create an IoT system from scratch, instead we first look for a commercial device that fulfills our requirements and then check if our open software manager supports it. Then we can buy devices ready to use and take advantage of our open source managing tool to handle the device. Only if there is no commercial devices that meets our requirements we build them ourselves.

I have to mention again the impact that Project Connected Home over IP will have for us. The most important manufacturers and developers of IoT solutions are trying to standardize the IoT communications. Also the standard will be open so everyone can implement it. This will allow our open source IoT managers to be able to communicate virtually with any compatible device. So in a not far away future, we will not have to take care about if one device is compatible or not, we will choose just for the value that the product has by itself.

Conclusions

We have many alternatives for DIY enthusiasts with solutions adapted to their needs such as the use of Home Assistant and projects with Arduino or Raspberry PI which will be more than enough for most users.

For more complex solutions we can opt for another type of management software such as ThingsBoard or Mainflux. This type of software is more generic and focuses on environments with more specific needs.