Category Archives: Industrie 4.0

MQTT and Kibana – Open source Graphs and Analysis for IoT

Following my previous article on how to interface MQTT with ElasticSearch, here, I am belatedly following up with an article on how you can use Kibana to graph the data.

Pre-Requisites.

You should have run through my tutorial on MQTT with Elastic Search, so that you actually have some data to look at.

Installing Kibana

To avoid compatibility issues, you should ensure that you are working with a version of Kibana compatible with your elastic search installation.  The easiest way to ensure this is by updating both.   I won’t repeat the instructions which are available on the Kibana web site.

Kibana and ElasticSearch are two parts of a single product offer, so there is very little difficulty in getting them to work together.

MQTT data format for Kibana

Kibana is ideal for working with time series data. The only tricky thing that I found using Kibana was to get it to interpret time data as a time, rather than string, or numeric.   For this you need to create a Mapping for your elastic search index, which in other words tells elasticsearch that the data you are sending is to be stored and interpreted as a time rather than string or integer.

mappingJson={"mappings": {
  "json": {
    "properties": {
      "timestamp": {
        "type": "date"
        },
     

      "dataFloat":{
      "type": "float"
      }
 


}
}
}
}

The above mapping will tell elasticsearch to expect data with three elements, a timestamp and a float value called dataFloat.  Most importantly this will cause elasticsearch to try to interpret the timestamp field as a time rather than storing it as a string.

Analysing MQTT Data with Kibana

Once you have got elasticsearch to interpret your data as a timestamp, you are able to take advantage of all of the functionality of Kibana that comes out of the box, this includes counts, averages values, derivatives and many others.

Security

The set up we described is great for prototyping in a closed environment, but as we have been developing the project, we found ourselves hampered by the lack of security features on Kibana.  It is possible to provide basic login functionality using NGINX, but we could not find an easy way to provide restricted access to data according to account (this is a paid feature in elastic/Kibana).   For this reason we have started to use Grafana with InfluxDB as an alternative.

Zibawa Open Source Project

Zibawa is a project which brings together a number of open source tools to produce a secure IoT system , fully open source from device to dashboard.  The project includes device manager, device and user security management (LDAP), queue management and monitoring (RabbitMQ), Big data storage and api (InfluxDB) and Dashboards (Grafana).

 

More information

https://www.elastic.co/guide/index.html

Zibawa Open IoT project source code

 

 

 

 

 

 

opensource

Introducing the Open Source IoT stack for Industrie 4.0

The open source IoT stack is a set of open source software which can be used to develop and scale IoT in a business environment.  It is particularly focused towards manufacturing organizations.

Why Open Source?

Continue reading “Introducing the Open Source IoT stack for Industrie 4.0” »

bigdata

Storing IoT data using open source. MQTT and ElasticSearch – Tutorial

Why ElasticSearch?

  • Its open source
  • Its hugely scaleable
  • Ideal for time series data

It is part of the elasticsearch stack which can provide functionality for the following:

  • Graphs (Kibana)
  • Analytics (Kibana)
  • Alarms

What is Covered in This article

We are going to set up a single elasticsearch node  on a Linux Ubuntu 16.04 server and use it to collect data published on a Mosquitto MQTT server.  (It assumes you already have your MQTT server up and running.)

For full information and documentation, the IoT open source stack project is now called Zibawa and has a project page of its own -where you will find source code, documentation and case studies.

Installing ElasticSearch

Create a new directory myElasticSearch

mkdir myElasticSearch
cd myElasticSearch

Download the Elasticsearch tar :

curl -L -O https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.4.1/elasticsearch-2.4.1.tar.gz

Then extract it as follows :

tar -xvf elasticsearch-2.4.1.tar.gz

It will then create a bunch of files and folders in your current directory. We then go into the bin directory as follows:

cd elasticsearch-2.4.1/bin

And now we are ready to start our node and single cluster:

./elasticsearch

To store data we can use the command

curl -XPOST 'localhost:9200/customer/external?pretty' -d '
{
"name": "Jane Doe"
}'

To read the same data we can use

curl -XGET 'localhost:9200/customer/external/1?pretty'

If you can see the data you created, then elasticSearch is up and running!

Install the Python Client for elasticsearch

pip install elasticsearch

Install the PAHO mqtt client on the server

pip install paho-mqtt

Create a Python MQTT client script to store the MQTT data in elastic search

Use the script mqttToElasticSearch.py which uses both the MQTT Paho and ElasticSearch python libraries.  You will need to modify the lines at the top depending upon the port and IP address of your MQTT installation.

You can download the file from

https://github.com/mattfield11/mqtt-elasticSearch

Or if you have GIT installed use:

git clone https://github.com/mattfield11/mqtt-elasticSearch.git

The script should be installed into a directory on the same server as you have ElasticSearch running.

Run the Python MQTT client we just downloaded

python mqttToElasticSearch.py

To view the data we just created on elasticsearch

curl 'localhost:9200/my-index/_search?q=*&pretty'

We are now storing our MQTT data in elasticsearch!
In the next few days I will publish how to view MQTT data in Kibana where we will make graphs, and analyse the MQTT data.

