MQTT Broker
MQTT Broker¶
Where can you find it
MQTT Broker is placed under the Data Connector menu.
Required and Extra fields:
- Enabled: checkbox for Enable;
- Application Auto Provisioning: checkbox that allows ResIOT to auto insert one or more Applications if one or more Nodes send a Payload to your connector.
The Application is inserted only if the Node meets the Server Conditions and if the AppEUI isn't already taken;
- Device Auto Provisioning: checkbox with same function as "Application Auto Provisioning" but with DevEUI;
- Name*: the Name of the Broker;
- Broker URL*: the Url of the Broker;
- Username: the Username credential for access to Broker if there is one;
- Password: the Password credential for access to Broker if there is one;
- Topic*: it's a field that filter the output communication based on its value. The values it may assume depend from the Server;
- Preset Application: it's a select box with all the Applications listed. Works only if the "Application Auto Provisioning" checkbox is checked. Choosing an Application allow ResIOT
to insert an Auto Provisioned Node if there is no AppEUI in its communication;
- SSL/TLS*: checkbox for SSL/TLS;
- CA Certificate: field for Certificate Authority;
- CA Certificate: field for Client Certificate;
- CA Certificate: field for Key Client Certificate;
Structure:
A MQTT Broker message is splitted into a Topic part and a JSON one. There isn't a standard structure so ResIOT owns some pre-configurated models. If you want to configure your own Connector
you should know its format and let ResIOT understand it aswell. To do so, the first thing you have to do is to define a Topic for every type of communication.
In Topic's Pattern table, you have to set up the right patterns in order for the software to understand what kind of communication is being handled. To do so, software has a list of Tags
to help you to define them.
- <deveui>: the Node's DevEUI
- <appeui>: the Node's AppEUI
- <port>: the port used for the communication
- <gweui>: the GatewayEUI
- <any>: anything you don't need, from an empty string to everything else until a "/" character is met.
Examples of Topics:
- Application/01475Ad349BCD712/Node/aaa847Bd901CA837/Rx
- Application/01475Ad349BCD712/Node/aaa847Bd901CA837/Port/31/true/Tx
- Gateway/98773ACb4933D146/GatewayAlive
Broker Command field
The Command field in Broker's TX define, in case you have multiple different TX patterns, which one should be used. For example, if you want to use the "NewTX" pattern just type "NewTX" into the Command Field while sending a TX Communication.
Example of JSON
Example of a Rx:
{
"Payload" : "a0b5c2",
"Port" : 25,
"AppEUI" : "01475Ad349BCD712",
"DevEUI" : "aaa847Bd901CA837",
"Extra": {
"Extra1" : 13,
"Extra2" : false,
"Extra3" : "aa",
"Gateways": [
{
"EUI" : "98773ACb4933D146",
"Time" : 1477580497168
},
{
"EUI" : "107aFAC329311158",
"Time" : 1477580497160
}
]
"Reference" : true
}
}
To parse root fields:
To parse child fields:
To parse child array fields: