A bit of FIWARE history

Tell me something my friend. You ever dance with the devil in the pale moonlight?

Joker/Jack Napier – Batman (1990)
Image from https://comicbook.com


Actually, this is the article I should start with, but I didn’t. Before talking about the functionalities of the Orion context Broker, we should tell a few words about the whole initiative. 

FIWARE is an open source cloud platform with a collaborative and mature ecosystem of developers, innovation Hubs, accelerators, cities and more than 1000 Small and Medium Enterprises and startups. By 2020, businesses leveraging the FIWARE platform are expected to generate revenues of more than EUR 330 million [1].

FIWARE was born in Europe, from the Future Internet Public Private Partnership (FI-PPP) [1]. FI-PPP, the European programme for internet-enabled innovation, is going from strength to strength. FI-PPP has announced the imminent launch of phase 3 aimed at further accelerating the development and adoption of Future Internet technologies in Europe [2]. It’s goals are:

  • accelerating the development and adoption of Future Internet technologies in Europe
  • advancing the European market for smart infrastructures,
  • increasing the effectiveness of business processes through the Internet.

The European FIWARE Accelerator Programme of 16 accelerators, operating within the programme, has attracted over 8,000 submissions to their open calls. More than 1000 Small- and Medium-sized companies (SMEs) and startups have been part of the FIWARE business acceleration programme. They will be serving at least 1.5 million business customers and reaching a market of more than 20 million consumers [1].

The sectors that FIWARE is involved, are the following: Smart cities, AgriFood, eHealth,
Transport, Energy & Environment, Media & Content, Manufacturing & Logistics, Social & Learning. The European Commision has funded 2 projects to continue the FIWARE Accelerator Programme: IMPACT GROWTH and frontierCities² [1].

The Future Internet Public Private Partnership (FI-PPP)

The FI-PPP’s goal was to make infrastructures and business processes smarter (i.e. more intelligent, more efficient, more sustainable) through tighter integration with Internet networking and computing capabilities  It looked at different sectors such as transport, health, and energy. It defined possible innovative business models for these sectors [1].

The FI-PPP followed an industry-driven, user-oriented approach that combined R&D on network and communication technologies, devices, software, service and media technologies; and their experimentation and validation in real application contexts. It brings together the demand and supply sides, and it involves users early into the research lifecycle. The platform technologies is still used and validated by many actors, in particular by SMEs and public administrations [1].

The FIWARE Foundation

The FIWARE Foundation is the legal independent body providing shared resources to help achieve the FIWARE mission by promoting, augmenting, protecting, and validating the FIWARE technologies as well as the activities of the FIWARE community, empowering its members including end users, developers and rest of stakeholders in the entire ecosystem. The FIWARE Foundation is open: anybody can join contributing to a transparent governance of FIWARE activities and rising through the ranks, based on merit. Founded in 2016 by Atos, Engineering, Orange, and Telefónica, the Foundation is a non-profit organization that encourages the adoption of a common, collaborative and interoperable data sharing framework based on standards and open source technology [3].

Currently as we speak, the FIWARE foundation has 250+ members from 35 countries, 150+ open source projects, 140+ “Powered by FIWARE” solutions, 2,000+ Open source developers contributing code, 100+ Evangelists, 13 FIWARE iHubs, 13 FIWARE Lab Nodes, 10+ Strategic Partnerships [3].

The mission is to develop an open sustainable ecosystem around public, royalty-free and implementation-driven software platform standards that will ease the creation of Smart Applications in multiple sectors. Using FIWARE technologies, organizations can capture the opportunities that are emerging with the new wave of digitalisation brought by combining the Internet of Things with Context Information Management and Big Data services on the Cloud. On the other hand, developers can gather context information at large scale from many different sources. FIWARE also helps to easily process, analyse and visualize managed context information, easing the implementation of the smart behaviour and the enhanced user experience required by next-generation Smart Applications [3].

The FIWARE Community comprises all individuals and organizations contributing achieving the FIWARE Mission. The FIWARE Community is not only formed by contributors to the technology (the Open Source Community working on the FIWARE platform), but also those who contribute in building the FIWARE ecosystem and making it sustainable over time [3].

The FIWARE Technical Steering Committee governs the technical direction of the FIWARE platform and activities of the FIWARE Open Source Community. Governance of the rest of activities carried out by members of the FIWARE Community is organized through Mission Support Committees [3].

The Fiware accelerator program

The FIWARE Accelerator Programme promotes the take up of FIWARE technologies among solution integrators and application developers, with special focus on SMEs and start-ups. Linked to this Programme, the EU launched an ambitious campaign in September 2014 mobilizing up to 100M€, to support 1000 entrepreneurs, SMEs and startups to develop innovative applications based on FIWARE [4].

