Name

mosquitto_pub — an MQTT version 3.1 client for publishing simple messages

Synopsis

mosquitto_pub [-d] [-h hostname] [-i client_id] [-I client id prefix] [-p port number] [-q message QoS] [--quiet] [-r] { -f file | -l | -m message | -n | -s } [ [-u username] [-P password] ] [ --will-topic topic [--will-payload payload] [--will-qos qos] [--will-retain] ] [[ { --cafile file | --capath dir } [--cert file] [--key file] ] | [ --psk hex-key --psk-identity identity ]] -t message-topic

mosquitto_pub [--help]

Description

mosquitto_pub is a simple MQTT version 3.1 client that will publish a single message on a topic and exit.

Options

--cafile

Define the path to a file containing PEM encoded CA certificates that are trusted. Used to enable SSL communication.

See also --capath

--capath

Define the path to a directory containing PEM encoded CA certificates that are trusted. Used to enable SSL communication.

For --capath to work correctly, the certificate files must have ".crt" as the file ending and you must run "c_rehash <path to capath>" each time you add/remove a certificate.

See also --cafile

--cert

Define the path to a file containing a PEM encoded certificate for this client, if required by the server.

See also --key.

-d, --debug

Enable debug messages.

-f, --file

Send the contents of a file as the message.

--help

Display usage information.

-h, --host

Specify the host to connect to. Defaults to localhost.

-i, --id

The id to use for this client. If not given, defaults to mosquitto_pub_ appended with the process id of the client. Cannot be used at the same time as the --id-prefix argument.

-I, --id-prefix

Provide a prefix that the client id will be built from by appending the process id of the client. This is useful where the broker is using the clientid_prefixes option. Cannot be used at the same time as the --id argument.

--key

Define the path to a file containing a PEM encoded private key for this client, if required by the server.

See also --cert.

-l, --stdin-line

Send messages read from stdin, splitting separate lines into separate messages. Note that blank lines won't be sent.

-m, --message

Send a single message from the command line.

-n, --null-message

Send a null (zero length) message.

-p, --port

Connect to the port specified instead of the default 1883.

-P, --pw

Provide a password to be used for authenticating with the broker. Using this argument without also specifying a username is invalid. This requires a broker that supports MQTT v3.1. See also the --username option.

--psk

Provide the hexadecimal (no leading 0x) pre-shared-key matching the one used on the broker to use TLS-PSK encryption support. --psk-identity must also be provided to enable TLS-PSK.

--psk-identity

The client identity to use with TLS-PSK support. This may be used instead of a username if the broker is configured to do so.

-q, --qos

Specify the quality of service to use for the message, from 0, 1 and 2. Defaults to 0.

--quiet

If this argument is given, no runtime errors will be printed. This excludes any error messages given in case of invalid user input (e.g. using --port without a port).

-r, --retain

If retain is given, the message will be retained as a "last known good" value on the broker. See mqtt(7) for more information.

-s, --stdin-file

Send a message read from stdin, sending the entire content as a single message.

-t, --topic

The MQTT topic on which to publish the message. See mqtt(7) for more information on MQTT topics.

-u, --username

Provide a username to be used for authenticating with the broker. This requires a broker that supports MQTT v3.1. See also the --pw argument.

--will-payload

Specify a message that will be stored by the broker and sent out if this client disconnects unexpectedly. This must be used in conjunction with --will-topic.

--will-qos

The QoS to use for the Will. Defaults to 0. This must be used in conjunction with --will-topic.

--will-retain

If given, if the client disconnects unexpectedly the message sent out will be treated as a retained message. This must be used in conjunction with --will-topic.

--will-topic

The topic on which to send a Will, in the event that the client disconnects unexpectedly.

Wills

mosquitto_sub can register a message with the broker that will be sent out if it disconnects unexpectedly. See mqtt(7) for more information.

The minimum requirement for this is to use --will-topic to specify which topic the will should be sent out on. This will result in a non-retained, zero length message with QoS 0.

Use the --will-retain, --will-payload and --will-qos arguments to modify the other will parameters.

Examples

Publish temperature information to localhost with QoS 1:

  • mosquitto_pub -t sensors/temperature -m 32 -q 1

Publish timestamp and temperature information to a remote host on a non-standard port and QoS 0:

  • mosquitto_pub -h 192.168.1.1 -p 1885 -t sensors/temperature -m "1266193804 32"

Publish light switch status. Message is set to retained because there may be a long period of time between light switch events:

  • mosquitto_pub -r -t switches/kitchen_lights/status -m "on"

Send the contents of a file in two ways:

  • mosquitto_pub -t my/topic -f ./data

  • mosquitto_pub -t my/topic -s < ./data

Send parsed electricity usage data from a Current Cost meter, reading from stdin with one line/reading as one message:

  • read_cc128.pl | mosquitto_pub -t sensors/cc128 -l

Bugs

mosquitto_pub bug information can be found at http://launchpad.net/mosquitto

See Also

mqtt(7) mosquitto_sub(1) mosquitto(8) libmosquitto(3) mosquitto-tls(7)

Acknowledgements

This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)

This product includes cryptographic software written by Eric Young (eay@cryptsoft.com)

This product includes software written by Tim Hudson (tjh@cryptsoft.com)

Author

Roger Light