Sunday, June 12, 2016

Open IoT Network

Free and open wireless IoT network is under construction at Helsinki area and selected other cities in Finland. The purpose is to promote the technology and boost innovations and help companies entering in new digital businesses. Finnish business magazine Kauppalehti published my posting explaining the philosophy behind: Sharing economy ruling the Internet of Things (in Finnish).

Enevo engineers installing LoRa gateway at the roof of the Espoo office.

Currently there is good network coverage in city of Espoo, which is a suburb of Helsinki. Parts of Helsinki and Vantaa are also covered yet. There is single gateway now in Tampere.  The aim is to extend the network to cover most of Helsinki area. Tampere, Jyväskylä and Oulu are other cities to have network coverage. Check the latest coverage map from http://lora.etteplan.io/map

The network is based on LoRa LPWAN technology, and the service is provided in  co-operation with The Things Network providing LoRa Network Server backend. The mission of The Things Network is to build a global open crowdsourced Internet of Things data Network. API to device data is documented and provided by The Things Network.

The LoRaWAN protocol is covered by LoRa Alliance an industry association with 150+ members. The aim of the alliance is to ensure interoperability of devices and gateways, while doing so, the existence of the alliance also eliminates risks related to proprietary and single source technology, associated with some other LPWA technologies.

It's not only Etteplan building the network, but there are number of partners supporting. Currently companies like Caverion, Fortum, Enevo, and Valmet have provided locations for gateways. Some other well known companies are soon to join, either to support or contribute to the network building. Further expansion of the network depends on interest of companies joining the movement. If you're interested in joining, please contact me.

What's the beef? The aim is to boost innovations by enabling easy piloting and development of IoT applications with wireless connected devices - the Things of Internet. For commercial deployment of a service, perhaps a commercial backend is taken into use instead of the crowdsourced one. The open network is also good for evaluating performance of the technology, even if private and closed network will be used for the particular the application in question.

Existence of the network makes it also possible to offer new types of services where devices, connectivity, backend and application are all offered as a single service. For most IoT applications, the device end and the application are what created the value. Connectivity and backend in between is often irrelevant for the end-user, as long as certain basic assumptions are met regarding availability, security, etc.


Read more from: http://lora.etteplan.io

Sunday, May 15, 2016

Hack the turbine

Final day of Fortum IndustryHack is over (13-15 of May, 2016) and the winner is a joint team of IBM and Ixonos. IndustryHack is a Finnish company that organizes series of hackathons with various industries. Past hacks have been organized with many international enterprises like Nokia, Kone, and Konecranes. Company hosting the event opens access to data via APIs and competing teams innovate new digital value-add services a top of that. 

Turbine hall of Fortum Espoo power plant.
Fortum Oyj is a Finnish energy company with 8B€ revenue, focusing on the Nordic and Baltic countries, Poland, and Russia. Fortum operates power plants, including co-generation plants and generates and sells electricity, heat, and steam. This time the target of the hackathon was turbines of power plants, including Fortum Espoo CHP and Imatra hydrogen plants.

Espotel co-organized the event with Fortum by providing instrumentation and APIs in IBM Bluemix cloud for the Espoo power plant. IBM Bluemix was the platform of choice by Fortum. Detailed description of the setup is available at a dedicated web site hack.espotel.io/fortum. Instrumentation of the turbine was made with National Instruments LabVIEW and CompactRIO technology. Local NI sponsored the event by providing necessary hardware.

Espotel engineers installing compactRIO measurement equipment
for real-time position measurement of turbine axel.

IndustryHack defines itself as bringing together software developers and tech startups to create new product concepts. Hack event is open to anybody to attend, but in practice most of the attending teams are organized by software consulting companies. This time, the list of winners is following:

  1. IBM + Ixonos (software consulting company)
  2. Cybercom (software consulting company)
  3. Symbio (software consulting company)

The IndustryHack has emerged quite far away from the original idea of hackathons bringing students, hobbyists and makers together, this time there was no student or hobbyist team involved. The new concept is rather unique; leading software companies are bringing their best forces, free of charge, to innovate new solutions for the given host company, during a weekend event. Ideas are pitched and shared publicly among participants.