At this moment, the FIWARE Accelerator Programme is being assembled as a crucial part of the FIWARE Community collaborating with the FIWARE Open Source Community and the rest of FIWARE programmes. Altogether, they will continue their contribution to building the FIWARE ecosystem and make it sustainable over time. Coordination of activities linked to the FIWARE Accelerator Programme takes place in the FIWARE Accelerators Ecosystem Support Committee whose members are encouraged to work together in specific Working Groups [4].

Who is using FIWARE?

SELECT for Cities is based on the notion that cities across the globe are on a continuous search for new and innovative technologies, methods and tools to foster innovation, as well as to create value for both business and citizens, in order to transform into ‘Smart Cities’. The project brings together three cities (Antwerp, Copenhagen, Helsinki) that want to compare different Smart City solutions via an increasing competitive tendering approach. Following the first phase, which is based on the documentation of the architecture and, in some cases, early prototypes, five solutions were selected to participate in the second phase, out of which Engineering, Orchestra Cities, FIWOO, and the Snap4City Platform are using FIWARE components [5].

The IoF2020 project is dedicated to accelerate adoption of IoT for securing sufficient, safe and healthy food and to strengthen competitiveness of farming and food chains in Europe. The IoF2020 consortium of 73 partners, led by Wageningen UR and other core partners of previous key projects such as FIWARE and IoT-A, will leverage the ecosystem and architecture that was established in those projects. The heart of the project is formed by 19 use cases grouped in 5 trials with end users from the Arable, Dairy, Fruits, Vegetables and Meat verticals and IoT integrators that will demonstrate the business case of innovative IoT solutions for a large number of application areas [6].IoF2020 is part of Horizon 2020 Industrial Leadership and supported by the European Commission with a budget of EUR 30 million [7]. 

The Z-BRE4K architecture is designed and developed on the foundations of the AUTOWARE reference architecture and building blocks enabling the convergence of Information Technology (IT), perational Technology (OT), Engineering Technology (ET) and the leveraging of interoperability of Industrial Data Spaces (IDS), for the support of a factory ecosystem. The objective is to develop a highly adaptive real-time Machine (network of components) Simulation platform that wraps around the physical equipment for predicting uptimes and BRE4Kdowns – thus creating intuitive maintenance control and management systems. The AUTOWARE consortium has created a framework based on other existing frameworks (e.g. BEinCPPS, FIWARE, RAMI4.0) and taking into consideration the industrial requirements from several use cases, thereby aiming to be a solution-oriented framework [8].

On, July 9 2019 NEC Europe and its advanced Smart City solution, the CCOC, has recently been certified a “Powered by FIWARE Platform, becoming part of the FIWARE Marketplace of platforms. This certification complements the one received in 2017 as “Powered by FIWARE Solutions”. NEC CCOC manages information at large scale and gather Context Information coming from different and highly distributed sources such as end users, sensor networks and all kinds of information systems, including social networks, processing it in order to perform smart actions, including prediction and prescriptions. CCOC (Cloud City Operation Centre) solution collects both, real-time and long-term data, coming from all city sources, it automates city processes and allows for the swift provision of municipal services, which in turn reduces the workload at monitoring centers [9].

Read more

Please visit the FIWARE website. Here you will find all the necessary information about FIWARE progress.


[1]. https://ec.europa.eu/digital-single-market/en/future-internet-public-private-partnership

[2]. https://ec.europa.eu/digital-single-market/en/news/future-internet-%E2%80%93-public-private-partnership-fi-ppp-0

[3]. https://www.fiware.org/foundation/

[4]. https://www.fiware.org/community/fiware-accelerator-programme/

[5]. https://www.fiware.org/2018/06/04/4-solutions-using-fiware-are-in-phase-2-of-select-for-cities/

[6]. https://cordis.europa.eu/project/rcn/206761/factsheet/en

[7]. https://www.iof2020.eu/

[8]. https://www.z-bre4k.eu/wp-content/uploads/2019/09/Z-BRE4K_768869_Deliverable_D1.3.pdf

[9]. https://www.fiware.org/news/nec-smart-city-solution-is-now-certified-powered-by-fiware-platform/


The Fiware platform – episode 1 – Intro

Each generation is called upon to follow its own quest.

Etienne Navarre – Ladyhawke (1985)
Image from onebauer.media


FIWARE is an open source initiative defining a universal set of standards for context data management which facilitate the development of Smart Solutions for different domains such as Smart Cities, Smart Industry, Smart Agrifood, and Smart Energy [1].

In any smart solution there is a need to gather and manage context information, processing that information and informing external actors, enabling them to actuate and therefore alter or enrich the current context. The FIWARE Context Broker component is the core component. It enables the system to perform updates and access to the current state of context [1].

