Skip to content
IoT Agent for a UL based protocol (with HTTP, MQTT and AMQP transports)
JavaScript Shell CSS Dockerfile HTML
Branch: master
Clone or download
fgalan Merge pull request #380 from jason-fox/patch-2
Update CSS to avoid redirect
Latest commit aa23094 Sep 9, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin Adding prettier ignore where requested. Mar 5, 2019
docker Merge branch 'master' into feature/pm2_enabled Aug 21, 2019
docs update MQTT doc Aug 6, 2019
ghpages Rerun prettier - 120 width Jan 31, 2019
lib Merge pull request #365 from tdm-project/feature/mqtt_configuration_r… Jul 18, 2019
rpm Step: 1.9.0-next -> 1.10.0 Aug 13, 2019
template Re-running prettier with no trailing comma. Feb 1, 2019
test - implements "subscribe" mechanism for MQTT binding configuration ret… Jun 28, 2019
.dockerignore Typo. Nov 21, 2018
.gitignore ADD Initial import Apr 5, 2016
.jshintrc Updates dependencies, passes tests and removes grunt Nov 3, 2018
.prettierrc.json Re-running prettier with no trailing comma. Feb 1, 2019
.textlintrc Format and lint Markdown text files Mar 13, 2019
.travis.yml REMOVE node v6 ADD node v12 Aug 1, 2019
CHANGES_NEXT_RELEASE Merge branch 'master' into feature/pm2_enabled Aug 21, 2019
CREDITS Create CREDITS Mar 6, 2019
ContributionPolicy.txt Update ContributionPolicy.txt Dec 4, 2018
LICENSE FIX Right name for the License file Apr 8, 2016 FIX links in Aug 2, 2019
client-config.js Re-running prettier with no trailing comma. Feb 1, 2019
config.js set default mqtt config values Aug 6, 2019
index.js Run `npm run prettier` to format files - whitespace changes only. Jan 28, 2019
mkdocs.yml Update CSS to avoid redirect Sep 9, 2019
package.json Step: 1.10.0 -> 1.10.0-next Aug 13, 2019 ADD Sonar files for static analysis Apr 18, 2016

IoT Agent for the Ultralight 2.0 protocol

FIWARE IoT Agents License: APGL Docker badge Support badge
Documentation badge Build badge Coverage Status Status

An Internet of Things Agent for the Ultralight 2.0 protocol (with AMQP, HTTP and MQTT transports). This IoT Agent is designed to be a bridge between Ultralight and the NGSI interface of a context broker.

It is based on the IoT Agent Node.js Library. Further general information about the FIWARE IoT Agents framework, its architecture and the common interaction model can be found in the library's GitHub repository.

This project is part of FIWARE. For more information check the FIWARE Catalogue entry for the IoT Agents.

📚 Documentation 🎓 Academy 🐳 Docker Hub 🎯 Roadmap



This Internet of Things Agent is a bridge that can be used to communicate devices using the Ultralight 2.0 protocol and NGSI Context Brokers (like Orion). Ultralight 2.0 is a lightweight text based protocol aimed to constrained devices and communications where the bandwidth and device memory may be limited resources. This IoT Agent will provide different transport protocol bindings for the same protocol: HTTP, MQTT...

As is the case in any IoT Agent, this one follows the interaction model defined in the Node.js IoT Agent Library, that is used for the implementation of the APIs found on the IoT Agent's North Port. Information about the architecture of the IoT Agent can be found on that global repository. This documentation will only address those features and characteristics that are particular to the Ultralight 2.0 IoT Agent.

Additional information about operating the component can be found in the Operations: logs and alarms document.


Information about how to install the IoT Agent for Ultralight can be found at the corresponding section of the Installation & Administration Guide.

A Dockerfile is also available for your use - further information can be found here


Information about how to use the IoT Agent can be found in the User & Programmers Manual.

The following features are listed as deprecated.


Apiary reference for the Configuration API can be found here. More information about IoT Agents and their APIs can be found in the IoT Agent Library documentation.

The latest IoT Agent for Ultralight documentation is also available on ReadtheDocs


Mocha Test Runner + Should.js Assertion Library.

The test environment is preconfigured to run BDD testing style.

Module mocking during testing can be done with proxyquire

In order to successfuly run the tests, on the local machine three services must be running:

  • mosquitto MQTT broker;
  • mongo Database;
  • rabbitmq AMQP broker/server;

They can be run using Docker:

docker pull ansi/mosquitto
docker pull mongo
docker pull rabbitmq

docker run -d -p 1883:1883   -l mosquitto ansi/mosquitto
docker run -d -p 27017:27017 -l mongodb mongo
docker run -d -p 5672:5672   -l rabbitmq rabbitmq

The required libraries, if missing, can be installed with:

npm install

To run tests, type

npm test


The IoT Agent for Ultralight is licensed under Affero General Public License (GPL) version 3.

© 2019 Telefonica Investigación y Desarrollo, S.A.U

Are there any legal issues with AGPL 3.0? Is it safe for me to use?

There is absolutely no problem in using a product licensed under AGPL 3.0. Issues with GPL (or AGPL) licenses are mostly related with the fact that different people assign different interpretations on the meaning of the term “derivate work” used in these licenses. Due to this, some people believe that there is a risk in just using software under GPL or AGPL licenses (even without modifying it).

For the avoidance of doubt, the owners of this software licensed under an AGPL-3.0 license wish to make a clarifying public statement as follows:

Please note that software derived as a result of modifying the source code of this software in order to fix a bug or incorporate enhancements is considered a derivative work of the product. Software that merely uses or aggregates (i.e. links to) an otherwise unmodified version of existing software is not considered a derivative work, and therefore it does not need to be released as under the same license, or even released as open source.

You can’t perform that action at this time.