Engineering-Research-and-Development / iotagent-opcua

Licence: AGPL-3.0 license
IoT Agent for OPC UA protocol

Programming Languages

HTML
75241 projects
javascript
184084 projects - #8 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to iotagent-opcua

node-red-contrib-FIWARE official
FIWARE-Node-Red integration supporting NGSI-LD
Stars: ✭ 14 (-50%)
Mutual labels:  fiware, ngsi, industry
iotagent-ul
IoT Agent for a UltraLight 2.0 based protocol (with HTTP, MQTT and AMQP transports)
Stars: ✭ 32 (+14.29%)
Mutual labels:  fiware, iot-agent
academy
🎓 Video tutorials, slide decks and other training materials for developers learning about the FIWARE ecosystem.
Stars: ✭ 12 (-57.14%)
Mutual labels:  fiware, iot-agent
tutorials.IoT-over-MQTT
📙 FIWARE 203: Provisioning Ultralight with an alternative transport: IoT over MQTT
Stars: ✭ 49 (+75%)
Mutual labels:  fiware, iot-agent
iotagent-json
IoT Agent for a JSON based protocol (with HTTP, MQTT and AMQP transports)
Stars: ✭ 37 (+32.14%)
Mutual labels:  fiware, iot-agent
iotagent-node-lib
Module to enable IoT Agent developers to build custom agents for their devices that can easily connect to NGSI Context Brokers
Stars: ✭ 53 (+89.29%)
Mutual labels:  fiware, iot-agent
lightweightm2m-iotagent
IoT Agent accepting COAP requests. Designed to be a bridge between the OMA Lightweight M2M protocol and the NGSI interface.
Stars: ✭ 22 (-21.43%)
Mutual labels:  fiware, iot-agent
sigfox-iotagent
IoT Agent for the Sigfox protocol
Stars: ✭ 11 (-60.71%)
Mutual labels:  fiware, iot-agent
tutorials.Step-by-Step
📚 Complete collection of tutorials for the FIWARE ecosystem for developers wishing to learn how to use NGSI and design context-based Smart Systems powered-by-FIWARE.
Stars: ✭ 64 (+128.57%)
Mutual labels:  fiware, ngsi
fiware-cepheus
FIWARE Cepheus - CEP for NGSI IoT gateways
Stars: ✭ 17 (-39.29%)
Mutual labels:  fiware, ngsi
opcua-esp32
Embedded OPC UA Server on ESP32 based on open62541 stack
Stars: ✭ 82 (+192.86%)
Mutual labels:  opc-ua
ml-ai
ML-AI Community | Open Source | Built in Bharat for the World | Data science problem statements and solutions
Stars: ✭ 32 (+14.29%)
Mutual labels:  industry
OpcUaStack
Open Source OPC UA Application Server and OPC UA Client/Server C++ Libraries
Stars: ✭ 89 (+217.86%)
Mutual labels:  opc-ua
server
AuthzForce Server (Community Edition)
Stars: ✭ 48 (+71.43%)
Mutual labels:  fiware
DragonArmor
Dragon Armor 3D-printable CAD files (Autodesk Fusion 360)
Stars: ✭ 46 (+64.29%)
Mutual labels:  manufacturing
AMICI
Advanced Multilanguage Interface to CVODES and IDAS
Stars: ✭ 80 (+185.71%)
Mutual labels:  idas
stellio-context-broker
Stellio is an NGSI-LD compatible context broker
Stars: ✭ 17 (-39.29%)
Mutual labels:  fiware
UA-IIoT-StarterKit
Samples and tutorials to illustrate how to build OPC UA PubSub applications.
Stars: ✭ 55 (+96.43%)
Mutual labels:  opc-ua
DLIndustriesView
Choose industry
Stars: ✭ 12 (-57.14%)
Mutual labels:  industry
awesome-opcua
No description or website provided.
Stars: ✭ 51 (+82.14%)
Mutual labels:  opc-ua

OPC UA IoTAgent