The Context Broker in turn is surrounded by a suite of additional platform components, which may be supplying context data (from diverse sources such as a CRM system, social networks, mobile apps or IoT sensors for example), supporting processing, analysis and visualization of data or bringing support to data access control, publication or monetization [1].

What is context information?

Initially we will describe at how researchers have attempted to define context in the past. While most people tacitly understand what context is, they find it hard to elucidate. Previous definitions of context are done by enumeration of examples or by choosing synonyms for context [2].

In the work that first introduces the term ‘context-aware,’ Schilit and Theimer refer to context as location, identities of nearby people and objects, and changes to those objects. These types of definitions that define context by example are difficult to apply. When we want to determine whether a type of information not listed in the definition is context or not, it is not clear how we can use the definition to solve the dilemma [2].

Other definitions have simply provided synonyms for context; for example, referring to context as the environment or situation. As with the definitions by example, definitions that simply use synonyms for context are extremely difficult to apply in practice [2].

The definitions by Schilit et al. and Pascoe are closest in spirit to the operational definition we desire. Schilit claims that the important aspects of context are: where you are, who you are with, and what resources are nearby.

Pascoe defines context to be the subset of physical and conceptual states of interest to a particular entity. These definitions are too specific. Context is all about the whole situation relevant to an application and its set of users. We cannot enumerate which aspects of all situations are important, as this will change from situation to situation [2].

Anind K. Dey provides the following definition:

Context is any information that can be used to characterize the situation of an entity. An entity is a person, place, or object that is considered relevant to the interaction between a user and an application, including the user and applications themselves [2].

Anind K. Dey

If a piece of information can be used to characterize the situation of a participant in an interaction, then that information is context [2].

Take the canonical context-aware application, an indoor mobile tour guide, as an example. The obvious entities in this example are the user, the application and the tour sites. We will look at two pieces of information – weather and the presence of other people – and use the definition to determine whether either one is context [2].

The weather does not affect the application because it is being used indoors. Therefore, it is not context. The presence of other people, however, can be used to characterize the user’s situation. If a user is traveling with other people, then the sites they visit may be of particular interest to her. Therefore, the presence of other people is context because it can be used to characterize the user’s situation [2].

Context aware computing

Context-aware computing was first discussed by Schilit and Theimer in 1994 to be software that adapts according to its location of use, the collection of nearby people and objects, as well as changes to those objects over time [2].

Anind K. Dey provides the following definition for context aware computing:

A system is context-aware if it uses context to provide relevant information and/or services to the user, where relevancy depends on the user’s task.

Anind K. Dey

Similar to the problem of defining context-aware, researchers have also tried to specify the important features of a context-aware application. Again, these features have tended to be too specific to particular applications [2].

The categorization combines the ideas from previous taxonomies and attempts to generalize them to satisfy all existing context-aware applications. There are three categories of features that a context-aware application can support [2]:

  1. presentation of information and services to a user
  2. automatic execution of a service for a user
  3. tagging of context to information to support later retrieval

Features of a context aware app

It encapsulates changes and the impact of changes, so applications do not need to be modified. A context related functionality is responsible for acquiring a certain type of context information and it makes that information available to the rest of the system in a generic manner, regardless of how it is actually sensed [2].

An example is interpreting context from all the devices in a conference room to determine that a meeting is occurring. For example, an indoor infrared positioning system may consist of many infrared emitters and detectors in a building. The sensors must be physically distributed and cannot all be directly connected to a single machine [2].

Context aggregators aggregate context. We defined context as information used to characterized the situation of an entity. A context aggregator, is responsible for all the context for a single entity. Aggregators gather the context about an entity (e.g., a person), behaving as a proxy for other applications [2].

What is NGSI?

The FIWARE NGSI (Next Generation Service Interface) API defines:

  • data model for context information, based on a simple information model using the notion of context entities [3]
  • context data interface for exchanging information by means of query, subscription, and update operations [3]
  • context availability interface for exchanging information on how to obtain context information (whether to separate the two interfaces is currently under discussion) [3]
https://raw.githubusercontent.com/telefonicaid/fiware-orion/master/doc/apiary/v2/Ngsi-data-model.png [3]

Context entities, are the center of gravity in the FIWARE NGSI information model. An entity represents a thing, i.e., any physical or logical object (e.g., a sensor, a person, a room, an issue in a ticketing system, etc.). Each entity has an entity id. Furthermore, the type system of FIWARE NGSI enables entities to have an entity type. Entity types are semantic types; they are intended to describe the type of thing represented by the entity. For example, a context entity with id sensor-365 could have the type temperatureSensor. Each entity is uniquely identified by the combination of its id and type [3].

