IoT Data RecordingAlvaro Luis Bustamante
Nowadays, almost all Internet of Things platforms out there are basically servers to store information from devices. It is quite common to see “IoT platforms” that are relying on the same Web technology used during the last decade, but now to communicate with the IoT devices. In this framework, the small devices just push data to this kind of servers by just doing traditional and inefficient HTTP POST requests. Other minor alternatives rely on using more efficient protocols like CoAP, or MQTT, as they have been specifically designed for IoT, or M2M applications. So, basically, most of the IoT platforms has been conceived just like a data warehouse for the storing and displaying sensed information from our environment. In the opposite way, the Thinger.io platform started as a platform for sensing and actuating over devices in real-time, something that is missing in many IoT platforms. In our platform you can just turn on and off things over a dashboard, a mobile phone, or even from a smartwatch (in real-time), or display charts plotting information right away from the device. This technology has countless optimizations under the hood to minimize data bandwidth, processing power, code size, or server scalability, as all the ecosystem was fully written from scratch in modern C++, using multithreaded ASIO for the server side, and not just stock Web servers.
However, we are also aware about the importance of storing sensed information in a way that it can be easily displayed and analyzed, as there are multiple use cases like Business Intelligence, Predictive Maintenance in Industry 4.0., or Retail analytics, to mention a few, that can take advantage of this kind of features. So, today we are releasing a new big feature called Data Buckets, that will easily allow storing information gathered from IoT devices. Of course, we have adapted our dashboards so they can display information from both real-time sources or stored information in Data Buckets. Just to mention, our dashboards does not refresh the information by doing polling over the server information (this is not real-time and it is quite inefficient). Instead, the initial load is done over stored information in data buckets, and the newer data frames are received directly from Websockets. This way, we can mix the advantages of stored information, and real-time data sources, so the dashboards keep updating instantly.
Here you can see a sample screenshot of a dashboard that is feed data buckets, using a small meteo device that is logging temperature, humidity, pressure, and lux.
This feature is now available and can be accessed directly from the Console. Just click on the “Data Buckets” section to start using a logging feature over a device.
At this moment, this feature only supports data logging from a connected device, but it results quite easy to configure and modify. Just select the device, the resource, and the sampling interval, and you will be recording data just out of the box, without modifying your existing thinger.io source code.
We will write soon about newer features and changes that arrived with our Data Buckets, so stay tuned!