FIWARE IoT Agents License: AGPL Docker badge Support badge
Documentation badge CI Coverage Status CII Best Practices Status Join the chat at https://gitter.im/iotagent-opcua/community

An Internet of Things Agent accepting data from OPC UA devices. This IoT Agent is designed to be a bridge between the OPC Unified Architecture protocol and the NGSI interface of a context broker.

The intended level of complexity to support these operations should consider a limited human intervention (mainly during the setup of a new OPC UA endpoint), through the mean of a parametrization task (either manual or semi-automatic, using a text-based parametrization or a simple UI to support the configuration) so that no software coding is required to adapt the agent to different OPC UA devices.

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 🐳 Docker Hub 🎓 Academy 🎯 Roadmap

Contents

Background

Positioning in the overall F4I Reference Architecture

The F4I OPC UA Agent is based on the reference implementation of the FIWARE Backend Device Management Generic Enabler, IDAS, delivered by Telefonica I+D. IDAS provides a collection of Agents - i.e., independent processes that are typically executed in the proximity of IoT devices and that are responsible for bridging a specific IoT protocol to the NGSI standard (e.g. the IDAS distribution includes off-the-shelf Agents for LwM2M and MQTT). To this end, IDAS links the NGSI southbound API of the FIWARE Orion Context Broker to the northbound API of the IoT application stack, by providing a software library (the IoT Agent Lib depicted in the previous figure) for developing custom Agents that may extend the bridging capabilities of IDAS to other protocols. The F4I IDAS OPC UA Agent makes use of this framework to integrate OPC UA-based devices in a publish-subscribe system based on the FIWARE Orion Context Broker.

Getting Started - Install

Currently two options are available to install the Agent:

Docker - Recommended

We suggest using a Docker-first approach in order to avoid issues related to your environment configuration. Moreover, using this approach you will be provided with all the needed components: OCB, Mongo instances and a sample OPC UA server.

A step-by-step tutorial is available here

npm

Before launching the Agent you must install Orion Context Broker (Be aware to choose the correct version, please use orion if it's needed to test the Agent with NGSIv2 otherwise use orion-ld in case of NGSI-ld test.) and a OPC UA Server. After that you must tell the Agent how to interact with these components by using config.properties file. Once configuration is complete you can execute these commands to run the Agent.

$ npm install
$ node index.js

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

Usage

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

Administration Services

Administration services are reachable at port specified by api-port property (config.properties).

Service Description
GET /status Returns a status message
GET /version Returns information about version, name and agent description
GET /commandsList Returns a list of pending commands (only with polling mode)
GET /config Returns loaded config.json file

Poll commands

Poll commands can be enabled switching polling property to true (config.properties). Once enabled poll command, you can customize the polling Daemon Frequency and Expiration time still in the (config.properties). The polling-commands-timer is referred to the feature developed, that consist in the execution of the older polling command periodically (if exists) ed delete it in case of success.

API

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.

Testing

For test purpose can create an OPC UA server using the code in the following GitHub repository

Firstly edit the properties in order to set Northbound (NGSI) and Southbound (OPC UA) settings.

Further information about configuration properties can be found here

For checking current status of the Agent, send a request to /status service (http://{agent-ip-address}:api-port/status)

Configure Secure connection with an OPC UA Server

Documentation about OPC UA Client Secure connection can be found here

How to get access to the advanced API and Documentation topics

Documentation about the OPC UA Administration API can be found here

Quality Assurance

The IoT Agent for OPC UA project is part of FIWARE and has been rated as follows:

  • Version Tested:
  • Documentation:
  • Responsiveness:
  • FIWARE Testing:

License

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

© 2021 Engineering Ingegneria Informatica S.p.A.

The following third-party libraries are used under license

  1. node-opcua - MIT - © 2014-2021 Etienne Rossignon
  2. iotagent-node-lib - AGPL © 2014-2021 Telefonica Investigación y Desarrollo

The full list of third-party libraries licenses can be found here

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

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."

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].