Context attributes are properties of context entities. For example, the current speed of a car could be modeled as attribute current_speed of entity car-104. In the NGSI data model, attributes have an attribute name, an attribute type, an attribute value and metadata.

  • The attribute name describes what kind of property the attribute value represents of the entity, for example current_speed [3]
  • The attribute type represents the NGSI value type of the attribute value. Note that FIWARE NGSI has its own type system for attribute values, so NGSI value types are not the same as JSON types [3]
  • The attribute value finally contains
    • the actual data
    • optional metadata describing properties of the attribute value like e.g. accuracy, provider, or a timestamp [3]

The API response payloads in this specification are based on application/json and (for attribute value type operation) text/plain MIME types. Clients issuing HTTP requests with accept types different than those will get a 406 Not Acceptable error.

What is a (Orion context) broker?

A message broker is an architectural pattern for message validation, transformation, and routing. It mediates communication among applications, minimizing the mutual awareness that applications should have of each other in order to be able to exchange messages, effectively implementing decoupling.[4]

The primary purpose of a broker is to take incoming messages from applications and perform some action on them. Message brokers can decouple end-points, meet specific non-functional requirements, and facilitate reuse of intermediary functions. For example, a message broker may be used to manage a workload queue or message queue for multiple receivers, providing reliable storage, guaranteed message delivery and perhaps transaction management. The following represent other examples of actions that might be handled by the broker [4]:

  • Route messages to one or more destinations
  • Transform messages to an alternative representation
  • Perform message aggregation, decomposing messages into multiple messages and sending them to their destination, then recomposing the responses into one message to return to the user
  • Interact with an external repository to augment a message or store it
  • Invoke web services to retrieve data
  • Respond to events or errors
  • Provide content and topic-based message routing using the publish–subscribe pattern

Message brokers are generally based on one of two fundamental architectures: hub-and-spoke and message bus. In the first, a central server acts as the mechanism that provides integration services, whereas with the latter, the message broker is a communication backbone or distributed service that acts on the bus. Additionally, a more scalable multi-hub approach can be used to integrate multiple brokers [4] .

So, Orion is a C++ implementation of the NGSIv2 REST API binding developed as a part of the FIWARE platform. The Orion context broker allows us to manage the entire lifecycle of context information including updates, queries, registrations and subscriptions. Using the Orion Context Broker, you are able to create context elements and manage them through updates and queries. In addition, you can subscribe to context information so when some condition occurs (e.g. the context elements have changed) you receive a notification [5].

The next episode

We will provide detailed information about the Orion context broker, and how to communicate with it a C# client.


[1]. https://www.fiware.org/developers/

[2]. Understanding and Using Context, Anind K. Dey, Future Computing Environments Group, College of Computing & GVU Center, Georgia Institute of Technology, Atlanta, GA, 30332-0280, USA

[3]. https://fiware.github.io/specifications/ngsiv2/stable/

[4]. https://en.wikipedia.org/wiki/Message_broker

[5]. https://fiware-orion.readthedocs.io/en/latest/

The Industry 4.0 world*

Number 5 is alive.!

No. 5 – Short circuit (1986)
Image from Empire


In the past ten years, the word IoT (Internet of Things) has become more and more popular. But, what exactly is IoT? Why this specific concept is so important, that is considered to be one of the main pillars of Industry 4.0?

The acronym IoT stands for Internet of Things and is mainly referred to devices, provided with a unique identifiers and the ability to transfer data over a network without requiring human intervention. In this way device become “smart” able to connect, share and interact with its user and other smart devices, while Industry 4.0 is the 4th Industrial revolution, based on the concept of automation and data exchange in manufacturing.

Sensors and smart devices

What makes the devices smart? Sensors initially! Like the human body, every stimulus is a perception through senses. The wider the perception you have, the more inclusive the information that you can give to the brain for elaboration and the more accurate the result. The brain in this case is played by AI algorithms: to elaborate information they need a lot of data.

Sensor data are thus collected and through an IoT gateway they are sent to be analysed (to the cloud or locally). The application of this concept to industrial environments in general is straightforward, and based on this, we try f having a perfect production or manufacturing line, of machines, robots and humans smoothly cooperating with each-other, to achieve maximum productivity.

In simple English, every element in the shop floor must be able to share information about its status and the task it is performing. That means that industrial machines must be equipped with sensors. The specific sensors pack depends on the machine, on the process and on the measurement’s scope, thus the first thing is to identify the parameters worth to be measured.

Typical parameters, that are usually monitored, are speed (e.g.: spindle speed for milling machines), temperature and pressure in the lubricant and cooling systems, and of course vibrations. The corresponding pack of sensors must then include encoders, thermocouples, pressure sensors and accelerometers. The generated data, together with production related information (cycletime, part produced, etc), are collected and sent through an IoT gateway using a standard communication protocol like MQTT, to data persistence systems (databases) on promises or to the cloud, for further analysis.

