FIWARE IoT Agent for a JSON-based Protocol
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 IoT Agent is designed to be a bridge between an MQTT/HTTP+JSON based protocol and the FIWARE NGSI standard used in FIWARE. This project is based in the Node.js IoT Agent library. More information about the IoT Agents can be found within the library's GitHub repository.
A quick way to get started is to read the Step by step Manual.
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 Northbound APIs. Information about the IoTAgent's architecture can be found on that global repository. This documentation will only address those features and characteristics that are particular to the JSON IoTAgent.
Additional information about operating the component can be found in the Operations: logs and alarms document.
Information about how to install the JSON IoTAgent can be found at the corresponding section of the Installation & Administration Guide.
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.
The latest IoT Agent for JSON documentation is also available on ReadtheDocs
The JSON IoT Agent comes with a client that can be used to test its features, simulating a device. The client can be executed with the following command:
This will show a prompt where commands can be issued to the MQTT broker. For a list of the currently available commands
The client loads a global configuration used for all the commands, containing the host and port of the MQTT broker and
the API Key and Device ID of the device to simulate. This information can be changed with the
In order to use any of the MQTT commands, you have to connect to the MQTT broker first. If no connection is available, MQTT commands will show an error message reminding you to connect.
The command-line Client gets its default values from a config file in the root of the project:
config file can be used to permanently tune the MQTT broker parameters, or the default device ID and APIKey.
The test environment is preconfigured to run BDD testing style.
Module mocking during testing can be done with proxyquire
To run tests, type
All the tests are designed to test end-to-end scenarios, and there are some requirements for its current execution:
- Mosquitto v1.3.5 server running
- MongoDB v3.x server running
The IoT Agent for JSON 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.