mqtt.publish() function
mqtt.publish()
is experimental and subject to change at any time.
Only supported in InfluxDB Cloud (TSM)
The experimental/mqtt
package only supported in InfluxDB Cloud (TSM).
It is still available to import in InfluxDB OSS and Enterprise, but
functions will not successfully publish to an MQTT broker.
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
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!
Support and feedback
Thank you for being part of our community! We welcome and encourage your feedback and bug reports for Flux and this documentation. To find support, use the following resources:
Customers with an annual or support contract can contact InfluxData Support.