PublishMQTT

Description:

Publishes a message to an MQTT topic

Tags:

publish, MQTT, IOT

Properties:

In the list below, the names of required properties appear in bold. Any other properties (not in bold) are considered optional. The table also indicates any default values, whether a property supports the NiFi Expression Language, and whether a property is considered "sensitive", meaning that its value will be encrypted. Before entering a value in a sensitive property, ensure that the nifi.properties file has an entry for the property nifi.sensitive.props.key.

NameDefault ValueAllowable ValuesDescription
Broker URIThe URI to use to connect to the MQTT broker (e.g. tcp://localhost:1883). The 'tcp', 'ssl', 'ws' and 'wss' schemes are supported. In order to use 'ssl', the SSL Context Service property must be set.
Supports Expression Language: true (will be evaluated using variable registry only)
MQTT Specification Versionv3 AUTO
  • v3 AUTO Start with v3.1.1 and fallback to v3.1.0 if not supported by a broker
  • v5.0
  • v3.1.1
  • v3.1.0
The MQTT specification version when connecting with the broker. See the allowable value descriptions for more details.
UsernameUsername to use when connecting to the broker
Supports Expression Language: true (will be evaluated using variable registry only)
PasswordPassword to use when connecting to the broker
Sensitive Property: true
SSL Context ServiceController Service API:
SSLContextService
Implementations: StandardSSLContextService
StandardRestrictedSSLContextService
The SSL Context Service used to provide client certificate information for TLS/SSL connections.
Session stateClean Session
  • Clean Session Client and Server discard any previous session and start a new one. This session lasts as long as the network connection. State data associated with this session is not reused in any subsequent session
  • Resume Session Server resumes communications with the client based on state from the current session (as identified by the ClientID). The client and server store the session after the client and server are disconnected. After the disconnection of a session that was not a clean session, the server stores further QoS 1 and QoS 2 messages that match any subscriptions that the client had at the time of disconnection as part of the session state
Whether to start a fresh or resume previous flows. See the allowable value descriptions for more details.
Session Expiry Interval24 hrsAfter this interval the broker will expire the client and clear the session state.

This Property is only considered if all of the following conditions are met:
  • The [MQTT Specification Version] Property has a value of "v5.0".
  • The [Session state] Property has a value of "Resume Session".
Client IDMQTT client ID to use. If not set, a UUID will be generated.
Supports Expression Language: true (will be evaluated using variable registry only)
TopicThe topic to publish the message to.
Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)
Retain MessageWhether or not the retain flag should be set on the MQTT message.
Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)
Quality of Service (QoS)The Quality of Service (QoS) to send the message with. Accepts three values '0', '1' and '2'; '0' for 'at most once', '1' for 'at least once', '2' for 'exactly once'. Expression language is allowed in order to support publishing messages with different QoS but the end value of the property must be either '0', '1' or '2'.
Supports Expression Language: true (will be evaluated using flow file attributes and variable registry)
Record ReaderController Service API:
RecordReaderFactory
Implementations: JsonPathReader
ScriptedReader
CSVReader
AvroReader
SyslogReader
XMLReader
CEFReader
JsonTreeReader
WindowsEventLogReader
ReaderLookup
Syslog5424Reader
GrokReader
ParquetReader
The Record Reader to use for parsing the incoming FlowFile into Records.
Record WriterController Service API:
RecordSetWriterFactory
Implementations: RecordSetWriterLookup
AvroRecordSetWriter
FreeFormTextRecordSetWriter
XMLRecordSetWriter
ScriptedRecordSetWriter
CSVRecordSetWriter
JsonRecordSetWriter
ParquetRecordSetWriter
The Record Writer to use for serializing Records before publishing them as an MQTT Message.
Connection Timeout (seconds)30Maximum time interval the client will wait for the network connection to the MQTT server to be established. The default timeout is 30 seconds. A value of 0 disables timeout processing meaning the client will wait until the network connection is made successfully or fails.
Keep Alive Interval (seconds)60Defines the maximum time interval between messages sent or received. It enables the client to detect if the server is no longer available, without having to wait for the TCP/IP timeout. The client will ensure that at least one message travels across the network within each keep alive period. In the absence of a data-related message during the time period, the client sends a very small "ping" message, which the server will acknowledge. A value of 0 disables keepalive processing in the client.
Last Will MessageThe message to send as the client's Last Will.
Last Will TopicThe topic to send the client's Last Will to.

This Property is only considered if the [Last Will Message] Property has a value specified.
Last Will Retainfalse
  • true
  • false
Whether to retain the client's Last Will.

This Property is only considered if the [Last Will Message] Property has a value specified.
Last Will QoS Level0 - At most once
  • 0 - At most once Best effort delivery. A message won’t be acknowledged by the receiver or stored and redelivered by the sender. This is often called “fire and forget” and provides the same guarantee as the underlying TCP protocol.
  • 1 - At least once Guarantees that a message will be delivered at least once to the receiver. The message can also be delivered more than once
  • 2 - Exactly once Guarantees that each message is received only once by the counterpart. It is the safest and also the slowest quality of service level. The guarantee is provided by two round-trip flows between sender and receiver.
QoS level to be used when publishing the Last Will Message.

This Property is only considered if the [Last Will Message] Property has a value specified.

Relationships:

NameDescription
successFlowFiles that are sent successfully to the destination are transferred to this relationship.
failureFlowFiles that failed to send to the destination are transferred to this relationship.

Reads Attributes:

None specified.

Writes Attributes:

None specified.

State management:

This component does not store state.

Restricted:

This component is not restricted.

Input requirement:

This component requires an incoming relationship.

System Resource Considerations:

ResourceDescription
MEMORYAn instance of this component can cause high usage of this system resource. Multiple instances or high concurrency settings may result a degradation of performance.

See Also:

ConsumeMQTT