It is not what i expected. Very strange implementation. What it would do what is this.
1. I open MQTT settings
2. I add MQTT server (broker is an old name before v3. now should be called server) it might be Auzre IoT or AWS IoT or Mosquitto server, does not matter.
3. Then I configure what it publishes to what topics. It might be system data or registers from modbus. It might be group of parameters as JSON or a single parameter. So, I define structure of topics.
This is paradigm that is usually used. Imagine I have AWS IoT service. I create new device there, it generates ID, now I have to set this device to send data to this particular device. Of course AWS MQTT may accept to any topic but if I want to use device shadow I need to use device ID. AWS assume that every device will be preconfigured. And list of actions I described above is what preconfiguration means.
In case of RUT230 I would create topics
/<device id>/system - that would accept JSON with all system parametrs and separately
/<device id>/system/uptime - and so on.
As a part of configuration of any topic to publish data to, there would be subscription topic. If something sends there, it publishes data. This is for static data. For dynamic data like uptime or data from Modbus I would be able to set interval like 20 seconds and it would publish there every 20 seconds.
This way I do not need to access this device, to route request to MQTT server and open port. If devices is in internet it will subscribe and publish to remote server.
The way it is made now is almost unusable for me.