# MQTT

## Introduction

The **MQTT Nodes** provide a means for the user to perform several actions within the *MQTT* messaging protocol. *MQTT*, or *Message Queuing Telemetry Transport*, allows the communication among devices and is commonly used in *IoT* applications. To use the **MQTT Nodes** in **Incari**, the user needs to locate the [**MQTT Attributes**](https://docs.incari.com/incari-studio/modules/project-settings/mqtt) in **Project Settings** and add a `Connection`.

## MQTT Guideline

These are the guidelines for incorporating **MQTT Communication** into a **Project** to form an **MQTT** *Client*. It is important to note that an *MQTT* server, either local or remote, has to be already running for **Incari** to connect to it.

* To properly start a connection, see the [**General Guideline**](https://docs.incari.com/incari-studio/toolbox/communication/..#general-guideline) on the Communications Introduction page.
* Once the connection has been established, there are several **Nodes** that cover important functions of **MQTT Communication**.
  * [**On MQTT Topic**](https://docs.incari.com/incari-studio/toolbox/communication/mqtt/events/onmqtttopic) executes when an **MQTT** *Message* (for one of the specified **Topics**) is received.
  * [**MQTT Publish**](https://docs.incari.com/incari-studio/toolbox/communication/mqtt/mqttpublish) sends an **MQTT Message**.
  * [**MQTT Subscribe**](https://docs.incari.com/incari-studio/toolbox/communication/mqtt/mqttsubscribe) starts listening for an **MQTT Topic**.
* To properly stop a connection, see the [**General Guideline**](https://docs.incari.com/incari-studio/toolbox/communication/..#general-guideline) on the Communications Introduction page.

## Contents

* [**Events**](https://docs.incari.com/incari-studio/toolbox/communication/mqtt/events)
  * [**On MQTT Start**](https://docs.incari.com/incari-studio/toolbox/communication/mqtt/events/onmqttstart)
  * [**On MQTT Stop**](https://docs.incari.com/incari-studio/toolbox/communication/mqtt/events/onmqttstop)
  * [**On MQTT Topic**](https://docs.incari.com/incari-studio/toolbox/communication/mqtt/events/onmqtttopic)
* [**MQTT Publish**](https://docs.incari.com/incari-studio/toolbox/communication/mqtt/mqttpublish)
* [**MQTT Start**](https://docs.incari.com/incari-studio/toolbox/communication/mqtt/mqttstart)
* [**MQTT Stop**](https://docs.incari.com/incari-studio/toolbox/communication/mqtt/mqttstop)
* [**MQTT Subscribe**](https://docs.incari.com/incari-studio/toolbox/communication/mqtt/mqttsubscribe)

## External Links

* [*More information on MQTT*](https://en.wikipedia.org/wiki/MQTT) on Wikipedia.
* [*An in-depth explanation and tutorials*](https://mqtt.org/) on MQTT.
* [*An in-depth explanation of Topics*](http://www.steves-internet-guide.com/understanding-mqtt-topics/)
