10933 questions

13039 answers


27473 members

0 votes
150 views 3 comments
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.

I cannot even connect to local broker through LAN port to test it. I have to setup whole routing through WAN to test my setup. That would not be a case in my scenario. Even without AWS or Azure I could install my own mosquitto server localy. And everything would just work.

In addition, one would not need any packages for Azure or Cloud Things.

Another problem with your scenario that router/get is general. What If I have like 100 devices and all subscribed to same topic? When I publish to router/get I'll get multiple responses. How do I know which one is mine? Wich one in particular should I request now?

To illustrate I configured publisher to public test.mosquitto.org server and when I sent router/get id I get multiple responses to router/id. Only one is mine ID others are other people who test your devices.

1 Answer

0 votes

Thank you for this feedback, I will report this to RnD as a suggestion for future changes.

I will also let you know if there's anything they will have comments about.