Extra information is collected for correlation. That information includes ambient conditions (monitored through temperature and humidity sensors) information about the produced item (analysed with video cameras, laser scanners or other sensors for non-destructive quality control analysis), data from other machines involved in the production process, including robots, but also data provided by operators through properly designed interfaces.

All those data sets feed numerical models and machine learning algorithms to predict the behavior of the machines and of the production lines with the aim of optimizing the production minimizing scarps, machine downtime and process idle times.

Difficulties in shifting to Industry 4.0

The technologies to shift to Industry 4.0 are available, and the process in principle is quite is simple: gather data, transfer data, analyze data. So why is so difficult to implement the paradigm?

Data collection: Much easier to say than to do! As it was mentioned before, everything starts from the sensors. New machines will be endowed by the required pack of sensors and will be able to directly send data to the cloud for elaboration. Although the process is still new, the shop floors are not. The ideal would be to have shop floors with I4.0 compliant machines only, but most of the shop floors are a mixture of old and new machines.

Old machines are not able to autonomously send data anywhere, but most of the times they do not even have all the required sensors on board. So, the factory stakeholders have to put extra effort by having found and installed the needed sensors. Also, there is another issue, there is no standard communication protocol! Dedicated interfaces must be created, limiting the application of “standard” IoT solution and this means that there is the need of a big investment by the companies! These investments will pay back, in the end, but not tomorrow!

Extract information from data: It is a difficult task that pays in time. In order to extract meaningful information from data, a lot of data from a long time is needed. Predictive maintenance, one of the pillars of Industry 4.0, is an example. In order to be able to generate predictions related to the machine’s components failures you need the component to fail first! But machines are designed and built in a way to minimize failures! So, a high number of machines have to been monitored for a very long time in order to have enough data to produce meaningful correlations.

People’s attitude. This covers two categories of people: decision makers and blue collar staff. The firsts are often scared by the innovation cost. Moreover, they are scared by the need of changing practices and to invest also on the staffs’ formation.

The staff, particularly the elder members, do not gladly welcome the changes, and they are scared by the idea of changing the procedures that they have applied for ages. Additionally, they are not motivated to learn new things, plus they are afraid they must change to remain a value for the company.

All those aspects lead to think that industrial revolution should be treated more as a step-by-step process than as a powerful revolution. A process in which the technical progress goes hand in hand with a change of people’s mentality, supported also by a change in communication strategies, to help the final users to see the real advantages and the real timeline of this innovation process.

IoT protocols


AMQP IoTThe Advanced Message Queuing Protocol (AMQP) is an open standard application layer protocol for message-oriented middleware. The defining features of AMQP are message orientation, queuing, routing (including point-to-point and publish-and-subscribe), reliability and security.[1]

AMQP mandates the behavior of the messaging provider and client to the extent that implementations from different vendors are interoperable, in the same way as SMTP, HTTP, FTP, etc. have created interoperable systems. Previous standardizations of middleware have happened at the API level (e.g. JMS) and were focused on standardizing programmer interaction with different middleware implementations, rather than on providing interoperability between multiple implementations. [1]

Unlike JMS, which defines an API and a set of behaviors that a messaging implementation must provide, AMQP is a wire-level protocol. A wire-level protocol is a description of the format of the data that is sent across the network as a stream of bytes. Consequently, any tool that can create and interpret messages that conform to this data format can interoperate with any other compliant tool irrespective of implementation language. [1]


Constrained Application Protocol (CoAP) is a specialized Internet Application Protocol for constrained devices, as defined in RFC 7252. It enables those constrained devices called “nodes” to communicate with the wider Internet using similar protocols. CoAP is designed for use between devices on the same constrained network (e.g., low-power, lossy networks), between devices and general nodes on the Internet, and between devices on different constrained networks both joined by an internet. [2]

CoAP is also being used via other mechanisms, such as SMS on mobile communication networks. CoAP is a service layer protocol that is intended for use in resource-constrained internet devices, such as wireless sensor network nodes. CoAP is designed to easily translate to HTTP for simplified integration with the web, while also meeting specialized requirements such as multicast support, very low overhead, and simplicity. [2]

Multicast, low overhead, and simplicity are extremely important for Internet of Things (IoT) and Machine-to-Machine (M2M) devices, which tend to be deeply embedded and have much less memory and power supply than traditional internet devices have. Therefore, efficiency is very important. CoAP can run on most devices that support UDP or a UDP analogue. [2]

The Internet Engineering Task Force (IETF) Constrained RESTful Environments Working Group (CoRE) has done the major standardization work for this protocol. In order to make the protocol suitable to IoT and M2M applications, various new functionalities have been added. The core of the protocol is specified in RFC 7252; important extensions are in various stages of the standardization process. [2]