Further Information

 

Zibawa – Open source from device to Dashboard.  Project, applications, documentation and source code.

https://zibawa.com

ElasticSearch

https://www.elastic.co/

Running as a service on Linux I didnt use this, but probably should have!

https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-service.html#using-systemd

 

ElasticSearch Python Client

https://www.elastic.co/guide/en/elasticsearch/client/python-api/current/index.html

Agile_Project_Management

Agile Digital Transformation – Low risks high ROI

An inspirational video from CEO Peter Schroer of ARAS , a manufacturer of Product Lifecycle Management Software (PLM). Schroer advocates the use of an “agile” approach to factory digital transformation, the same as that used in software development. Strategically it is a mistake to draw up a large complex project, since during the execution of the project many things will change , invalidating many of our original plans:

  • Business objectives change
  • Changes in the business environment (economic down/up turn),
  • Changes in company ownership(mergers / aquisitions)
  • Changes in customer requirements
  • Changes in legal requirements to be met
  • New technology appears

If we limit ourselves to the implementation of simple, achieveable tasks which have a direct and immediate impact on the business, which are achievable over a number of “sprints” (where a sprint is managed in weeks not months) then we have far greater probability of success.

That doesn’t mean that we have no longer term vision or road map of where we are going in the long term, rather it means that we do not devote a large amount of resource to detailed planning or execution of the long term, or paralysis by analyisis.

This approach has important consequences:

We must accept that a single software system or platform is not going to be able to continually adapt to our changing business requirements. This means that communication between systems and the use of open source software is an essential part of the strategy to avoid lock in to a single system.

Large upfront license payments are rarely compatible with this philosophy for the same reason. Software as a service which enables us to pay as a funcion of number of users or volume of transactions is much more compatible with this approach.

We must be prepared to test, put a foot in the water, test, then build on what works, and abandon what fails.  As Schroer says, “Do something we know, make it work, then go onto the next thing”.

You will find the video on agile plm implementation here.

Wikiproject_database_icon

Build a community around your product

If digital transformation is about finding new ways to engage your customers, then there are few better ways than to build a customer portal.  Software companies have for years published a knowledge base and user community forum, but it is only more recently that manufacturers have started to follow the same trend.  Continue reading “Build a community around your product” »

customerservice

Build your own customer service portal

 

A customer service portal will enable your staff to set up a repository of information to help users install, use and service their products, using a software similar to that used in Wikipedia.  This, together with a user forum will enable your customers to ask questions and receive answers in a web format which enables other users to see the answers independent of whether your customer support staff are in the office.

Furthermore, these tools (optionally) can permit the empowerment of other people outside of your organization to contribute to the knowledge base about your products by adding their own comments and participating in the discussion.   Building a community around your products is a great way of increasing your customer and user loyalty to your products, improving your customer service, and also will help increase the visibility of your products on the web, since google and most other search engines rank web sites on the basis of the volume of useful content on your web site.

Our service includes:

  • Setup and configuration of knowledge base and user community forum.
  • User training
  • Telephone help and support (12 months)

 

Save

Save

Cibersecurity – 10 steps to reduce risk

Over recent years there have been two key trends in cibersecurity.  The first is a growing tendency for attacks to be made by professional organized groups looking for profit, rather than amateur hackers wanting to prove their ability.  The second is the growing recognition that good defence is more about process and people than the technology used itself.  Continue reading “Cibersecurity – 10 steps to reduce risk” »

Web to Print – Industrie 4.0 In Practise

Following my earlier article on Industrie 4.0 and the benefits of Simultaneous Engineering, I was interested to see that  the print industry has been one of the quickest adopters and one which has taken the concept furthest.

The print industry is under great pressure to provide its customers with short lead times, right first time quality and highly competitive costing.  The application of Web to Print software is Simultaneous Engineering taken to a new level.

Web to print provides the customer with a web interface where they can develop their own products on line, load their own graphics files, see how the products will look , receive a quote and order on line.   The entire pre-sales process of product definition, commercial negotiation and order has been reduced from weeks to 30 minutes or less.

The key element in web to print software is the inclusion of templates which encourage the customers to adapt their designs to standards which are optimized according to the printers particular process.  For example format sizes, adapted to the printers production lines, or choice of paper grades according to those most commonly used.

During the process, help screens and comments can help the customer improve their design, for example by indicating  the minimum resolution of  graphics files  to provide optimum results.  Furthermore the fact that the customer can see the results on-line in their browser means that design issues are usually picked up and rectified immediately.

On a commercial level, customers value the transparency and speed of the process, they can be presented with a range of prices different design options and size print runs so that no time wasted in the commercial process.

 

Customer Benefits

Greater speed to order

Greater price transparency

Improved design quality owing to instant feedback

 

Supplier Benefits

Reduced time spent on commercial process

Greater standardization of formats and materials

Reduced cost

 

This does not mean that web to print eliminates the need for human involvement. Many customers will continue to need a greater degree of personalization than web to print can currently offer, or simply appreciate the human contact of the traditional approach.  However no company can ignore the great convergence between physical and digital worlds, and in few industries is this more relevant than the print industry.