Note: This project is currently not actively maintained by LinkSmart. Please refer to Contributing section to know more.
This is a bundle of OPC UA controller service and processors for Nifi. The bundle is an improvement built on top of the OPC UA bundle made by HashmapInc.
A couple of differences between the new bundle and the HashmapInc
one:
- The
HashmapInc
is based on OPC UA-Java Stack, which provides more bottom-level APIs. The new bundle is based on Eclipse Milo, which is built on top of OPC UA-Java Stack but provides more high-level APIs and more advanced functionalities such as subscription. - The new bundle adds a
SubscribeOPCNodes
processor, which allows the user to specify a list of OPC tags to subscribe to. The processor will produce flowfiles, when value changes on subscribed tags are detected. - Adds an option to the
GetOPCData
processor so that the user can specify the source of tag list as a local file. The processor will get values of all tags listed in the file from the OPC. - Adds an option to the
ListOPCNodes
processor, so that user may choose to not get nodes which are not leaves of the tree. This could come in handy, since in most cases, only leaf nodes contain value. - More full-fledged security features, including support for signed or signed & encrypt messages, server certificate verification, etc.
- Minor tweaks to improve performance as well as to adapt to our use case.
Build it with Maven:
mvn clean install -DskipTests
Find the built nar file here:
<repo directory>/nifi-opcua-nar/target/nifi-opcua.nar
and copy it to the following directory of the running Nifi instance:
/opt/nifi/nifi-<version>/lib
Restart Nifi, then you can find the new processors available.
Another option is to build a Nifi image containing the NAR file directly:
docker build -t nifi-opc .
To use the processors in this bundle, you have to set up the StandardOPCUAService
as Nifi controller service first. Detailed guide can be found here.
For the detailed description of each processor, you can find it here:
Contributions are welcome in terms of documentation, implementations, and technical support.
Please fork, make your changes, and submit a pull request. For major changes, please open an issue first and discuss it with the other authors.