Data Distribution Service (DDS)

The Data Distribution Service (DDS) for real-time systems is an Object Management Group (OMG) machine-to-machine (sometimes called middleware or connectivity framework) standard that aims to enable dependable, high-performance, interoperable, real-time, scalable data exchanges using a publish–subscribe pattern. DDS addresses the needs of applications like aerospace and defense, air-traffic control, autonomous vehicles, medical devices, robotics, power generation, simulation and testing, smart grid management, transportation systems, and other applications that require real-time data exchange. [3]

DDS is networking middle ware that simplifies complex network programming. It implements a publish–subscribe pattern for sending and receiving data, events, and commands among the nodes. Nodes that produce information (publishers) create “topics” (e.g., temperature, location, pressure) and publish “samples”. [3]

DDS delivers the samples to subscribers that declare an interest in that topic. DDS handles transfer chores: message addressing, data marshalling and demarshalling (so subscribers can be on different platforms from the publisher), delivery, flow control, retries, etc. Any node can be a publisher, subscriber, or both simultaneously. The DDS publish-subscribe model virtually eliminates complex network programming for distributed applications. [3]


The EnOcean technology is an energy harvesting wireless technology used primarily in building automation systems, and is also applied to other applications in industry, transportation, logistics and smart homes. The frequency of EnOcean IoT Protocol is 315 MHZ, 868 MHz and 902MHz. It provides you access in Cloud, and the range it covers is 300m outdoors and 30m indoors. Modules based on EnOcean technology combine micro energy converters with ultra low power electronics, and enable wireless communications between battery less wireless sensors, switches, controllers and gateways. [4]

In March 2012, the EnOcean wireless standard was ratified as the international standard ISO/IEC 14543-3-10. The standard covers the OSI (Open Systems Interconnection) layers 1-3 which are the physical, data link and networking layers. The energy harvesting wireless modules are manufactured and marketed by the company EnOcean which is based in Oberhaching, Germany. EnOcean offers its technology and licenses for the patented features within the EnOcean Alliance framework. [4]


LoRa (Long Range) is a spread spectrum modulation technique derived from chirp spread spectrum (CSS) technology and is the first low-cost implementation of chirp spread spectrum for commercial usage. It was developed by Cycleo of Grenoble, France, and acquired by Semtech in 2012, a founding member of the LoRa Alliance.[5]

Semtech’s LoRa devices and wireless radio frequency technology (LoRa Technology) is a long range, low power wireless chipset that is used in a lot of Internet of Things (IoT) networks worldwide. LoRa Technology enables a variety of smart IoT applications aimed at solving challenges like energy management, natural resource reduction, pollution control, infrastructure efficiency, disaster prevention, and more. LoRa is a long-range wireless communication protocol that competes against other low-power wide-area network (LPWAN) wireless such as narrowband IoT (NB IoT), the Wize technology, Sigfox or LTE Cat M1. [5]


MQTT (Message Queuing Telemetry Transport) is an ISO standard (ISO/IEC PRF 20922) publish-subscribe-based messaging protocol. It works on top of the TCP/IP protocol suite. It is designed for connections with remote locations where a “small code footprint” is required or the network bandwidth is limited. The publish-subscribe messaging pattern requires a message broker. Alternative message-oriented middleware includes the Advanced Message Queuing Protocol (AMQP), Streaming Text Oriented Messaging Protocol (STOMP), the IETF Constrained Application Protocol, XMPP, DDS, OPC UA, and Web Application Messaging Protocol (WAMP). [6]


Radio-frequency identification (RFID) uses electromagnetic fields to automatically identify and track tags attached to objects. The tags contain electronically stored information. Passive tags collect energy from a nearby RFID reader’s interrogating radio waves. Active tags have a local power source (such as a battery) and may operate hundreds of meters from the RFID reader. Unlike a barcode, the tags don’t need to be within the line of sight of the reader, so it may be embedded in the tracked object. RFID is one method of automatic identification and data capture (AIDC). [7]

RFID tags are used in many industries. For example, an RFID tag attached to an automobile during production can be used to track its progress through the assembly line; RFID-tagged pharmaceuticals can be tracked through warehouses; and implanting RFID microchips in livestock and pets enables positive identification of animals. [7]

Since RFID tags can be attached to cash, clothing, and possessions, or implanted in animals and people, the possibility of reading personally-linked information without consent has raised serious privacy concerns. These concerns resulted in standard specifications development addressing privacy and security issues. ISO/IEC 18000 and ISO/IEC 29167 use on-chip cryptography methods for untraceability, tag and reader authentication, and over-the-air privacy. ISO/IEC 20248 specifies a digital signature data structure for RFID and barcodes providing data, source and read method authenticity. This work is done within ISO/IEC JTC 1/SC 31 Automatic identification and data capture techniques. Tags can also be used in shops to expedite checkout, and to prevent theft by customers and employees. [7]