"You are what you share" is the slogan of the new sharing economy. Expressing your ideas with your competitors does not necessarily make you weaker but stronger. Motivation for companies to do so is the positive PR, this is what we can and that's how we do it. Some lucky one may also end up in having commercial contract for actual implementation project.

IndustryHack type of events are not only boosting innovation but economy as well. Companies are sharing best practices, competing with each other, and most importantly networking - ecosystem building. As an example, Valmet, a 3B€ machine and energy technology company, attended the hack in joint team with Futurice, a software consulting company. This kind of openings are very interesting. I'm waiting to see two direct competitors to form a joint team.

For more information about advanced condition monitoring and analytics for predictive maintenance, please take look at the web site:

http://hack.espotel.io/fortum

Saturday, March 26, 2016

IOT Cloud Connector for LabVIEW

National Instrument's LabVIEW is leading technology for test and measurement domain. Today, IOT Cloud Connector, a LabVIEW library for IBM Bluemix / Watson IOT Platform was published in LabVIEW Tools Network. The library is contributed by Espotel and is freely available.

Logo of the IOT Cloud Connector library by Espotel.
Connecting LabVIEW to cloud enables countless  applications ranging from real-time condition monitoring to process control and robotics. The value proposition of LabVIEW is "improving productivity of engineers and scientist", and that it definitely does by enabling fast and easy development of measurement applications and signal processing.

IOT Cloud Connector leverages the productivity to yet another level by enabling fast and easy integration of smart measurements to power of Bluemix apps. Use of cloud enables collecting data from multiple and different sources, performing advanced analytics, and integrating with any other system.

Smart measurements means not all the raw measurement data is beamed up to the cloud but edge analytics of some sort is performed already in the measurement device itself. Most commonly this means signal processing type of data aggregation providing relevant key indicators for the cloud application. Vibration monitoring is a good example where data is collected at the rate of tens of thousands of measurements per second, and it definitely does not make sense to store each measurement point in cloud but relevant indicators only in order to understand the nature of the given vibration.

Analyze of the measured vibration data gives understanding of the current condition of assets. In some extend it enables predictive maintenance, but the full power of operational optimization is achieved only when the data is combined with other data sources like ERP, Finance, order book, production costs, etc. Cloud is definitely the place to do such advanced analytics, and that's why the IOT Cloud Connector for LabVIEW is needed.

IOT Cloud Connector uses MQTT protocol - the ISO/IEC 20922 standard - to connect any LabVIEW-enabled equipment to IBM Watson IOT Platform and further to Bluemix. The range of equipment covers any PC running most common operating systems; Windows, Linux, or Mac. Also all NI measurement equipment are supported, including compactRIO, Single-board RIO, SOM RIO and myRIO.

CompactRIO with various interface modules.
CompactRIO is perhaps the most known measurement equipment from NI. It utilizes the Reconfigurable I/O (RIO) architecture. The fundamental idea of RIO architecture is that I/O is not wired directly to CPU but there is programmable FPGA in between. This way each I/O pin is fully reconfigurable for different purposes.


User does not need to understand FPGA programming but LabVIEW does that on behalf of user. Custom FPGA programs can be also created with the graphical LabVIEW tool only, with no need to touch the FPGA code. Custom FPGA really does take all the performance out of the hardware, and very fast and complex signal processing can be performed in real-time.

LabVIEW and Bluemix are really the "killer app" combo for industrial condition monitoring.

Wednesday, March 16, 2016

Watson IoT Platform and data storage

In December 2015, IBM opened new unit Watson Internet of Things, with its global headquarter in Munich, Germany. The core of the the new portfolio is Watson IoT Platform, formerly known as IBM IOT Foundation (IOTF).

Cloud data management model
Watson IoT Platform is handy way to connect IoT devices into the cloud. It provides device connectivity with MQTT - the standardized IoT protocol ISO/IEC 20922. Device management, token authentication, data storage and integration interfaces for further cloud applications.

Here comes the catch: Even if IOTF provides data storage, it should not considered as primary storage of your device data in production use. There are two main reasons:
  • Storing excess amount of data in IOTF is expensive
  • IOTF database does not provide QoS, data may be lost if delivered at high rate
So, what instead? Better way is to use IOTF only as an interface to cloud for your connected devices, and store your data in some No-SQL database like Mongo, Couch, Cloudant or Cassandra. This is much more robust solution as IOTF does provide QoS for data delivered.

