ℹ️ Available starting with QuickHMI 14.13.1 (Enterprise license)
When providing data via MQTT, QuickHMI acts as an embedded MQTT broker. The shared variables are published as MQTT topics; MQTT clients can subscribe to them and, if the variable is writable, also write to them. QuickHMI itself acts as the broker and does not require an external broker.
Distinction: An MQTT data source is the opposite scenario—in this case, QuickHMI connects as a client to an external broker and consumes data. When providing data, QuickHMI acts as the broker.
Activation
You can enable MQTT data publishing in the project settings under the Data Publishing section, in the MQTT subsection. You control which variables are provided by configuring permissions at the data source and variable levels (see Data Publishing Overview).

Listeners
The broker can be accessed via multiple listeners at the same time. For each listener, you specify the transport, bind address, and port:
- tcp – unencrypted MQTT (default port 1883)
- tls – MQTT over TLS (default port 8883)
- ws – MQTT over WebSocket (default port 8080)
- wss – MQTT over WebSocket with TLS (default port 8443)
When you change the transport, the editor suggests the appropriate default port, provided you haven’t already customized the port manually. You can control accessibility using the bind address (for example, 127.0.0.1 for local access only, or 0.0.0.0 for all network interfaces).
Topic Schema and Topic Prefix
Each published variable is published under a unique topic path:
<topic prefix>/<data source>/<variable>/value
In addition to the value, the quality and timestamp are provided:
.../value– the current value.../quality– the quality (for example, GOOD).../ts– the timestamp of the last change
You can set the topic prefix in the settings. Note: Variables without a value (such as empty strings) publish to quality and ts, but not to value.
If two variable names end up on the same path after topic cleanup, the second one is skipped with a warning. Therefore, use unique names.
QoS and Retain
- QoS (Quality of Service) determines the delivery guarantee: 0 (at most once), 1 (at least once), 2 (exactly once).
- Retain: If Retain is enabled, the broker stores the latest value for each topic and immediately delivers it to new subscribers. This is generally useful for the display values of a visualization.
Write-back
If a variable is writable (ReadWrite), MQTT clients can change its value by publishing to the corresponding value topic. QuickHMI copies the value into the variable. Messages published by QuickHMI itself are recognized and are not processed again as write commands.
Authentication
Authentication applies server-wide to the entire broker. The following are possible:
- None —open access.
- Login – with username and password.
- Certificate – mutual TLS authentication (mTLS) with a client certificate.
Important: Certificate registration is only permitted with TLS or WSS listeners. Listeners that use only TCP or WS cannot carry client certificates and will be rejected in this mode.
TLS and Certificates
For TLS and WSS listeners, QuickHMI provides the server identity from the central Certificate Manager. Using the TLS assignments, you can assign a separate TLS certificate to each port; if no assignment is made, the default TLS certificate is used.
During certificate registration (mTLS), QuickHMI verifies the client certificate against the central trust store. A client certificate that is not yet trusted is rejected and appears in the ” Rejected” section. Trust it there and restart the instance; the connection will then be accepted.
License
Data publishing is an enterprise feature.
