A OPC UA gateway which gives you access to your OPC UA values via MQTT or GraphQL (HTTP). If you have an OPC UA server in your PLC, or a SCADA system with an OPC UA server, you can query data from there via MQTT and GraphQL (HTTP). In addition, the gateway can also log value changes from OPC UA nodes in an InfluxDB, IoTDB, Kafka, and others.
If you use wildcards in MQTT subscribe (OPC UA browse path and wildcards, for example: opc/test/path/Objects/Test/Test00003/+) the result for the resolved tags is delivered with the origin topic. It is not published wit the resolved topic/tag name. So you have to use the JSON format to find out which tag the value belongs to. Is this correct from the MQTT specification point of view?
Moreover, regarding container logs, I do not have any error. The OpcUaClient driver is connected to Kepware Server, I am able to connect to Frankestein OPC-UA server or MQTT server.
When I put my host into sleep mode (where the OPC UA server runs on), then following errors are thrown during a write value. Potential solution: writing should be done in a dedicated thread, so that the vert.x eventloop is not blocked.
[2021-10-20 20:03:48][WARNING][io.vertx.core.impl.BlockedThre] Thread Thread[vert.x-eventloop-thread-3,5,main] has been blocked for 20438 ms, time limit is 2000 ms
[2021-10-20 20:03:49][WARNING][unified ] Write value threw exception [UaException: status=Bad_Timeout, message=io.netty.channel.ConnectTimeoutException: connection timed out: /192.168.1.190:4890]
[2021-10-20 20:03:49][WARNING][unified ] Converting value to variant exception [NodeId{ns=1, id=2.336.1.0.0.0}] [6] [io.netty.channel.ConnectTimeoutException: connection timed out: /192.168.1.190:4890]
Logger to JDBC currently writes the wildcard address opc/test/path/Objects/Test/Test00003/+ as NodeId in the table, it should be the resolved name/address or at least additionally the resolved address to identify the tag.