Skip to main content

small package to make mqtt connection to ttn

Project description

Build Status

The Things Network

The Things Network


This package provides you an easy way to connect to The Things Network via MQTT. Take note that, you’ll first need to create an application with a device to run the constructor of the MQTT client because you need to provide, an applicationID and a deviceID. First include the package in your file like this:

from ttnmqtt import MQTTClient as mqtt


The class constructor can be called following this scheme:

  • APPID: this the name you gave your application when you created it.
  • APPEUI: this the unique identifier of your application on the TTN platform.
  • PSW: it can be found at the bottom of your application page under ACCESS KEYS. All the above informations can be found in your The Things Network console. The constructor returns an MQTTClient object set up with your application informations, ready for connection.


Connects the previously created client to the The Things Network MQTT broker by default.

client.connect([address], [port])
  • address: the address of the MQTT broker you wish to connect to. Default to
  • port: the port on which you wish to connect. Default to 1883


Disconnects the MQTT client from which we call the method. Also able to stop a forever loop in case the client was running on a loop launched by the start() method.



Start a loop as the main loop of your process. You wont be able to run anything else at the same time on this script.


Take note that a loop need to be started in order to receive uplink messages.


Starts a loop for the client in the background so that it’s possible to run another process (such as a web server) in the same script.



Stops a loop which was started with the startBackground() method. It also disconnect the client.



Set the callback function, to be called when an uplink message is received.



The callback function must be declared in your script following this structure: * uplinkCallback(msg, client) * msg: the message received by the client * client: the client from which the callback is executed are calling

On each message reception, you should see MESSAGE RECEIVED in the console, and the callback will be executed.


Change the connect callback function, following the paho-mqtt standart.

  • custom_function(client, userdata, flags, rc): the function which will be the new connection behavior for our MQTT client.
  • client: the MQTT client from which we call the callback.
  • userdata: the data of the user. Default to ''
  • flags: connection flags
  • rc: result from the connect method. 0 if the connection succeeded.

click here for more information on the paho-mqtt package.


Set the publish callback function, following the paho-mqtt standart.



  • publishCallback(mid, client): the function which will be the new publish behavior for our MQTT client.
  • mid: it matches the mid variable returned from the publish call to allow sent messages to be tracked.
  • client: the MQTT client from which we call the callback.


Publishes a message to the MQTT broker.

client.publish(deviceID, message)
  • deviceID: the ID of the device you wish to send the message to.
  • message: the message to be published to the broker. The message that’s sent to the TTN broker needs to be a string and can follow this example (it’s not mandatory but they are mostly build on this format): json  {"port": 1, "confirmed": false, "payload_raw": "AA=="} This message will send the payload 00 to your device.


Source code for The Things Network is released under the MIT License, which can be found in the LICENSE file. A list of authors can be found in the AUTHORS file.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for ttnmqtt, version 0.9.4
Filename, size File type Python version Upload date Hashes
Filename, size ttnmqtt-0.9.4-py2.py3-none-any.whl (7.2 kB) File type Wheel Python version py2.py3 Upload date Hashes View
Filename, size ttnmqtt-0.9.4.tar.gz (4.7 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page