2021-04-27 14:06:41 -07:00
---
id: mqtt
title: MQTT Settings
sidebar_label: MQTT
---
2021-07-26 09:07:56 -07:00
2021-05-05 09:18:44 -07:00
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
2021-05-04 09:22:20 -07:00
:::note
This is still under development, use at your own risk. Report any bugs you see by creating an issue on the [meshtastic/Meshtastic-device ](https://github.com/meshtastic/Meshtastic-device ) repository or comment on our forum.
:::
2021-04-27 14:06:41 -07:00
2021-05-04 09:22:20 -07:00
:::caution
You may want to change your [GPS location sharing settings ](gps#location_share ) if you are enabling this. It will broadcast your location over the internet.
:::
2021-04-27 14:06:41 -07:00
2021-05-04 09:22:20 -07:00
## Overview
2021-04-27 14:06:41 -07:00
2021-05-04 09:22:20 -07:00
If your device is connected to WiFi you can enable it to forward messages along to an MQTT server. This allows users on the local mesh to communicate with users on the internet.
2021-04-27 14:06:41 -07:00
2021-12-28 13:27:27 -08:00
Be sure to checkout this [MQTT ](https://meshtastic.org/docs/software/other/mqtt ) too.
2021-04-27 14:06:41 -07:00
## Settings
2022-01-27 09:24:14 -08:00
| Setting | Acceptable Values | Default |
| :-----: | :---------------: | :-----: |
| mqtt_disabled | `true` , `false` | `false` |
| mqtt_server | `string` | `""` |
| mqtt_password | `string` | `""` |
| mqtt_username | `string` | `""` |
2022-01-27 09:26:02 -08:00
| uplink_enabled | `true` , `false` | `false` |
| downlink_enabled | `true` , `false` | `false` |
2021-05-03 13:15:01 -07:00
### mqtt_disabled
2022-01-27 09:26:02 -08:00
If a meshtastic node is able to reach the internet it will normally attempt to gateway any channels that are marked as `uplink_enabled` or `downlink_enabled` . But if this flag is set, all MQTT features will be disabled and no servers will be contacted.
2021-05-03 13:15:01 -07:00
2022-02-01 17:58:26 -08:00
#### Enable/Disable MQTT
< Tabs
groupId="settings"
defaultValue="cli"
values={[
{label: 'CLI', value: 'cli'},
{label: 'Android', value: 'android'},
{label: 'iOS', value: 'iOS'},
{label: 'Web', value: 'web'},
]}>
< TabItem value = "cli" >
```bash title="Enable MQTT (Default)"
meshtastic --set mqtt_disabled false
```
```bash title="Disable MQTT"
meshtastic --set mqtt_disabled true
```
< / TabItem >
< TabItem value = "android" >
:::info
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
:::
< / TabItem >
< TabItem value = "iOS" >
:::info
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
:::
< / TabItem >
< TabItem value = "web" >
:::info
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
:::
< / TabItem >
< / Tabs >
2021-05-03 13:15:01 -07:00
### mqtt_server
The server to use for our MQTT global message gateway feature. If not set, the default server will be used
2021-04-27 14:06:41 -07:00
2022-02-01 17:58:26 -08:00
#### Enable/Disable MQTT Server
< Tabs
groupId="settings"
defaultValue="cli"
values={[
{label: 'CLI', value: 'cli'},
{label: 'Android', value: 'android'},
{label: 'iOS', value: 'iOS'},
{label: 'Web', value: 'web'},
]}>
< TabItem value = "cli" >
:::tip
When the mqtt_server is set to `""` , it will default to `mqtt.meshtastic.org`
:::
```bash title="Enable MQTT Server - Public Meshtastic MQTT Server (Default)"
meshtastic --set mqtt_server ""
```
```bash title="Enable MQTT Server - Personal MQTT Server (by IP)"
meshtastic --set mqtt_server 198.168.0.2
```
```bash title="Enable MQTT Server - Personal MQTT Server (by URL)"
meshtastic --set mqtt_server mqtt.mydomain.com
```
< / TabItem >
< TabItem value = "android" >
:::info
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
:::
< / TabItem >
< TabItem value = "iOS" >
:::info
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
:::
< / TabItem >
< TabItem value = "web" >
:::info
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
:::
< / TabItem >
< / Tabs >
2022-01-26 14:39:38 -08:00
### mqtt_password
MQTT password to use (most useful for a custom MQTT server). If using a custom server, this will be honoured even if empty. If using the default server, this will only be honoured if set, otherwise the device will use the default password (TODO - find default password).
2022-01-26 14:39:53 -08:00
### mqtt_username
MQTT username to use (most useful for a custom MQTT server). If using a custom server, this will be honoured even if empty. If using the default server, this will only be honoured if set, otherwise the device will use the default username (TODO - find default username).
2022-01-27 09:26:02 -08:00
### uplink_enabled
2021-05-04 09:22:20 -07:00
2022-02-01 17:58:26 -08:00
This is a channel specific setting. If your channel has this set to `true` and you are connected to WiFi, the device will forward along messages to whatever MQTT server is specified in [mqtt_server ](#mqtt_server ).
2021-05-04 09:22:20 -07:00
2022-01-27 09:26:02 -08:00
### downlink_enabled
2021-05-04 09:22:20 -07:00
2022-02-01 17:58:26 -08:00
This is a channel specific setting. If your channel has this set to `true` and you are connected to WiFi, the device will forward along messages from the MQTT server specified [here ](#mqtt_server ) to the mesh from this device.
2021-05-04 09:22:20 -07:00
2021-04-27 14:06:41 -07:00
## Details
2021-07-26 09:07:56 -07:00
2021-05-04 09:22:20 -07:00
<!-- - TODO - -->
2021-05-05 09:18:44 -07:00
## Examples
2021-05-04 09:22:20 -07:00
2021-05-05 09:18:44 -07:00
< Tabs
2021-07-26 09:07:56 -07:00
groupId="settings"
defaultValue="cli"
values={[
{label: 'CLI', value: 'cli'},
{label: 'Android', value: 'android'},
2022-01-30 18:29:49 -08:00
{label: 'iOS', value: 'iOS'},
{label: 'Web', value: 'web'},
2021-07-26 09:07:56 -07:00
]}>
2022-01-30 18:29:49 -08:00
< TabItem value = "cli" >
2021-07-26 09:07:56 -07:00
```bash title="Set server"
meshtastic --set mqtt_server 192.168.123.234
```
```bash title="Enable MQTT server to mesh"
2021-12-28 13:27:27 -08:00
meshtastic --ch-set uplink_enabled true --ch-set downlink_enabled true --ch-index 0
2021-07-26 09:07:56 -07:00
```
```bash title="View raw encoded messages using mosquitto"
mosquitto_sub -h 192.168.123.234 -v -t msh/#
```
:::note
FIXME some documentation says msh/# , some says mesh/# . As of 1.2.39 the messages are on msh/#
:::
2022-01-30 18:29:49 -08:00
< / TabItem >
< TabItem value = "android" >
:::info
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
:::
< / TabItem >
< TabItem value = "iOS" >
2021-05-05 09:18:44 -07:00
2022-01-30 18:29:49 -08:00
:::info
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
:::
< / TabItem >
< TabItem value = "web" >
:::info
Configuring this setting is not yet available for the selected platform. If this is incorrect please update the documentation for this page.
:::
2021-05-05 09:18:44 -07:00
< / TabItem >
< / Tabs >