Docs / Strand / connectors/mqtt
MQTT Publish
Direction: Write Only | Type: mqtt
Publish messages to MQTT message brokers with support for TLS/SSL, authentication, and Quality of Service levels.
Operations
| Operation | Direction | Description |
|---|---|---|
publish |
Write | Publish a message to an MQTT topic |
Connector Configuration
| Field | Required | Default | Description |
|---|---|---|---|
| Broker URL | Yes | - | MQTT broker address (mqtt:// or mqtts://) |
| Client ID | No | Auto | MQTT client identifier |
| Username | No | - | Broker username (encrypted) |
| Password | No | - | Broker password (encrypted) |
| Keepalive | No | 60 |
Keepalive interval in seconds |
| Clean Session | No | true |
Start with a clean session |
| TLS | No | - | TLS/SSL configuration (see below) |
| Topic | No | - | Default topic (can be overridden at node level) |
| QoS | No | 0 |
Default Quality of Service (0, 1, or 2) |
| Timeout | No | 30 |
Connection timeout in seconds |
| Retain | No | false |
Retain messages on broker |
TLS/SSL Configuration
json
{
"tls": {
"enabled": true,
"ca_certs": "/path/to/ca-cert.pem",
"certfile": "/path/to/client-cert.pem",
"keyfile": "/path/to/client-key.pem",
"cert_reqs": "required",
"tls_version": "tlsv1.2"
}
}
| Field | Default | Options |
|---|---|---|
| enabled | false |
Enable TLS/SSL |
| ca_certs | - | CA certificate file for server validation |
| certfile | - | Client certificate for mutual TLS |
| keyfile | - | Client private key for mutual TLS |
| cert_reqs | required |
none, optional, required |
| tls_version | tlsv1.2 |
tlsv1, tlsv1.1, tlsv1.2, tlsv1.3 |
Quality of Service (QoS)
| Level | Delivery | Description |
|---|---|---|
| 0 | At most once | Fire and forget (fastest) |
| 1 | At least once | Acknowledged delivery |
| 2 | Exactly once | Guaranteed delivery (slowest) |
Node Configuration
| Field | Required | Description |
|---|---|---|
| Topic | Yes | MQTT topic to publish to (supports Jinja2) |
| QoS | No | Override connector default QoS |
| Retain | No | Override connector default retain |
| Payload | No | Message payload (string/object, defaults to event payload as JSON) |
| Timeout | No | Override connector default timeout |
Output
json
{
"success": true,
"status": "sent",
"data": {
"topic": "sensors/temperature",
"message_id": 1,
"qos": 1
},
"service": "mqtt",
"operation": "publish"
}
Example
Connector Setup:
json
{
"broker_url": "mqtts://broker.example.com:8883",
"username": "mqtt_user",
"password": "mqtt_password",
"tls": { "enabled": true, "cert_reqs": "required" },
"qos": 1
}
Node Configuration:
- Topic:
events/{{ payload.device_id }}/{{ payload.event_type }} - QoS:
2 - Payload:
{{ payload | tojson }}
Tendrl