Main Content

MQTT Publish

Publish messages to MQTT broker on specified topic

Since R2023a

Add-On Required: This feature requires the MATLAB Coder Support Package for NVIDIA Jetson and NVIDIA DRIVE Platforms add-on.

  • NVIDIA MQTT publish block

Libraries:
NVIDIA Jetson and NVIDIA DRIVE / Internet Of Things

Description

The MQTT Publish block publishes messages from your hardware (publisher) to the MQ Telemetry Transport (MQTT) broker on the specified topic.

The Message port accepts the message to be published to the broker. The Status port outputs the status of the publish request. The string topic/level on the block icon is specified by the Topic parameter.

For more information on MQTT, see Introduction to MQTT.

Note

The MQTT Publish block supports MQTT only over TCP/IP sockets.

Ports

Input

expand all

The message to be published to the MQTT broker, specified as a vector.

Example: [0,3]

Data Types: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean

Output

expand all

The status code issued by the MQTT broker in response to the publish request. If the broker accepts the message for publishing, the port outputs 0. A nonzero output indicates that the broker has rejected the message. A message can be rejected for various reasons, such as an incorrect user name or password or an unacceptable protocol version. For more information on status codes from MQTT brokers, see MQTT Status Codes.

Data Types: int8

Parameters

expand all

Specify a topic on which the message is to be published. A topic can have a maximum of 128 characters. For information on topics and its structure, see Topics in MQTT.

Programmatic Use

Block Parameter: Topic
Type: character vector
Values: 'topic/level'|valid topic name
Default: 'topic/level'

Quality of Service (QoS) defines the reliability of the message delivery process in MQTT. MQTT provides three QoS levels for message delivery: QoS 0, QoS 1, and QoS 2. The MQTT broker that you are using might not support the three levels of QoS. For example, ThingSpeak™ MQTT supports only QoS 0.

Select a QoS level from the list:

  • 0 (At most once): The publisher sends the message to the MQTT broker once. The broker does not send an acknowledgment of the receipt.

  • 1 (At least once): The publisher sends the message to the MQTT broker at least once. The publisher resends the message if it does not receive an acknowledgment from the broker.

  • 2 (Exactly once): The publisher sends the message to the MQTT broker exactly once. The publisher and broker exchange acknowledgments so that the message is received only once.

For more information on QoS levels, see Levels of QoS in MQTT.

Programmatic Use

Block Parameter: QoS
Type: character vector
Values: '0'|'1'|'2'
Default: '0'

The Retain message parameter controls how new subscriptions are handled:

  • on –– When a new subscription is made to a topic, the broker identifies the message in its database with the matching topic name and sends the message immediately.

    Note

    The MQTT broker retains only the last known message published on a topic.

  • off –– When a new subscription is made to a topic, the subscriber must wait until the publisher sends the next message.

Programmatic Use

Block Parameter: RetainMsg
Type: character vector
Values: 'off'|'on'
Default: off

Version History

Introduced in R2023a