Documentation

mqtt.publish() function

mqtt.publish() is experimental and subject to change at any time.

mqtt.publish() sends data to an MQTT broker using MQTT protocol.

Function type signature
(
    broker: string,
    message: string,
    topic: string,
    ?clientid: string,
    ?password: string,
    ?qos: int,
    ?retain: bool,
    ?timeout: duration,
    ?username: string,
) => bool
For more information, see Function type signatures.

Parameters

broker

(Required) MQTT broker connection string.

topic

(Required) MQTT topic to send data to.

message

(Required) Message to send to the MQTT broker.

qos

MQTT Quality of Service (QoS) level. Values range from [0-2]. Default is 0.

retain

MQTT retain flag. Default is false.

clientid

MQTT client ID.

username

Username to send to the MQTT broker.

Username is only required if the broker requires authentication. If you provide a username, you must provide a password.

password

Password to send to the MQTT broker.

Password is only required if the broker requires authentication. If you provide a password, you must provide a username.

timeout

MQTT connection timeout. Default is 1s.

Examples

Send a message to an MQTT endpoint

import "experimental/mqtt"

mqtt.publish(
    broker: "tcp://localhost:8883",
    topic: "alerts",
    message: "wake up",
    clientid: "alert-watcher",
    retain: true,
)

Send a message to an MQTT endpoint using input data

import "experimental/mqtt"
import "sampledata"

sampledata.float()
    |> map(
        fn: (r) =>
            ({r with sent:
                    mqtt.publish(
                        broker: "tcp://localhost:8883",
                        topic: "sampledata/${r.id}",
                        message: string(v: r._value),
                        clientid: "sensor-12a4",
                    ),
            }),
    )

Was this page helpful?

Thank you for your feedback!


Introducing InfluxDB 3.0

The new core of InfluxDB built with Rust and Apache Arrow. Available today in InfluxDB Cloud Dedicated.

Learn more

State of the InfluxDB Cloud Serverless documentation

The new documentation for InfluxDB Cloud Serverless is a work in progress. We are adding new information and content almost daily. Thank you for your patience!

If there is specific information you’re looking for, please submit a documentation issue.