Majority of device data generated in the world is deprecated just few seconds after it's created. Data aggregation may significantly reduce the amount of data that really needs to be stored for later use. However, if you wish to store all raw device data for later use like analytics not invented yet, it's better to use some long term data storage solution like Object storage, as data over there costs only a fraction of what it would cost to store it in the active No-SQL database.

This creates a three-tier data management model where Watson IOT Platform (IOTF) is the front-line to receive the data from devices. No-SQL database is the place where active application data is processed, and finally a Object storage or similar place is the attic for historical data perhaps never needed, but nobody dares to throw away.

Bluemix and Watson IoT Platform are tightly integrated and it's very easy to access the data in Bluemix application. Here is an example of simplest possible glue-logic to integrate IOTF and No-SQL database with each other ,Cloudant in this case. The example is implemented with Node-RED running in Bluemix Node.js application.

Integration of IOTF and Cloudant with Node-RED app in Bluemix.
The left-hand side IOTF node receives and data arriving in IOTF that meets the filtering criteria defined inside the IOTF configuration. The right-hand side cloudant node puts any data it receives into the defined cloudant database. If you need to do any filtering or data aggregation prior putting data into the database, just add a function node in between. If both IOTF and cloudant service instances are created inside the same Bluemix app, there is no need to configure any credentials here, those services are readily integrated.

In addition to being more robust than using IOTF database, this may be more economic as well. Free plan of IOTF provides storage space of 1GB for device data, where as Cloudant offers 20GB free quota per instance. Fetching data from Non-SQL database is also more comfortable with efficient query algorithms. Actually the REST API of IOTF only provides max 200 items at a time.

Reading data from Cloudant is as simple as writing it in, in Node-RED application. Here is an example of simplest possible implementation of REST API to fetch data from the database.

Implementation of REST API to fetch data from Cloudant in Node-RED.
With Watson IOT Platform, Bluemix, and Cloudant it's possible to build very quickly a robust, efficient, and cost effective IOT-solutions in cloud. The integration of IOTF and Cloudant overcomes all the pitfalls the current Watson IOT Platform has. 

Wednesday, February 10, 2016

Rapid dashboarding with Node-RED

Node-RED is great tool for data flow integrations. Even if Node-RED itself has graphical Web UI, it is not originally intended for UI development. Don't worry, awesome people in the open source community have contributed an extension to Node-RED for rapid dashboard development. 

Example dashboard made with Node-RED.
Project called node-red-contrib-ui introduces number of widgets (nodes) in Node-RED enabling rapid dashboard implementation. At the moment there are following input and output widgets:

Output:
  • Text
  • Gauge
  • Chart
Input:
  • Numeric
  • Text
  • Button (plain, row, radio)
  • Switch
  • Slider 
  • Debug (toast)
Creating custom dashboard is very easy, just drag-and-drop widgets (nodes) into the Node-RED flow. There are two concepts to define the layout of the dashboard: tab and group, configured in each node of the dashboard. The dashboard may consists of several tabs, and inside individual tabs there may exists several groups. In the screenshot above, each white box (Temperature, Humidity, Pressure, RSSI) forms a separate group with two widgets: chart and gauge.


Node-RED flow implementing the dashboard presented above.
The package node-red-contrib-ui is not distributed with Node-RED by default, but it is very easy to install. If you're running Node-RED in your local PC or embedded Linux like Raspberry Pi, just type at the command line:

    npm install node-red-contrib-ui

In case of IBM Bluemix with Node-RED service, one line needs to be added in the package.json configuration file of the application, and then re-deploy it. Bluemix will then fetch the package from the Node-Red flows server. package.json:

    "node-red-contrib-ui":"1.x",

Adding custom dashboard to any embedded or cloud application is now easier than ever. This is great tool for all kinds of rapid prototyping and hobby projects. For professional-made multi-user web applications other technologies are needed, as Node-RED does not currently support user management (only simple password protection), user profiles, or multi-user access. Multiple users may access the UI simultaneously, but all will see the same data.

I wish to express my greatest thanks to the primary developer of the project Andrei Tatar and all other contributors for the great effort providing such a capability in Node-RED. Good job!