In 2014, the world RFID market was worth US$8.89 billion, up from US$7.77 billion in 2013 and US$6.96 billion in 2012. This figure includes tags, readers, and software/services for RFID cards, labels, fobs, and all other form factors. The market value is expected to rise to US$18.68 billion by 2026. [7]


Sigfox is a French global network operator founded in 2009 that builds wireless networks to connect low-power objects such as electricity meters and smartwatches, which need to be continuously on and emitting small amounts of data. [8]

Sigfox employs the differential binary phase-shift keying (DBPSK) and the Gaussian frequency shift keying (GFSK) that enables communication using the Industrial, Scientific and Medical ISM radio band which uses 868MHz in Europe and 902MHz in the US. [8]

It utilizes a wide-reaching signal that passes freely through solid objects, called “Ultra Narrowband” and requires little energy, being termed “Low-power Wide-area network (LPWAN)”. The network is based on one-hop star topology and requires a mobile operator to carry the generated traffic. [8]

The signal can also be used to easily cover large areas and to reach underground objects. As of October 2018, the Sigfox IoT network has covered a total of 4.2 million square kilometers in a total of 50 countries and is on track to reach 60 countries by the end of 2018. [8]

Sigfox has partnered with a number of firms in the LPWAN industry such as Texas Instruments, Silicon Labs and ON Semiconductor. The ISM radio bands support limited bidirectional communication. [8]


Thread is an IPv6-based, low-power mesh networking technology for IoT products, intended to be secure and future-proof. The Thread protocol specification is available at no cost, however this requires agreement and continued adherence to an EULA which states that “Membership in Thread Group is necessary to implement, practice, and ship Thread technology and Thread Group specifications.” Membership of the Thread Group is subject to an annual membership fee except for the “Academic” tier. [9]

In July 2014, the “Thread Group” alliance was announced, which is a working group with the companies Nest Labs (a subsidiary of Alphabet/Google), Samsung, ARM Holdings, Qualcomm, NXP Semiconductors/Freescale, Silicon Labs, Big Ass Solutions, Somfy, OSRAM, Tyco International, and the lock company Yale in an attempt to have Thread become the industry standard by providing Thread certification for products. In August 2018 Apple joined the group raising hopes it will help popularize the protocol.[9]

Thread uses 6LoWPAN, which in turn uses the IEEE 802.15.4 wireless protocol with mesh communication, as does Zigbee and other systems. Thread however is IP-addressable, with cloud access and AES encryption. A BSD licensed open-source implementation of Thread (called “OpenThread”) has also been released by Nest.[9]


Wi-Fi is a family of radio technologies commonly used for wireless local area networking (WLAN) of devices. It is based on the IEEE 802.11 family of standards. The Wi-Fi Alliance includes 3Com (now owned by HPE/Hewlett-Packard Enterprise), Aironet (now owned by Cisco), Harris Semiconductor (now owned by Intersil), Lucent (now owned by Nokia), Nokia and Symbol Technologies (now owned by Zebra Technologies). [10]

Wi-Fi uses multiple parts of the IEEE 802 protocol family and is designed to seamlessly interwork with its wired sister protocol Ethernet. Devices that can use Wi-Fi technologies include desktops and laptops, smartphones and tablets, smart TVs, printers, digital audio players, digital cameras, cars and drones. Compatible devices can connect to each other over Wi-Fi through a wireless access point as well as to connected Ethernet devices and may use it to access the Internet. Such an access point (or hotspot) has a range of about 20 meters (66 feet) indoors and a greater range outdoors. Hotspot coverage can be as small as a single room with walls that block radio waves, or as large as many square kilometres achieved by using overlapping access points. [10]

The different versions of Wi-Fi are specified by various IEEE 802.11 protocol standards, with the different radio technologies determining the ranges, radio bands, and speeds that may be achieved. Wi-Fi most commonly uses the 2.4 gigahertz (12 cm) UHF and 5 gigahertz (6 cm) SHF ISM radio bands; these bands are subdivided into multiple channels. Each channel can be time-shared by multiple networks. These wavelengths work best for line-of-sight. Many common materials absorb or reflect them, which further restricts range, but can tend to help minimize interference between different networks in crowded environments. At close range, some versions of Wi-Fi, running on suitable hardware, can achieve speeds of over 1 Gbit/s (Gigabit per second). [10]


