# MQTT Client ver: 1.7.0 [Documentation](https://mqtt.clubpulp.com/) [![Downloads](https://pepy.tech/badge/mqtt-client)](https://pepy.tech/project/mqtt-client) [![Downloads](https://pepy.tech/badge/mqtt-client/month)](https://pepy.tech/project/mqtt-client) [![Downloads](https://pepy.tech/badge/mqtt-client/week)](https://pepy.tech/project/mqtt-client) **mqtt-client** is a simple shell *MQTT client*. Some of its essential features are: callback system, interactive publishing mode, TCP and Websockets support and configuration via json file. ## Install > pip install --upgrade mqtt-client ## Examples ```shell mqtt-client publish --config=my_config_file.json mqtt-client subscribe --config=my_config_file.json ``` ```shell mqtt-client publish --host=mqttbroker.testing:1883 --topic=home/room/1/up --payload=ok mqtt-client publish --host=mqttbroker.testing:1883 --topic=home/room/1/up --interactive mqtt-client subscribe --host=mqttbroker.testing:1883 --topic=home/room/1/up ``` ```shell mqtt-client subscribe --host=mqttbroker.testing:1883 --topic=home/room/1/up --callback=command --options=/home/scripts/myScript.bash ``` ## Usage ```shell Usage: mqtt-client (publish | subscribe) --config= mqtt-client publish --host= --topic= (--payload= | --interactive) [--client_id=] [--username=] [--password=] [--transport=] [--cert_path=] [--qos=] [--retain=] mqtt-client subscribe --host= --topic= [--client_id=] [--username=] [--password=] [--transport=] [--cert_path=] [--callback=] [--options=] mqtt-client (-h|--help) mqtt-client (-v|--version) Commands: publish Publish to topic from MQTT Broker. subscribe Subscribe to topic from MQTT Broker. Options: -h --help Show this screen. -v --version Show version. --without_banner Remove settings banner. --config= Config file. --host= Broker Host. (Example: example.your_broker.com:1883) --topic= Topic. --payload= Payload to send. -i --interactive Interactive mode. --client_id= Client ID. --username= Username. --password= Password. --transport= TCP, TCP-TLS, WS, WS-TLS (Default: TCP) --cert_path= Path cert (Default: ./mqtt_broker_cert.pem) --qos= Qos (Default: 0) --retain= Retain (Default: false) --callback= Use a custom callback for subscriber. (default, raw, limited, command) --options= Options for callback type command. ``` ## Example file config > mqtt-client publish --config=example_config.json ```json { "host": "mqttbroker:1883", "topic": "my_topic", "payload": "Testing Simple MQTT Client", "interactive": false, "client_id": "awesome-mqtt-client", "username": "user", "password": "pass", "transport": "TCP", "cert_path": "", "qos": 0, "retain": false, "callback": "", "options": "" } ``` ## Example script callback ### Bash example > mqtt-client subscribe --host=mqtt.local:1883 --topic=mytopic/# --callback=command --options=example_script.bash ```bash #!/bin/bash topic=$1 message=$2 echo "$topic -> $message" ``` ### Python example > mqtt-client subscribe --host=mqtt.local:1883 --topic=mytopic/# --callback=command --options="/usr/bin/python example_script.py" ``` #!/usr/bin/env python # -*- coding: utf-8 -*- import sys topic, message = sys.argv[1], sys.argv[2] print(topic) print(message) ```