v3.23.1

Getting Started Devices Gateways Integrations Reference
Get The Things Stack

Integrations

    Overview
  • Adding Applications
  • Adding Integrations
  • Cloud Integrations
  • MQTT Server
    • Integrations with MQTT Clients
      • Eclipse Mosquitto
      • Eclipse Paho
      • HiveMQ
      • MQTTBox
  • Pub/Sub
  • LoRa Cloud
  • Node-RED
  • IFTTT
  • Payload Formatters
  • Storage Integration
  • Webhooks

Eclipse Mosquitto

Eclipse Mosquitto is a project which provides an open source MQTT broker, a C and C++ library for MQTT client implementations and the popular command line MQTT clients.

Its lightweight MQTT protocol implementation makes it suitable for full power machines, as well as for the low power and embedded ones.

This guide shows how to receive upstream messages and send downlink messages with the Eclipse Mosquitto command line clients and The Things Stack MQTT Server.

Note:
Eclipse Mosquitto MQTT server supports 3.1, 3.1.1 and 5.0 MQTT protocol versions.

The examples in this guide are suitable for The Things Stack Open Source deployment. If you are using a different The Things Stack deployment, make sure your read a Note on Using the tenant ID.

Prerequisites

  1. Eclipse Mosquitto MQTT server installed on your system.

Subscribing to Upstream Traffic

This section follows the example for subscribing to upstream traffic in the MQTT Server guide.

The command for connecting to a host and subscribing to a topic has using mosquitto_sub has the following syntax:

mosquitto_sub -h <hostname> -p <port> -u <username> -P <password> -t <topic>

For example, to subscribe to all topics in the application app1:

# Tip: when using `mosquitto_sub`, pass the `-d` flag to see the topics messages get published on.
# For example:
mosquitto_sub -h "thethings.example.com" -p "1883" -u "app1" -P "NNSXS.VEEBURF3KR77ZR.." -t "#" -d

In you want to use TLS, you need to change the port value to 8883 and add the --cafile option to the command. --cafile option is used to define a path to the file containing trusted CA certificates that are PEM encoded.

Read more about the command line options in the mosquitto_sub manual.

Publishing Downlink Messages

This section follows the example for publishing downlink traffic in the MQTT Server guide. See Publishing Downlink Messages for a list of available topics.

For connecting to a host and publishing a message, mosquitto_pub client defines a command with the following syntax:

mosquitto_pub -h <hostname> -p <port> -u <username> -P <password> -t <topic> -m <message>

For example, to send an unconfirmed downlink message to the device dev1 in application app1 with the hexadecimal payload BE EF on FPort 15 with normal priority, use the topic v3/app1/devices/dev1/down/push with the following contents:

mosquitto_pub -h "thethings.example.com" -p "1883" -u "app1" -P "NNSXS.VEEBURF3KR77ZR.." -t "v3/app1/devices/dev1/down/push" -m '{"downlinks":[{"f_port": 15,"frm_payload":"vu8=","priority": "NORMAL"}]}'
Note:
For scheduling downlink messages, the f_port values from 1 to 233 are allowed.

If TLS is being used, change the port value to 8883 and add the --cafile option to the command.

Read more about the command line options in the mosquitto_pub manual.

← Integrations with MQTT Clients Eclipse Paho →

On this page

  • Prerequisites
  • Subscribing to Upstream Traffic
  • Publishing Downlink Messages

The Things Stack

Getting Started

Devices

Gateways

Integrations

Reference

Contributing

GitHub

Forum

About Us

The Things Network

The Things Industries

About this page

Last changed by Nejra Selimović on 23 Dec 2021.
doc: Remove $ character from code blocks, add variables (#678)

Edit on Github