Python mqtt-client

Written by

Hace mas de un año que no escribo nada por aqui :( el año pasado (2018) estuve bastante ocupado y este parece ser que tambien, no obstante quiero presentar un pequeño proyecto y por eso escribo esta lineas.

MQTT-CLIENT

Nueva versión de mqtt-client, sencillo cliente para MQTT escrito en python apoyado en la libreria paho.

Como siempre podemos utilizar pip para instalarlo en nuestro sistema:

pip install mqtt-client

La intención de este pequeño proyecto es tener un client shell sencillo a la hora de suscribirte y publicar. Es realmente un proyecto para uso personal mio, lo publico por si es interesante para alguien, esto significa que probablemente el lanzamiento de releases sea irregular. Seria interesante para mi cualquier aportación (github) :D.

Las principales killer features son:

  • El modo interactivo en la publicación y;
  • La ejecución de callbacks en la suscripción. Esto es básicamente un sistema por el cual puedo lanzar comandos en la maquina via mensajes MQTT.

Como se puede apreciar su manejo en sencillo e intuitivo:

Usage:
  mqtt-client publish --host=<host> --topic=<topic> (--payload=<payload> | --interactive) [--username=<username>] [--password=<password>] [--transport=<transport>] [--cert_path=<cert_path>] [--qos=<qos>] [--retain=<retain>]
  mqtt-client subscribe --host=<host> --topic=<topic> [--username=<username>] [--password=<password>] [--transport=<transport>] [--cert_path=<cert_path>] [--callback=<callback>] [--command=<command>]
  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.
  --host=<host>             Broker Host. (Example: example.your_broker.com:1883)
  --topic=<topic>           Topic.
  --payload=<payload>       Payload to send.
  -i --interactive          Interactive mode.
  --username=<username>     Username.
  --password=<password>     Password.
  --transport=<transport>   TCP, TCP-TLS, WS, WS-TLS (Default: TCP)
  --cert_path=<cert_path>   Path cert (Default: ./mqtt_broker_cert.pem)
  --qos=<qos>               Qos (Default: 0)
  --retain=<retain>         Retain (Default: false)
  --callback=<callback>     Use a custom callback for subscriber. (default, raw, command)
  --command=<command>       Command for callback type command.