# MQTT protocol

> MQTT is a lightweight publish/subscribe messaging protocol which probably makes it the most suitable for IoT devices&nbsp;Learn more about MQTT.iotBind platform integrates with&nbsp;MQTT.one&nbsp;services to publish messages to Your devices by Your mqtt.one account.what you need:1. Pro iotBind Account&nbsp;To activate the MQTT feature2. Registration&nbsp; in&nbsp;MQTT.one&nbsp;(MQTT Service) to get and use the Broker and Topic&nbsp;Data&nbsp;&nbsp;

> To generate a API key for device, click on the key icon After adding the device And Click on the refresh icon To generate a new key Any time.&nbsp;&nbsp;

After registration in&nbsp;MQTT.one, Add topics you need to use, and back to account in iotBind.com in main menu Click on "MQTT Service"enter you mqtt.one email and password and Click "link" button,After successful linking Then you'll see all your Broker and topic data&nbsp;&nbsp;

Now your account is ready to publish (messages) and subscribe (topic) by mqtt protocol&nbsp;&nbsp;

connect the devices with iotBind by MQTT protocol:- Broker Domian: Same Broker Domian in your&nbsp;MQTT.one&nbsp;account- Port: Same Port in your&nbsp;MQTT.one&nbsp;account- User : Same User in your&nbsp;MQTT.one&nbsp;account- Password: Same Password in your&nbsp;MQTT.one&nbsp;account- Client ID: iotbind-XXXXXXXXX"

publish data from devices or application to iotBind platform:After link your account with&nbsp;MQTT.one&nbsp;you will see the iotbind/tracking/ Topics where you can publish data message to iotBind&nbsp;&nbsp;

publish device data update from iotBind to any subscribes:iotBind paltform can use any topic has permission to publishing a message by your&nbsp;MQTT.one&nbsp;account to Your Any subscribes that subscribe in the same topic After any update of the sensor data.if you need send mqtt data message After any update of the devices go to GPS Tracking page and in the device Click in "edit" icon to show the&nbsp;device Setting and enable the "MQTT" publish&nbsp;messages feature and Select the topic you want the iotBind platform to publish&nbsp;messages to&nbsp;&nbsp;

"You can manage your list topics from your&nbsp;MQTT.one&nbsp;account"

&nbsp;&nbsp;

### Sending and receiving Messages format:

Text Message format: json



| Parameter | Value | Description |
| --- | --- | --- |
| uid | Device UniqueID | Always use it When you want to send an update or get data |
| key | Encrypted key | Device API secret keyAlways use it When you want to send an update or get data&nbsp; |
| cmd | One of these:"get""ping" | only use one of these commands when you send a requests to iotbind"get" If you want get device data frome iotBind platform"ping" If you want send ping Command to iotBind platform to learn that the device is connected |
| longitude | numbers | Use it for update longitude |
| latitude | numbers | Use it for update latitude |
| data1 | Text or numbers | (optional) Use it only for update data1 |
| data2 | Text or numbers | (optional) Use it only for update data2 |
| data3 | Text or numbers | (optional) Use it only for update data3 |
| data4 | Text or numbers | (optional) Use it only for update data3 |

Examples:After setup your device to contact the MQTT Broker and set publish to tracking Topics in iotBind Platform After any update , For Example:if you need to send the update data by publish MQTT data message to iotBind platform, you need to send a txt json message to the special iotbind/tracking/ topic show in your iotBind account&gt;MQTT Service like:&nbsp;&nbsp;



```json
{
    "uid":"Device UniqueID",
    "key":"Device API secret key",
    "longitude": "longitude Number",
    "latitude": "latitude Number",
    "data1":"Anything",
    "data2":"Anything",
    "data3":"Anything",
    "data4":"Anything"
}
```

* longitude,latitude,data1,data2,data3,data4 is an any data you need to update

if you need to get device data by publish MQTT message to iotBind platform, you need to send a txt json massege to the special iotbind/tracking/ topic show in your iotBind account&gt;MQTT Service like:

```json
{
    "uid":"Device UniqueID",
    "key":"Device API secret key",
    "cmd":"get"
}
```

iotBind platform publish a json data message to the same topic set on the device Edit page like:

&nbsp;&nbsp;

```json
{
     "uid": "UniqueID",
     "name": "DeviceName",
     "type": "Phone app tracking",
     "longitude": "17.6359479",
     "latitude": "44.5318535",
     "data1": "Anything",
     "data1_unit": "Anything",
     "data2": "Anything",
     "data2_unit": "Anything",
     "data3": "Anything",
     "data3_unit": "Anything",
     "data4": "Anything",
     "data4_unit": "Anything"
}
```

If you want send ping Command to iotBind platform to learn that the device is connected by publish MQTT message to iotBind platform, you need to send a txt json massege to the special iotbind/tracking/ topic show in your iotBind account&gt;MQTT Service like:

```json
{
    "uid":"Device UniqueID",
    "key":"Device API secret key",
    "cmd":"ping"
}
```

&nbsp; Note: When the device is connected by MQTT protocol, the connection status will be updated directly by server&nbsp;&nbsp;