The name refers to the waggle dance of honey bees after their return to the beehive. Zigbee is an IEEE 802.15.4-based specification for a suite of high-level communication protocols used to create personal area networks with small, low-power digital radios, such as for home automation, medical device data collection, and other low-power low-bandwidth needs, designed for small scale projects which need wireless connection. Hence, Zigbee is a low-power, low data rate, and close proximity (i.e., personal area) wireless ad hoc network. [11]

The technology defined by the Zigbee specification is intended to be simpler and less expensive than other wireless personal area networks (WPANs), such as Bluetooth or more general wireless networking such as Wi-Fi. Applications include wireless light switches, home energy monitors, traffic management systems, and other consumer and industrial equipment that requires short-range low-rate wireless data transfer. [11]

Its low power consumption limits transmission distances to 10–100 meters line-of-sight, depending on power output and environmental characteristics. Zigbee devices can transmit data over long distances by passing data through a mesh network of intermediate devices to reach more distant ones. [11]

Zigbee is typically used in low data rate applications that require long battery life and secure networking (Zigbee networks are secured by 128 bit symmetric encryption keys.) Zigbee has a defined rate of 250 kbit/s, best suited for intermittent data transmissions from a sensor or input device. [11]


Z-Wave is a wireless communications protocol used primarily for home automation. It is a mesh network using low-energy radio waves to communicate from appliance to appliance, allowing for wireless control of residential appliances and other devices, such as lighting control, security systems, thermostats, windows, locks, swimming pools and garage door openers. [12]

Like other protocols and systems aimed at the home and office automation market, a Z-Wave system can be controlled via the Internet from a smart phone, tablet or computer, and locally through a smart speaker, wireless key fob, or wall-mounted panel with a Z-Wave gateway or central control device serving as both the hub controller and portal to the outside. Z-Wave provides the application layer interoperability between home control systems of different manufacturers that are a part of its alliance. [12]

The frequency of Z-Wave Internet of Things Protocols is 900MHz, and the range is about 30-100m. It provides you Cloud access and requires a bridge for it. Data rates of this protocol are 40-100kbit/s

Bonus : Bluetooth

Bluetooth is a wireless technology standard for exchanging data between fixed and mobile devices over short distances using short-wavelength UHF radio waves in the industrial, scientific and medical radio bands, from 2.400 to 2.485 GHz, and building personal area networks (PANs). [13]

It was originally conceived as a wireless alternative to RS-232 data cables. Bluetooth is managed by the Bluetooth Special Interest Group (SIG), which has more than 35,000 member companies in the areas of telecommunication, computing, networking, and consumer electronics. The IEEE standardized Bluetooth as IEEE 802.15.1, but no longer maintains the standard. The Bluetooth SIG oversees development of the specification, manages the qualification program, and protects the trademarks. [13]

A manufacturer must meet Bluetooth SIG standards to market it as a Bluetooth device. A network of patents apply to the technology, which are licensed to individual qualifying devices. [13]

IoT software tools

Platform Url
Azure IoT (.NET) https://azure.microsoft.com/en-us/overview/iot/
Johnny Five (Node.js) http://johnny-five.io/
Google Cloud IoT https://cloud.google.com/solutions/iot/
Artoo (Ruby) http://artoo.io/
Iot programming with C https://www.iot-programmer.com/index.php/books/17-raspberry-pi-and-the-iot-in-c

The future

The Industry 4.0 future aims the machines to be able of self-diagnostics to avoid failures, optimized production to avoid defects, minimized idle time thanks to the communication among different production process actors, including robots, workers with wearable devices that simplify their tasks and with shifts organized to maximize well being (and thus productivity) thanks to information collected by bio-sensors.

* This article joint effort between Alice Reina (here and here) and me.

Alice Reina graduated in Aerospace Engineering at Politecnico di Milano (Italy) where she obtained also a PhD in Aerospace Engineering with a dissertation on nanocomposites for space applications. She worked 5 years as a researcher at the Space Propulsion Laboratory of the Politecnico di Milano dealing with advanced material for solid rocket motors and hybrid rocket engines.

Then, she moved to the private sector, applying the experience gained in R&D projects development to advanced manufacturing, managing research and innovation projects and proposals in different fields (Industry 4.0, Circular economy, additive/hybrid manufacturing, composite manufacturing, robotics, space). She now works for Avio S.p.A where she covered the role of research programs manager and proposal developer, where she collaborates to the innovation in space transportation systems.


[1]. AMPQ wikipedia page

[2]. CoAP wikipedia page

[3]. DDS wikipedia page

[4]. EnOcean wikipedia page

[5]. Lora wikipedia page

[6]. MQTT wikipedia page

[7]. RFID wikipedia page

[8]. Sigfox wikipedia page

[9]. Thread wikipedia page

[10]. Wifi wikipedia page

[11]. ZigBee wikipedia page

[12]. Z-Wave wikipedia page

[13]. Bluetooth wikipedia page